首页
|
新闻
|
新品
|
文库
|
方案
|
视频
|
下载
|
商城
|
开发板
|
数据中心
|
座谈新版
|
培训
|
工具
|
博客
|
论坛
|
百科
|
GEC
|
活动
|
主题月
|
电子展
注册
登录
论坛
博客
搜索
帮助
导航
默认风格
uchome
discuz6
GreenM
»
汽车电子
» 基于CAN总线的ECU在线编程技术
返回列表
回复
发帖
发新话题
发布投票
发布悬赏
发布辩论
发布活动
发布视频
发布商品
基于CAN总线的ECU在线编程技术
发短消息
加为好友
520503
当前离线
UID
872339
帖子
13270
精华
0
积分
6635
阅读权限
90
在线时间
361 小时
注册时间
2012-3-2
最后登录
2016-3-10
论坛元老
UID
872339
1
#
打印
字体大小:
t
T
520503
发表于 2014-12-12 22:45
|
只看该作者
基于CAN总线的ECU在线编程技术
空间
,
在线
,
Flash
,
编程技术
点击这里,你可以下载到
有关汽车电子最新解决方案的白皮书及参考设计。
随着IAP技术的出现以及Flash价格的降低,一般的电控单元(ECU)都具有IAP(In Application Programming)功能和较大的Flash空间,为实现ECU
在线编程
功能提供了必要条件。目前基于IAP技术的在线编程的方案有很多,采用的通信方式和具体实现方法也各不相同。参考文献[2]采用RS232总线和YMODEM协议开发的用于智能终端的在线升级系统,但是RS232总线的传输速率有限。参考文献[3]采用LIN总线实现的适用于汽车ECU的在线升级系统,LIN总线除了传输速率有限以外,同时它只是一种辅助总线,并不是所有车身ECU都采用LIN接口。参考文献[1][4]采用基于CCP(CAN Calibration Protoc01)协议的在线升级系统,兼具CAN总线传输速率快和CCP协议可扩展性好的优点。本文采用CAN总线,基于CCP原理自定义协议的在线升级系统,具有传输速度快的特点。自定义协议各命令基本沿用CCP协议,但内容做了改动,这样通过改动协议内容能够很好地适合特定环境的应用。同时在升级过程中加入升级请求标志位,能够很好地改进程序下载过程中命令延时等待、应用程序下载失败以后下次无法连接的问题。
1 在线编程系统设计
在线编程系统硬件主要包含三个部分:带有下载上位机软件的PC机、USB—CAN接口卡和安装有Bootloader程序的ECU。上位机通过USB—CAN接口卡与ECU通信,并进行代码的升级。软件主要包含两个部分:上位机的Bootloader下载程序和下位机的Bootloader程序。
1.1 通信协议与上位机程序设计
1.1.1 通信协议的制定
系统通信协议的以CCP协议原理为基础,结合实际操作过程的需求来制定。CCP协议提供11个基本命令和17个可选命令,基本命令包括:CONNECT、GET_CCP_VERS lON、EXCHANGE_ID、SET_MTA、DNLOAD、UPLOAD、GET_DAQ_PTR、WRITE_DAQ、START_STOP、DISCONNECT。本协议采用其中CONNECT、DISCONNECT、CLEAR_MEMORY、PROGRAM、SETMTA。命令内容根据实际需要自定义;消息应答信号有连接成功应答、编程准备就绪应答、页编程完成应答、编程完成应答、编程失败应答、SECTION擦除就绪应答、SEC—TION擦除完成应答等。本套自定义协议能够很好地应用在实际下载过程中。
1.1.2 PC端下载程序的组成
PC端的Bootloader下载程序主要功能是实现对目标文件的解析和与下位机软件通信。下载程序采用VisualC++6.0编写,主要分成目标文件加载与解析以及Flash编程两个模块。
(1)目标文件的生成和解析
系统应用程序文件采用*.HEX格式文件,该文件是记录文本行的ASCII文本文件,每一行是一条记录,每条记录是16进制数组成的机械码或数据常量。记录格式::LL ADDR TT[DDD…]CC
其中,冒号是记录开始;LL表示数据长度,即[DDD…]的字节数;ADDR表示地址信息;TT表示记录的类型;[DDD…]表示数据内容;CC表示校验和。
利用Tasking开发环境,能够生成包含应用程序的*.HEX文件,文件中的记录类型只有数据记录、线性扩展地址记录和文件结束记录。通过上位机载入目标文件,逐条检索文件内容将带有地址信息的数据解析出来,并以CAN数据帧(8字节)的形式存放,每16帧数据组合成一个页,同时记录每个数据页的首地址。
(2)Flash编程模块
Flash编程模块实现与下位机的通信,主要包含命令的解析、CAN总线驱动、数据发送和状态显示等部分。CAN总线驱动采用广州周立功单片机发展有限公司的USB—CAN采集卡的驱动程序,加入提供的库函数,来实现对于CAN总线数据的发送和接收。上位机软件提供相关命令的按钮,下载过程中通过按动相应按钮来实现命令的发送。下载过程中如果接收到连接成功、编程完成或者编程失败等信号以后,显示相应状态。
1.1.3 PC端下载程序的运行流程
PC端程序运行以后,通过上位机界面上的“载入文件”按钮,将要升级程序HEX文件载入,点“解析按钮”,程序自动将HEX文件分成包含有效数据长度为128字节的页,同时将页首地址保存。根据已经制定好的协议,上位机将这些命令封装成CAN总线消息发送到下位机。编程过程中,上位机将所需要发送的程序页总数发送给下位机,然后从第一页开始发送,每一页发送完成以后,等待下位机发送页编程完成信号,完成以后继续发送下一页,直到所有程序页都发送完成,这时如果无错误,接收下位机编程完成应答消息,显示编程完成;否则显示编程失败。程序流程图如图l所示。
圈1 PC端下载程序流程图
1.3 在线编程系统工作流程
系统连接完成以后,通过上位机载入需要更新的应用程序文件,点击“CONNECT”按钮,在线编程系统启动,系统工作过程如图4所示。上位机界面中显示连接成功,则可进行下一步操作。点击擦除按钮,上位机发送擦除指令,下位机擦除相应Flash区域以后发送给上位机应答信号。上位机给下位机发送编程命令的同时,发送给下位机需要编程的页总数。下位机在接收到页编程地址以后,连续接收上位机发送过来的16帧数据(一页128字节),然后擦除相应区域,并将这一页数据写入相应的页,页编程完成以后向上位机发送页编程完成应答,接着接收上位机发送过来的下一页数据,当所有页编程完成以后向上位机发送编程完成应答信号。此时断开连接,ECU将会软件重启。若编程过程中有任一页编程失败,上位机则显示编程失败,断开连接以后ECU重启,仍然进入Bootloader程序,然后直接点击编程即可。
图4 系统工作过程
2 在线编程功能验证
在线升级系统采用PC机(安装有上位机软件),连接广州周立功单片机发展有限公司的USB—CAN采集卡,ECU的CPU采用Infineon XC2785A单片机,系统连接完成以后进行升级测试。本文设计的在线编程方案测试结果如下:图5为待更新程序的HEX文件(通过Tasking环境生成),其中有下划线的位HEX文件记录中的数据记录,起始地址为0xCll000;图6为程序下载到Flash以后的数据,通过Tasking软件的Debug状态,来查看Flash地址为0xCll000的数据。通过对比两幅图片,发现程序数据正确下载到了相应的Flash区域。在下载过程中,通过错误操作制造在线编程失败现象,然后断开连接,ECU重启以后仍然进入Bootloader程序,直接在上位机界面上点击“Program”,能够完成在线升级。实验结果表明,所设计的基于CAN总线的在线升级系统能够实现代码在线下载的功能,并且能够有效改善升级过程中下载失败的问题。
图5 目标HEX文件2图6 Flash中的数据
结语
本文提出的基于CAN总线的ECU在线升级系统设计方案,切实可行,并已在Infineon XC2785A单片机上完成实际测试。Infineon XC2000单片机具有相同的内核,因此此方案将对这一系列单片机的Bootloader设计具有指导意义。同时采用升级标志位的方法,对于单片机IAP功能的实现提供一个有益的参考。
收藏
分享
评分
回复
引用
订阅
TOP
返回列表
电商论坛
Pine A64
资料下载
方案分享
FAQ
行业应用
消费电子
便携式设备
医疗电子
汽车电子
工业控制
热门技术
智能可穿戴
3D打印
智能家居
综合设计
示波器技术
存储器
电子制造
计算机和外设
软件开发
分立器件
传感器技术
无源元件
资料共享
PCB综合技术
综合技术交流
EDA
MCU 单片机技术
ST MCU
Freescale MCU
NXP MCU
新唐 MCU
MIPS
X86
ARM
PowerPC
DSP技术
嵌入式技术
FPGA/CPLD可编程逻辑
模拟电路
数字电路
富士通半导体FRAM 铁电存储器“免费样片”使用心得
电源与功率管理
LED技术
测试测量
通信技术
3G
无线技术
微波在线
综合交流区
职场驿站
活动专区
在线座谈交流区
紧缺人才培训课程交流区
意见和建议