一种基于DSP+FPGA架构的软件在线升级实现

2021-02-12 02:19
现代导航 2021年6期
关键词:格式文件字节上位

赵 飞

一种基于DSP+FPGA架构的软件在线升级实现

赵 飞

(中国电子科技集团公司第二十研究所,西安 710068)

为了解决在外场频繁升级DSP程序所带来的困扰,基于TI公司的TMS320C6416芯片平台,提出了一种基于DSP+FPGA硬件架构的软件程序在线升级方法,研究并实现DSP程序的在线升级过程以及上电后的启动引导流程。经项目实际验证该方法具有实现简单、可靠性高等优点。

TMS320C6416;在线升级;启动引导

0 引言

在对TMS320C6416芯片进行应用时,经常在交付用户使用以后,也需要对DSP程序进行更新升级,传统的升级方法是将设备的盖板打开,使用CCS软件和仿真器连接设备的DSP芯片,将新的可执行程序离线升级到与DSP所连接的Flash芯片中,然而这样经常需要技术人员去奔赴外场,既费时也费力,而且偶尔也会因为仿真器无法连接上芯片从而导致无法升级或者升级失败的问题。为了解决这一问题,本文提出了一种采用基于DSP+FPGA硬件架构的在线升级方法,实现将可执行程序通过上位机发送到DSP,经EMIFA总线将数据存储到与DSP芯片相连接的SDRAM中,DSP芯片再将存储在SDRAM中的程序经EMIFB总线接口烧写到与DSP所相连的FLASH芯片中,将数字信号处理板重新上电后经Boot Loader程序进行二次启动引导,从而完成软件的在线升级过程[1]。

1 硬件平台设计

1.1 硬件平台组成

基于DSP+FPGA架构在线升级设计方案的硬件平台如图1所示。

图1 硬件平台框图

在线升级的硬件平台主要由一片FPGA、一片DSP和上位机组成。DSP和FPGA之间通过EMIF接口连接,上位机和FPGA通过RS232连接。其中上位机的作用是将在线升级程序的Bin格式文件通过RS232接口发送给FPGA,FPGA再通过EMIF接口将被升级的Bin格式文件发送给DSP,DSP通过EMIFA总线将收到的Bin文件存储在和DSP芯片相连的SDRAM中,存储完成后DSP芯片再通过EMIFB总线将存储在SDRAM中的Bin文件烧写到FLASH中去。

1.2 TMS320C6416芯片的内存空间分配

TMS320C6416芯片的内部RAM的大小为1M Byte,Boot Loader程序和用户程序共享这1M Byte的存储空间。其中L1段为存放Boot Loader引导程序空间,VEC段为中断向量表的存储区域,IRAM为用户程序的代码和变量区域,SDRAM为数据存储区域,其内存分配情况如图2所示。

图2 程序内存空间分配

1.3 BIN格式镜像文件的生成

打开CCS5.5软件,采用仿真器连接DSP芯片。在View菜单栏下选中Memory Browser,在Memory Browser的地址栏中输入内部RAM的起始地址0x00,根据图2中的内存分配和内存使用情况,对所需保存的Bin格式文件大小进行计算。计算方式如下:

Bin文件大小=(L1+VEC+IRAM)/4

即:Bin文件大小=(0x400+0x400+0x32ff9)/4=0xCDFE

因FLSAH芯片每个片区的大小为0x20000,因而可以适当扩大IRAM的值,但IRAM的长度不能超过图2中IRAM所分配的长度大小,即0x40000。

2 在线升级流程

对程序进行升级前,需要对所要升级的Bin格式文件做一定的预处理。程序更新指令格式如图3所示,在Bin格式文件前需要添加程序运行体加载头(长度为14 Byte)。程序更新指令文件的累加和校验字的格式由3部分内容(“保留3字节”+“加载时间7字节”+“数据主体”)计算的校验字,其长度为4字节,3部分内容按字节累加的和,累加和长度为32位的值,在进行累加时不进行数据截断,为实际的累加值;加载时间采用BCD码格式,如20180905110101,表示2018年9月5日11时1分1秒。

图3 程序更新指令格式

程序升级主要流程如图4所示,当DSP收到在线升级命令时先对命令进行校验,若指令校验正确则开始接收上位机分包下发的DSP Bin文件,每包数据长度为256 Byte,DSP收到数据后对所收到的每一帧数据进行程序更新应答,若应答成功,再发送下一包数据,将应答成功的数据存储到SDRAM中。当收到结束帧时,对存储在SDRAM中的数据开始计算累加和,将此累加和与上位机所下发的累加和进行比较,若相等则从SDRAM中取出存储的DSP Bin文件,开始进行升级操作,升级成功则发送成功消息到上位机,若失败则发送升级失败原因到上位机,以便软件开发人员进行故障排除。升级完成后,对设备进行断电,重新上电以便对DSP芯片进行复位,上电后先根据程序加载时间判定新程序是否升级成功,再根据功能来判断新升级的程序是否能正常运行[2]。

图4 程序更新流程图

3 程序引导启动过程

当板卡上电复位时,DSP自动搬运Nor Flash的1 KB的Boot Loader程序,Boot Loader程序运行从Nor Flash的1 KB之后读取DSP用户程序并加载。启动选择EMIF方式启动。其中EMIFB总线选中CE1控制寄存器,映射到FLASH中的0x64000000起始地址。Boot.asm文件中的EMIF总线配置程序代码如下[3]:

_boot:

mvkl EMIFB_GCR,A4;初始化全局控制寄存器

mvkl EMIFB_GCR_DATA,B4

mvkh EMIFB_GCR,A4

mvkh EMIFB_GCR_DATA,B4

stw B4,*A4

mvkl EMIFB_CE1,A4;初始化CE1控制寄存器

mvkl EMIFB_CE1_DATA,B4

mvkh EMIFB_CE1,A4

mvkh EMIFB_CE1_DATA,B4

stw B4,*A4

mvkl 0x00000400,A4

mvkl 0x64000400,B4

mvkh 0x00000400,A4

mvkh 0x64000400,B4

对于C64x系列应用程序需要采用二级引导,因为程序的长度一般会大于1K字节(一级引导时所复制的长度)。使用两级引导加载程序的过程如图5所示,C64x的两级引导步骤如下[4]:

(1)器件复位。DSP复位引脚上的低电平使得器件进入复位状态。

(2)一级引导器从CE1空间复制固定长度的代码到内部RAM的0x0地址,所复制的内容为二级引导代码。

(3)二级引导代码复制完成后,对CPU进行复位,使得CPU从0x0地址开始执行,即二级引导代码。二级引导将把应用程序代码复制到内部的指定位置,并跳转到程序入口_c_int00。

(4)执行_c_int00,建立C运行环境,如果使用了DSP/BIOS需对其初始化。

(5)C运行环境建立好之后,运行主函数main()。如果使用了DSP/BIOS,进入DSP/BIOS调度。

通过上述步骤,应用程序就能自动运行起来。

图5 C64x两级启动引导流程

4 结束语

本文针对DSP TMSC6416芯片的软件在线升级问题,详细介绍了软件在线升级的原理和实现方法,并且介绍了软件升级完成后的启动引导过程。采用此方法能方便地实现对远端设备的程序升级,经验证此方法程序升级简单,且稳定可靠,并已应用在多个项目中,取得了良好的效果。

[1] 钟睿. DSP技术完全攻略[M]. 北京:化学工业出版社,2015.

[2] 姚昱萱. 基于TMS32064xx芯片系统的在线升级设计[J]. 科技信息,2013(5):272-274.

[3] 李鹏. DSP在线升级与资源优化再配置[J]. 计算机工程,2008,34(17):225-226.

[4] 尹良镜,王东升. 基于TMS320F28335的CAN总线的在线升级[J]. 机械工程与自动化,2018,4.

Software Online Upgrade Implementation Based on DSP and FPGA Architecture

ZHAO Fei

In order to solve the trouble caused by the frequent upgrade of DSP program in the outfield, based on TMS320C6416 chip platform of TI company, an online upgrading method of software program based on DSP and FPGA hardware architecture is proposed. The online upgrading process of DSP programs and the boot process after power-on are studied and realized, which is verified by the actual project The method has the advantages of simple implementation and high reliability.

TMS320C6416; Online Upgrade; Boot Loader

TP368.1

A

1674-7976-(2021)-06-462-04

2021-09-27。

赵飞(1990.09—),陕西西安人,硕士,工程师,主要研究方向为陆基无线电导航和数字信号处理。

猜你喜欢
格式文件字节上位
No.8 字节跳动将推出独立出口电商APP
基于WebGL的轨道交通BIM轻量化应用方案
使用“格式文件”将徕卡仪器数据导出成cass 格式的方法
No.10 “字节跳动手机”要来了?
特斯拉 风云之老阿姨上位
简谈MC7字节码
“三扶”齐上位 决战必打赢
基于ZigBee和VC上位机的教室智能监测管理系统
编写徕卡TS02型全站仪格式文件的方法探索
回归基础 到底什么是RAW格式文件?