打印
[MCU]

HPI在MCU和DSP接口中的应用

[复制链接]
616|26
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
Roses|  楼主 | 2019-8-10 18:56 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
HPI在MCU和DSP接口中的应用


       描述HPI接口的工作原理及C8051F060和TMS320VC5409(简称C5409)之间的接口电路设计,给出了HPI接口的软件设计。该系统具有设计灵活、数据传输速度快、适用于其他含有HPI接口的DSP应用系统,为开发人员提供了一种便捷稳定的数据共享、传输方式。

  1.TMS320VC5409的HPI-8接口
  C5409的HPI-8是一个增强型8位HPI8接口,主要用来与主处理器接口。C5409内部有32K的RAM空间,除了DSP本身可以访问该RAM区域外,主机也可以通过HPI口实现对整个RAM的访问,从而实现主机与DSP的通信。HPI-8接口通过HPI控制寄存器HPIC、地址寄存器HPIA、数据寄存器HPID等3个HPI寄存器进行控制和实现数据传输。各寄存器功能如下:HPI-8地址寄存器(HPIA),该寄存器只能由主机对其直接访问,寄存器中存放当前寻址HPI-8存储单元地址。HPI-8逻辑控制单元(HPIC)。主机和C5409都能对它进行直接访问,它映射到C5409的数据空间002CH单元。HPIC只有4位用于控制HPI的操作,由于HPIC的高8位和低8位是相同的,因此这4位分别位于高字节和低字节的低4位。Bit0/8(BOB)———用于字节顺序控制,BOB=1表示第1个字节为低字节,否则第1个字节为高字节。Bitl/9(SMOD)———访问模式控制,SMOD=l表示共享访问模式(SAM),否则为主机访问模式(HOM)。Bit2/10(DSPINT)———主机通过将该位写l来向DSP发送1次HPI中断。Bit3/11(H1NT)———DSP通过向该位置l,使外部引脚HINT产生一个低电平作为给主机的中断,中断的清除必须由主机向该位写l来清除。HPI-8数据锁存器(HPID),只能由主机对其进行访问,主机通过读写该寄存器来实现对共享RAM的读写,RAM的地址则由HPIA地址寄存器的内容来决定。因此,主机对DSP的访问过程是,先往HPI地址寄存器HPIA写入欲访问的地址,然后再对数据寄存器HPID进行读或写访问。

  HPI接口信号包括:
  HCS———片选信号。作为HPI-8的使能输入端,在每次寻址期间为低电平,在两次寻址期间也可以停留在低电平。
  HAS———地址选通信号,此信号用于主机的数据线和地址线复用的情况。当不用时此信号应接高。
  HBIL———字节识别信号,用于识别主机传送过来的是第一个字节还是第二个字节。当HBIL=0时为第一个字节,HBIL=1时为第二个字节。
  HCNTL1/HCNTL0———主机控制信号,HPI寄存器的访问地址信号,主机用来选择访问的HPI寄存器。当HCNTL1/HCNTL0为00时,表明主机访问HPIC;当为01时,表明主机访问用HPIA指向的HPID,每读一次,HPIA事后增加1,每写一次,HPIA事先增加1;当为10时,表明主机访问HPIA;当为11时,表明主机访问HPID,而HPIA不受影响。当主机访问HPI时,先完成外部接口部分的操作,即先初始化HPIC寄存器,然后初始化HPIA寄存器,再从HPID寄存器中读出或写入数据,一般在DSP的初始化程序中对HPIC进行了初始化后就无须再对HPIC操作了,其余的工作就完全由主机完成。HPI的传送控制是由HPI-8内部选通信号实现的,由3个信号完成:/HDS1、/HDS2、/HCS。由图1HPI-8内部选通逻辑电路图可知,只有当/HDS1、/HDS2信号不同时为零,且/HCS信号为低电平时,内部HPI才被选通。
图1HPI-8内部选通逻辑电路图

  2.HPI接口设计
  2.1HPI接口电路设计
  C8051F060与C5409的HPI接口电路图如图2所示。图中将C8051F060的端口P1和HPI的8位数据线HD0~HD7相连作为数据传输通道,P20~P23设置为输出以控制HPI口的操作。其中P20和P21分别连接HCNTL0和HCNTLl以实现对HPIC、HPIA和HPID寄存器的访问,P22连接字节识别信号HBIL可控制读写数据是属16位字的第一字节还是第二字节,P23作为读写控制选通信号连接HR/W,P24与P25分别连接/HDS1和/HDS2,同与P26相连的信号/HCS一起作为数据选通信号来锁存有效的HCNTL0/1、HBIL和HR/W信号。地址锁存信号/HAS与P27相连,为简化设计,可以直接将/HAS和/HDS2置为高电平,/HCS置为低电平。P33作为检测HRDY信号的输入端,当HPI准备好时,HRDY输出高电平有效。P34作为输入与HPI口的主机中断信号/HINT相连。由HPI接口的原理可知,在HCNTL0/1、HBIL和HR/W信号有效之后,设置HDS1、/HCS为低电平可实现读写的数据选通,从而完成C8051F060对C5409HPI口的读写操作。在数据交换过程中,C8051F060向HPI发送数据可通过置C5409的HPI控制寄存器HPIC中的DSPINT位为1来中断C5409。C8051F060接收来自HPI的数据时则可用查询方式。当C5409准备发送数据时,置/HINT信号为低。当C8051F060查询到P34为低时,系统将调用接收数据子程序来实现数据的接收。
图2C8051F060与C5409的HPI接口电路图
  2.2HPI接口软件设计
  HPI的数据传输分外部传输和内部传输。外部传输是指主机和HPI寄存器之间的传输,由主机发出指令完成。内部传输是指HPI寄存器和DSP内部RAM之间的传输,由DSP内部的DMA控制器自动完成。主机在进行外部传输时,要先检查内部传输是否完成,这是通过检测HRDY信号实现的。外部传输操作的一般步骤是:检查HRDY信号的电平。为高,表示可以进行传输;为低,表示DSP正在进行内部传输,此时不能进行外部传输。主机对HPI-8口进行数据读写需要三个步骤:设置控制寄存器,写地址寄存器,读写数据寄存器。在寄存器读写过程中,主机通过端口发送控制信号,检测状态信号,完成对HPI口访问的时序模拟,双方通过向对方发送中断通知对方数据已经准备好,通过检测对方设置的状态判断对方是否准备好接受数据。

具体设置过程如下:
  a)首先初始化HPIC寄存器,特别是BOB位。具体方法为:先设置HCNTL1=HCNTL0=0,选择将要对HPIC进行操作。然后将HPIC的值写入HPI。注意HPIC的高8位和低8位是一样的。
  b)设置地址寄存器HPIA。先设置HCNTL1=1&HCNTL0=0,选择将要对HPIA进行操作。然后将要访问的C54x片内RAM的地址写入HPI,高8位先写,低8位后写。
  c)读写C54x的片内RAM。先设置HCNTL1/0,选择将要对数据锁存器HPID进行操作。如果设置HCNTL1=0&HCNTL0=1,表示使用地址自动增加模式;如果设置HCNTL0=HCNTL1=1时,表示不使用地址自动增加模式,这时完成读写操作后,地址寄存器HPIA将不会变。
  以下是C8051F060的HPI接口程序:
  (1)读HPID寄存器程序
  unsignedintHPID_Read()
  {
  unsignedcharH_Byte,L_Byte;
  HDS2=1;
  HCS=0;使能HPI
  HCNTL0=1;
  HCNTL1=0;主机可读写HPID
  HBIL=0;当前是第一字节
  HRW=1;主机要求读选通HPI
  HDS1=0;开始数据操作
  H_Byte=P1;读出高8位数据
  Delay(2);等待数据读出完成
  HDS1=1;结束数据操作
  HBIL=1;当前是第二字节
  HRW=1;主机要求读选通HPI
  HDS1=0;开始数据操作
  L_Byte=P1;读出低8位数据
  Delay(2);等待数据读出完成
  HDS1=1;结束数据操作
  }
  (2)写HPID寄存器程序
  voidHPID_Write(unsignedintW_data)
  {
  HDS2=1;
  HCS=0;使能HPI
  HCNTL0=1;
  HCNTL1=0;主机可读写HPID
  HBIL=0;当前是第一字节
  HRW=0;主机要求写选通HPI
  HDS1=0;开始数据操作
  P1=(unsignedchar)((W_data>>8)&0xFF);写入高8位数据
  Delay(2);等待数据写入完成
  HDS1=1;结束数据操作
  HBIL=1;当前是第二字节
  HRW=0;主机要求写选通HPI
  HDS1=0;开始数据操作
  P1=(unsignedchar)(W_data&0xFF);写入低8位数据
  Delay(2);等待数据写入完成
  HDS1=1;结束数据操作
  }

  3结束语
  本设计方案具有硬件结构简单、使用方便等优点,有很好的使用价值。经在某导航系统中实际使用的效果来看,证明该设计方案简单、性能稳定、高效可靠,达到了预期的设计目的。

使用特权

评论回复

相关帖子

沙发
zhangmangui| | 2019-8-17 16:48 | 只看该作者
这种总线现在在设计中用的很少了

使用特权

评论回复
板凳
zhangmangui| | 2019-8-17 16:48 | 只看该作者
现在用的最多的是PCIE    SRIO

使用特权

评论回复
地板
zhangmangui| | 2019-8-17 16:49 | 只看该作者
目前从我接触的行业看   DSP与FPGA互联的设计最多  

使用特权

评论回复
5
zhangmangui| | 2019-8-17 16:50 | 只看该作者
DSP主要进行FPGA端接收采集的数据的快速处理   DSP表现出低功耗优势
C开发简单等优势

使用特权

评论回复
6
zhangmangui| | 2019-8-17 16:50 | 只看该作者
DSP与FPGA    DSP与上位机等互联基本上都是PCIE

使用特权

评论回复
7
zhangmangui| | 2019-8-17 16:51 | 只看该作者
DSP和FPGA可以通过PCIE 和 SRIO互联   能够满足大数据带宽的要求

使用特权

评论回复
8
51xlf| | 2019-9-4 16:33 | 只看该作者
如何将DSP和MCU两者完美结合?

使用特权

评论回复
9
i1mcu| | 2019-9-4 16:33 | 只看该作者
有哪位可以告诉我HPI接口的原理?  

使用特权

评论回复
10
pmp| | 2019-9-4 16:34 | 只看该作者
用HPI接口的话传输速率能达到多少  

使用特权

评论回复
11
mmbs| | 2019-9-4 16:34 | 只看该作者
不同单片机间怎么通信

使用特权

评论回复
12
1988020566| | 2019-9-4 16:35 | 只看该作者
DSP和ARM之间用什么进行通信  

使用特权

评论回复
13
lzbf| | 2019-9-4 16:35 | 只看该作者
高端的DSP有 HPI接口

使用特权

评论回复
14
houjiakai| | 2019-9-4 16:35 | 只看该作者
谢谢楼主分享的资料了。  

使用特权

评论回复
15
youtome| | 2019-9-4 16:36 | 只看该作者
HPI接口的数据选通信号是这两个信号的同或结果  

使用特权

评论回复
16
cemaj| | 2019-9-4 16:36 | 只看该作者
’C5000 HPI接口的使用  

使用特权

评论回复
17
updownq| | 2019-9-4 16:37 | 只看该作者
HPI接口通信的技术应用和HPI接口通信的设计资料有吗?  

使用特权

评论回复
18
1988020566| | 2019-9-4 16:37 | 只看该作者
TMS320C54系列DSP和51单片机的串口通信是如何实现的  

使用特权

评论回复
19
51xlf| | 2019-9-4 16:37 | 只看该作者
嵌入式应用中的数字信号处理器(DSP)相对于主微控制器(MCU)起从属作用?  

使用特权

评论回复
20
mmbs| | 2019-9-4 16:37 | 只看该作者

dsp,FPGA之间怎么通信?      

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

709

主题

1023

帖子

7

粉丝