基于CAN的远程下载技术开发及应用
上图给出了dsPIC33 单片机器件的程序存储器的物理地址映射,由图可知用户应用代码应放置在用户应用程序地址段,而Bootloader 代码放在自举程序地址段。不论目标端自举程序(Bootloader)需多少存储空间,自举程序(Bootloader)和用户应用程序的存储位置都必须严格遵守目标端存储器构架。在具体设计中,须注意:
(1)慎用中断:Bootloader 自举程序不建议使用中断方式。目标端器件在写Flash 程序存储器时,有一个擦除程序存储器的操作,可能会擦除掉位于程序存储器上的中断向量表和备用中断向量表地址处的值,造成系统的死机。另外,一个功能强大的程序,一般都是用中断方式实现用户应用程序以提高实时性,这会生成一个中断向量表,存储在目标端器件程指定中断向量表和备用中断向量表地址处。如果在 Bootloader 自举程序也用中断方式,会使得一个目标端器件产生两个不一样的中断向量表和备用中断向量表区,造成系统的死机。
(2)存储位置:Bootloader 程序和用户应用程序不应处于同一页。自举程序(Bootloader)要先执行擦除程序存储器,才能将接收的新代码存入其中。如果处于同一页,在远程下载时,很可能擦除Bootloader 程序本身。
(3)自举延时:必须为目标端自举程序的执行指定一个延时值,这个延时值作为检测总线数据流活动的时限。
(4)链接文件配置:单片机默认的自举程序地址段是0X400 到0XC00。如果实际的自举程序代码量超过上述空间,需要修改链接文件,重新配置,以适合工程需要。
4 主机端设计方案
主机端的设计主要包含主机端通讯程序的实现,并为用户提供一个管理远程下载、软件复位、异常处理等功能的监控界面。主机端程序,采用了多线程的通信存储技术,一共包含线程:主线程、接收线程、远程下载线程,使得程序执行效率较高。
上位机软件界面图

图5 上位机软件界面图
软件界面如上图 5 所示,在这里实现的主要功能有:
(1)参数设置功能,包括CAN 的连接、断开、复位、启动、接收过滤码和接收屏蔽码等CAN 自身参数的设置。
(2)文件导入功能,载入存储在任意目录下目标端用户应用程序的HEX 文件。
(3)远程下载功能,这一功能由“更新按钮”触发产生,启动主机端程序和目标端的通信,实现远程下载。
(4)状态显示功能,由两个列表框,用于显示导入的HEX 文件的数据,和实时显示当前的通讯状态。
(5)软件复位功能,这一功能由“自举复位”触发产生,发送一个复位命令和异常处理命令,目标端根据命令进行相应操作。
5 结束语
本文结合VRV 空调控制系统开发的实际应用需求,以dsPIC33 单片机为硬件基础,开发了基于CAN 的远程下载系统。系统同时支持单点、多点、广播等下载方式,具有数据加密、软件复位、异常处理等以往所开发的远程下载技术所不具备的功能。
本文主机端程序的设计采用了多线程的通信存储技术,保证了程序的高效性和扩展性,并且可实时监测系统的状态,界面风格简洁明了,符合工程人员操作习惯。目标端严格按照dsPIC33F 单片机的体系构架,进行代码开发和链接文件的修改及配置,程序简洁易读、安全可靠。本系统2009 年初进行实验平台的联机调试,性能良好。
本文作者创新点:结合VRV 空调控制系统具有多传感器、温度数据具有时滞特性,利用VRV 空调系统的通讯信息网络,开发远程下载技术,节省成本提高效能;实现了软件复位和故障处理以及加解密等实际工况的需要,使得更为符合实际现场的需要。本文引用地址:https://www.eepw.com.cn/article/173118.htm
评论