MCU应用系统从16位升级为32位时的设计考虑
发布时间:2008/5/27 0:00:00 访问次数:613
    
    
    当我们打算把一个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设计当中,需要运用大量的算法建模和系统仿真以解决设计划分的优化问题。目前,有一些供应商提供解决设计划分问题的方案。
    
    
    
    图1:采用了32位mcu-sh7058的引擎管理系统。
    
    软件问题
    
    开发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进行存储。
    
    硬件问题
    
   &nbs
    
    
    当我们打算把一个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设计当中,需要运用大量的算法建模和系统仿真以解决设计划分的优化问题。目前,有一些供应商提供解决设计划分问题的方案。
    
    
    
    图1:采用了32位mcu-sh7058的引擎管理系统。
    
    软件问题
    
    开发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进行存储。
    
    硬件问题
    
   &nbs