APP下载

选择嵌入式系统主处理器的几个重要参考因素

2015-05-30张立为陈浩陈坚

中国新通信 2015年3期
关键词:嵌入式系统智能制造

张立为 陈浩 陈坚

【摘要】 嵌入式系统广泛应用于消费电子、物联网,工业制造、汽车制造,工业自动化、医疗设备、航空航天及军事领域。嵌入式系统在现代智能产业中起着举足轻重,不可替代的关键作用。嵌入式系统的核心是主处理器。主处理器的选取是决定嵌入式系统项目成功与否的核心关键环节。本文作者试图总结多年实际工 作中的经验,对选择嵌入式系统主处理器时应该注意的几个关键因素加以分享和讨论,以供嵌入式系统设计工程师们参考、借鉴。

【关键词】 嵌入式系统 嵌入式主处理器 主处理芯片 智能制造

嵌入式系统的应用非常广泛,几乎遍布各个工业领域。而且,随着现代智能产业大跨步,飞跃式发展趋势,嵌入式系统在各工业领域的应用再一次呈现爆炸式发展。

嵌入式系统的应用形形色色。其规模,存在方式,复杂程度等都会随应用的不同而千变万化。作为嵌入式系统的核心,主处理器的选择也应当视其所属系统的规模,作用,复杂程度等而相应变化,评估和选择合适的嵌入式主处理器成为项目是否成功的关键要素。

一、首要选择因素是项目的设计要求

嵌入式系统项目的设计要求基本上确定了该系统的规模,作用和复杂程度。

项目设计首先要考虑主处理器的性能是否足够驱动目标应用程序,而衡量嵌入式主处理器的一个关键指标为MIPS(million instructions per second,每秒所能处理的百万指令数),而对应MIPS指标就非常关注主时钟频率,其实频率和MIPS不能直接考虑为等号或者成比例关系。查看STM32F107为ARM 32bit Cortex-M3核,主频最高为72MHz,1.25 DMIPS/MHz,选择时候以具体数据为准。还需要进一步考虑的是如果对应的项目在应用层就需要嵌入式处理器消耗较大的任务,需要综合评估对应的处理器的MIPS能否匹配应用层的需求、是否会牺牲其他子系统的性能?例如《网络机顶盒播放器》,如果选择的主处理器没有硬件视频解码能力,就需要考虑软件解码和网络传输视频对处理器占用的比例。

当然,如果设计要求很高的实时性,那么选择主处理器时就不光要考虑主MIPS、主时钟频率而且还要考虑是选单核还是多核芯片。如果设计要求连接多种不同外围设备,针对特定的处理任务,那就要考虑放弃通用型芯片而多考虑可以满足多种不同外围设备的专用处理芯片。

从设计要求的任务可以大致决定系统软件/固件所需要采用的模式。是否需要多任务OS还是Stand alone编程就可以满足要求。是否需要考虑uCOS III這样的RTOS, 或者嵌入式Linux系统?主处理器的选择需要配合系统软件/固件模式的选择。由于项目的设计往往对启动时间有要求,如果一个带液晶显示器(LCD)的产品,2-3分钟内LCD还处于黑屏状态,这样的设计就表现为比较糟糕。所以在选择主处理器的时候还需要关注是否支持NOR /NAND/SD卡等不同的启动模式及对应的启动速度,能寻址最大的DRAM、SRAM、NOR、NAND等存储器的存储地址空间范围。

从嵌入式系统项目的规模上看,微/小型类应用采用低/中端单核芯片即可胜任,这样的应用无需太多种类的外围驱动支持。也无需多任务OS, Stand alone编程即可。一般类规模的应用可能需用高端单核处理器(如TI AM335x),或双核处理器(如ZYNQ-7000)。这样的项目需要一定种类的外围驱动支持。OS可选Stand alone,uCOS III, 或者嵌入式Linux系统。而复杂类的嵌入式系统应用就需双核处理器(如ZYNQ-7000),需较多种类的外围驱动支持。OS首选嵌入式Linux系统,或uCOS III。 高端移动通信设备类应用则需要通用型双核甚至多核高速处理器。它们需要一定种类的外围驱动支持。OS首选Android, iOS等。

项目的设计要求会对外围设备提出各种要求。例如要求GBit的以太网,USB OTG, I2C总线支持等。是否需要电池?有电池则需考虑电源管理。主处理器及周边支持硬件必须满足这些要求。有时候我们非常关注了主芯片的价格,而遗漏了外围的成本。是否在主芯片选择上节约了1美元,有可能导致在外围电子元器件上多花费2美元,这个是需要明确主处理器内置了多少控制器?同时,由于芯片都是要焊接在PCB上,主芯片的管脚个数及封装也是选择的一个重要点,有可能会带来PCB层数的增加、焊接密集度增高、批量生产的稳定性降低。在明确了主芯片的性能、接口等技术细节后,还需要考虑对应的主处理器的行业定位,这涉及到产品的硬件可靠性和可行性。一般来说商业级的主处理器,使用在工业级、汽车级,或者航空级是非常不合理的。当然在认可价格体系的前提下,把航空级别的主芯片应用在商业级的产品中性能是有保证的。同时由于嵌入式处理器细分了处理器市场,所以智能手机、航天应用、工业控制、消费类电子、POS机等等这些行业,当我们项目设计的需求非常清晰的应用在这个行业,就优先选择对应的行业主芯片,这样的选择是可行的,由于每个行业的特殊性,细节还是有差别的。作者几年前参与一个移动POS项目,从技术纬度采用消费类产品方案叠加打印机从理论上是可行的,但随着项目的深入,发现需要在消费类主芯片上花费很大的技术工作完成对各种银行卡协议的支持,但对应在POS机行业的主芯片就是他们的强项。至此,主处理芯片的基本选择原则和范围就可以大致圈定了,选择考虑的重点为性能、操作系统支持、封装、接口、行业定位和可靠性。

二、处理芯片的市场特性

进一步的就要了解考虑中的芯片是否成熟?是否已经被业界或应用市场所认可?还需要了解业界采用该芯片的反应如何?满意程度高吗?尤其要关注不满意的方面是和芯片本身设计相关吗?芯片设计有硬件缺陷吗?对硬件缺陷是否已经提供软件补丁弥补?

作者几年前曾经参与的一个嵌入式系统项目设计选用的是一款当时刚发布不久的双核处理器。其性能,价格等都满足我们的评估。研发过程也相对比较顺利。到了研发后期进行产品强化测试时发现有的产品运行一段时间后会死机。而且没有明显规律可供查询故障起因。花了大量人力,精力和时间,最终同厂家共同确定了故障起因是芯片设计缺陷造成的。而且,该硬件缺陷并未出现在厂家的芯片缺陷报告中。这是一个选取最新产品而后引发不良后果的经验教训。虽然最终问题得以解决,但我们耗时耗力也不得不推后了产品推出的日期。所以选择新发布的产品有可能会承担一定的风险。

芯片的标准性,规范性如何?是否采用通用规范?比如ARM架构。芯片市场保障周期如何?如果芯片在比如说3年后将停止供货,怎么办?消费电子,个人移动通讯设备如智能手机等市场更新很快,供货保障周期算不上需要严重考虑的问题。可是其它行业比如医疗设备则有可能会有一个较长的从产品研发成功到测试,以及获得上市认证许可(譬如美国FDA)等待期间。研发需几个月至1-2年,加上测试和申请许可需几个月至1年,加起来会有2到3年的时间。这些就需要考虑在供货保障周期之内。

总之,对应市场特性,成本就是非常敏感的指标。对应主芯片厂商能否有完备的商业计划,主芯片厂商的企业能否健康发展?能否提供引脚兼容的系列化芯片供升级或者替换?选择考虑的重点为商业计划、供应体系、生命周期。

三、系统开发环境和技术支持

芯片生产厂家是否提供系统开发环境?该环境是否对用户友好?环境是否便于使用,是否宜于学习掌握?是否提供足够的功能帮助开发人员编程,调试,版本控制等。所需花费如何?是否需要交技术支持年费?

芯片生产厂家对芯片硬件和开发环境的技术支持力度如何?寻求技术求助是否得到快速回复,是否及时解答疑问,帮助解决问题等等。

作者曾经初步选择并测试过一家国际知名公司的一款新出品的功能比较强劲的嵌入式主处理器。在对该芯片进行基本应用测试的初期,寻求技术问题解答就未曾得到及时回复。公司提供的系统开发环境并不算对用户友好。需要研发人员自己花很多时间才能通过上网找到所要的答案。感觉很不好,也很花时间。最后不得不决定放弃该芯片而选用其他公司的产品。

在决定选用主处理器前,运用其开发环境对目标芯片作多方面的测试,了解和评估是很有必要的。尽早设定一些技术要点,向芯片供应商的技术支持确定答案会帮助自己了解该處理器的应用特性,同时也确认技术支持的力度。

四、项目开发周期及人员培训

选用嵌入式主处理器还应该考虑是否影响项目开发周期。研发人员学习和熟练掌握开发环境所需要花费的时间,技术培训要求是否复杂,供应商是否有比较成熟的样板程序供参考使用等等。这些因素对短期,乃至中长期项目的研发都会有影响。选择提供标准开发环境的嵌入式主处理器会帮助我们缩短项目开发周期和研发人员技术培训时间。比如选择可以提供基于Eclipse的开发环境就是目前业界比较标准的平台。以该嵌入式主处理器为基础的硬件设计是否可以搭建成参照类/标准类研发平台?如果可以的话,这将充分发挥其作用而使公司其他类似研发项目可以从中受益。所以嵌入式主处理器的选择应该尽可能地争取考虑可以搭建成标准型研发平台。

五、实用综合案例说明

举一个实用案例。要求设计一个分布式多通道镜头图像测量处理系统。该系统要求各测量单元和控制单元要在时间上精密同步。

IEEE1588 PTP是基于局部以太网的精密时间同步协议。基于所设计的系统对测控单元在时间上有精密同步的要求,选择支持IEEE1588 PTP的主处理器毫无疑问是必要的。支持以太网也是必不可少的。之外,嵌入式Linux系统配有丰富周边设备驱动支持,有实时处理能力,具备很强的灵活性。所以它是该项目OS的优选目标之一。(图1)

处理多通道镜头图像需要较强的芯片运算处理能力。数据传输量大就需要快速DMA 的配合。应该考虑选择双核或多核芯片。再结合了解和分析市场现有嵌入式处理器的供货情况,以ARM为核心的Xilinx ZYNQ双核处理器很好的集成了应用处理单元和可编程逻辑单元并支持众多外围设备总线。这些特性强有力的支持项目对多通道镜头图像采集通讯和数据处理的要求。它支持高速以太网并配有对IEEE1588 PTP协议的支持。(图2)

而且,Xilinx和PetaLinux相配合提供了比较完善的嵌入式Linux系统交叉编译环境。为应用软/固件的研发提供了良好的开发平台。

综合以上考虑,该系统可以考虑采用Xilinx ZYNQ芯片并由嵌入式Linux来完成系统应用。

六、结论

嵌入式系统主处理器是系统的核心部件。选择嵌入式系统主处理器需要综合考虑各种因素。其中重点要考虑项目的设计要求,处理芯片的成熟度、可靠性等关键市场特性,系统开发环境和技术支持,以及开发人员对处理芯片和系统开发环境的熟悉程度与学习周期等。

只有充分的考虑了这些因素并加以研究分析才能更好地确定项目所需的处理芯片。尽可能地减少研发后期可能出现的问题,以及有效的降低项目研发和生产成本。

猜你喜欢

嵌入式系统智能制造
办公自动化系统的设计
基于物联网项目驱动的嵌入式系统教学改革的研究与实践
嵌入式系统课程“中断、异常与事件”教学实践及启示
面向实践创新人才培养的嵌入式系统教学研究