基于CAN总线的TI DSP 28335程序烧录技术

时间:2022-09-01 08:36:31

基于CAN总线的TI DSP 28335程序烧录技术

本文详细介绍了目前DSP芯片程序烧录的一般方式和其存在的诸多问题,基于此原因针对性地开发了一种基于CAN总线的TI DSP 28335芯片程序的烧录方法。此方法接线简单便捷,烧写速度比传统方式快几倍。

电机控制器主控芯片目前大多采用TI公司的数字信号处理器(简称DSP)芯片,如TMS320LF2407,TMS320F2812,TMS320F28335(下文简称28335)等,28335又因具有高性能静态COMS技术,主频高达150MHz,还具有高性能的32位CPU以及增强型的CAN模块等优点而成为当前电机控制器主控芯片的首选。

目前28335芯片程序烧写技术背景

目前,常用的DSP程序烧写有三种方法:利用仿真器烧写、通过拨码开关选择芯片引导程序及CAN通讯单行烧写。

大多目前,DSP程序烧写一般是利用仿真器完成来进行。DSP与仿真器通过JATG接口(2×7的双排插针)进行连接,而双排插针只能布置在控制板上,无法引出到控制器壳体外,控制器一旦封盖后就不方便再进行程序升级;虽然在产品定型前的就算在程序调试阶段可以使用仿真器进行程序烧写,但仿真器插拔次数过多接口就会造成接口松动,造成接触不良,经常出现导致DSP与CCS应用软件连接不上的问题故障。

后来,有些也有部分用户通过目标板上的拨码开关选择芯片引导程序,采用SPI\SCI串口或CAN通讯等方式烧录程序。由于这种方式需进行拨码开关选择,均需对目标板进行操作,且SPI\SCI为串口通讯,不能实现远程烧写,且烧写时间长,都不是程序烧写的最佳方式。

再后来又出现了CAN通讯单行烧写是另一种烧写方式,其应用于CAN通讯邮箱少的DSP芯片,通过采用少量邮箱进行数据传送,等待上位机目标代码完整传送完一行数据后将该行数据烧写到FLASH对应地址中,完成本行烧写后再进行下一行数据传输。由于采用较少邮箱传送数据,决定了通讯传输速度慢,进而影响整个程序烧写的速度,这种方式也不是DSP28335最佳CAN通讯烧写程序方法。

鉴于这些缺陷,以上几种烧录方法对控制器在厂内的程序调试和用户现场的程序升级均不能方便完成。因此,我们针对28335芯片设计开发了一种快速、便捷的利用CAN通讯进行DSP程序代码烧录的方法。

28335平台CAN程序烧写的技术方案

工作原理介绍。本技术采用上位机程序,将CCS编译输出的.OUT文件烧录到DSP28335控制芯片中,计算机与DSP28335之间的通讯工具可采用以太网CAN-BUS进行数据传输,因此可利用以太网进行控制芯片的程序烧写,也可采用普通CAN卡进行上位机与DSP28335之间的数据传输进行程序烧写。烧写系统构成。本技术采用上位机程序,将CCS编译输出.的OUT文件烧录到DSP28335控制芯片中,计算机与DSP28335之间的通讯工具可采用以太网CAN-BUS进行数据传输,因此可利用以太网进行控制芯片的程序烧写,也可采用普通CAN卡进行上位机与DSP28335之间的数据传输进行程序烧写。

程序烧写过程中,上位机采用VC6.0软件进行编写,上位机能将.OUT文件转换为16进制代码,并通过CAN邮箱将程序代码发送至DSP28335芯片,实时监测DSP28335回传标志,以确定下一步进行的烧写流程;为确保CAN通讯掉线后或DSP28335烧写错误后重新进行程序烧写,上位机具有重新烧写功能。

DSP28335程序的需编写程序烧写功能模块,其通过定时查询上位机程序烧写指令,根据指令进入程序烧写流程。为配合上位机烧写流程,DSP28335程序根据烧写状态,回传烧写其状态到上位机,包括烧写正确、连续烧写、重新烧写及烧写完成等状态标志。为提高烧写速度,程序烧写功能模块充分利用了DSP28335的32个邮箱与上位机进行数据交换,采用多行目标程序同时传输的方式进行数据传输。

程序烧写的具体过程包含以下几个步骤:

工作过程描述。用仿真器将包含CAN烧写程序功能的代码烧录到DSP(DSP芯片第一次下载用户代码所采用的烧写方式);根据硬件线路连接图将DSP的CAN总线与CAN卡以及计算机进行连接;利用CAN通讯将上位机“FLASH擦除”和“程序烧写”命令发送到DSP;DSP收到命令后进行相关参数配置、API版本校对及密码解锁等处理,如果以上处理成功则进行下一步,失败则提示上位机需重新进行第3步操作;DSP利用FLASH擦除函数对指定FLASH区进行擦除,擦除成功进行下一步,失败则提示上位机需重新进行第3步操作;DSP对烧写模块子函数变量进行初始化配置;通过上位机界面选择需要烧录的目标程序(.OUT文件),上位机软件将其转化成16进制格式文件,选择界面上的“程序烧录”,上位机软件将目标程序通过CAN总线传输程序代码,同时下传代码校验码;DSP接收到数据后进行校验及解析,校对代码是否正确,如果有误则将错误信息传送给上位机,上位机进行重新烧录等处理;代码正确则利用FALSH烧录函数进行代码烧录;循环直到DSP解析出程序烧写已经完成时,DSP进入初始化程序段,并将烧写完成标记上传给上位机,程序烧写操作结束。

CAN程序烧写的特点和优点

利用CAN通讯进行DSP程序烧写的特点:本技术为提高CAN烧写速度,上位机采用VC6.0进行编写,其能完成下位机程序(.OUT文件)转换,并运用VC多线程技术,缩短接收和下传数据等待时间以及接收和下传数据之间的衔接时间。充分利用DSP28335多邮箱的优势,采用一次多行数据传输、烧写,在程序中采取了防跳行、漏行措施,在确保烧写正确的前提下,实现高速CAN通讯烧写程序。

利用CAN通讯进行DSP程序烧写的优点:相对于传统的程序烧写方式,本技术实现了远程烧写程序,极大地方便了对目标板进行程序升级、替换。在程序烧写方式中利用DSP28335芯片CAN通讯邮箱多的优势,采用多行传输数据、烧写,相对于单行烧写技术,本技术将锄程序烧写速度提高近20倍,本技术在实际烧写447,124字节大小的.OUT文件所需时间在5S左右,极大提高了对目标板进行程序升级、替换调试程序的效率。

由于本技术可以通过英特网进行数据传输和代码烧写,鉴于以上优点,该技术可将广泛应用于电动车电机控制器的厂内DSP程序调试和用户现场DSP程序的升级换代。由于本技术可以通过英特网进行数据传输和代码烧写,为以后产品的产品程序升、用户服务提供了极大的方便,同时,也为公司节约了出差成本,用户也能得到及时的升级服务。也进一步降低了公司的服务及开发成本。

上一篇:高速公路桥头跳车(颠簸)病害处治工程实践 下一篇:“出名非我愿,努力就够了”