42软件开发与应用Software Development And Application 电子技术与软件工程
Electronic Technology & Software Engineering
基于dsPIC30F5011单片机开发的ECU 控制软件,由于需求不
断变更,用仿真器JTAG 接口烧录软件方式,需将电子控制器拆下
返回外协生产厂家开盖操作,过程复杂,周期长,协调难度大,
管理费用高。因此基于控制器现有的CAN 通讯接口,开展在线升
级设计很有必要。本文以某控制器硬件平台为基础,开展了基于
dsPIC30F 系列单片机嵌入式软件在线升级设计,给出了调试通过
的软件相关设计方法。
1 系统描述
1.1 简述
本系统设计目标是:在目标机脱开仿真器上电运行时,可实现
系统自动执行,并可通过上位机(PC 机)对目标机代码(嵌入式软件)
进行升级更新。
本系统目标机软件(嵌入式软件)采用C 语言和汇编语言混合
编程方法、上位机软件采用C 语言编写,目标机软件和上位机软件
具有可移植和可维护性等优点。本文给出了基于dsPIC30F5011单
片机的硬件平台,使用通过调试的目标机源代码在存储器中空间地
址分配及软件设计方法。
1.2 系统组成
系统主要由目标机系统和上位机系统组成。系统连接框图见图
1。在线代码运行器
目标机系统硬件主要由单片机(dsPIC30F5011)、IDE 仿真
器(MPLAB ICD2)、连接电缆组成。目标机系统软件包括:
Windows XP 操作系统、MPLAB IDE (v8.01c )开发平台、监控软件、
用户应用软件。
上位机系统主要由PC 机、 USB-CAN (CANalyst-II 分析仪)、
VisualC++6.0软件开发平台组成。
1.3 在线升级过程描述
主机PC 端在线升级软件运行后,打开CANalyst-II 分析仪并初
始化选用的通道,按照既定的通讯协议,向目标端发送对码指令,
握手成功后,打开输入的用户应用程序可执行代码文件,读取该文
件可执行代码,进行逐条解析,解析完成后,按照既定的通讯协议
向目标端发送,目标端监控程序将解析出的内容,按相应的存储类
别分别写入各自的地址中,待接收到上位机发送的复位命令后,将
程序指针指向用户应用程序起始地址开始运行用户应用程序。从而
完成本次用户应用程序的更新,控制器断电后重新上电,在不运行
上位机在线升级软件的情况下,10s 后即执行用户应用程序。在线
升级过程参见图2。
2 系统设计
2.1 拟定PC端在线升级程序与监控程序之间的通讯协议
利用现有控制器与上位机之间的通讯接口,即CAN 总线接口,
使用扩展帧格式的数据帧,制定以下数据帧应用原则:
11位基本ID 的D28~D25位用来表示发送设备的ID ;
11位基本ID 的D24~D21位用来表示接收设备的ID ;
基于dsPIC30F 系列单片机嵌入式软件在线升级设计与实现
刘金华  王军  杨达  王东
(北京动力机械研究所  北京市  100074)
11位基本ID 的D20~D18位用来表示该帧数据的状态,包括单帧数据包、数据组的第一帧和中间帧、数据组的最后一帧;18位扩展ID 的D17~D12位用来表示帧数据的指令名称,分为FLASH 编写指令、EEPROM 编写指令和CM 编写指令;18位扩展ID 的D11~D0位用来表示多帧数据的帧计数;摘 要:本文描述了基于dsPIC30F5011单片机的在线升级设计方法,测试结果表明该设计稳定、可靠,工程维护简单方便,具有较
高的工程应用价值。
关键词:
dsPIC30F5011单片机;在线升级;CAN 总线
图1:系统连接框图图2:在线升级过程图3:PC 端在线升级程序流程

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。