基于16位MCU的汽车车身电子控制系统解决方案
传统的电路嵌入式仿真器与目标系统之间通常需要30到40个连接,而上述后台调试接口只需要2到4个连接。单根BKGD通信信号和公共地是必须的。增加复位信号能使主机更容易地强迫和控制系统复位,在某些情况下增加VDD能允许调试夹具从目标系统中"窃取"电源。这种简单的接口为汽车电子设计师提供了对安装在运动汽车电子控制模块中的MCU的调试访问能力。当汽车在正常路况下行进时许多问题只能经过调试才能发现。 内存编程 与闪存编程相关的最重要因素是速度与方便性。编程速度取决于闪存单元的编程时间以及从编程器到目标MCU的数据传输速度,当然还有一些其它因素,如编程前擦除阵列的时间,用于验证编程操作成功与否的时间。MC9S12DP256编程任意16位字的时间是45ms,但一个突发编程操作允许对同一排32字闪存中的任意附加字以20ms的速度编程。理论上采用单线后台调试接口可以在27ms内传送一个字的信息,这要比闪存的实际编程时间稍微慢一些。实际编程还需要额外的任务开销,如验证开销。独立编程器工具SCBDMPGMR12能在稍少于10s的时间内完成256KB闪存的擦除、编程和验证操作。 验证是产生开销的重要因素之一。重传所有的数据以实现字对字的验证将使编程时间加倍。一个快速的办法是在数据编程进闪存时进行CRC计算,然后在整个闪存编程完成后重读闪存内容来验证CRC值。这一操作完全能以总线速度进行,而且无需重传数据。 将数据到目标的传送分离出来,使它在数据编程进闪存前完成也会使编程时间加倍。较好的方法是数据传送与编程操作并行展开。一般来说,要先把编程算法发送到目标MCU,从而便于管理收到的数据并把数据送入RAM缓冲器,然后控制擦除与编程操作。该编程算法利用二个数据缓冲器来接收将被编程进闪存的数据。当第一个缓冲器装满数据后,编程算法就开始把这些数据编程进闪存,同时新的数据被装载到第二个缓冲器。后台接口可以用来接收数据并把它们写入RAM,这一操作不会干扰目标CPU的工作,因为CPU是从另外一个缓冲器读取数据并编程进闪存的。 MC9S12DP256中的闪存被分成4个独立的64KB块,因此可以独立地对这4个块执行擦除与编程操作。在基于后台调试的闪存编程情况下,由于数据传送速度要稍慢于闪存的平均字编程速度,因此试图交织进行独立阵列的编程操作是不切实际的,不过对所有4个块并行执行批量擦除操作则是可行的。 后台访问给首次闪存编程提供了极其便利的途径,但一些用户仍希望采用其它系统总线如CAN总线、J1850总线或串行接口总线来完成所有的现场再编程操作。在主应用程序中包含合适的启动装载(bootloader)程序能方便地做到这一点。为了对来自于成品汽车中某根总线的某些特殊代码作出响应,启动装载程序应能擦除闪存并接受新的编程数据。 作者: Jim William 8/16位MCU事业部的应用经理 Jim Sibigtroth 8/16位产品事业部设计工程师 摩托罗拉半导体产品部
- 基于LIN总线的车灯在线诊断系统设计与实现(06-19)
- 飞思卡尔微控制器MC9S08SC4的汽车方向盘按键控制器技术应用(11-16)
- 基于CAN总线的城市客车信息集成控制系统(04-11)
- 汽车门锁模块的系统结构(05-16)
- 使用协处理方式解决车身电子开发问题(06-20)
- 实现车身控制应用的低成本设计(06-18)