当前位置:首页 > 物联网 > 网络层
[导读] 引言随着智能电网的建设、实施和物联网的普及应用,越来越多的终端设备通过网络实现远程的数据采集,这些数据终端数量众多,分布范围广。当这些终端设备中的MCU应用软件发现BUG,或需要对MCU应用软件进行升级则是一

 引言

随着智能电网的建设、实施和物联网的普及应用,越来越多的终端设备通过网络实现远程的数据采集,这些数据终端数量众多,分布范围广。当这些终端设备中的MCU应用软件发现BUG,或需要对MCU应用软件进行升级则是一件非常麻烦、艰巨的任务。如果能够通过网络或串行接口实现MCU应用程序的远程下载,将会带来方便。本文介绍一种DSP应用程序的远程下载技术。

1 TMS320VC5402及其HPI接口简介

TMS320VC5402是TI公司为实现低功耗、高性能实时信号处理的定点16位DSP,它采用改进型哈佛结构,具有很高的运行速度,非常适合在信号处理方面的应用,如滤波、频谱分析等场合。其突出的优点已经使它在通信、语音、仪器仪表、电力测控终端等领域得到广泛应用。

TMS320VC5402的应用程序在其内部的RAM中运行,因此,在上电时需要利用HPI接口将程序传送到内部RAM中,TMS320VC5402的HPI是增强型8位主机接口。HPI即主机接口,它实际上是一个8位的并行接口,可以和任何一个外部的8位并行接口连接,在大多数情况下这个外部的8位并行口可以是其他MCU的8位I/O口。对于TMS320VC5402来说,这个MCU就是“主机”以下简称为主MCU。当TMS320VC5402与主机传送数据时,HPI能自动将传送来的8位数据组合成为16位数据,并传送到TMS320VC5402内部指定地址的RAM单元中,代码传送完毕后,主MCU再传送DSP应用程序的入口地址。传送结束后TMS320VC5402即可从指定的地址开始执行应用程序。

2 HPI与主机接口的技术实现

主MCU和TMS320C5416的连接示意如图1所示,图中8位数据线用来实现DSP与主机之间的数据传输,控制信号线用来指定进行的操作。

HPI包含3个内部寄存器,分别为:HPIC、HPIA、HPID。HPIC是一个16位的内部控制寄存器,HPIA是16位的地址寄存器,HPID是数据寄存器。由于HPI接口的数据线是8位的,故主MCU在读写HPI寄存器时,每次必须按2个字节操作,字节的高低顺序由HPIC设定。而主MCU要写HPIC时,第1个字节和第2个字节的内容必须是相同值,专用的HBIL引脚信号用来确定传输的是第1字节还是第2字节。HPIC的BOB位决定是第1个字节还是第2个字节放置在高8位。HCNTL0/1用来说明哪个HPI的内部寄存器被主机访问。具体说明如表1所列。

HDS1、HDS2是两个数据选通信号,HAS是地址锁存信号,HCS是HPI接口的选中信号,而HR/W是读/写控制信号。详情及HPIC寄存器各位的用途请参考TMS320VC5402技术手册,这里不再赘述。

主MCU通过HPIC、HPIA、HPID寄存器与TMS320VC5402进行数据交换,数据交换的过程如下:

①初始化HPIC;

②把地址写到HPIA中;

③通过HPID读或写数据。

一般情况下,对DSP的HPIC进行初始化后,无须再对其进行初始化,其余工作由主MCU完成。主MCU和TMS320VC5402的连接图如图1所示。

用8051单片机作为主MCU实现DSP应用程序远程下载的实现方案中,主MCU使用的是C8051F236,用C8051F236的P1口作为数据线与DSP的HPI接口连接,C8051F236的P2口分别作为HPI接口的控制信号线,P0.5连接到DSP的复位引脚。C8051F236的串行接口扩展MAX485,以便通过RS485串行接口接收PC机传送的DSP应用程序,当然也可以为主MCU扩展网络接口,通过网络传送DSP应用程序。

扩展的I2C总线接口EEPROM存储器AT24C1024用于存放DSP应用程序的HEX文件,AT24C1024的容量为256 KB,对于一般应用程序的HEX文件是够用的。工作时PC机利用通信接口将DSP的应用程序和程序的入口地址传送给主MCU,并在EEPROM中存放。然后主MCU控制DSP复位,进入引导工作方式,主MCU读取存放在AT24C1024中的HEX文件,经解析后产生机器码,并逐字节通过HPI接口传送给DSP,完成程序的更新。

TMS320VC5402在片上ROM中固化了引导程序,当DSP工作在微计算机模式(MP/MC=0)下,上电复位后会自动执行引导程序,引导程序会初始化数据存储区的007EH和007FH两个单元,使其初始值为0,然后检测引导模式。首先检测当前是否是HPI引导模式,在确认引导模式后,按照相应的操作自动从HPI接口传送用户代码到内部程序存储器。在完成用户代码引导后,主MCU执行写入口地址操作,即将应用程序的入口地址写入到007EH和007FH。如果TMS320VC5402检测到007EH和007FH内容的变化后,马上从入口地址处开始运行用户程序,引导过程结束,DSP正常运行应用程序。

3 主MCU软件设计

涉及HPI功能的主MCU软件设计包括两个方面:一是HPI接口的访问;二是HEX文件的解析。

(1)HPI接口软件设计

在对HPI接口访问时,一般首先要通过写入控制字到HIPC寄存器中,以设置HPI的工作方式。但在大多数情况下,使用HPIC的默认值即可,故不需要专门对HPIC进行操作,程序中仅需对HPIA和HPID进行操作。以下为对HPIA进行写操作的程序,将需要操作的存储器的地址传送到HPIA中。为简单起见,程序已作了简化处理:

将存储器地址传送到HPIA后即可传送程序的机器码,程序结构与上述类似。需要注意的是,在通过HPID读/写DSP内部的存储器时,被读/写存储器单元的地址由HPIA指定,并且可以实现HCNTL0、HCNTL1设置为读/写HPID时HPIA的值自动加1,这样就不需要每次读/写HPID之前先传送地址到HPIA中,简化了程序设计。

(2)DSP代码下载程序设计

DSP应用程序代码通过串行接口传送到主MCU并保存在EEPROM中后,主MCU即可在任何需要的时候将代码下载到DSP中。一般来说传送的DSP应用程序是HEX文件。HEX文件是一个文本文件,它以记录的方式存放应用程序的机器码及其地址。因此主MCU需要按记录从EEPROM中读取HEX文件,并对其进行分析,得到应用程序的机器码和其地址,然后通过HPI接口程序传送到DSP中。由于HEX文件中不包含应用程序的入口地址,所以PC机软件需要单独将应用程序的入口地址传送给主MCU,为简单起见,HEX文件记录的结构及其分析不再赘述,可参考其他相关资料。将代码传送到DSP的程序流程图如图2所示。

在DSP应用程序开发中,使用CCS编译、链接后生成.out文件,此文件为COFF格式文件,不能直接用于主机引导,需要利用其他的工具将其转换成HEX文件,至于DSP应用程序的入口地址可以从MAP文件中得到。

结语

本文介绍了一种利用通信接口实现DSP应用程序远程下载的方法,该方法简单易行,已经在我们所开发的项目中得到应用。虽然文中介绍的是利用RS485接口实现,事实上稍加改变,即可利用任意一种通信方式实现,具有一定的实用价值。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭