基于TMS320F2812程序的远程升级方法

发布时间:2012-04-26  

TMS320F2812(简称F2812)是TI公司推出的C2000系列性能最高的一款芯片,也是目前DSP领域最先进、功能最强大的32位定点DSP 芯片。它既具有数字信号处理能力,又具有强大的事件管理能力和嵌入式控制功能,其片内自带了128 K字的Flash,可以将程序直接写入片内运行,开发和使用都非常方便。自推出以来,已被国内的各行业的开发工程师用于开发各种先进的监控产品。各种监控产品在线运行时,难免会发现和需要处理各种意料不到的问题,有必要及时升级相应的程序。F2812的程序通常需要专用的烧写器和软件才能写入,但由于空间距离、时间、现场条件等多方面原因的限制,现场运行的设备很难在就地进行程序升级。因此,本文探讨了如何利用设备现有的RS-232数据通信串口进行远程的程序升级方法。

1 设备硬件构成

下面针对一台现场在线运行的F2812监控设备进行远程程序升级。该设备通过RS-232串口和外挂的GPRS模块与主站PC机可进行点对点通信,其硬件通信平台的构成如图1所示。

各硬件模块的主要功能:

①主站PC机,负责对远程F2812监控系统发操作命令,收集实时数据等。

②GPRS通信模块,通过RS-232接口分别与主站PC机和监控系统连接,实现串口到Internet,远程数据透明传输。

③F2812监控系统负责执行上位机的命令,采集现场数据、存储并定时发送到上位PC机。F2812监控电路板上外扩有128 K字的RAM存储,用于存储采集到的数据,以及进行程序升级时,存储上位机传送过来的升级程序数据,待数据传送完成后,以数据块的方式将升级程序写入 Flash内,对程序进行烧写固化。

程序的远程升级方法主要用上位PC机,通过专用工具软件,将升级程序数据分割发送,下位监控系统收到程序数据后,先将数据放入内存指定的区域,待到全部数据收集结束;同时进行CRC校验,正确后,调用预先嵌入的Flash烧写函数进行数据写入,即可实现程序远程升级功能。

2 软件设计方案

2.1 功能分块

为了能够顺利实现程序远程升级功能,在程序的设计编写过程中,可将F2812监控程序有计划地分成几个主要功能模块:BIOS初始化模块、基础功能模块、应用程序模块。各模块的构成和地址安排如表1所列。

DSP的监控程序经CCS开发系统编译后,程序即生成一个*.out类型的COFF公共目标文件,公共目标格式文件对程序各模块进行分段存放,主要有程序段(.text)、数据段(.data)、用户自定义段(.Myprg)等,如程序未进行特别指定,编译后的程序模块会自动分配到公共目标格式文件的程序段(.text)内。为了能够实现程序可远程升级功能,需要应用程序模块单独映射到用户自定义模块内,升级过程只需对用户自定义模块(.Mprg)所在的 Flash地址区域进行擦写即可,这样还可确保监控程序的基本功能不受Flash擦写过程和擦写失败的影响,这也是程序能否实现远程升级功能的关键。

为此,需在对F2812的监控程序进行如下分段设计:

①在*.cmd文件的段地址映射内增加一个用户自定义段(.Myprg),将应用程序模块的映射地址与初始化模块和基本功能模块的映射地址分开如下(这样便于Flash的程序在线升级时分块写入):

②对映射在应用程序模块内的每个函数,都需要用以下方法进行指定,使程序编译后,应用程序模块内的函数映射到用户自定义段(.Myprg)内。

经过以上的程序分段和设定,使得程序编译后,各功能函数分段清晰,为F2812监控程序在线远程写入做好了准备。

2.2 Flash在线写入

F2812的Flash数据写入通常包括擦除、烧写和校验3个步骤:

①擦除就是将Flash内的数据0位都变成1,经过正确的擦除步骤后,Flash内所有16位数据都变为0xFFFF。

②烧写程序数据的过程就是将待写入的数据中对应为0位写入,使得Flash中的相对应位变为0,1对应的位保持不变。

③校验过程在烧写结束后,是将烧写入的数据读出,并与原来的数据进行比较。全部正确,则数据写入Flash完成;若校验不正确,则必须重新擦除和写入,5次校验未能通过,数据烧写失败。

F2812的Flash烧写与较早的C2000系列如F2407有所不同,程序的擦除、烧写和校验主要通过调用Flash_Erase()、 Flash_Program()、Flash_Verify()这3个函数来完成。这3个Flash的操作函数已封装在TI公司开发的库文件 Flash2812_API_V210.lib内,使用时只需在编译时将该库文件加入即可,非常方便使用者调用,具体的使用方法可参阅相关的参考资料。

需要注意的是,对Flash的所有操作函数都必须首先载入到具有0等待周期的RAM内才能执行,否则Flash的烧写过程将会出错。执行在线写入前,需要先调用函数Flash_MemCopy(),将Flash_Erase()、Flash_Program()、Flash_Verify()这3个函数的执行代码调入F2812的RAM空间内。Flash_MemCopy()也是封装在Flash2812_API_V210.lib库文件内的函数。

3 程序远程升级

程序的远程升级功能就是通过升级应用程序模块的数内容来实现的,其主要步骤如下:

首先,程序数据的提取。监控程序原文件经过CCS编译后,生成*.OUT的公共目标格式COFF文件。通常用仿真器烧写程序时,公共目标格式文件,即*.out文件,由CCS的Flash烧写插件对其进行解读,并将数据输出到F2812内进行烧写。本文用C++Builder开发了一个专用工具软件,根据公共目标格式文件的结构,对*.OUT文件进行解读,并提取出应用程序模块段(.MyPrg)内的程序数据,并将数据通过GPRS通信模块进行远程传送。其次,程序数据的分割。GPRS通信平台要求每个数据包小于或等于256字节,因此,需要将提取到的程序数据进行分割,由专用工具软件将应用程序模块分割为若干个196字节大小的数据包,根据通信协议与F2812监控系统进行远程通信。

最后,程序数据的写入。程序数据经GPRS远程通信接收完毕后,可向F2812监控装置发程序升级指令。根据预先分段设定,即调用Flash操作函数 Flash_Erase()、Flash_Program()、Flash_Vetify(),将数据写入用户自定段.Myprg所在的地址区域,完成程序的远程升级。

结 语

本文从工程的实际需要出发,分析和阐述了C2000系列的TMS320F2812程序远程升级的步骤和方法,有效解决在线远程运行系统的程序升级的难题,对其他类似系统的程序升级也具有借签意义。

文章来源于:ECCN    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。

相关文章

    据写入用户自定段.Myprg所在的地址区域,完成程序的远程升级。 结 语 本文从工程的实际需要出发,分析和阐述了C2000系列的TMS320F2812程序远程升级的步骤和方法,有效解决在线......
    点控制器TMS320F2812,主要完成对电机的控制,以及反馈给主控制器ARM9当前的运动状态。控制系统整体结构设计框图如图1所示。 2 串行通信设计本系统中主控制器ARM9与从控制器TMS320F2812之间......
    就可从表盘的第三组(表盘上标有hfe的刻度线上)数字上就可直接读出所测晶体管的电流放大倍数。但对于mf368型万用表,对硅管从第四条(hfesi)刻度线读取hfe值,对于锗管从第五条(hfege)刻度线读数。 ......
    ) */ /************************************************************************//* Name:AT24C02存储器的读写程序,用到I2C总线,含相对独立的I2C总线读写函数 *//* Language: C51单片机编程语言 *//* Platform: Win98,Intel......
    基于PC104嵌入式微机和TMS320F2812实现机器人人机界面的设计;嵌入式系统以其高性能、低功耗、低成本的优点,已经在很大程度上改变了人们的生活。如,MP3播放器、智能手机、数码......
    PCLK /2。 MOSI (Master Output Slave Input):主设备输出 / 从设备输入引脚。主机的数据从这条信号线输出,从机由这条信号线读入数据,即这......
    能力,用于用户临时数据存放,但是需要用户外部扩展。可以使用MOVX指令访问外部RAM,外部RAM访问由地址总线触发,数据总线读写,P0、P2用于生成16地址,P0还时分复用兼用于数据总线。 SFR属于......
    设计开发的智能移动机器人是一个以PC104嵌入式微机为中心处理器,TMS320F2812为运动控制器,超声波传感器作为避障的集合环境感知、动态决策与规划、行为控制与执行等多种功能于一体的综合系统,主要......
    input               ebi_rd_n;                                   //  外部总线读信号线  34 input......
    ) 信号转换为实际的差分电压信号,供 CAN 总线读取及解释。CAN 总线架构如图 1 所示。 图1 汽车 CAN 总线架构 CAN 总线的瞬态保护 为具有 50 到 100 个 ECU 的严......

我们与500+贴片厂合作,完美满足客户的定制需求。为品牌提供定制化的推广方案、专属产品特色页,多渠道推广,SEM/SEO精准营销以及与公众号的联合推广...详细>>

利用葫芦芯平台的卓越技术服务和新产品推广能力,原厂代理能轻松打入消费物联网(IOT)、信息与通信(ICT)、汽车及新能源汽车、工业自动化及工业物联网、装备及功率电子...详细>>

充分利用其强大的电子元器件采购流量,创新性地为这些物料提供了一个全新的窗口。我们的高效数字营销技术,不仅可以助你轻松识别与连接到需求方,更能够极大地提高“闲置物料”的处理能力,通过葫芦芯平台...详细>>

我们的目标很明确:构建一个全方位的半导体产业生态系统。成为一家全球领先的半导体互联网生态公司。目前,我们已成功打造了智能汽车、智能家居、大健康医疗、机器人和材料等五大生态领域。更为重要的是...详细>>

我们深知加工与定制类服务商的价值和重要性,因此,我们倾力为您提供最顶尖的营销资源。在我们的平台上,您可以直接接触到100万的研发工程师和采购工程师,以及10万的活跃客户群体...详细>>

凭借我们强大的专业流量和尖端的互联网数字营销技术,我们承诺为原厂提供免费的产品资料推广服务。无论是最新的资讯、技术动态还是创新产品,都可以通过我们的平台迅速传达给目标客户...详细>>

我们不止于将线索转化为潜在客户。葫芦芯平台致力于形成业务闭环,从引流、宣传到最终销售,全程跟进,确保每一个potential lead都得到妥善处理,从而大幅提高转化率。不仅如此...详细>>