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