嵌入式系统的应用已经相当的广泛,曾有专家预言——嵌入式系统的明天就相当于PC的今天,如今从某种程度上讲预言已经实现,嵌入式系统被广泛应用于工业设备、汽车航空、医疗电子、消费电子等领域,与此同时市场竞争也愈加激烈,如何快速地将符合需求的产品投入市场成为在竞争中保持一席之地的关键。然而,随着系统构架的日益复杂化,例如,多核多任务的环境,MPU、DSP和FPGA混合编程,以及处理器和开发工具的多样化等,都给嵌入式系统开发人员带来了很大的挑战。第三方独立市场预测机构Embedded Market Forecasters(EMF)在对900多名嵌入式系统开发人员进行调研后指出,超过50%的嵌入式设计比预期时间晚上市,而平均延迟时间高达近4个月;并且在已发布的产品中,有近30%的设计未达到预期的功能和指标。
因此必须采取一定的措施来加快设计流程,提高设计质量,一种解决方案是采取现成可用的商业化平台。在开发一个嵌入式设备时,除了考虑处理器架构、操作系统性能、以及其他组件之外,开发人员必须决定系统的哪些部分需要设计、哪些部分需要购买现成设备。如果采用自行设计的方案,其优势在于可以全面地自定义最
方案一:自行设计
在开发之前,需要为系统的核心控制部分选择一种处理器技术。例如以下五种技术:
1. 微控制器-微控制器的成本极为低廉,并且通常在单一的芯片上提供了集成的解决方案,且包括I/O外围设备。它们通常带有极小的片上存储容量,而且难以用于复杂性高和需要扩展的场合。此外,其时钟速率通常是10MHz的数量级,因此一般不能实现高性能的控制循环。
2. 微处理器-和微控制器相比,微处理器的时钟速率更高且通常具有外部存储接口,因而性能和扩展性并不成问题。但是应用程序可能需要进行复杂的驱动开发,因为微处理器通常并不带有片上模拟外围设备。此外,微处理器可能需要高密度的封装技术,例如球栅阵列封装(ball-grid array,即BGA),这将导致较复杂的制造流程,增添了更为困难的硬件调试工作。
3. 数字信号处理器(DSP)-DSP是一种专用的微处理器,它提供额外的指令以优化特定的数学函数,例如乘法和累加操作。DSP对于计算繁重的应用场合来说是极为有用的,但是通常需要专业的知识来利用它的软件性能。
4. 专用集成电路(ASIC)-ASIC芯片是专为某个特定的应用而设计的,不具有通用性。对于解决诸如功耗和产品成本等问题,ASIC被广泛认为是一种极好的方案。但是,极为昂贵的ASIC开发和制造流程通常让人望而却步,一般仅限于具有极大产量的产品。
5. 现场可编程门阵列(FPGA)-FPGA在自定义的ASIC设计和现成的技术之间提供了极好的平衡。它们具有高度的专有化性能,同时可以通过编程重新配置逻辑模块,因而其开发成本与ASIC相比要低得多。虽然FPGA可以被应用于各种场合,但是一般来说复杂的FPGA设计并不常见,因为对于大部分习惯于使用C语言进行顺序编程的嵌入式软件开发者来说,VHDL编程格式显得十分陌生。
在许多情况下,单一的处理器技术并不足以解决应用的需求,因此,混合式架构逐渐成为发展的方向。如图1所示,实时处理器用来管理网络通信和用户界面,而FPGA则负责与I/O模块的接口和高速控制等任务。这种混合式架构在嵌入式系统设计中变得十分普遍。
图1、混合式架构在嵌入式系统设计中变得十分普遍。在这种混合式架构中,实时处理器用来管理网络通信和用户界面,而FPGA则负责与I/O部件的接口和高速控制任务。
在确定了使用何种处理器技术之后,设计人员还需要完成I/O电路的开发。如果嵌入式系统中存在任何的模拟信号,那么就需要使用模数转换器(ADC)、数模转换器(DAC)、以及相应的软件驱动。模拟电路的设计同样会遇到很多复杂的问题,限于篇幅本文不再赘述。
方案二:利用现有平台
另外一种方案就是使用现成的平台来开发嵌入式系统。虽然通常来说需要付出比板卡组件成本更高的价钱,但是可以显著缩短产品进入市场的时间。除此之外,这些系统具有较好的可扩展性。随着处理器技术的进步,嵌入式系统出现以下几种不同的实现技术:
1. 非集成式嵌入式系统-具有多种不同的形状尺寸,例如Mini-ITX、PC/104等。对于使用现成产品来构建系统,非集成式嵌入式系统通常是最为经济的解 决方案。这些系统具有各种不同的处理器架构以供选择,且带有操作系统和一小部分I/O支持套件。但是,针对这种系统的软件开发工具几乎从未集成,而且这些系统通常需要进行各种监管认证,例如EMI和CE认证。
2. 集成式嵌入式系统-除了具有与非集成式嵌入式系统相同的组件之外,集成式嵌入式系统提供了诸如冲击、振动、工作温度、以及环境认证之类的技术说明。通常来说,这些系统更加昂贵,但是他们通常带有集成的软件开发环境且具有更为丰富的I/O选择。
3. 工业级PC-利用现成的PC技术,工业级PC为开发工具及I/O性能提供了最为丰富的选择。它们也具有许多与其他集成式嵌入式系统相同的技术说明和认证,但这种性能是以成本为代价的。这种系统比前述两种方式更为昂贵。
图2、NI CompactRIO正是集成式嵌入式系统的一个实例
NI CompactRIO集成式嵌入式系统架构,与图1所示的简单方框图极为相似。它使用了Freescale PowerPC微处理器运行VxWorks实时操作系统。PowerPC通过内部的PCI总线与FPGA相连接。此外,FPGA直接连接至各种模拟和数字 I/O模块
图3、NI CompactRIO系统结构图
选择哪种方案?-嵌入式系统设计中的“隐性”成本
在选择自行设计还是利用现成平台时,通常技术性能并不是决定性因素,而需要进行简单的经济性分析。如果最终的利润足以填补产品开发过程中所花费的工程成本投资,那么做出的决定就是明智的。做出决定之前,必须准确估计自行设计方案所花费的成本。但这并是看上去那么简单;如果只是把板卡组件的成本和硬件及软件的开发时间相加,那么只是非常粗略地低估了总投资成本。还应当考虑其他的“隐性”成本才能准确地评估真正的任务成本。
一旦评估了工程投资成本,那么就可以简单计算一下的财务收支平衡分析。假设针对某种产品的开发,需要两个工程师花费九个月的时间来自行开发一块板卡,从需求分析到供货,其投资成本大约是300,000。并且在预安装、原型设计、预发布单元、加工以及其他偶然的工程成本等每个方面都花费了 25,000,从而使得整个投资成本上升到400,000。在完成了这些工作后,自行设计的产品其成本将比使用现成的平台便宜400。使用公式1,可以看到投资收支平衡点位于第1,000个单位产品,直到售出第1,001个单位产品才会盈利。而且,这并没有包含上面所讨论的其他“隐性”成本。但是,如果选择了集成式嵌入式系统,就可以缩短上市时间,并且早期的利润将会用于成本优化和特性改进。通过这种方式,可以在整个产品生命周期内摊销投资成本,而不是在早期的开发过程中投入所有的资金。
公式1、可以使用简单的公式来计算任何自定义系统的收支平衡点
本文小结
那是否就不用自行设计板卡了?当然不是。对于那些对形状尺寸有专门要求且具有极高产量的系统、或者具有极为苛刻技术要求(例如极低的功率消耗)的系统来说,自行设计的方式将更具有优势。而对于产量较低、技术复杂又需要快速上市的产品,使用现成平台可以让供应商负担物流和“隐性”成本从而使得我们可以专注于技术上的优势突出,从而在市场竞争中保持领先。