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

文档序号:9546973阅读:933来源:国知局
双mcu架构系统更新程序的通信方法
【技术领域】
[0001] 本发明涉及通信领域,特别是涉及一种双MCU架构系统更新程序的通信方法。
【背景技术】
[0002] 如图1所示,具有双MCU架构的汽车控制器在结构上常采用的双MCU控制系统将 信号分别由主控制芯片(MMCU)和辅控制芯片(SMCU)进行独立采集,再通过主辅间16位数 据宽度的SPI通信方式来完成两者数据的交互与比对,以实现由双MCU联合控制的输出,达 到更安全可靠的控制效果。目前,MMCU升级程序技术发展成熟,且一般符合Bosch CAN规 范2. 0B,由上位机将程序的目标代码S19 (或Hex)文件中的有效信息进行提取,在整车CAN 网络中来完成MMCU烧写程序的过程。其中,S19文件是Motorola MCU的机器码文件,将其 下载到MCU内部Flash存储器之后,MCU执行这些机器码,其文件格式如图2所示。
[0003] 目前,针对SMCU在双MCU结构下的程序烧写的现行方法是:
[0004] [1]利用烧写器一次性烧写SMCU代码,以后便不再更新升级;
[0005] [2]SMCU采用与MMCU独立的一套程序烧写接口,脱离整车网络用烧写器升级程 序。
[0006] 以上两种方法主要缺点是无法实现SMCU在整车CAN网络环境下的软件在线刷新 升级,必须拆卸控制器后连接烧写器进行软件刷新,而且在产品量产阶段因考虑到经济成 本等因素,也不为SMCU保留程序烧写的外接网络端口或烧写接插件,软件升级十分不便。

【发明内容】

[0007] 本发明要解决的技术问题是提供一种在双MCU架构系统多结点组网中符合CAN报 文与SPI帧之间交互信息的协议,能更有效地将目标代码S19 (或Hex)文件下载至SMCU中 的通信方法。
[0008] 为解决上述技术问题,本发明双MCU架构系统更新程序的通信方法,包括:
[0009] 1)定义四种类型的16位数据宽度的单元帧,用于填充S19文件数据;
[0010] 流控帧:携带某结点组网环境下的通讯指令,对通讯控制流起到管理收发的作 用;
[0011] 地址帧:携带S19文件单行记录的起始地址及其序列信息;
[0012] 代码帧:携带S19文件单行记录的代码及其序列信息;
[0013] 校验帧:携带S19文件单行记录的校验和信息。
[0014] 2)将S19文件数据的CAN报文数据场根据步骤1)定义的四种帧类型填充为四个 单元帖;
[0015] 2. 1)流控帧填充采用:类型场填充ObOO,表征该帧包含流控管理的指令信息;根 据结点间通讯的指令集,填充至流控场,数据场填充的内容为组网中的结点编号,表征该结 点需执行流控场中的指令;
[0016] 2. 2)地址帧填充采用:类型场填充ObOl,表征该帧包含部分地址信息;
[0017] S19文件某条行记录中3个字节的起始地址,按S19帧格式解码为一组前后三个 序列的地址帧,由序列场的值分别填充表示出地址低字节、地址高字节、地址扩展页的识别 位;数据场的值为该行记录3个字节起始地址中的某个,且为8位标识符的数据;
[0018] 2. 3)代码帧填充采用:类型场填充OblO,表征该帧包含部分代码信息;
[0019] S19文件某条行记录中32个字节的代码,按S19帧格式解码为一组前后32个序列 的地址帧,由序列场的值分别填充表示出前后第1~32个代码数据的识别位,如果某条记 录行字节数N〈32,则序列依次填充至整数N ;数据场的值为该行记录的64个字节代码中的 某个,且为8位标识符的数据;
[0020] 2. 4)校验帧填充采用:类型场填充Obll,表征该帧包含校验和的值;S19文件某条 行记录中最后一位字节的校验值,按S19帧格式解码为一个8位标识符的数据填充至数据 场,其余6个位均预留;
[0021] 3) CAN数据场进行拆分,每一帧CAN数据场拆分形成四个SPI帧,对拆分形成的 SPI帧进行解析得到有效数据;
[0022] 其中,所述拆分是步骤2)中每四个单元帧组合填充形成一帧CAN数据场的逆过 程,所述解析是步骤2) S19文件填充至单元帧的逆过程。
[0023] 上位机与MMCU之间的通信方式为CAN,其报文采用标准格式,CAN报文数据场为 8个字节,所以可以将每帧CAN报文数据组合填充到4个单元帧中;MMCU与SMCU之间的通 信方式为SPI,其数据宽度也为16位,所以可以将SPI每帧数据由1个单元帧替代。也就 是,CAN报文的数据场可拆分为4个SPI帧数据,用作反馈处理结果的流控帧只填充CAN数 据场的前两个字节。通信数据的解析将每帧CAN报文数据组合填充到4个单元帧中的逆过 程,因此在多结点组网通信中,每个目标结点在接收到报文或帧的数据后,能按照上述方法 逆向进行先拆分成单元帧再按帧格式解析提取有效信息。
【附图说明】
[0024] 下面结合附图与【具体实施方式】对本发明作进一步详细的说明:
[0025] 图1是双MCU控制系统的结构示意图。
[0026] 图2是代码S19文件的格式示意图。
[0027] 图3是本发明流控帧的帧格式示意图。
[0028] 图4是本发明地址帧的帧格式示意图。
[0029] 图5是本发明代码帧的帧格式示意图。
[0030] 图6是本发明校验帧的帧格式示意图。
[0031] 图7是本发明通信方法代码下载通信转化的流程示意图。
[0032] 图8是本发明一实施例的填充流程示意图。
[0033] 图9是一典型的多结点通信中转系统示意图。
【具体实施方式】
[0034] 本发明双MCU架构系统更新程序的通信方法定义了四种类型的16位数据宽度的 单元帧,以适用S19文件中的起始地址、代码、校验值和上下位机通信流控指令等分别填 充,再使CAN报文数据场以4个单元帧拆分与组合,而SPI帧仅以1个单元帧替代;MMCU网 关执行CAN-SPI中转本质上就是进行以单元帧为最小单元的通信方式的拆分与组合。
[0035] 1)定义16位数据宽度的四种类型单元帧,用于填充S19文件数据;
[0036] 流控帧:携带某结点的指令请求与响应或工作状态等信息,对通讯控制流起到管 理收发作用;
[0037] 地址帧:携带S19文件单行记录的起始地址及其序列信息;
[0038] 代码帧:携带S19文件单行记录的代码及其序列信息;
[0039] 校验帧:携带S19文件单行记录的校验和信息。
[0040] 其中,仅流控帧的填充不涉及到S19文件信息的提取,另三种帧为实际程序的代 码相关数据且SMCU必须使用寄存器作存储处理;
[0041] 2)将S19文件填充至步骤1)定义的帧类型形成单元帧,每四个单元帧组合填充形 成一帧CAN数据场;
[0042] 2. 1)如图3所示,流控帧填充采用:类型场填充ObOO,表征该帧包含流控管理的指 令信息;根据结点间通讯的指令集,即制定能够控制得使上位机开关通信、启停发送代码、 进程显示,MMCU启停中转、通讯转换速率调整、工作状态交互,以及SMCU代码接收、智能校 验并烧写、工作状态反馈等等的指令,以填充至流控帧;数据场填充的内容为组网中的结点 编号,表示该结点需执行流控场中的指令。结点数较少的网络中,流控场完全可以表示明确 所有的结点指令(最多26 = 64个),因此可以将数据场预留,详见表4 "单元帧数据分配 表"的流控帧。
[0043] 流控场的值与指令含义如表1所示。
[0044]
[0046] 表1
[0047] 2. 2)如图4所示,地址帧填充采用:类型场填充ObOl,表征该帧包含部分地址信 息;
[0048] S19文件某条行记录中3个字节的起始地址,解码为一组前后三个序列的地址帧, 由序列场的值分别填充表示出地址低字节、地址高字节、地址扩展页的识别位;数据场的值 为该行记录3个字节起始地址中的某个,且为8位标识符的数据,如表2所示;

[0050] 表 2
[0051] 2. 3)如图5所示,代码帧填充采用:类型场填充OblO,表征该帧包含部分代码信 息;
[0052] S19文件某条行记录中32个字节的代码,解码为一组前后32个序列的地址帖,由 序列场的值分别填充表示出前后第1~32个代码数据的识别位(如果某条记录行字节数 N〈32,则序列依次填充至整数N,例如图2中间位置的一条);
[0053] 实际应用中上位机发送代码帧时,序列场的序列号紧接着地址帧的序列号,即表 示第1~32个代码的识别位填充到代码帧数据场时,值依次为3~36。序列场的优点,不 仅是网络中的结点均可根据序列值判定是否发生丢帧,而且便于目标结点
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1