随着基于功能强大又便宜,且内存资源丰富的处理器开发的现成硬件和软件平台的逐渐普及,嵌入式开发人员的角色再次发生了改变…
在我刚开始成为嵌入式开发人员时(当时最高的处理器速度也就500kHz),要做的工作同时包括硬件设计和应用软件开发(而且是用汇编语言)。后来,硬件和软件开发慢慢地分开,硬件工程师主要解决棘手的高速讯号问题,软件开发人员则解决诸如内存约束(Memory Constraint)和实时性能等事情。
但随着基于功能强大又便宜,且内存资源丰富的处理器开发的现成硬件和软件平台的逐渐普及,嵌入式开发人员的角色再次发生了改变。
嵌入式应用中总是需要客制化(custom)的硬件和软件,特别是诸如成本、功耗、性能和外形有严格要求的那些应用。但种类广泛的各种平台正渗透到越来越多的应用领域,在上市时间最为迫切的情况下,借助平台的方法有相当大的吸引力。当核心处理硬件、操作系统驱动程序和用户接口都变得伸手可及时,设计师所要做的就只是设计应用程序代码。
透过收集各种现成的组件来创建系统有一个问题。就大部分而言,这些组件是彼此开发的,因此很少能简单的即插即用;相反,几乎都要花时间在不同组件的整合,解决修改一个或多个组件引起的冲突。
这类系统整合要求的技巧与系统设计相比有少许的不同。当你从头开始设计一个系统时,你所做的实现决策是加快和简化组装与对系统进行除错(debugging)的任务。但当你使用现成的组件时,你首先需要了解这些组件是如何工作的,然后才能明白它们在一起为什么不能工作。理解别人的设计其实是一种很大的挑战。
幸运的是,一旦你理解了所用的平台,那么使用这些平台创建下一个系统设计将变得非常容易,这正是开发团队转向平台的原因。从头开始做的全新设计每次都要花相同的精力,而基于平台的设计每次会变得更加容易更加快速。
最近我刚好遇到了改变嵌入式设计师所担当角色的例子。15年前成立的Witekio公司(原Adeneo Embedded)聚集了一群高阶嵌入式开发人员,最近他们的任务发生了变化。他们开始做客制化嵌入式系统开发,为他们的OEM客户设计连网的系统硬件和软件,并说明芯片供货商增加对他们组件的操作系统与其他软件支持。公司的这种方法正是在从设计向系统整合转型。该公司首席执行官Yannick Chammings在接受采访时向我解释了其中的原因。
“我们对嵌入式市场的观点是,开发工作将从要求详细的专业技术向需要系统软件的整合与优化改变。”Chammings表示:“在先前微控制器(MCU)比较简单的时代,开发人员自己可以包办全部事情。到了第二代,他们需要供货商的支持,以及操作系统和用户接口软件的专业知识;而到现在,出现了用户接口、数据收集与管理、云生态系统等的客制化。”
他们的结论是:高效地整合从硬件到云端的各种技术和各种软件层已成为连网/嵌入式项目成功的关键。
为了在今天这样的下成功建立嵌入式系统,需要结合掌握广泛的专业技术(操作系统、板级支持包、微控制器、云服务等)、高超的系统整合技巧(包括测试和验证),以及灵活地处理外部合作伙伴提供的IP。大公司自己拥有所有这些技能,但许多开发团队没有,因此亟需帮助。
随着平台的出现,对专业技术的需求已让位给对系统整合技能的需求。除非开发项目需要的各种优化只能透过客制化设计实现,否则软硬件平台和商用软件库就可以提供系统要求的大多数基本功能,只有应用程序设计需要客制化。系统设计变成系统组装,而且这种组装不可避免地要求整合技术。
对于大多数嵌入式开发人员来说,具体的设计知识不再是系统设计成功的唯一或者主要途径。相反,广泛而深入地理解可用的构建模块及其互动将成为关键,而且要与每个模块背后的技术专家进行沟通交流。专家们会发现他们自己主要负责开发和支持构建模块,而普通技术人员和整合人员才是建置系统的合适人选。
推荐: