●系统硬件架构说明程序升级需一台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数据报文的格式转换。车载DCDCCAN卡USB线缆(屏蔽线缆)CAN总线(双绞线)PC计算机●上位机监控软件使用介绍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的特定地址单元BCDEFGH16bit8KA●烧写文件(.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接收到报文后进行分析处理,并向上位机发送应答帧,应答帧格式相同,仅主/从机标志位不一样,上位机将接收到的应答帧,并且应答帧完全正确,表明所有数据已下发,并无通讯错误。6463-626160-5756-4948-3332-1716-1数据/命令域高位地址域低位地址域保留主/从机标志位主机:0从机:1帧类型选择域01:命令帧02:数据帧03/04:保留监控/升级选择位固定为1命令类型/状态域●掉电升级原理:C-H扇区用来存放应用程序,B扇区存放CAN升级基本程序。A扇区用于选择跳转到应用程序还是CAN升级程序。B扇区编程标志域:0x3F5FFE-0x3F5FFF,长度为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扇区编程标志域情况,决定跳转到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扇区程序升级成功。A扇区B扇区C扇区H扇区......应用程序扇区CAN升级扇区初始跳转扇区FLASH入口域A扇区跳转域B扇区编程标志域B扇区跳转域C扇区编程标志域C扇区跳转域工程文件组织:B扇区程序以常量表格形式被嵌入到应用程序工程中。该表格被应用程序工程链接到B扇区。基本CAN升级工程,最终程序被分配到A扇区和B扇区。其中在A扇区生成的程序与应用工程完全一样。该工程文件输出的烧写文件(.hex)被转换为常量表格存放于.c文件中,用应用程序调用。从而实现两工程文件独立编辑,升级和修改。B扇区与应用扇区独立执行,任何时候都会有一个,且都包含有CAN升级功能,若程序升级过程中出现掉电,通信中断等异常情况,DSP中始终包含一个独立运行的程序,并可对未升级成功的扇区再次升级。常量表格的实现原理:编写一个包含CAN升级基本功能的工程文件,此工程中A扇区与应用工程中的A扇区完全一样,其他功能程序被链接到B扇区中,解析此工程文件的HEX文件,可分析得出B扇区所有