基于TMS320F2812的产品预置参数在线调试研究

时间:2014-01-16

  摘要:产品批量生产时,由于元器件及结构装调等存在个体差异,使得每台产品的程序都需要根据实际情况进行适当调整,既费时费力也不利于产品的规范化管理。针对产品批量化生产的要求,提出了一种基于TMS320F2812的产品预置参数在线调试方法,可以通过上位机界面进行参数设置,同时实现在程序中烧写。该方法应用于光电设备批量生产过程中,大幅度减少了程序调试与烧写的工作量,同时提高了产品的可维护性,具有较强的应用推广价值。

  0 引言

  目前,各种光电设备被广泛地应用于军事领域和公安、消防以及环境监控等民用领域,它们在目标侦察、监视、预警、定位、导航、通信等场合起着重要的作用。随着需求的增加,机载光电设备的批量生产中由于元器件和结构装调导致的个体差异造成了每个设备的程序进行适当的参数调整,为了产品的规范管理,本文通过上位机调试界面进行参数设置,并烧写到伺服控制DSP中。

  TI公司推出的32位定点DSP控制器TMS320F2812,整合了DSP和微控制器的特性,频率高达150 MHz,是一款高性能32位控制专用芯片。采用它可以大大提高伺服系统的控制和速度。在存储器方面,TMS320F2812包括128 KB 的FLASH Memory、18 KB 的片上RAM 和4 KB 的BOOT ROM.在产品研发和生产阶段需要将用户程序烧写到FLASH 存储器中,以实现用户程序的脱机自动运行。当系统需要更新参数时,传统的方法是通过实地取下设备,连接仿真器来更新程序数据,尤其在户外等较为复杂的场合,直接取下设备、连接仿真器存在较大困难,有时甚至难以实现,此时通过上位机发指令的方法来更新程序中的数据就显得尤为方便。

  1 TMS320F2812 FLASH 烧写介绍

  TMS320F2812 FLASH 为了用户使用方便,提供了专用的针对FLASH操作的库文件及烧写步骤。用户在使用FLASH 用户编程接口时必须使用Flash2812_API_V100.lib库文件,然后按照以下步骤进行:

  (1)修改Flash281x_API_Config.h文件,此文件中主要是设置根据DSP的时钟频率;

  (2)将Flash281x_API_Library.h文件加入到工程中;

  (3)将Flash2812_API_V100.lib 文件加入到工程库文件中;

  (4)初始化PLL 控制寄存器(PLLCR);

  (5)将FLASH API功能拷贝到内部SARAM中;

  (6)初始化Flash_CPUScaleFactor;

  (7)调用擦除、写入、检查功能进行参数的烧写;

  (8)返回主程序。

  2 硬件

  本文提出了一种通过双口RAM与上位机通信来实现程序中参数更新的方法,该系统中DSP接收上位机发送控制指令及参数,根据指令执行不同的功能。DSP 接收控制指令,若程序不需更新,则直接跳转到其他应用程序入口;若参数需要更新,则调用更新服务程序,接收待更新数据、烧写FLASH,复位、跳转到应用程序入口。硬件框图如图1所示。

  

  3 软件

  3.1 软件流程

  DSP程序通过仿真器烧写到FLASH,其功能为:实现读取双口RAM数据并判断、烧写FLASH、复位跳转。

  软件流程图如图2所示。

  

  3.2 读取及处理双口RAM数据软件

  DSP读取外设双口RAM中上位机发送的指令及参数,根据协议读取固定地址的指令和参数,为了数据读取的可靠性,指令和参数均重复写在不同的三个地址,通过三判二,保证指令的可靠性。

  3.3 对片内FLASH的擦除、写入操作软件

  3.3.1 对片内FLASH的准备

  得到需要修改的参数值之后,需要将数据写入FLASH存储器进行存储。由于FLASH存储器必须以扇区为单位进行擦除和写入操作,因此必须对cmd文件进行相应的配置,使参数值单独放在一个扇区中,代码存储在其余的扇区中。把需要修改的数据值单独放在J扇区。

  3.3.2 片内FLASH修改流程

  把需要修改的数据值单独放在了J扇区,且J扇区中不再存储其他任何内容。这样,就可以对J扇区进行各种操作,而不用担心对系统的代码或数据产生影响了。

  为了对FLASH进行操作,需要用到TI为DSP2812提供的FLASH操作API函数库:Flash2812_API_V210.lib.这个库中包含了操作FLASH 的3 个重要函数,Flash_Erase,Flash_Program和Flash_Verify.写入完成后,程序切换到正常工作状态。将参数值写入FLASH的软件流程如图3所示。

  

  3.3.3 片内FLASH修改软件

  完整的擦写过程可分为以下几个步骤:

  关中断:在对FLASH 进行操作前,须先关闭全局中断。

  烧写过程:代码的搬移,将映射在“Flash28_API”段上的代码,复制到RAM空间去执行擦除过程:由于2812可擦除的FLASH 内存空间就是一个扇区,而不能单独擦除一个字。由于上述擦除的是J扇区,故可以在J扇区内写数据。

  校验过程:将已烧写数据与烧写数据逐个比较。

  在更新程序全部写入到FLASH 后,恢复程序运行主频,开始执行应用程序。

  代码如下:

  

  

  4 结语

  通过上位机调整参数,并传递烧写指令并将参数写入FLASH 中的成功应用,在大批量生产产品时保证了程序版本的一致性,状态可控,保证了产品管理的规范性;此方法可多次且可靠、快速地更新产品需调整特性的参数,方便了产品的调试,提高了产品的系统可维护性,具有较强的应用价值。(作者:赵嫔娅,渠继峰)

上一篇:基于μC/OS Ⅱ的三维打印机的控制系统研究
下一篇:基于虚拟通道的Flash映射技术

免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。

相关技术资料