基于CAN总线的TMS320F28335远程在线升级方法设计

2021-12-02 11:09:14倪庆生倪云龙潘晓阳袁盛俊
电子与封装 2021年11期
关键词:波特率底层上位

倪庆生,倪云龙,潘晓阳,袁盛俊

(中科芯集成电路有限公司,江苏无锡214072)

1 引言

TMS320F28335是TI(Texas Instruments)公司一款性能优越的C2000系列数字信号处理芯片,可实现快速数字信号处理,并通过本身多种外设接口实现外设的快速控制。随着嵌入式系统集成化程度越来越高,TMS320F28335一旦形成产品应用于现场,将使仿真器升级程序变得费时费力。

目前通过串口升级的方法比较成熟,但只能实现一对一升级,无法进行组网。现场设备越多则需要的线缆越多,将导致布线越困难[1]。而已有通过CAN(Controller Area Network)升级的方法介绍也是多用于一对一升级,没有进行CAN组网验证[2-3]。在实际现场往往存在多个设备通过CAN总线进行组网的现象,所以需要同时考虑CAN网络[4]实际的通信情况对在线升级的影响。因此,基于CAN总线的多主通信方式以及非破坏性仲裁机制[5],本文设计了基于CAN总线的TMS320F28335远程在线升级方法。

2 远程在线升级基本原理

2.1 上位机程序设计

上位机程序的功能主要包括:

配置远程在线升级使用的CAN盒,使波特率、帧类型与下位机程序设置相对应,并增加滤波设置,在硬件上过滤掉CAN网络中的非升级数据。

对CCS(Code Composer Studio)编译应用程序生成的.hex文件信息进行提取,主要获取应用程序的升级地址和需要升级的数据。由于TMS320F28335片内RAM资源有限,因此将需要升级的应用程序进行分组,每组包括16 Byte的信息和240 Byte的数据,然后通过CAN总线传输[6]。每组数据传输完成后,需要等待底层程序响应并给予应答,上位机程序确认无误后再进行下一组数据的传输。

另外上位机程序还集成了修改目标板的设备ID(Identifier)号功能,用于区分CAN网络中各节点、修改CAN波特率和CAN帧类型功能以适用不同的CAN网络环境。上位机程序的软件流程如图1所示。

图1 上位机软件流程

上位机界面如图2所示。

图2 上位机界面

2.2 下位机程序设计

下位机程序主要包括应用程序和底层程序。

应用程序是需远程在线升级的程序,最终通过CCS编译生成目标.hex文件;可与上位机程序进行必要的通讯,循环查询是否收到上位机升级指令,若收到则复位跳转至底层程序,无需目标板重新上电。其余功能根据用户需求而定。

底层程序的主要功能包括对TMS320F28335进行必要的初始化。通过查看片内Flash是否有应用程序和规定时间内是否收到上位机升级指令来决定是否能升级标记,然后再根据升级标记来决定底层程序是否跳转到应用程序。若升级程序则调用擦除函数擦除片内Flash,然后接收上位机发送的应用程序,每组数据接收完成后做校验并判断数据的正确性,并根据升级地址将数据烧写到指定片内Flash区域,最后给予上位机应答。待应用程序升级成功后,升级标记不再使能,并可自动跳转至应用程序[7-8]。若不升级程序则直接跳转至应用程序。下位机程序的整体软件流程如图3所示。

图3 下位机程序整体软件流程

试验中发现,在底层程序擦除TMS320F28335片内Flash时,掉电可导致底层程序概率性失效。查看TI官方文档[9],文中多次提到在擦除函数擦除Flash的过程中,不可将其打断。一旦底层程序失效,将无法再进行在线升级。为避免该问题,故将底层程序烧写到SPI(Serial Peripheral Interface)[10]接口外挂的EEPROM内,并 配 置 硬 件 相 关GPIO(General-Purpose Input/Output)引脚将其做成SPI BOOT模式。应用程序对该片EEPROM没有写权限,防止应用程序意外修改EEPROM内存储的底层程序。

3 试验结果

根据原理搭建了试验环境,选择CAN网络直线型拓扑结构(见图4)。

图4 试验环境示意图

CAN盒:型号为周立功的USBCAN-II,负责记录CAN网络中的通信数据,并通过上位机显示网络负载率。试验中发现其记录负载率平均值的最大值在90%~91%之间。不同CAN盒上位机负载率计算可能存在差异。本文以该CAN盒负载率计算值为基准。

干扰节点:通过控制干扰节点个数,以及干扰节点数据发送频率,可控制网络的负载率。

本文测试环境中的CAN总线长分别约为70 m和40 m。由于总线长对波特率的限制,故本文只在波特率为500 kb/s、250 kb/s环境下进行测试。CAN标准数据帧为44~108 bit,最高可以插入23个填充位[11]。因此本文设置干扰节点发送的每帧数据帧约为121 bit,加上数据帧之间的帧间隔最少为3 bit。因此在波特率为250 kb/s时,其网络每秒理论上最多可传输约2065 frame。同理波特率为500 kb/s时,其网络每秒理论上最多可传输约4129 frame。波特率为250 kb/s、CAN网络满载时情况如图5所示。

图5 CAN网络满载图

分别控制节点数、总线长、网络负载率和目标节点优先级4个影响因素,波特率为250 kb/s和500 kb/s时的试验数据分别如表1和2所示。

表1 波特率250 kb/s试验数据

当目标节点优先级最低时,干扰节点每秒发送的理论帧数大于该波特率下每秒所能发送的最大帧数时,在线升级失败,原因在于优先级低的节点会无法抢占总线发送数据。而此时减少干扰节点数,在线升级会概率性成功,原因在于干扰节点越少,网络出现空闲的几率越大,因此会提高在线升级概率。

当目标节点优先级最高时,即使网络满载甚至超载,在线升级依然成功。

4 结论

根据现场复杂的应用环境,同时针对CAN网络的实际通讯情况,本文的设计方法实现了CAN网络中任意节点的在线升级,在目标节点优先级最低时,测得在线升级的极限条件。而当CAN网络满载时,可通过修改目标节点优先级后完成在线升级。本文分别在波特率为250 kb/s、500 kb/s的情况下进行验证,并通过大量试验验证了该方法的稳定与可靠性,可有效减少现场工作人员的工作量。该方法同样对其他嵌入式处理器芯片实现在线升级有借鉴意义。经实测在总线长为70 m、CAN网络空载时,波特率为250 kb/s,升级99 kB的.hex程序用时70 s左右。

表2 波特率500 kb/s试验数据

猜你喜欢
波特率底层上位
航天企业提升采购能力的底层逻辑
CAN 总线波特率自适应程序设计
智能制造(2020年5期)2020-07-03 06:24:00
特斯拉 风云之老阿姨上位
车迷(2018年12期)2018-07-26 00:42:22
基于FPGA的异步串行通信波特率容错设计
电子测试(2018年7期)2018-05-16 06:27:18
“三扶”齐上位 决战必打赢
基于ZigBee和VC上位机的教室智能监测管理系统
以新思路促推现代农业上位
学习月刊(2015年3期)2015-07-09 03:51:04
回到现实底层与悲悯情怀
小说林(2014年5期)2014-02-28 19:51:47
略论“底层”
杂文选刊(2013年7期)2013-02-11 10:41:11
C*Core芯片SCI串口波特率容限优化