基于MC9S12XEP100的BootLoader设计与实现
2018-10-21王志强
王志强
摘 要:程序的引导加载功能已是汽车电控单元中必不可少的部分,基于飞思卡尔16位处理器MC9S12XEP100,采用CAN总线技术,设计了一种BootLoader。介绍了BootLoader的实现方法,包括底层驱动构成、引导机制设计、诊断模块设计、存储模块设计以及FLASH安全机制设计等。实验结果表明,BootLoader能够正确引导程序运行,方便准确的进行控制器软件升级。
关键词:CAN总线;Flash模块;BootLoader;电控单元;安全机制
中图分类号:U462.2 文献标识码:B 文章编号:1671-7988(2018)17-190-04
Abstract: Bootloader function is one of the essential function of embedded system. A BootLoader is designed based on the 16-bit Freescale MCU MC9S12XEP100 and CAN bus. And the application of Bootloader is introduced, which includes driver module design, diagnostic module design, BOOT method design, memory module design, and Flash protected design. Experimental results show that Bootloader could boot the application accurately, downloads and upgrades correctly.
Keywords: CAN bus; BootLoader; FLASH Module; ECU; Safety
CLC NO.: U462.2 Document Code: B Article ID: 1671-7988(2018)17-190-04
1 引言
汽车电子电控单元ECU的开发周期较长,并且汽车电子产品开发对安全性、可靠性的指标要求很高。为了方便软件更新,同时避免对电控单元硬件产品造成破坏,汽车行业按照各种标准采用专门的诊断测试设備,通过标准的通信接口对电控单元控制程序或者数据进行更新。Bootloader是为了完成上述功能,固化在电控单元内部Flash 特定位置的程序,通过特定的通信协议接收上位机客户端发送的程序数据,并且把程序数据烧写到电控单元中Flash 特定地址区域,以完成应用程序及数据的更新[1]。Bootloader刷写方式的结构布局图如图1所示。
本文所设计Bootloader基于CAN总线,采用飞思卡尔16位处理器MC9S12XEP100作为控制核心。MC9S12XEP100具备5路CAN总线通道,片内非易失存储器Flash达到1MB,支持在线编程,能够满足应用程序通过CAN总线下载、更新的要求,是应用广泛的汽车级处理器[2]。
2 BootLoader软件构成
BootLoader是独立于电控单元主程序的功能模块。BootLoader程序可以通过CAN总线通讯,使用上位机软件更新主程序,而不需要使用BDM接口重新加载程序,便于现场产品升级和维护[3]。……
