(中国电子科技集团公司第二十研究所 陕西西安 710068)
传统DSP嵌入式软件的升级需要使用专用工具进行升级,在拆卸产品的过程中不仅容易受环境及外界因素影响,而且造成时间的浪费和人工的消耗。本文研究设计了一种基于FT-M6678芯片的嵌入式软件在线升级方法,可在上位机引导下通过(Serial RapidIO,SRIO)总线实现嵌入式软件的在线升级,解决了DSP嵌入式软件必须通过下载器进行烧写的缺点,提高了系统嵌入式软件升级的灵活性、可靠性,通过在某设备的控制系统上对多组件进行软件在线升级,已充分验证了该方法的可行性。
关键词:DSP,FT-M6678,软件在线升级,Serial RapidIO
引言
DSP具有系统构成灵活、可编程、使用面广的特点,使其在通信、航空航天、医疗仪器及工业控制中成为不可或缺的数字信息处理的计算引擎[1]。现如今很多设备在产品集成后内部各嵌入式软件仍具有较高的维护和升级频次,传统嵌入式软件需通过仿真器或其他专用设备对程序进行烧写升级,在此过程中容易收到外界因素影响,导致升级的成功率大幅度降低,本文提出一种基于FT-M6678芯片的嵌入式软件在线升级方法,可解决此问题,高效、快速地实现设备中软件的维护和升级。
FT-M6678是国防科技大学研发的新一代国产化高性能多核浮点数字信号处理器,从功能上主要包含CorePac内核、核外存储系统、互联网络、高速接口、低速接口集成外设等部分。FT-M6678提供了多样化的通信接口来满足不同带宽和速率的数据传输需求。为了解决多核心数据交互需求,采用多核导航器的队列管理子系统(QMSS);为了满足大带宽,低延时的数据传输需求,提供了高速串行输入/输出口(SRIO)、直接存储器访问(DMA)、千兆以太网(GE)、高速串行计算机扩展总线(PCIE)等高速通信接口[2][3]。SRIO接口是嵌入式系统中最常用的高速通信接口,基于包交换提供了高可靠、高性能的高速互联接口,其优势在于高带宽和直接存储器访问特性[4]。
主要阐述了基于FT-M6678的嵌入式软件在线升级方法。采用的是通过SRIO总线接口与上位机进行通信,接收来自上位机的加载命令并在线加载需要加载的目标文件,然后根据加载命令执行软件固化操作,同时实时向上位机反馈加载状态与故障,功能结构图如图1所示。
图1 在线升级系统功能结构图
目标文件格式为OUT文件,上位机读取需要加载的OUT文件,拆分为多个数据包进行发送,即接收一包目标码便写入Flash一包。完成控制管理软件加载,首先需要擦除控制管理软件所在的扇区,擦除成功之后开始接收目标码,将当前包目标码写入Flash,写入成功反馈当前包接收成功,上位机开始发送下一包目标码。直至固化到Flash中的软件正确无误,系统回复烧写成功,然后对设备重新上电,新升级的程序即可正常运行。在线升级流程图如图2所示。
图2 在线升级流程图
3.1编译器支持
FT-M6678在开发环境上选用中国电子科技集团公司第三十二研究所开发的ReDe锐华嵌入式软件开发环境。ReDe开发环境不仅支持Windows操作系统,也支持Linux操作系统,可以在国产Linux操作系统上运行,极大的便利了算法开发,保证了软硬件安全[5]。软件升级所需的OUT格式目标文件在ReDe开发环境编译完成,目标文件如图3所示。
图3 生成的OUT文件
3.2上位机软件
上位机软件主要负责完成与目标程序的信息交互[6],以及程序数据包的发送,主要包括以下功能:
(1)扇区匹配功能:在用上位机软件进行升级之前,操作人员先浏览计算机中目标程序所在的位置,选择所需升级的目标程序,确认升级扇区匹配无误后进入软件在线升级流程,具体界面如图4所示。
图4 在线升级软件界面
(2)目标程序加载功能:进入在线升级流程后,上位机软件加载目标程序并进行分包处理,通过程序升级指令下发到目标设备。
软件升级完成后,上位机软件会提示升级完成,如图5所示。
图5 软件升级完成界面
用ReDe3.0.2编译出目标程序A_User.out,上位机软件发送升级指令,将A_User.out烧写到对应FLASH扇区中,设备重启,升级完成后DSP中的应用程序运行正常,表明上位机软件可正常接收应用程序数据并能正常地将数据烧写到FLASH中,与设计相符。通过多次实验证明,若操作人员熟悉流程,整个升级过程仅需要3~5分钟即可完成,大大减少了升级时间。
本文阐述了一种基于FT-M6678的DSP嵌入式软件在线升级方法,该方法可在产品集成状态下实现嵌入式软件的在线升级,解决了设备更新和维护程序拆装困难的问题,可通过SRIO总线实现目标程序的灵活升级,节省了人力,物力,时间成本,操作方便,降低了产品拆装过程可能造成的伤害。此方法在工程上具有应用价值,且可为其它平台的软件在线升级设计提供参考,具有很强的移植性和通用性。
参考文献
[1]高艳鹍,刘 华,刘朝晖. 基于TMS320C6678 DSP+天熠嵌入式操作系统的软件模块动态加载的研究与实现[J].仪器仪表用户,2023
[2]王正行,曾令将. 基于飞腾M6678的向量数学库优化技术研究[J]. 舰船电子工程,2021
[3]飞腾公司.FT_M6678产品使用手册[M].天津,2020
[4]张德民.基于SRIO的FPGA间数据交互系统设计与应用[J]. 重庆邮电大学学报:自然科学版,2013
[5]武琳凯. 基于国产DSP的通用信号处理平台软件的设计与实现[D].西安电子科技大学,2022
[6]尹良镜,王东升.基于TMS320F28335的CAN总线的在线升级[J].机械工程与自动化,2018
[7]刘政华,常培平.RS422总线的TMS320F2812软件在线加载方法[J].单片机与嵌入式系统应用,2019
[8]倪庆生,倪云龙,潘晓阳,等.基于CAN总线的TMS320F28335远程在线升级方法设计[J].电子与封装,2021
[9]李文明, 修吉宏, 陈浠惠等. 基于DSP的远程终端设计与实现[J]. 微计算机信息, 2011