基于 RS422 接口的 DSP28335 软件在线自更新升级方法研究

发表时间:2020/9/23   来源:《科学与技术》2020年14期   作者:杨明
[导读] 本文以某项目研制为背景,开展针对DSP TMS320F28335的嵌入式软件在线升级方法研究

        杨明
        贵州航天控制技术有限公司  贵州贵阳  550009
        摘要:本文以某项目研制为背景,开展针对DSP TMS320F28335的嵌入式软件在线升级方法研究,提出了一种基于RS422接口的“软件自更新”解决方案,即在产品内部存储器中只存放有一个产品最终上电工作的DSP软件,在产品DSP软件需要更新升级时,上位机软件可通过RS422接口与产品DSP软件建立通讯,完成产品DSP软件的在线升级更新,解决产品在不拆机情况下的产品DSP软件在线升级问题。
        关键词:TMS320F28335;RS422接口;DSP软件;软件自更新

1 引言
        一般而言,DSP嵌入式软件的更新是在CCS开发环境下通过JTAG接口连接仿真器来实现的,但JTAG烧写DSP软件时只能实现一对一烧写,并且,当产品完成整机装配调试后需要升级DSP软件时,想通过JTAG烧写程序则必须对整机进行拆机后方能实施DSP程序的JTAG烧写,这样就显得很不方便,不利产品软件的使用维护。
        目前国内已有的DSP28335软件在线更新升级方法多为通过第三方上传软件与上位机软件共同配合,最终实现DSP28335嵌入式软件的更新。该方法较JTAG接口更新DSP软件的方法,提高了嵌入式软件的使用维护性能,但是该方法存在一个显著的缺点,就是研制和管理第三方上传软件所带来的上传软件外方评测及软件技术状态管理等方面的经济成本,实际应用时,还需预先通过JTAG方式将第三方上传软件烧写入DSP28335片内FLASH指定空间并永久保存,然后才能使第三方上传软件与上位机软件共同配合,完成系统工作用DSP软件的更新升级。
        针对上述问题,本文以某项目研制为背景,开展DSP28335的软件在线升级方法研究,并针对产品能在不拆机的情况下能实现软件在线更新升级这一技术难题,创新性的提出一种基于RS422接口的“软件自更新”解决方案,该方案只需研制一个最终系统使用的DSP软件,便可实现产品在不拆机情况下的软件更新升级,不仅提高了产品的使用维护性能,而且降低了软件产品研制成本,具有长远的经济实用价值!
2 软件在线自更新升级原理
        A软件和B软件均为CCS工程产生的DSP软件,其中A软件为待上传更新的DSP软件。B软件由CCS开发环境编译完成后直接通过JTAG方式烧写至目标DSP芯片TMS320F28335内部FLASH中,A软件则由CCS开发环境编译完成后先转换成为.Bin格式的烧写文件,在DSP工作软件需要更新升级时,由PC机中的上位机程序将A软件读取出来,通过RS422串行通信接口与DSP工作软件(即通过JTAG接口烧写到DSP内部的B软件)通讯,按照事先约定的通信协议,在目标DSP芯片TMS320F28335内部FLASH中,先将B软件全部擦除,然后再逐步将A软件完全写入原本存放B软件的地址空间,从而完成A软件对B软件的更新替换,更新完成后,目标DSP芯片TMS320F28335内部FLASH中不再有B软件,取而代之的是A软件,在系统重新上电复位之后,DSP直接运行更新后的A软件。
3 软件在线升级方法实现
3.1 硬件设计实现
        采用DSP+FPGA技术架构构建RS422通信接口。一方面,该接口用于产品在工作状态时与外部设备之间的信息交互;一方面,当需要进行DSP软件更新升级时,上位机利用该RS422通信接口实现产品DSP软件在线更新升级。
3.2 软件设计实现
        DSP28355芯片内部含FLASHA~FLASHH的8段FLASH存储空间,每段大小为32K字,由于本项目的DSP工作软件小于32K字,因此将FLASHH段存储空间配置来存放项目的DSP工作软件,在进行DSP软件更新升级时,将新的DSP软件写入到FLASHH段中,替换原来存放的DSP软件。
        由于程序在线自更新升级时,需要对FLASH进行读写操作,因此编写上传模块代码,在该模块中包含了与上位机程序通信的相关代码和DSP28335官网提供的用于操作其FLASH的API函数,由于DSP28335的代码默认是在FLASH中运行的,因此还需要使用CODE_SECTION对上传模块进行申明,使其能在RAM中运行,才能在整个DSP软件更新过程中全程与上位机程序通信,对FLASH进行操作并最终完成DSP工作软件的更新升级。
        DSP软件在系统上电复位后,首先与上位机程序建立通信,判断是否需要进行软件升级。若上位机发送的是升级命令,则DSP软件调用上传模块,进入到RAM中运行,调用DSP28335的API库函数,擦除存放原DSP软件的FLASHH地址空间,并向上位机返回状态指令,以便提示上位机通过串口发送待上传软件文件到DSP,待串口收到待升级的软件文件后,上传模块再次调用DSP28335的API库函数,将收到的升级文件写入FLASHH区域,直到将整个待上传DSP软件文件从上位机全部搬移至DSP片内FLASHH,完成整个软件的更新升级。若未收到上位机的升级命令或收到错误的命令,则DSP程序继续往下执行,进入到产品正常工作流程,不再进行软件的上传更新操作。
        DSP程序设计流程图如图1所示。
        
图1  DSP程序设计流程图
4  总结
        本文所述的针对DSP TMS320F28335的嵌入式软件在线自更新升级方法不仅解决了在系统整机产品装机完成后不拆机情况下的软件更新升级问题,提升了产品后续的使用维护性能,而且,较以往传统的软件更新升级方法而言,本技术方案无需花费更多的人力财力成本研制和管理第三方上传软件,对于企业而言,可极大的降低经济成本,将产生长远的经济效益!

参考文献
[1] TI TMS320F28335. Datasheet.
[2]《TMS320F28335 DSP原理及开发编程》北京航空航天大学出版社.
[3] 针对TMS320F28xxx DSC 的闪存编程解决方案.ZHCA441–August 2008.

作者简介:杨明(1989-08),男,汉族,籍贯:四川自贡,当前职称:工程师,学历:大学本科,研究方向:DSP 嵌入式软件
投稿 打印文章 转寄朋友 留言编辑 收藏文章
  期刊推荐
1/1
转寄给朋友
朋友的昵称:
朋友的邮件地址:
您的昵称:
您的邮件地址:
邮件主题:
推荐理由:

写信给编辑
标题:
内容:
您的昵称:
您的邮件地址: