《TMS320F28035-DSP--CAN程序升级方案-BootLoader(共13页).docx》由会员分享,可在线阅读,更多相关《TMS320F28035-DSP--CAN程序升级方案-BootLoader(共13页).docx(13页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上系统硬件架构说明程序升级需一台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机凭此串口与
2、CAN卡进行通信,CAN卡主控芯片采用28035,主要功能是实现串口数据到CAN数据报文的格式转换。专心-专注-专业上位机监控软件使用介绍1、首先安装CAN卡驱动程序(HL-340),安装完成后在PC电脑任一USB口插入CAN卡,即可在”我的电脑”-”设备管理器”-“串口”一栏中找到对应拓展出来的串口,表明驱动安装正确,CAN卡连接正确。HL-340驱动程序图标2、点击打开监控软件监控软件图标监控界面如下1).在监控软件中“串口号”一栏填入对应串口,在点击”打开串口”控件,连接好CAN与设备CAN线,给设备接入12V电源,即可监控通讯2.点击“HEX文件读取按钮”,弹出hex文件查找对话框,找
3、到需要烧录的hex文件,点击打开即可。Hex文件查找对话框此时“文件路径”控件显示待烧录的hex文件在硬盘中的实际位置,用于核对检查。一般程序升级仅升级应用程序,因此编程选项栏中默认选择“擦除编程应用扇区”,若需对基本CAN升级扇区(B扇区)升级程序,则点击选择“擦除编程基础程序”,若需对28035芯片整个FLASH进行擦除和程序升级,则点击选择“擦除编程所有flash扇区”,但此功能慎用,此功能一次性擦除和编程所有扇区,升级过程中掉电,目标设备将无法使用CAN再次升级。若基本程序和应用程序都需要升级,且无法确保升级过程中供电和通信稳定,则需要分两次升级,在编程选项中分别点击选择不同选项。速度
4、选择一栏选择不同烧写速度,由于不同电脑配置差异较大,低配置电脑,或者已有多个进程运行,CPU占用率较高,还使用最快速的烧写档位,容易数据校验出错现象,导致程序烧录不成功。此时采用低档烧录,减小一次向串口缓冲区写入的数据量,从而减小进程处理任务,提高通信稳定性,可大大增加烧录成功率。(实际使用发现:低配置台式电脑在最快烧录速度下,错误率较高,需降低烧写速度3到4档,笔记本电脑可用最快速度烧录)。3.点击“擦除flash并自动编程”控件,上位机自动发起连接,控制目标设备进行程序升级。烧录过程中勿操作界面,直到烧录完成后才能进行其他操作。进度条控件显示烧录进度,一般升级过程在40秒钟作用。4.当程序
5、升级成功,界面上将显示所有数据校验正确,状态指示一栏显示“SuccessStatus”,若烧写结束而数据校验不正确,“状态指示”一栏显示“VerifyStatus”,若目标升级设备没有和上位机建立通信则“状态指示”一栏显示“launchStatus”。若目标设备处于FLASH扇区擦除过程则显示“EraseStatus”,若处于程序烧录过程中则显示“ProgramStatus”。5.烧写成功完成后,目标设备自动复位,重新执行最新程序。可将监控界面由程序升级页面切换到产品监控页面,观察最新烧录好的软件的版本号,规格型号等有用信息。28035flash介绍A28035FALSH存储空间共64K(64
6、K字),他们被组织在8个扇区,每扇区8K,每个扇区可被单独擦除和编程,不影响其他扇区。扇区中每一个基本存储单元称为一个字,而一个字有16个位。对每个扇区编程之前,必须先擦除该扇区,擦除即将扇区每一位写1,编程即将特定位写0。以上表格是各扇区的绝对地址,CPU可根据以特定的绝对地址访问对应FLASH的特定地址单元烧写文件(.hex)介绍CCS6编译器经过适当配置,软件编译结束以后会自动产生intel格式的hex文件,该文件以特定格式保存了最终烧录到flash中的机器码,此类型文件用于CAN程序升级。(软件编码编译完成后产生的.out文件,需用JTAG调试烧录工具将机器代码烧录到芯片中)。以实际应
7、用的hex文件(intel格式hex文件)为例说明,红色 起始域 每行以冒号开始,它表示每行的开始黄色 长度域 例如02表明本行有两个字节数据,0x20表示本行有32个字节数据。绿色 地址域 它表示每行数据的起始地址(低位)蓝色 类型域这个域表示这条HEX记录的类型,他有可能是下面这几种类型00 -数据记录,表明此行记录表示数据 01 -文件结束记录,表明此行文件最后一行。02 -扩展段地址记录,表明此行记录的是高段地址,DSP寻址空间为0x3FFFF,64K,即而地址域仅能表示低16位地址,因此需使用高段地址配合使用。04 -扩展线性地址记录紫色 数据域 若本行为数据记录则依次表示将要烧录到
8、flash对应地址单元中的数据,若本行为拓展地址记录,则表示高段地址。一行总数据字节数量,可从长度域得到灰色 每行最后两个字符为本行数据校验和。:EBC:FE02761F01BF1A0EFEC05761F01BF1A0EF002C92048A:FD767E908E761FB922F542B56CFEE0C16:AFB56CFFFBF761FC542B56C3CA:4922B962C761F002CFA767E908E761FB920C540B12:CF02654F12EE0C1AF099E39540B56CFA:E77003E8E7D003E8E83003E8E89003E8E8F003E8E
9、95003EEE8D:5003E8E9B003EEE8EA1003E8EA7003E8EAD003E8EB3003ED7:EB9003EEEEE8EBF003E8ED6003E8EED003E48:5003E8F04003EE8F0A003EEE8F10003E8F16003E3B:2061A0008F2D003E8F44003E8F5B003E8F72003E8F89003E8FA0003E8FB7003E8FCE003E8B:0C61BEE8FE5003E8B:047FFEAB9FBF:FF以第一行为例,此行有两个字节数据,即0x003E,且本行是拓展段地址记录,即它表示起始高位地址为0x
10、003E,以第二行为例,此行有0x20即32个字节数据记录,且本行是数据记录,低位地址为0x8000,即从0x3E800地址开始,每个flash地址单元当中的数据依次是0xFE02,761F.9204根据以上数据记录可解析出flash中每一个地址单元中的数据,例如:根据第一第二行的信息可解析出,地址0x3E8000中存放数据为0xFE02。将该地址与数据传入DSP中,CPU调用烧写函数将数据烧录到对应的flash特定地址当中。上位机解析出所有的机器码,并将它们下发到DSP中,DSP运行的程序解析出一帧报文中的绝对地址,分析是哪一个扇区,从而决定是否将机器码烧录到该绝对地址中。CAN报文与通信协
11、议介绍CAN报文最高位为主从机标志位,当帧类型为数据帧时,16-1位存放机器码,32-17位存放该机器码的高位地址,48-33位存放机器码的低位地址。按以上帧格式,上位机与目标升级设备进行主从通信,一个帧中包含一个FLASH中的绝对地址以及地址当中的数据,目标设备CPU接收到报文后进行分析处理,并向上位机发送应答帧,应答帧格式相同,仅主/从机标志位不一样,上位机将接收到的应答帧,并且应答帧完全正确,表明所有数据已下发,并无通讯错误。掉电升级原理:C-H扇区用来存放应用程序,B扇区存放CAN升级基本程序。A扇区用于选择跳转到应用程序还是CAN升级程序。B扇区编程标志域:0x3F5FFE-0x3F
12、5FFF,长度为2个字,编程成功该域写0,否则该域各位写1B扇区跳转域:0x3F5FFC-0x3F5FFD,长度为2个字,跳转到cint00函数,实现C运行编程环境初始化。C扇区编程标志域:0x3F3FFE-0x3F3FFF,长度为2个字,编程成功该域写0,否则该域各位将写1C扇区跳转域:0x3F3FFC-0x3F3FFD,长度为2个字,跳转到cint00函数,实现C运行环境初始化。A扇区入口地址域:0x3F7FF6-0x3F7FF7,长度为2个字,该域放置一条跳转指令用于,跳转到A扇区跳转域。A扇区跳转域:0x3F7E00-0x3F7F7F,长度为384个字,根据B,C扇区编程标志域情况,决
13、定跳转到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
14、,H扇区编程。当编程完毕,上位机下发烧写成功命令,DSP对C扇区标志域写0,表示应用程序升级成功。B扇区程序升级过程:B扇区存放仅包含CAN升级的程序,对该扇区升级程序时,DSP会保留其他扇区,先擦除B扇区,B扇区编程标志域被擦除置1.DSP接收上位机下发数据对B区编程,编程完毕后,上位机下发烧写成功命令,DSP对B扇区标志位写0,表示B扇区程序升级成功。工程文件组织:B扇区程序以常量表格形式被嵌入到应用程序工程中。该表格被应用程序工程链接到B扇区。基本CAN升级工程,最终程序被分配到A扇区和B扇区。其中在A扇区生成的程序与应用工程完全一样。该工程文件输出的烧写文件(.hex)被转换为常量表格
15、存放于.c文件中,用应用程序调用。从而实现两工程文件独立编辑,升级和修改。B扇区与应用扇区独立执行,任何时候都会有一个,且都包含有CAN升级功能,若程序升级过程中出现掉电,通信中断等异常情况,DSP中始终包含一个独立运行的程序,并可对未升级成功的扇区再次升级。常量表格的实现原理:编写一个包含CAN升级基本功能的工程文件,此工程中A扇区与应用工程中的A扇区完全一样,其他功能程序被链接到B扇区中,解析此工程文件的HEX文件,可分析得出B扇区所有机器码,将其转换为8K的常量表格存放于C文件中,再将此C文件添加到应用工程中进行编译(应用工程将此C文件中的常量表格链接到B扇区flash地址范围中)。应用
16、工程最后生成的.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(SECTO
17、RD,&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总
18、线发送来的一帧报文,即可获得一个有效的机器码与对应的FLASH扇区中的绝对地址,此时设定Length为1,Flash_ptr指向FLASH中的绝对地址,buffer参数包含该机器码,调用 Flash_Program()函数就可以实现对该特定地址的编程。目标程序升级流程控制复位当DSP复位结束后,CPU首先从flash程序入口执行程序,该域放置了一条跳转指令,跳转到A扇区跳转域执行跳转函数,随后跳转到C扇区的跳转域,C扇区跳转域在次跳转到Cint00函数以实现C运行环境初始化,完成后进入主函数执行。在对FLASH进行编程之前,FLASH中的CAN升级程序已经被复制到RAM中。当执行到程序升级函数
19、后,CPU是在RAM中执行程序,对flash进行擦除、升级等操作对CAN升级没有影响。应用程序运行时,当接收到上位机下发程序升级命令后,程序将控制设备停机(封锁PWM输出),然后DSP自行复位,程序重新执行。在预先设定的程序以及函数从flash拷贝到RAM中执行以后,进行一段时间的延时,判断是否接收到上位机下发升级命令,若未接收到升级命令,程序转到应用程序。若接收到程序升级命令,则转到程序升级功能函数。若程序升级完成,DSP复位程序重新执行。上位机程序与目标程序执行流程,状态转换过程DCDC设置状态与PC机状态互相驱动变换3.设备复位介绍两个工程文件的CMD文件与汇编跳转函数说明伪指令实现向特殊变量写到标志寄存器当中