CAN总线数据无损代码更新:汽车电子固件升级新方案

0 下载量 31 浏览量 更新于2024-09-01 收藏 375KB PDF 举报
"基于CAN的数据无损代码更新方法设计与应用" 在车载设备的固件升级过程中,尤其是在复杂工作环境中,确保稳定性和可靠性至关重要。本文针对这一需求,提出了一个创新的解决方案,即一种基于CAN(Controller Area Network)总线的数据无损代码更新方法,主要应用于汽车无刷直流电机控制器。该方法利用深入研究的bootloader机制,以提高固件更新的健壮性。 首先,上位机负责解析用户应用程序,并将其以链表队列的形式存储。随后,上位机按照数据无损的BLC(Backup and Load Control)通信协议,通过CAN总线将应用程序数据发送给控制器。控制器内嵌入了数据无损的代码备份功能,同时结合Flash加密机制,确保在更新过程中原始代码的安全,并在出现错误时能够回退到之前的稳定版本。 实验结果显示,这种方法拥有出色的容错能力,能够在20 Hz以下的频率下实现数据无损的代码更新,大大提升了系统的稳定性和实时性。此外,该方法不仅适用于无刷直流电机控制器,还为其他面临类似挑战的车载设备或复杂环境中的产品提供了一个有效的固件升级策略。 系统硬件层面,CAN节点由KEA128微控制器和高速CAN收发器MC33901构成,两者通过CAN通道相连,形成通信的核心。KEA128的CAN模块使用24 MHz的总线时钟,波特率为1000 Kb/s,并设置了32位接收过滤器,确保数据的精确传输。在CAN总线的两端,通常需要120 Ω的终端电阻,但因USB-CAN卡已经内置,所以这里不再额外添加。 软件方面,整个系统由控制器内的Bootloader、用户应用程序以及PC机上的上位机软件组成。Bootloader负责接收和处理通过CAN总线传输的更新数据,而上位机软件则通过USB-CAN卡与控制器交互,完成数据的发送和接收。 通过这样的设计,文章展示了一种高效且安全的固件更新流程,它能够有效解决传统升级过程中可能出现的数据丢失、实时性差等问题,为车载电子设备的固件管理提供了一个新的解决方案。