基于串口的F2811程序在线升级

2019-06-27 09:53:30严建龙
微处理机 2019年3期
关键词:机软件上位串口

严建龙

(洛阳栾川钼业集团股份有限公司选矿三公司,河南栾川471500)

1 引 言

随着嵌入式芯片在通信、电子、工业等领域的日益广泛应用,DSP 芯片烧写程序的难易程度和产品后续升级服务变得十分重要。目前TMS320F2811 芯片程序更新方法主要有两种:

1) 通过TI 公司提供的烧写工具,利用JTAG 仿真器进行程序的擦除、烧写等操作;

2) 通过引导加载程序的下载功能,通过上位机软件将经转换后的程序文件经过各种接口烧写至片内 Flash 中[1]。

第一种方式便于跟踪调试,但在实际应用中增加了电路板体积,需将产品机壳打开,操作繁琐,维护性差,用户体验差,在产品量产后严重制约效率,在一些特殊场合JTAG 接口会影响产品工作的可靠性;而后者则大大降低了维护成本,有效提升了升级效率及可靠性,尤其是在产品量产阶段具有十分可观的经济价值[2]。

实现基于串口的TMS320F2811 程序在线升级,主要需完成以下两个方面工作:编写基于串口通信的BootLoader 引导程序;制定上位机与MCU 间通信协议。

着重针对以上两点具体的实现方式进行详细的阐述及讨论。系统工作原理如图1所示。

图1 系统工作原理框图

2 TMS320F2811内核软件及硬件设计

2.1 MCU软件模块划分

F2811 软件中包含两个CCS 工程,其中工程A为辅助软件升级程序,必须通过J-Link 进行烧写;工程B 为待进行升级程序,既可通过J-Link 进行烧写,也可通过串口与上位机通信,以在线升级方式进行烧写。工程A、B 均须按照要求分配地址空间。

2.2 Flash地址空间分配

F2811 的 Flash 大小是 128k×16,分为 10 个Sector,每个Sector 有其各自的大小[3],地址区域划分的详细信息见表1。

将Flash 区域重新划分,具体见表2,可实现根据串口指令进入原始程序,或者新程序,并且在Bootloader 过程中对设备进行更新[4]。

表1 F2811 Flash Sector 地址区域划分

表2 F2811 Flash Sector 地址区域重新划分

3 BOOT功能的设计与实现

软件在运行过程中,若串口收到进行程序升级指令后,BOOT 程序首先检测当前软件所处的有效区标志,其中辅助升级程序在段J 位置设置为A区,待升级程序在J 位置设置为B 区,擦除处于非有效区的Flash 空间,待擦除完毕后,通过对话框形式选择待烧写的hex 文件,之后软件将自动重启,若软件之前处于A 区,则完成软件的在线升级;否则软件处于B 区则重复上述步骤完成软件的在线升级。系统软件主程序设计具体流程如图2所示。

在擦除A 区过程中若出现异常情况,导致A 区应用程序不可用,但由于B 区中的更新程序完好,当系统重新上电运行时,BOOT 程序将通过B 区将辅助升级软件重新下载到A 区,自动重启后从A 区运行,可执行后续的升级操作,提高了整个系统的可靠性。

图2 系统软件主流程图

Boot 中操作函数均通过CCS 开发环境制作成.lib 文件[5],辅助升级程序和待升级程序均可以调用,其中重要的函数如下:

unsigned int Get_Active_Section(void); //检测软件有效区标志,返回值A 或B

void Enter_Update (int Erase_A); //根据所处区域,进行flash 擦除、软件升级操作

4 串口在线升级操作实现

4.1 MCU存储区实现

存储区实现主要是通过.cmd 文件进行[6],辅助升级程序与待升级程序的设置具体如下[7]:

4.2 MCU更新数据实现

MCU 更新数据采用 Intel HEX 文件[8],若要实现该HEX 文件,需使用hex2000.exe 工具和批处理文件out2hex.bat。具体内容如下:

此program.cmd 文件的内容如下:

将批处理文件 out2hex.bat、hex2000.exe、program.cmd 和CCS 开发环境中编译生成的first.out文件放在同一路径下,双击out2hex 文件即可。

4.3 MCU与上位机软件命令交互

F2811 与上位机软件之间的命令交互,主要包括进入程序升级操作、擦除操作、发送程序数据操作、升级完成等,各项操作指令有对应帧头、帧尾及校验字节,保证了数据传输和交互过程的准确性及可靠性。

4.4 烧写步骤

系统上位机软件界面如图3所示,包括操作按钮、程序文件选择对话框、程序运行状态显示框等。

图3 上位机界面

在上位机界面选择相应串口号,配置串口通信的参数为:波特率115200bps,数据位8,起始位1,停止位1,无奇偶校验位。

点击“start”按钮启动更新模式,然后按照提示框一步步完成软件的串口在线升级,软件完成在线升级后,将自动进行软件重启,通过上位机软件可查询升级后的软件版本号,以确定软件是否升级成功。

5 结束语

通过对基于串口TMS320F2811 芯片BOOT 引导程序原理的详细阐述,分析了具体的实现步骤和方法。提出的基于串口的TMS320F2811 程序在线升级方法具有通用性,对于其它嵌入式芯片的实现具有一定的借鉴意义。实际应用结果表明,基于串口的在线升级方法可靠性高,达到了预期的效果,大大提升了实际工作效率。

猜你喜欢
机软件上位串口
浅谈AB PLC串口跟RFID传感器的通讯应用
特斯拉 风云之老阿姨上位
车迷(2018年12期)2018-07-26 00:42:22
“三扶”齐上位 决战必打赢
基于ZigBee和VC上位机的教室智能监测管理系统
道岔监测系统上位机软件设计
基于正交试验法的北斗用户机软件测试用例设计
USB接口的多串口数据并行接收方法探索
PCI-e高速数据采集卡的驱动与上位机软件设计
电子器件(2015年5期)2015-12-29 08:43:12
基于蓝牙串口适配器的GPS接收机与AutoCAD的实时无线通信
地矿测绘(2015年3期)2015-12-22 06:27:26
以新思路促推现代农业上位
学习月刊(2015年3期)2015-07-09 03:51:04