一种用于车载MCU的编程装置和方法与流程

摘要: 本发明涉及汽车电子及嵌入式系统,特别一种用于车载mcu的编程装置和方法。背景技术:1、现有车载mcu编程通信方案,主要基于成熟的标准化协议,但在实际应用中暴露出...
一种用于车载MCU的编程装置和方法与流程

本发明涉及汽车电子及嵌入式系统,特别一种用于车载mcu的编程装置和方法。

背景技术:

1、现有车载mcu编程通信方案,主要基于成熟的标准化协议,但在实际应用中暴露出以下关键局限性:

2、局限性1:传输效率固定且无法优化。现有协议(如基于uart的bootloader协议、单线仿真的swd协议、标准的spi协议)其通信线制(单线、双线、四线)和帧结构在硬件设计阶段即已固定。例如,为降低成本仅留单线接口,则后续所有编程任务的速率上限被永久锁定在较低水平,无法根据不同的应用场景(如产线快速烧录 vs. 售后慢速诊断)或系统资源占用情况动态调整效率。

3、局限性2:协议冗长且有效数据负载率低。许多标准或自定义协议包含大量固定的控制头、固定长度的空闲位、复杂的命令-应答握手流程。在传输实际编程数据时,协议开销占比过高,大量带宽被用于传输非数据内容,导致有效吞吐量低下。

4、局限性3:数据完整性保障机制单一或不足。常见方案或仅依赖硬件接口的固有稳定性,或使用简单的校验和(checksum)。前者在复杂的车载电磁环境中可靠性不足;后者检错能力弱,无法检测多位错误或特定错误模式,存在编程数据静默损坏的风险,影响最终固件的可靠性。

技术实现思路

1、针对现有技术的缺陷,本发明给出了一套以可动态配置的多线制数据传输协议为核心的综合解决方案,将可动态配置的1/2/4线物理层、精简高效的自定义帧结构协议以及贯穿始终的强crc校验机制三者深度融合,构成一个完整的、自适应的高效可靠编程通信栈。该方案既体现在主机编程器的软件逻辑上,也内嵌于目标mcu编程控制模块中,两者协同工作,共同实现从物理连接到应用层数据的端到端优化。

2、为了达到上述目的,本发明提供了一种用于车载mcu的编程装置,包括:编程器主机和目标mcu上的编程控制模块;所述编程器主机与所述目标mcu之间通过一组可动态配置通信线数的物理接口连接;

3、所述编程器主机包括:

4、多线制通信接口模块‌,用于根据预设策略或测试结果,在多种传输线制中进行自适应切换;

5、所述目标mcu上的编程控制模块包括:

6、协议解析与封装模块‌,用于按照一种自定义精简通信协议,对来自所述编程器主机的指令和数据进行解析,并对发送至所述编程器主机的数据进行封装;所述自定义精简通信协议的帧结构包括固定头、精简协议命令、数据域和强校验位;

7、‌错误校验与处理模块‌,至少包含循环冗余校验单元,用于在协议栈的数据链路层对传输数据进行实时校验,并在应用层进行端到端的数据完整性验证。

8、进一步的,所述多种传输线制至少包括单线、双线和四线通信模式。

9、进一步的,所述多线制通信接口模块还包括预测试单元,用于在编程会话初始化阶段,向目标mcu预发送测试数据,并根据计算出的通信传输误码率在单线、双线或四线通信模式中选择最优的线制通信模式。

10、进一步的,所述错误校验与处理模块还包括前向纠错单元,用于在检测到误码率超过预设阈值时,启动与所述循环冗余校验单元协同工作的纠错编码功能,对传输过程中的位错误进行自动纠正。

11、进一步的,所述精简协议命令包含了本次传输的数据长度和数据类型信息,所述数据类型信息包括地址、数据和命令。

12、进一步的,所述命令支持快速编程命令,编程器主机发送快速编程命令后,后续将连续发送数据流而无需在每帧数据中重复包含地址信息,目标mcu内部自动递增编程地址指针接收数据流。

13、进一步的,所述编程控制模块还包括与所述协议解析与封装模块连接的一个异步发送fifo,用于暂存并转发解析后的命令和数据至flash存储器操作逻辑;以及一个接收fifo,用于暂存从flash存储器读取并准备发送至编程器主机的数据。

14、本发明还提供了一种用于车载mcu的编程方法,基于上述的用于车载mcu的编程装置,包括如下步骤:

15、(1)根据预设策略或测试结果,编程器主机自适应地选择与目标mcu之间的传输线制;

16、(2)将待传输的控制命令或编程数据封装成包含固定头、精简协议命令、数据域和强校验位的自定义精简通信协议帧,并对整帧内容计算校验码;

17、(3)编程器主机按照所选的传输线制发送所述自定义精简通信协议帧,目标mcu通过协议解析与封装模块对接收到的帧进行校验;

18、(4)若校验通过,目标mcu根据协议命令执行相应的flash存储器操作,绕过目标mcu内部总线直接与flash存储器交互;若校验失败,则忽略本次请求并更新错误状态;

19、(5)重复步骤(2)-(4),直至编程完成。

20、进一步的,当所述编程器主机发送读取flash存储器命令时,flash准备好数据后,目标mcu通过协议解析与封装模块将数据封装成包含固定头、精简协议命令、数据域和强校验位的自定义精简通信协议帧,并对整帧内容计算校验码,将待发送数据按照所选的传输线制发送给编程器主机。

21、进一步的,所述测试结果为:在编程会话初始化阶段,编程器主机向目标mcu预发送测试数据,并根据计算出的通信传输误码率在单线、双线或四线通信模式中选择最优的线制通信模式。

22、本发明的有益效果:

23、1、效率的提升:本发明在四线模式下,理论上可比传统单线swd模式提升4倍以上的原始比特率;加之绕过mcu内部总线进行编程,直接控制flash,综合数据传输效率可实现数倍的提升,直接缩短编程时间。

24、2、灵活性的提升:本发明的自适应线制切换使得同一套硬件和底层软件能够无缝适应从低速售后诊断到高速产线烧录的全场景需求,无需为不同场景开发不同的硬件变体或固件分支,降低了开发和维护复杂度。

25、3、可靠性的提升:本发明的强crc校验将不可检测的数据错误概率降至极低水平。确保错误能在传输途中被及时发现并纠正,极大提高了编程过程的一次成功率和最终固件的正确性。恶劣环境下可启用ecc,增加实时ecc纠错能力,形成”检测-纠正-校验“三层防护。

1.一种用于车载mcu的编程装置,其特征在于,包括:编程器主机和目标mcu上的编程控制模块;所述编程器主机与所述目标mcu之间通过一组可动态配置通信线数的物理接口连接;

2.根据权利要求1所述的用于车载mcu的编程装置,其特征在于:所述多种传输线制至少包括单线、双线和四线通信模式。

3.根据权利要求2所述的用于车载mcu的编程装置,其特征在于:所述多线制通信接口模块还包括预测试单元,用于在编程会话初始化阶段,向目标mcu预发送测试数据,并根据计算出的通信传输误码率在单线、双线或四线通信模式中选择最优的线制通信模式。

4.根据权利要求1所述的用于车载mcu的编程装置,其特征在于:所述错误校验与处理模块还包括前向纠错单元,用于在检测到误码率超过预设阈值时,启动与所述循环冗余校验单元协同工作的纠错编码功能,对传输过程中的位错误进行自动纠正。

5.根据权利要求1所述的用于车载mcu的编程装置,其特征在于:所述精简协议命令包含了本次传输的数据长度和数据类型信息,所述数据类型信息包括地址、数据和命令。

6.根据权利要求5所述的用于车载mcu的编程装置,其特征在于:所述命令支持快速编程命令,编程器主机发送快速编程命令后,后续将连续发送数据流而无需在每帧数据中重复包含地址信息,目标mcu内部自动递增编程地址指针接收数据流。

7.根据权利要求1所述的用于车载mcu的编程装置,其特征在于:所述编程控制模块还包括与所述协议解析与封装模块连接的一个异步发送fifo,用于暂存并转发解析后的命令和数据至flash存储器操作逻辑;以及一个接收fifo,用于暂存从flash存储器读取并准备发送至编程器主机的数据。

8.一种用于车载mcu的编程方法,基于权利要求1-7任一项所述的用于车载mcu的编程装置,其特征在于,包括如下步骤:

9.根据权利要求8所述的用于车载mcu的编程方法,其特征在于:当所述编程器主机发送读取flash存储器命令时,flash准备好数据后,目标mcu通过协议解析与封装模块将数据封装成包含固定头、精简协议命令、数据域和强校验位的自定义精简通信协议帧,并对整帧内容计算校验码,将待发送数据按照所选的传输线制发送给编程器主机。

10.根据权利要求8所述的用于车载mcu的编程方法,其特征在于,所述测试结果为:在编程会话初始化阶段,编程器主机向目标mcu预发送测试数据,并根据计算出的通信传输误码率在单线、双线或四线通信模式中选择最优的线制通信模式。