[发明专利]一种基于CAN总线的智能型BootLoader无效
申请号: | 201110152161.9 | 申请日: | 2011-06-08 |
公开(公告)号: | CN102253849A | 公开(公告)日: | 2011-11-23 |
发明(设计)人: | 甘德洪;李渔;万礼华;张仁智 | 申请(专利权)人: | 重庆金美通信有限责任公司 |
主分类号: | G06F9/445 | 分类号: | G06F9/445 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 400030 *** | 国省代码: | 重庆;85 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 can 总线 智能型 bootloader | ||
技术领域
本发明涉及一种在汽车电子中电控单元应用程序更新启动用的BootLoader,尤其涉及一种基于CAN总线的智能型BootLoader。
背景技术
传统的汽车电控单元中用于更新,启动应用程序的BootLoader几乎都是基于串口方式。串口通信简单,抗干扰能力差,通信距离短等缺点,在恶劣汽车电磁环境中,通信很不可靠,实用效果较低。
传统的汽车电控单元BootLoader,一般由以下两种模式开发的,第一种:应用程序自身带BootLoader功能,即BootLoader代码和应用程序是一个软件工程,一起编译成电控单元镜像文件,烧入FLASH中,上电运行后,一旦检测到程序更新命令,BootLoader代码便把自身拷贝到内存中运行,和上位机按照特定的文件传输协议,进行程序更新,此种模式的优点是程序更新较为自由,只要电控单元在运行,随时都可以程序更新,而不受时间限制,在量产电控单元时,只需通过仿真器一次性烧入镜像文件,电控单元FLASH中代码便具有BootLoader代码和应用程序代码,极大提高了生产效率,缺点是在以后的程序更新途中,一旦断电(蓄电池电压突然过低,或不小心钥匙打到OFF档),就会造成FLASH中的数据不完整,破坏BootLoader代码,且再次上电后不能再更新程序,此种情况下只能开盖(电控单元在车上开盖将是一件很麻烦的事情),通过仿真器再烧入镜像文件;第二种:BootLoader软件和电控单元应用程序分别属于两个不同的软件工程,在生产时,先通过仿真器把BootLoader镜像文件烧入FLASH中,再通过BootLoader方式把镜像文件烧入FLASH中,量产时一个产品需两次烧入镜像文件,此种方式优点是BootLoader和应用程序是独立的,不存在当更新程序时偶然断电,破坏BootLoader的问题,此种模式缺点是在量产电控单元时,每次都需烧入两次镜像文件,生产效率较低,且当BootLoader自身有Bug,需要更新BootLoader时,则只能开盖通过仿真器把BootLoader镜像文件烧入FLASH中。
发明内容
本发明提出了一种新型基于CAN总线的新型BootLoader,该BootLoader采用差分信号进行通信;除基本的初始化代码外,其余代码都是PIC型代码,在BootLoader工作时,既可以更新电控单元应用程序,也可以更新BootLoader自身;BootLoader和应用程序代码是一个软件工程,一起编译成电控单元镜像文件,实现更新电控程序无需开盖和只需一次性烧入。
当电控单元上电以后,CAN BootLoader初始化CPU锁相环时钟频率、CAN以及Flash,然后检查App Flash空间有无应用程序,若有应用程序,则启动App应用程序;若没有应用程序,则重新映射BootLoader代码,进入BootLoader模式,并根据接收到上位机的命令类型更新BootLoader程序或者更新App应用程序。
本发明有益的技术效果是:该BootLoader基于CAN总线,抗干扰能力强;在电控单元FLASH中只要有本BootLoader,在任何情况下程序更新都不用开盖,方便,易用;BootLoader和应用程序编译成一个镜像文件,在生产的过程中只需一次性烧入,极大的提高了生产的效率。
附图说明:
图1:上下位机通信协议
图2:CAN BootLoader软件流程图。
具体实施方式:
本发明中基于CAN总线的新型BootLoader,由于采用差分信号进行通信,抗干扰能力强,最大通信速率1Mbps(通信距离达40米),最大通信距离10公里(通信速率5kbps),极大的方便了汽车电控单元中程序更新问题。
本发明集两种传统模式的BootLoader的优点于一体,上下位机通信协议如图1所示,SOH为包头,一个字节,为0x01时为正常的文件内容,为0x04时为文件结束标志,包序号一字节,为0---255,包序号反码一字节,为包序号数据取反,便于下位机校验确认,接下来是131字节的文件内容,最后是CRC16校验码,用于下位机对传输的文件内容进行CRC校验。
本发明在开发CAN BootLoader时,除基本的初始化代码外,其余代码都是PIC(位置无关)型代码,上电后重映射到RAM中即其运行域在RAM中,这样当BootLoader工作时,即可以更新电控单元应用程序,也可以更新BootLoader自身。在更新电控单元应用程序时,BootLoader会做相应的标志,只有当更新完毕,BootLoader才会做更新完毕的标志。这样,当在更新电控单元应用程序时,电源即使突然断掉,在重新上电时,BootLoader记录下了上次更新未完毕标志,就会停留等待上位机发送更新程序命令,实现在任何情况下程序更新都不用开盖。本发明中BootLoader和应用程序一起编译成电控单元镜像文件,烧入FLASH中,这样在生产的过程中,只需一次性烧入镜像文件,提高了生产的效率。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于重庆金美通信有限责任公司,未经重庆金美通信有限责任公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201110152161.9/2.html,转载请声明来源钻瓜专利网。
- 上一篇:隔爆型三相异步外转子电动机
- 下一篇:黑白激光打印机墨粉