双mcu架构系统更新程序的通信方法_2

文档序号:9546973阅读:来源:国知局
快速准确先后数 据,数据场的值为该行记录的64个字节代码中的某个,且为8位标识符的数据如表3所示。
[0055] 表 3
[0056] 2. 4)如图6所示,校验帧填充采用:类型场填充Obll,表征该帧包含校验和的值 19文件某条行记录中最后一位字节的校验值,解码为一个8位标识符的数据填充至数据 场,其余6个位均预留;将四种单元帧的数据分配如表4所示。
[0057]
[0058] 表 4
[0059] 3) CAN数据场进行拆分,每一帧CAN数据场拆分形成四个SPI帧,对拆分形成的 SPI帧进行解析得到有效数据;
[0060] 其中,所述拆分是步骤2)中每四个单元帧组合填充形成一帧CAN数据场的逆过 程,所述解析是步骤2) S19文件填充至单元帧的逆过程。
[0061] 如图7所示,上位机与MMCU之间的通信方式为CAN,其报文采用标准格式,CAN报 文数据场为8个字节,所以可以将每帧CAN报文由4个单元帧组合填充完成;而MMCU与 SMCU之间的通信方式为SPI,其数据宽度也为16位,所以可以将SPI每帧由1个单元帧替 代。也就是,CAN报文的数据场可拆分为4个SPI帧,用作反馈处理结果的流控帧只填充CAN 数据场的前两个字节。通信数据的解析是填充的逆过程,而拆分帧格式结构是组合填充的 逆过程,因此在多结点组网通信中,每个目标结点在接收到报文或帧的数据后,按照上述方 法逆向进行先拆分成单元帧再按帧格式解析提取有效信息。
[0062] 本发明一具体实施例,包括:
[0063] 上位机,MMCU和SMCU作为组网的三个通信结点,中转地位的MMCU交互上位机源 结点和SMCU目标结点间的流控帧。
[0064] 统计符合SMCU程序烧写过程的通信指令集,各结点填充为流控帧,制定完善的流 控管理机制。
[0065] 按照本发明中的单元帧格式定义方法,在上位机解析代码S19文件时,将起始地 址,代码,校验和这些有效信息提取后填充至3种相应单元帧。
[0066] 以一条S19记录行为例的填充流程见图8所示:
[0067] 该记录行为Sl格式(起始地址无扩展页PAGE,默认0x00),地址高字节AddrH值 0x40,地址低字节0x00 ;表示PAGE地址帧的高字节为ObOlxxxxlO,表示AddrH地址帧的高 字节为ObOlxxxxOl,表示AddrL地址帧的高字节为ObOlxxxxOO,其中X表示预留位r的值 且默认赋值为0,分别得到PAGE编码0x42、AddrH编码0x41和AddrL编码0x40 ;按照地址 帧填充方法,填充得三个序列的地址帧(0x42 I 00),(0x411 40)和(0x40 I 00)。
[0068] 代码字节共有32个(序列为CodeO~31),序列场依次填充3~36,表示CodeO 代码帧的高字节为0b100 00011,表示Codel代码帧的高字节为0b100 00100,以此类推, 最后表示Code31代码帧的高字节为0bl0100100,分别得到CodeO编码0x83, Codel编码 0x84,…,Code31编码0xA2 ;按照代码帧填充方法,填充得32个序列的代码帧(0x83 11B), (0x84|9C),…,(0xA2|80)。
[0069] 校验和是位于该记录行最后的一个字节0xA2,表示Checksum校验帧的高字节为 Obllxxxxxx,其中X表示预留位r的值且默认赋值为0,得到Checksum编码OxCO ;按照校验 帧填充方法,填充得校验帧(OxCO IA2)。
[0070] 上位机实现将a) b) c)得到的单元帧顺序地存放在二维数组A中,再按照小端方式 重组为二维数组B,即把数组A中的每16位单元帧拆分为两个8位的高低字节,且高字节重 组放在高元素单元,低字节重组放在低元素单元;可见,数组A的列数为36,数组B的列数 为72,而行数均为S19记录行总数。
[0071] 填充流程的目标是将该记录行的信息转化为报文数组且通过CAN报文发送至总 线,因此,将数组B的每行再分为第三维时间上的9次,也就是分时发送CAN第0~8帧;每 次发送出的CAN报文的数据场以报文数组中的某一行数据填充;可见,报文数组为三维数 组,且行数为9 (次),列数为8,组数为S19记录行总数。
[0072] MMCU在程序刷新时,将CAN报文按照填充方法的逆过程进行解析,所得到的单元 帧可直接作为SPI帧发送至SMCU,由其完成程序烧写。
[0073] 本发明方法在应用适用范围也可扩展至如图9所示的复杂网络,而不局限于上 述双MCU组网下的数据流1-5-2-6-3(此处数字表示图9中多结点组网的结点编号或通信 介质方式SPI、CAN,下同),双MCU架构相当于"2-6-3",把双架构放进外部是CAN的通信 接口网络中就有了 "1-5- '2-6-3'",凡是存在连续三个结点中两通信方式为"CAN-SPI"或 "SPI-CAN",本发明的通信方法都适用,均以单元帧为最小单元拆组。例如量产汽车控制器 的产线批量检测(或下载和标定)等环境下的通信网,需将上位机Host结点1 (或诊断设 备)与产线某个检测机结点4进行连接,再将若干个上述双MCU系统的控制器(包含结 点2,3)放在检测机上同时检测,对其中某一个的SMCU作目标结点进行操作时,数据流为 1-7-4-10-2-6-3。其中,通信方式7也可配置为常用的16位数据宽度的串口通信SCI等, 并同样采用单元帧实现填充,结点4, 2进行通信中转。
[0074] 以上通过【具体实施方式】和实施例对本发明进行了详细的说明,但这些并非构成对 本发明的限制。在不脱离本发明原理的情况下,本领域的技术人员还可做出许多变形和改 进,这些也应视为本发明的保护范围。
【主权项】
1. 一种双MCU架构系统更新程序的通信方法,其特征是,包括: 1) 定义16位数据宽度的四种类型单元帧,用于填充S19文件数据; 流控帧:携带某结点组网环境下的通讯指令,对通讯控制流起到管理收发作用; 地址帧:携带S19文件单行记录的起始地址及其序列信息; 代码帧:携带S19文件单行记录的代码及其序列信息; 校验帧:携带S19文件单行记录的校验和信息。 2) 将S19文件填充至步骤1)定义的帧类型形成单元帧,每四个单元帧组合填充形成一 帧CAN数据场; 2. 1)流控帧填充采用:类型场填充ObOO,表征该帧包含流控管理的指令信息;根据结 点间通讯的指令集,填充至流控场,数据场填充的内容为组网中的结点编号,表征该结点需 执行流控场中的指令; 2. 2)地址帧填充采用:类型场填充ObOl,表征该帧包含部分地址信息; S19文件某条行记录中3个字节的起始地址,解码为一组前后三个序列的地址帧,由序 列场的值分别填充表示出地址低字节、地址高字节、地址扩展页的识别位;数据场的值为该 行记录3个字节起始地址中的某个,且为8位标识符的数据; 2. 3)代码帧填充采用:类型场填充OblO,表征该帧包含部分代码信息; S19文件某条行记录中32个字节的代码,解码为一组前后32个序列的地址帧,由序列 场的值分别填充表示出前后第1~32个代码数据的识别位,如果某条记录行字节数N〈32, 则序列依次填充至整数N;数据场的值为该行记录的64个字节代码中的某个,且为8位标 识符的数据; 2. 4)校验帧填充采用:类型场填充Obll,表征该帧包含校验和的值;S19文件某条行记 录中最后一位字节的校验值,解码为一个8位标识符的数据填充至数据场,其余6个位均预 留; 3. CAN数据场进行拆分,每一帧CAN数据场拆分形成四个SPI帧,对拆分形成的SPI帧 进行解析得到有效数据; 其中,所述拆分是步骤2)中每四个单元帧组合填充形成一帧CAN数据场的逆过程,所 述解析是步骤2)S19文件填充至单元帧的逆过程。
【专利摘要】本发明公开了一种双MCU架构系统更新程序的通信方法,包括:定义16位数据宽度的四种类型单元帧,用于在CAN转SPI通信方式中拆分与组合时的最小单元;将通信结点的流控指令和S19文件的有效信息填充至上述帧类型形成单元帧,再每四个单元帧组合填充形成一帧CAN数据场;中转网关将CAN数据场进行拆分,每一帧CAN数据场拆分还原四个单元帧,直接做为双MCU间通信的SPI帧,通信终端结点对SPI帧进行解析得到原S19文件包含的有效数据并更新程序。本发明的通信方法符合双MCU架构系统多结点组网中CAN报文与SPI帧之间交互信息协议,能更有效的将目标代码S19(或Hex)文件下载至SMCU中。
【IPC分类】G06F9/445
【公开号】CN105302591
【申请号】CN201410377249
【发明人】张善, 刘金行, 杨化方, 金灿龙, 田佰辉
【申请人】联创汽车电子有限公司
【公开日】2016年2月3日
【申请日】2014年8月1日
当前第2页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1