MCU应用系统从16位升级为32位时的设计考虑
当我们打算把一个16位的微控制器(MCU)升级到32位的时候,通常要考虑多方面的设计问题。本文以汽车引擎控制单元(ECU)为例,概要介绍了对这些问题的处理方法。
在过去的二十年当中,随着交通工具复杂性的日益增加,工程师已将ECU从8位MCU升级为16位以上的器件。目前,这样一个高度集成的32位 RISC MCU就是瑞萨公司的SH7058,它是一种具有1MB片上闪存和48KB RAM组成的80MHz的MCU。由于存在多种系统需求,如控制扩展级输入/输出(I/O)、借助于安全性高的通讯链接(如CAN和Flexray)与其它的车载系统进行通讯以及具有浮点精度的处理算法,当今的ECU采用高速32位MCU就是必不可少的配置。
除了带来新的性能优势之外,最新的32位MCU减少了电路板设计的复杂性,节省了整体PCB空间,降低了系统的功耗要求,并且减少了电噪音和抵抗电磁干扰(EMI)的能力。通常,每一个ECU的制造成本约70到100美元不等,以这一成本计算,一个MCU就占到了总成本的15%-20%。
采用32位MCU 的系统通常非常复杂,并且一般需要花2到4年的时间才能完成一个ECU项目,设计团队通常由1-2个硬件工程师和4-5个软件工程师组成。为取得理想进度,所有的里程碑及需要的资源必须加以正确识别。此外,从概念定义到生产的设计流程必须与开始相一致。
项目计划应确定设计环境,尤其是开发工具,并且要考虑测试和调试规划。图1以图解形式说明了一个假想的ECU系统图。
系统划分
在项目开发早期阶段,主要目标是确定用硬件实现什么功能,而用软件要实现什么功能。这一决定将受工程预算、元件成本、PCB空间和任务期限这些因素的影响,因而需要权衡决定。在ECU设计当中,需要运用大量的算法建模和系统仿真以解决设计划分的优化问题。目前,有一些供应商提供解决设计划分问题的方案。
软件问题
开发32位系统的时候,软件工程师必须考虑采用什么办法去许多问题。在ECU应用中,如果从以前的设计中所得的经验证的代码能够被重新使用,就会节省时间,工作量也会减少。大部分的嵌入式设计要用用到C语言,因而代码可重用的比例很高。
但是,移接原有的代码需要改变外围驱动器和代码区段,该区段显示了与MCU设计之间具有特定关系的项目。我们推荐使用像IAR's MakeApp这样能节省数小时设计时间的器件驱动程序代码生成工具。
与代码开发工作项目相关的其它重要的问题也不可被忽视:
* 实时操作系统选择:已有很多论文和文章就如何选取择实时操作系统给出了建议。对于ECU设计,OSEK已经逐渐演变为行业标准RTOS,可从许多的供应商那里买到这种具有确定性、鲁棒性、高效率和稳定的解决方案。
* 调试模式:软件工程师应当在项目进入集成阶段的时候,确信自身具备足够的查错及排障的能力,尽管代码模拟器相当可靠,但集成问题还是存在的。这时候要怎么办?答案各有不同。以ECU设计为例,一个全速传统的在线仿真器(ICE)的价格昂贵(12,000美元),它不仅在引擎隔仓中应用在线仿真的难度很大,而且不能用于解决棘手的时序问题。
相比之下,片上调试(JTAG型) 仿真器是经济的($1,000) ,并且较易于连接到系统上。举个例子,RENESAS' E10A,是一种JTAG-兼容硬件调试器,该种调试器可使工程师询问并控制寄存器集以及某个超高整处理器的RAM存储器。此外,要提高ECU代码的精度,软件工程师要能利用某种AUD(高级用户调试) 的特性,该AUD会形成超高速CPU管线的特别的线迹。RENESAS SH7058 MCU系列中,MCU上的AUD界面是双向作用的,并且无须暂停CPU,也可使RAM进行存储。
硬件问题
32位系统的开发过程中会遇到很多硬件问题,以下几点值得特别注意:
* 电源供应滤波:绝大部分32位MCU比16位MCU的运行速度要快很多,此外,32位MCU的CPU内核要求独立的低压供电系统,因此其噪声容限要比 I/O电路严格得多。因此,在PUB周围,尤其MCU的附近要安放足够的低频和高频的去耦电容,实践表明去耦电容能够有效地降低噪声。
* 片上闪存:在过去,用于ECU 系统中的许多MCU 不具备足够的内存作为一个单芯片控制器进行运行,并且部分MCU 就根本没有程序内存,结果是程序内存被设置在芯片之外,由于需要大量高速寻址和数据总线,因而常常会导致EMI问题的出现。
目前,像SH7058这样的32位ECU具有1 MB闪存,具有真正意义的单片解决方案特征。在大多数情况下,由于具有大量的片上程序内存,所以不再需要片外内存。在采用SH7058的ECU设计中,片上闪存可通过两种方式进行固化,一种是在主板制造前,对器件进行固化,另一种是主板的设计完成后在系统内进行固化,这样,软件工程师在升级代码时就有了很大的灵活性,工程师甚至能在ECU被安装在车辆内部以后,也能借助车载总线(CAN)进行升级操作。
本文小结
从16位到32位MCU的跨跃是一个质的飞跃,这种趋势是不可避免的。32位实现方案极大地提升系统的运算能力及操作性能,进行成功转换的关键是要有充分的准备、训练和周密的开发工具选择策略,此外,像瑞萨这样的32位MCU供应商的持续支持也是至关重要的。