海军装备部 陕西 西安 710054
摘要: 针对某型捷联航姿系统中导航软件更新需求,提出了在DSP系统中利用二级引导通过串口实现导航软件更新。设计实现了基于串口的DSP软件更新方法,并在某型捷联航姿系统中进行了验证和应用。
关键词: JTAG;二级引导;DSP;UART;捷联航姿
UART Update of DSP Allocation Software in Navigation Computer System
Shiwei
Shaanxi Baocheng Aviation Instrument CO.,LTD , Baoji 721006, China
Abstract:The design principle of the test system for AHRS is presented,the handware and software of the test system are also described.
Key words:JTAG;DSP;UART;navigation computer
1引言
捷联航姿系统是一种自主式、低成本惯性导航系统,主要为外界提供航向和姿态信息,并能直接输出与载体坐标系一致的三轴角速率和线加速度。近年,随着科学技术的高速发展,越来越多的捷联航姿系统采用 浮点DSP芯片实现航姿系统小型化、高精度、实时性和高可靠性。
DSP软件一般的编程方法是,通过DSP仿真器接至DSP的JTAG接口,在PC机上使用CCS软件对航姿软件进行更新。航姿系统交付用户后,采用这种软件更新方式必须将产品的外盖打开,不便于系统的维护更新。
本文介绍了一种利用C6713型 DSP的二级引导功能,在某型航姿系统中实现通过串口对航姿导航软件不开盖进行软件更新,提高了航姿系统的安全性和可维护性。
2 DSP启动引导原理
TI公司的DSP芯片出厂时,在其片内ROM 中固化有引导加载程序(Boot loader)。其功能主要是完成将外部的程序加载到片内RAM 中运行,以提高程序的执行速度。C6713上电或系统复位时,Boot loader程序自动将位于Flash 地址空间(0x90000000~0x9FFFFFFF)开头的1 KB 代码传输到RAM 存储空间“0”地址处,这就是一次引导,传输完成后,程序从地址“0”开始运行。这些均由DSP 自动完成。很明显,一次引导的代码(不大于1k)不能满足航姿软件代码长度的要求, 因此就需要二级引导过程。
二级引导就是将DSP一次引导的1 KB 代码编写成一个搬移程序,将用户的主程序搬移到高速RAM 中,并且搬移完成后自动跳转至主程序入口处运行主程序。
图1 DSP上电启动示意图
传统的DSP程序更新一般先将编译连接好的二级引导程序、主程序和烧写程序按照先后顺序在PC机上的CCS环境下,通过仿真器将目标码下载至DSP 内部RAM,再执行烧写程序,将二级引导程序和主程序烧写到Flash, 然后断开仿真器。重新上电或复位DSP 板后,DSP加载Boot loader程序将Flash上0x90000000 -0x900003ff(1 KB)地址的数据全部搬移到DSP 内部“0”地址开始的空间中。搬移结束后,自动执行二级引导程序,再将主程序和中断向量表搬移到内部RAM 中开始执行主程序。
图3 上电启动执行图
3 串口升级程序设计实现
基于上述DSP启动原理,在二级引导程序后增加一个升级固件程序。升级固件程序的功能是实现导航软件更新,升级固件程序与导航软件各自独立,并在Flash中为两者分配了独立的存储空间。根据Flash容量大小及其地址空间映射设计,本系统中Flash空间分配结果见图4所示。
软件首次执行时,需将二级引导程序和升级固件程序在一个CCS工程中进行编译链接,这样可使二级引导程序直接获取系统升级固件的运行空间地址,便于上电后将其从Flash直接搬移至DSP中运行。将CCS工程编译链接后产生的代码通过仿真器下载到DSP中,再运行Flash烧写程序可将二级引导程序和升级固件程序分别烧写到图4中分配的地址空间中。
当完成二级引导程序和升级固件程序烧写后,DSP重新上电后,二级引导程序引导执行升级固件程序查串口是否有升级请求(等待00ms);同时,上位机需在DSP上电前通过串口反复发送升级请求连接指令;升级固件程序一旦接收到连接请求指令,便提示用户发送待更新程序大小指令,之后提示用户传输更新程序文件;接收完更新程序后,为避免误操作,升级软件再次提示用户确认进行软件更新选择;当用户发送“Y”后,升级固件程序根据接收导航程序数据大小计算地址空间,并将导航程序烧写至Flash中指定位置,从而完成导航程序的更新/升级,灌装/升级过程详见图6。
图4 程序在Flash中存放示意图
图5 升级固件程序流程图
图6 导航程序升级界面图
4 导航代码处理
由DSP 开发环境CCS软件生成的代码文件为通用目标文件格式(.out格式文件)。.out 文件格式是为模块化编程而开发,主要便于开发人员管理代码和系统存储空间的分配。此格式文件中不仅包含用户编写的代码和数据,还包括描述各代码段和数据段的运行地址空间、段大小以及开发软件版本号、代码开发时间等信息。而存放在Flash中的可执行代码必须是二进制文件,利用 TI公司提供了十六进制转换工具(Hex6x.exe),将在CCS环境下便已生成的.out导航程序转换为可以直接被DSP执行的为二进制文件格式,可将导航程序引导加载表通过DSP升级串行口传输给导航计算机系统,由DSP将此表烧写到FLASH中,以便上电后引导程序按照此表格式从FLASH中加载程序至DSP中运行。
5 结束语
通过基于串口的升级固件程序,捷联航姿系统仅需在生产过程中一次性通过CCS软件和DSP的JTAG接口,将二级引导程序和升级固件程序烧写固化到产品内部的Flash中,导航软件的灌装/升级使用产品对外维护接口中的串口进行实施,无需使用仿真器和JTAG,实现产品不开盖对维护,导航软件更新过程小于5 分钟,满足了导航软件现场快速维护的需求,极大地降低了导航软件灌装/升级的复杂度和专业技能要求、提高了产品的可维护性,避免了因现场开盖维护导航软件可能造成的软件和硬件故障,同时,本文所述的技术方法通过适应性改进可以方便的应用到其它类型的DSP系统上。
参考文献
[1]李方慧,王飞,何佩琨.TMS320C6000 系列DSPs 原理与应用.电子工业出版社,2005:
[2]Creating a Second-Level Bootloader for FLASH Bootloading on C6000(3)Application Report SPRA999A ? August 2004.
论文作者:师维
论文发表刊物:《防护工程》2019年12期
论文发表时间:2019/9/1
标签:程序论文; 固件论文; 串口论文; 软件更新论文; 主程序论文; 软件论文; 系统论文; 《防护工程》2019年12期论文;