SFP+双MCU光收发模块升级的设计与实现
来源:华强电子网 作者:------ 时间:2014-06-26 15:13
2 双MCU嵌入式系统升级的实现
双MCU嵌入式系统升级的实现可分为以下几个部分:实现串口数据收集,实现数据的封装以及按照下载协议实现系统的更新。
2.1 串口数据收集实现
上位机(GUI)将Hex文件一行一行地发送给下载板,通过协议转换模块对数据封装后通过下载协议更新需要升级的系统。而串口每次只能发送一个ASCII码字符给下载板。下载板接收到数据后将每2个ASCII码合并为1个相应的十六进制数据,从而实现数据的收集。
2.2 数据封装的实现
数据的封装可根据具体的更新哪块MCU分别在下载板(更新MCU1)或MCU1(更新MCU2)中完成。由于数据封装前是Hex的帧结构,无法满足下载协议的要求,所以在更新系统之前必须对数据进行封装,使其满足协议的要求。下面将介绍具体的实现方式。
1)Hex文件的帧结构如图2所示。
图2 Hex文件的帧结构
(1)起始符:固定为“:”用于记录一帧数据的开始。
(2)数据字节数:后面的2个字符表明记录的长度。一般情况为0x10,表明这一帧中传送的有效数据位16 byte。
(3)地址位:4个字符表明调入的起始地址。
(4)数据类型:2个字符表明记录的类型。以下为具体的字符对应的不同的数据类型:
0:数据记录。
l:记录文件结束。
2:扩展地址记录。
3:开始段地址记录。
4:扩展线性地址记录。
5:开始线性地址记录。
(5)数据:表明有效的数据。
(6)校验和:最后的2位表明校验和检查,它加上前面所有的数据为0。
2)下载协议规定的数据帧结构如图3所示。
图3发送数据的帧结构
(1)起始ID:0x07和0x0E是两个固定的有效值。
(2)数据字节数:表示数据帧中传输的数据,从Datal开始算起。最小值为5,最大值为255。
(3)数据1 CMD,如表1所示。
表1 命令功能
(4)数据2一数据5(Address:h,u,m,1):该地址字段包含一个32位地址h,u,m,l,其中h中包含最高有效位(MSB),l中包含最低有效位(LSB)。
(5)数据x(x=6~255):用户代码是按字节下载的,数据字节字段最多为250个数据字节。数据必须是扩展Hex 16字节记录格式的数据串,而且在传输到加载器之前作为上面数据表格的一部分由主机重新编译。
(6)校验和:校验和的计算方法为所有数据的和取余。
3)帧结构封装的实现
协议转换模块将收到的每2个ASCII码转化为1个对应的十六进制,并存放于特定的缓存中。当协议转换模块收到回车换行后就会开始帧结构的封装工作。按照协议规定,为数据加入Start ID;帧结构中的No。of Data Bytes的值为Hex文件中数据的个数加5(其中主要加入了CMD Byte以及4 byte的地址);Datal则是命令Byte可根据协议要求写入适当的命令,在更新系统时应使用写命令W(0x57);Data2一Data5为Hex文件中指定的地址;Data x对应Hex文件中的数据部分;Checksum则为0x00减去从Bytel~Byte x 的所有数据的和。从而实现对数据的封装。
- •在风谲云诡的存储市场独辟蹊径,富士通用二十年时间完美布局嵌入式系统存储2019-10-28
- •汽车电子发展4大趋势 英飞凌的三个应对案例2019-01-23
- •Thread网络协议基于IP网状网络的解决方案2019-01-23
- •MCU控制系统电路原理图2019-01-18
- •微控制器模块和DS18B20 的连接电路图2019-01-18
- •一款采用微处理器控制方式的洗碗机电路设计原理图2019-01-18
- •ARM9内核μC/OS-II系统实现SD卡文件系统电子电路设计图2019-01-18
- •光电隔离RS485典型电路图2019-01-18
- •小型单片机可编程控制延时开关电路模块设计2019-01-18
- •一种新型智能电表的电路设计图2019-01-18