你好,欢迎光临ICGOGO 电子商城! 登录 免费注册 QQ登录
高级搜索 热门搜索: 14D471K 7D180K 10D561
购物车(0)
查看购物车
  • 您的购物车还没有产品!
所有分类
全国咨询热线:
0755-83261855
当前位置: 首页 > 电子元器件应用文章 > 电子技术专题 > 一种利用HPI接口实现DSP应用程序远程更新的方法
浏览历史
  • 一种利用HPI接口实现DSP应用程序远程更新的方法
  • 作者:ICGOGO | 发布时间:2016-05-24
  • 分享到:

 随着智能电网的建设、实施和物联网的普及应用,越来越多的终端设备通过网络实现远程的数据采集,这些数据终端数量众多,分布范围广。当这些终端设备中的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的程序流程图。

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

结语

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

更多相关电子资讯请关注ICGOGO公众号

 

您暂时没有评论
总计 0 个记录,共 1 页。 第一页 上一页 下一页 最末页
评论
用户名: 匿名用户
Email:
评分:    
验证码: captcha
ICGOGO电子网_LOGO
新手指南 注册登录 我的ICGOGO 会员等级 免责声明
线上采购 查找产品 在线下单 在线询价 BOM表采购指南 搜索指南
配送方式 支付方式 配送方式 验货条例 货期说明
帮助信息 发票须知 货物退换 投诉建议 采购须知
服务热线:0755-83261855
Email: jayle@icgogo.com
办公地址:深圳市福田区华强北街道都会100大厦B座24R
仓库地址: 汕头市潮阳区贵屿渡头工业区草南路106号2号仓
首页 用户中心 电子技术支持 最新电子资讯 电子元器件应用文章
© 2012 - 2018 深圳市万佳尔电子有限公司 版权所有,并保留所有权利。
ICP备案证书号:粤ICP备15081675号-1
ICGOGO电子网_LOGO
扫一扫,关注微信公众号
0755-83261855
服务时间:
9:00-18:00(工作日)
周一至周六为工作日