linux怎么查看本机内存大小
309
2022-11-18
采用CAN总线的ECU在线编程系统的设计方案介绍
1 在线编程系统设计
1.1 通信协议与上位机程序设计
1.1.1 通信协议的制定
1.1.2 PC端下载程序的组成
(1)目标文件的生成和解析
系统应用程序文件采用*.HEX格式文件,该文件是记录文本行的ASCII文本文件,每一行是一条记录,每条记录是16进制数组成的机械码或数据常量。记录格式::LL ADDR TT[DDD…]CC
其中,冒号是记录开始;LL表示数据长度,即[DDD…]的字节数;ADDR表示地址信息;TT表示记录的类型;[DDD…]表示数据内容;CC表示校验和。
利用Tasking开发环境,能够生成包含应用程序的*.HEX文件,文件中的记录类型只有数据记录、线性扩展地址记录和文件结束记录。通过上位机载入目标文件,逐条检索文件内容将带有地址信息的数据解析出来,并以CAN数据帧(8字节)的形式存放,每16帧数据组合成一个页,同时记录每个数据页的首地址。
(2)Flash编程模块
1.1.3 PC端下载程序的运行流程
PC端程序运行以后,通过上位机界面上的“载入文件”按钮,将要升级程序HEX文件载入,点“解析按钮”,程序自动将HEX文件分成包含有效数据长度为128字节的页,同时将页首地址保存。根据已经制定好的协议,上位机将这些命令封装成CAN总线消息发送到下位机。编程过程中,上位机将所需要发送的程序页总数发送给下位机,然后从第一页开始发送,每一页发送完成以后,等待下位机发送页编程完成信号,完成以后继续发送下一页,直到所有程序页都发送完成,这时如果无错误,接收下位机编程完成应答消息,显示编程完成;否则显示编程失败。程序流程图如图l所示。
圈1 PC端下载程序流程图
1.2 Bootloader设计
Flash编程的机制主要有两种,分别是调用Flash擦写函数法和Flash kernel.Flash kernel法需要在进行软件升级时将Bootloader程序中Flash擦写以及相关的初始化程序都下载到单片机RAM中,这对RAM资源的要求较高,对于单片机来说这是有困难的。采用Flash擦写函数法,只需要在升级程序时调用Flash擦写函数即可。对于某些单片机,在对Flash进行擦写时,加在Flash区的电压高于普通电压,会引起Flash区的操作不稳定,因此也需要将Flash擦写函数放在RAM中运行,这样采用Flash擦写函数能够有效的减少RAM区的占用。In-fineon XC2000单片机支持同时对不同页的读/写操作,不会出现Flash擦写操作不稳定的问题,因此本设计采用Flash擦写函数法。
1.2.1 Flash空间代码分布
本设计中ECU采用XC2785A单片机,其片上集成32 KB的PSRAM和832 KB的Flash(0xC00000~oxCCFFFF)用于代码存储。Flash阵列由4个块组成,分别是F0(256 KB,0xC00000~0xC3FFFF)、F1(256 KB,0xC40000~0xC7FFFF)、F2(256 KB,0xC80000~0xCBFFFF)、F3(64 KB,0xCC0000~0xCCFFFF)。每一个Flash块由若干个大小为4 KB的扇区组成,而每一个扇区可分为32个页(128字节),可封每个页单独进行擦除和编程操作。Flash区段的最开始存放程序的中断向量表,0xC01000~OxCODFFF区段存放Bootloader代码,0xC0E000~0xC0EFFF区段中的最开始那个页存放升级标志,0xCOF000~0xCOFFFF区段为单片机保留区段,0xCl0000~0xCCFFFF段存放应用程序,代码空间分布如图2所示。
图2 Flash空间代码分布示惹图
1.2.2 Bootloader程序流程
复位中断向量的出口地址是0xC01000,因此单片机上电启动或者软件重启以后,首先跳转到STARTUP.C,通过判断升级标志是否置位来进行跳转。若置位表示有升级请求,则进行Bootloader的初始化,然后执行主函数,升级完成以后擦除标志位;若无升级请求则跳转到用户程序区执行用户程序。用户程序更新时,需要同时更新中断向量,这样保证用户程序能够正常使用中断功能。
图3 下位机软件流程图
1.3 在线编程系统工作流程
图4 系统工作过程
2 在线编程功能验证
图5 目标HEX文件2图6 Flash中的数据
结语
本文提出的基于CAN总线的ECU在线升级系统设计方案,切实可行,并已在Infineon XC2785A单片机上完成实际测试。Infineon XC2000单片机具有相同的内核,因此此方案将对这一系列单片机的Bootloader设计具有指导意义。同时采用升级标志位的方法,对于单片机IAP功能的实现提供一个有益的参考。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~