嵌入式控制器分布式控制系统固件更新方式探讨

本文探讨嵌入式控制单元的固件更新,重点关注二级设备在以太网、CAN、UART通信链路上的更新流程。采用ST IAP协议,通过Python脚本控制一级和二级设备,实现透传模式切换、固件更新和启动选项修改。通过chardev和iapdev抽象接口简化操作,包括iapdev的jumpToAddr、getBootloaderVersion等方法。同时,定义了bootoption域的约定,确保更新的正确性。
摘要由CSDN通过智能技术生成

机器人、AGV等自动化设备,车身有大量嵌入式控制单元,开发及应用过程中有固件更新需求。需要探讨出一套通用的在应用编程模板。

其中涉及的通信链路有: 以太网 CAN UART
涉及应用层协议: TCP, UDP, TCP Modbus, CANopen, 485Modbus, 232Modbus以及一些开发者自定义的协议
在应用编程协议统一使用: ST IAP protocol
其中固件更新所使用的程序为python脚本。

其网络拓扑如下图

设备网络拓扑

对于一级设备,可以直接由x86控制器或者交换机对外调试口进行固件更新。
对于二级设备,需要通过一级设备进行转发,完成固件更新功能。
本文主要讨论的是二级设备的固件更新方式。

更新固件的流程大致如下(以x86中运行pyscript,经一级设备,更新232Modbus设备的固件为例):
1. pyscript发送UDP指令,将一级设备的232Modbus任务模式切换为透传模式。
2. pyscript发送UDP报文模拟Modbus指令,使二级设备跳转到 bootloader
3. pyscript发送UDP报文模拟ST IAP Protocol, 对二级设备进行固件更新
4. pyscript发送UDP报文模拟ST IAP Protocol, 修改二级设备启动选项

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值