TMS320F28035 DSPCAN程序升级方案 BootLoader.docx

上传人:b****5 文档编号:6715813 上传时间:2023-01-09 格式:DOCX 页数:10 大小:325.78KB
下载 相关 举报
TMS320F28035 DSPCAN程序升级方案 BootLoader.docx_第1页
第1页 / 共10页
TMS320F28035 DSPCAN程序升级方案 BootLoader.docx_第2页
第2页 / 共10页
TMS320F28035 DSPCAN程序升级方案 BootLoader.docx_第3页
第3页 / 共10页
TMS320F28035 DSPCAN程序升级方案 BootLoader.docx_第4页
第4页 / 共10页
TMS320F28035 DSPCAN程序升级方案 BootLoader.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

TMS320F28035 DSPCAN程序升级方案 BootLoader.docx

《TMS320F28035 DSPCAN程序升级方案 BootLoader.docx》由会员分享,可在线阅读,更多相关《TMS320F28035 DSPCAN程序升级方案 BootLoader.docx(10页珍藏版)》请在冰豆网上搜索。

TMS320F28035 DSPCAN程序升级方案 BootLoader.docx

TMS320F28035DSPCAN程序升级方案BootLoader

●系统硬件架构说明

程序升级需一台PC计算机,一块CAN卡,和一个待升级设备。

PC计算机下发升级数据,控制并监视整个烧录过程。

PC机通过USB口和线缆与CAN卡线连接,CAN卡将USB数据线数据转换为CAN报文,通过CAN总线与待升级的设备连接。

CAN卡实现PC机与待升级设备间的连接,控制,数据通信。

一次程序升级过程可对一个设备进行程序更新。

PC机需安装windowsXP,window7,8,10操作系统,且安装好监控升级软件,以及CAN卡驱动程序。

CAN卡采用USB线缆供电并采用专用USB转UART(异步串口)芯片HC340,为PC机拓展出一个虚拟串口,PC机凭此串口与CAN卡进行通信,CAN卡主控芯片采用28035,主要功能是实现串口数据到CAN数据报文的格式转换。

●上位机监控软件使用介绍

1、首先安装CAN卡驱动程序(HL-340),安装完成后在PC电脑任一USB口插入CAN卡,即可在”我的电脑”-”设备管理器”-“串口”一栏中找到对应拓展出来的串口,表明驱动安装正确,CAN卡连接正确。

HL-340驱动程序图标

2、点击打开监控软件

监控软件图标

监控界面如下

1).在监控软件中“串口号”一栏填入对应串口,在点击”打开串口”控件,连接好CAN与设备CAN线,给设备接入12V电源,即可监控通讯

2.点击“HEX文件读取按钮”,弹出hex文件查找对话框,找到需要烧录的hex文件,点击打开即可。

Hex文件查找对话框

此时“文件路径”控件显示待烧录的hex文件在硬盘中的实际位置,用于核对检查。

一般程序升级仅升级应用程序,因此编程选项栏中默认选择“擦除编程应用扇区”,若需对基本CAN升级扇区(B扇区)升级程序,则点击选择“擦除编程基础程序”,若需对28035芯片整个FLASH进行擦除和程序升级,则点击选择“擦除编程所有flash扇区”,但此功能慎用,此功能一次性擦除和编程所有扇区,升级过程中掉电,目标设备将无法使用CAN再次升级。

若基本程序和应用程序都需要升级,且无法确保升级过程中供电和通信稳定,则需要分两次升级,在编程选项中分别点击选择不同选项。

速度选择一栏选择不同烧写速度,由于不同电脑配置差异较大,低配置电脑,或者已有多个进程运行,CPU占用率较高,还使用最快速的烧写档位,容易数据校验出错现象,导致程序烧录不成功。

此时采用低档烧录,减小一次向串口缓冲区写入的数据量,从而减小进程处理任务,提高通信稳定性,可大大增加烧录成功率。

(实际使用发现:

低配置台式电脑在最快烧录速度下,错误率较高,需降低烧写速度3到4档,笔记本电脑可用最快速度烧录)。

3.点击“擦除flash并自动编程”控件,上位机自动发起连接,控制目标设备进行程序升级。

烧录过程中勿操作界面,直到烧录完成后才能进行其他操作。

进度条控件显示烧录进度,一般升级过程在40秒钟作用。

4.当程序升级成功,界面上将显示所有数据校验正确,状态指示一栏显示“SuccessStatus”,若烧写结束而数据校验不正确,“状态指示”一栏显示“VerifyStatus”,若目标升级设备没有和上位机建立通信则“状态指示”一栏显示“launchStatus”。

若目标设备处于FLASH扇区擦除过程则显示“EraseStatus”,若处于程序烧录过程中则显示“ProgramStatus”。

5.烧写成功完成后,目标设备自动复位,重新执行最新程序。

可将监控界面由程序升级页面切换到产品监控页面,观察最新烧录好的软件的版本号,规格型号等有用信息。

●28035flash介绍

28035FALSH存储空间共64K(64K字),他们被组织在8个扇区,每扇区8K,每个扇区可被单独擦除和编程,不影响其他扇区。

扇区中每一个基本存储单元称为一个字,而一个字有16个位。

对每个扇区编程之前,必须先擦除该扇区,擦除即将扇区每一位写1,编程即将特定位写0。

以上表格是各扇区的绝对地址,CPU可根据以特定的绝对地址访问对应FLASH的特定地址单元

●烧写文件(.hex)介绍

CCS6编译器经过适当配置,软件编译结束以后会自动产生intel格式的hex文件,该文件以特定格式保存了最终烧录到flash中的机器码,此类型文件用于CAN程序升级。

(软件编码编译完成后产生的.out文件,需用JTAG调试烧录工具将机器代码烧录到芯片中)。

以实际应用的hex文件(intel格式hex文件)为例说明,

红色起始域每行以冒号开始,它表示每行的开始

黄色长度域例如02表明本行有两个字节数据,0x20表示本行有32个字节数据。

绿色地址域它表示每行数据的起始地址(低位)

蓝色类型域

这个域表示这条HEX记录的类型,他有可能是下面这几种类型

00----数据记录,表明此行记录表示数据

01----文件结束记录,表明此行文件最后一行。

02----扩展段地址记录,表明此行记录的是高段地址,DSP寻址空间为0x3FFFF,64K,即而地址域仅能表示低16位地址,因此需使用高段地址配合使用。

04----扩展线性地址记录

紫色数据域若本行为数据记录则依次表示将要烧录到flash对应地址单元中的数据,若本行为拓展地址记录,则表示高段地址。

一行总数据字节数量,可从长度域得到

灰色每行最后两个字符为本行数据校验和。

:

02000004003EBC

:

20800000FE02761F01BF1A0E0200761F02650610EC05761F01BF1A0E0080761F002C92048A

:

20801000761F0263962D767E908E761F0263962B922F542B56C30009761F02654612EE0C16

:

208020001A1000406F099230542B56C50006761F02651810FFBF761F0263922C542B56C3CA

:

208030000004922B962C761F002C9202761F0264960A767E908E761F0264960B920C540B12

:

2080400056C30009761F02654F12EE0C1A1080006F099E39540B56C50006761F026518100A

:

206160008E77003E8E7D003E8E83003E8E89003E8E8F003E8E95003E9085003E9085003E8D

:

206170009085003E8E9B003E9085003E9085003E8EA1003E8EA7003E8EAD003E8EB3003ED7

:

206180008EB9003E9085003E9085003E9085003E9085003E8EBF003E8ED6003E8EED003E48

:

206190009085003E8F04003E9085003E8F0A003E9085003E9085003E8F10003E8F16003E3B

:

2061A0008F2D003E8F44003E8F5B003E8F72003E8F89003E8FA0003E8FB7003E8FCE003E8B

:

0C61B0009085003E9085003E8FE5003E8B

:

047FF600007EAB9FBF

:

00000001FF

以第一行为例,此行有两个字节数据,即0x003E,且本行是拓展段地址记录,即它表示起始高位地址为0x003E,

以第二行为例,此行有0x20即32个字节数据记录,且本行是数据记录,低位地址为0x8000,即从0x3E800地址开始,每个flash地址单元当中的数据依次是0xFE02,761F....9204

根据以上数据记录可解析出flash中每一个地址单元中的数据,例如:

根据第一第二行的信息可解析出,地址0x3E8000中存放数据为0xFE02。

将该地址与数据传入DSP中,CPU调用烧写函数将数据烧录到对应的flash特定地址当中。

上位机解析出所有的机器码,并将它们下发到DSP中,DSP运行的程序解析出一帧报文中的绝对地址,分析是哪一个扇区,从而决定是否将机器码烧录到该绝对地址中。

●CAN报文与通信协议介绍

CAN报文最高位为主从机标志位,当帧类型为数据帧时,16-1位存放机器码,32-17位存放该机器码的高位地址,48-33位存放机器码的低位地址。

按以上帧格式,上位机与目标升级设备进行主从通信,一个帧中包含一个FLASH中的绝对地址以及地址当中的数据,目标设备CPU接收到报文后进行分析处理,并向上位机发送应答帧,应答帧格式相同,仅主/从机标志位不一样,上位机将接收到的应答帧,并且应答帧完全正确,表明所有数据已下发,并无通讯错误。

●掉电升级原理:

C-H扇区用来存放应用程序,B扇区存放CAN升级基本程序。

A扇区用于选择跳转到应用程序还是CAN升级程序。

B扇区编程标志域:

0x3F5FFE-0x3F5FFF,长度为2个字,编程成功该域写0,否则该域各位写1

B扇区跳转域:

0x3F5FFC-0x3F5FFD,长度为2个字,跳转到cint00函数,实现C运行编程环境初始化。

C扇区编程标志域:

0x3F3FFE-0x3F3FFF,长度为2个字,编程成功该域写0,否则该域各位将写1

C扇区跳转域:

0x3F3FFC-0x3F3FFD,长度为2个字,跳转到cint00函数,实现C运行环境初始化。

A扇区入口地址域:

0x3F7FF6-0x3F7FF7,长度为2个字,该域放置一条跳转指令用于,跳转到A扇区跳转域。

A扇区跳转域:

0x3F7E00-0x3F7F7F,长度为384个字,根据B,C扇区编程标志域情况,决定跳转到B或者C扇区执行程序。

DSP复位完成后,CPU将跳转到A扇区绝对地址0x3F7FF6-0x3F7FF7执行程序,

该区域称FLASH入口域,此区域将放置一个跳转指令,跳转到A扇区的跳转域

A扇区跳转域根据B扇区与C扇区的标志域中的情况选择跳转。

若C扇区标志域为0x0000,表明应用程序有效,则跳转到C扇区执行应用程序。

若C扇区标志域为0xFFFF则表明应用程序未升级成功,则跳转到B扇区执行基板CAN升级程序。

应用程序升级过程:

应用程序升级时,DSP会保留A,B两扇区,并先擦除C扇区,随后D,E,F,G,H扇区相继被擦除,C区编程标志域被擦除置1。

DSP接收上位机下发数据对C,D,E,F,G,H扇区编程。

当编程完毕,上位机下发烧写成功命令,DSP对C扇区标志域写0,表示应用程序升级成功。

B扇区程序升级过程:

B扇区存放仅包含CAN升级的程序,对该扇区升级程序时,DSP会保留其他扇区,先擦除B扇区,B扇区编程标志域被擦除置1.DSP接收上位机下发数据对B区编程,编程完毕后,上位机下发烧写成功命令,DSP对B扇区标志位写0,表示B扇区程序升级成功。

工程文件组织:

B扇区程序以常量表格形式被嵌入到应用程序工程中。

该表格被应用程序工程链接到B扇区。

基本CAN升级工程,最终程序被分配到A扇区和B扇区。

其中在A扇区生成的程序与应用工程完全一样。

该工程文件输出的烧写文件(.hex)被转换为常量表格存放于.c文件中,用应用程序调用。

从而实现两工程文件独立编辑,升级和修改。

B扇区与应用扇区独立执行,任何时候都会有一个,且都包含有CAN升级功能,若程序升级过程中出现掉电,通信中断等异常情况,DSP中始终包含一个独立运行的程序,并可对未升级成功的扇区再次升级。

常量表格的实现原理:

编写一个包含CAN升级基本功能的工程文件,此工程中A扇区与应用工程中的A扇区完全一样,其他功能程序被链接到B扇区中,解析此工程文件的HEX文件,可分析得出B扇区所有机器码,将其转换为8K的常量表格存放于C文件中,再将此C文件添加到应用工程中进行编译(应用工程将此C文件中的常量表格链接到B扇区flash地址范围中)。

应用工程最后生成的.out文件,使用JTAG烧录工具烧录到DSP裸片中,此时DSP的FLASH可认为有两个独立的工程,它们可认为分别存放在A-B扇区和A-C-D...H扇区中。

DSP上电后自动执行应用程序

●FLASH编程API介绍

IT提供一系列完善可靠的接口函数供用户调用,以实现对FLASH的擦除、升级、以及校验,函数已经封装在2803x_FlashAPI_BootROMSymbols.lib库文件中,相关函数变量接口声明放在Flash2803x_API_Library.h,Flash2803x_API_Config.h文件当中,需将这些文件添加到工程中。

1.擦除函数Flash_Erase(SECTORD,&EraseStatus);

第一个参数确定擦除的扇区,擦除完成后,所有位擦除后为1,即为0xFFFF状态

2.编程函数Flash_Program(Flash_ptr,Buffer,Length,&ProgStatus);

第一个参数确定flash中的编程起始地址,第二个参数确定RAM中的数据起始地址,第三个参数确定编程数据块大小

3.校验函数Flash_Verify(Flash_ptr,Buffer,Length,&VerifyStatus);

第一个参数确定flash中的校验起始地址,第二个参数确定RAM中的数据校验起始地址,第三个参数确定校验数据块大小

程序升级过程中,DSP接受到can总线发送来的一帧报文,即可获得一个有效的机器码与对应的FLASH扇区中的绝对地址,此时设定Length为1,Flash_ptr指向FLASH中的绝对地址,buffer参数包含该机器码,调用Flash_Program()函数就可以实现对该特定地址的编程。

●目标程序升级流程控制

当DSP复位结束后,CPU首先从flash程序入口执行程序,该域放置了一条跳转指令,跳转到A扇区跳转域执行跳转函数,随后跳转到C扇区的跳转域,C扇区跳转域在次跳转到Cint00函数以实现C运行环境初始化,完成后进入主函数执行。

在对FLASH进行编程之前,FLASH中的CAN升级程序已经被复制到RAM中。

当执行到程序升级函数后,CPU是在RAM中执行程序,对flash进行擦除、升级等操作对CAN升级没有影响。

应用程序运行时,当接收到上位机下发程序升级命令后,程序将控制设备停机(封锁PWM输出),然后DSP自行复位,程序重新执行。

在预先设定的程序以及函数从flash拷贝到RAM中执行以后,进行一段时间的延时,判断是否接收到上位机下发升级命令,若未接收到升级命令,程序转到应用程序。

若接收到程序升级命令,则转到程序升级功能函数。

若程序升级完成,DSP复位程序重新执行。

●上位机程序与目标程序执行流程,状态转换过程

DCDC设置状态与PC机状态互相驱动变换

●介绍两个工程文件的CMD文件与汇编跳转函数说明

伪指令实现向特殊变量写到标志寄存器当中

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 幼儿教育 > 家庭教育

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1