基于16位控制器的汽车车身电子控制系统解决方案
为了方便调试,可以在设备正常工作时将一个主机系统连接到目标MCU系统,从而在不干扰设备运行的条件下实现对闪存或寄存器内容的监测。所连接的调试系统也能取代 MCU的控制来读写 CPU寄存器、设置硬件断点或跟踪单条指令。
传统的电路嵌入式仿真器与目标系统之间通常需要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总线或串行接口总线来完成所有的现场再编程操作。在主应用程序中包含合适的启动装载程序能方便地做到这一点。为了对来自于成品汽车中某根总线的某些特殊代码作出响应,启动装载程序应能擦除闪存并接受新的编程数据。 本文引用地址:https://www.eepw.com.cn/article/162546.htm
评论