轨道制动控制单元 EBCU 调试程序远程升级应用

(整期优先)网络出版时间:2024-04-16
/ 2

轨道制动控制单元 EBCU 调试程序远程升级应用

田志民

华伍轨道交通装备  上海市   201102

摘要:

该文介绍了一种轨道制动控制单元EBCU调试程序远程升级应用的方法。该方法采用无 线通信技术,方便程序升级,减少了升级时间。系统采用嵌入式系统,对运行的可靠性、实时性要求高。本方案能够升级多块程序,主要满足车辆测试中程序升级的需求。本系统采用EC800M无线通信模块,CPU通过AT命令完4G网络的连接到远程服务器上去。通FTP协议完成升级BIN格式程序。

关键词: EBCU;调试;无线程序升级;嵌入式系统; 通信芯片

当前的EBCU控制系统采用了嵌入式系统,该系统对运行的可靠性和实时性有很高的要 求。因此,系统需要具备远程无线升级调试程序的功能。

轨道车辆制动系统的研发过程通常包括以下阶段:用户需求提出、系统技术响应确认、硬件控制系统实现性分析、软件系统的开发、硬件软件设计、软件硬件调试、试验台测试、车辆行驶测试、产品定型量产。本程序升级方案主要满足车辆行驶测试中的程序升级需求。由于研发地区和测试地区可能不一致,需要进行长途出差,调试中问题的复现也需要较大成本。因此,如何及时修改现场发现的程序问题并远程升级测试程序成为了迫切的需求。

本次设计的系统采用了移远公司的EC800M模块作为通信芯片,原理图如图1所示。该模块具有GPS4G 通信功能,负责升级控制功能的硬件实现是由独立通信板卡完成的。通信板卡与EBCU控制 系统的车辆控制逻辑独立,无线板只承担监看功能,不参与车辆控制逻辑的控制。通信板上配备了姿态传感器,能够感知车辆的运行状态。此外,通信板能够监控EBCU发出的硬件指 令,并能够通过CAN通信线获取当前EBCU的运行状态。

1无线通信模块连接图

EBCUMC主控板主要负责应答车辆硬线指令和监控EBCU的运行情况,而EP扩展口 板则主要完成各种压力传感器、速度传感器的数据采集和油压电机控制。COM通信板则主要负责有线通信。这三块板都由程序控制。因此,程序升级涉及到了四块板的程序升级:无线WL板、MC主控板、EP板、COM板。

无线WL板的CPU与无线通信模块EC800M通过串口完成通信。CPU通过AT命令完成4G  网络IP地址设置,连接到远程服务器。然后,利用UDP议实现程序升级小数据量的控制命令数据传输通过FTP协议完成BIN格式大数据量程序内容传输升级。

各板之间数据链接,是通过CAN通信口完成。,无线WL也是通过CAN对其他板的上CPU升级。程序升级CAN 命令定义是利用CAN命令的扩展ID作为控制指令。

系统多板都是采用CPUSTM32芯片,设置的APP应用程序地址是0X08040000,系统上电进入地 址是0X0800000,作为BOOT入口地址。系统分配给BOOTBSP程序段地址空间是0X40000 256K地址空间。采用系统CPU芯片的程序空间总共1M,系统APP可用的空间是750K。根 据实际的应用情况,APP程序可用360K字节空间。

无线板启动流程如下:首先进行电路板的初始化,使用函数WL_Board_init对电 路板的外围器件进行基本初始化判断。接着,进入板级支持包的初始化功能,然后检查是否需要进行升级的程序。如果检查到跳转标记Check_Jump_App_Mark,设定无需程序升级,就会直接跳转到应用APP程序段。

如果没有检查到跳转标记Check_Jump_App_Mark并设定需要程序升级,程序将初始化串口,并调用COM_Debug_115200函数设置调试信息数据到串口。接着程序设置连接无线通信4G模块的串口参数。数据传输速度约为每秒1K字节,传输360K需要360传输时间。

程序接下来进入CAN2_init函数,因为CPU具有两个CAN通信接口,所以需要启动CAN2, 因为STM32芯片内部结构需要也将CAN1启动。CAN2设置的通信速率为500Kbps

后面SPI   接 口FLASH   。程序 W25Q128_Flash_init函数来完成初始化。W25Q128芯片具有128Mbit的空间。在程序升级过程中远程服务器先将BIN程序下载到外部 FLASH再有CPU自己本地更新内部FLASH。这样即使网络通信不成功,也可以重传,提高了系统升级可靠性。

程序接下来进入4G 通信模块的初始化阶段。CPU通过AT命令设置通信模块进入UDP式, 执行函数Set_4G_Init_UDP_mode

CPU通过UDP得到服务器告知要对那一块电路板进行程序升级,文件名称,文件大小信息。接着进行FTP链接,获取 FTP 服务器的存放要升级电路板上的CPU 的BIN格式程 序 文 件 。 程 序 首 先 下 载 到 外 部 FLASH   W25Q128    中 , 然 后 调 用 WL_Boot_EP_F1_F6_Service_init 函数,初始化内部 CAN2

网络, 连接的对应板卡。通信协议利用CANID定义了F1F6命令0xF1发送文件长度,0xF2发送 文件,0xF3发送文件(最后一帧),0xF4发送文件效验0xF5跳转app程序段,0xF6跳转到BOOT程序段。通信板要程序升级,利用上述命令采用CAN问答方式数据传输。要程序升级的板获取的数据是通信板外部FLASH数据。要程序升级的板对通过CAN接收的数据,通过CAN2_DATA_RX函数交互验证,正确后写入的芯片内部FLASH程序段。芯片对应的写内部FLASH函数采用的是 FLASH_StatusFLASH_ProgramByte(uint32_tAddress,uint8_t Data)函数。完成F1F2F3F4数据读写验证后,APP应用程序被成功写入到对应CPU中,然更新程序后的CPU可以通过F5功能函数,程序跳转到APP程序执行。无线通信板程序执行流程图如图2所示。

2程序升级流程图

无线通信板CPU程序自身程序升级,就省去了CAN多板通信。在将无线板的程序从服务器现在到本地外部FLASH后,校验正确,直接将程序刷新到无线通信板CPU芯片内部FLASH程序更新后重启程序。

总结:

本方案实现了无线升级程序。无线模块使用移远4G模块,通过串口FTP通信协议,成功完成了对远程EBCUCPU程序升级。此方案可以减少现场调试的时间,降低调试维护成本。