微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > HPI在MCU和DSP接口中的应用

HPI在MCU和DSP接口中的应用

时间:09-15 来源:互联网 点击:

断C5409。C8051F060 接收来自HPI的数据时则可用查询方式。当C5409准备发送数据时,置/H INT信号为低。当C8051F060查询到P34为低时,系统将调用接收数据子程序来实现数据的接收。

  图2 C8051F060与C5409的HP I接口电路图

2. 2 HPI接口软件设计

HP I的数据传输分外部传输和内部传输。外部传输是指主机和HP I寄存器之间的传输,由主机发出指令完成。内部传输是指HP I寄存器和DSP内部RAM之间的传输,由DSP内部的DMA 控制器自动完成。主机在进行外部传输时,要先检查内部传输是否完成,这是通过检测HRDY信号实现的。外部传输操作的一般步骤是:检查HRDY信号的电平。为高,表示可以进行传输;为低,表示DSP正在进行内部传输,此时不能进行外部传输。主机对HP I - 8口进行数据读写需要三个步骤:设置控制寄存器,写地址寄存器,读写数据寄存器。在寄存器读写过程中,主机通过端口发送控制信号,检测状态信号,完成对HP I口访问的时序模拟,双方通过向对方发送中断通知对方数据已经准备好,通过检测对方设置的状态判断对方是否准备好接受数据。

具体设置过程如下:

a) 首先初始化HP IC 寄存器,特别是BOB 位。具体方法为:先设置HCNTL1 =HCNTL0 = 0,选择将要对HP IC进行操作。然后将HP IC的值写入HP I。注意HP IC的高8位和低8位是一样的。

b) 设置地址寄存器HP IA。先设置HCNTL1 =1HCNTL0 = 0,选择将要对HP IA进行操作。然后将要访问的C54x片内RAM的地址写入HP I,高8位先写,低8位后写。

c) 读写C54x的片内RAM。先设置HCNTL1 /0,选择将要对数据锁存器HP ID 进行操作。如果设置HCNTL1 = 0HCNTL0 = 1,表示使用地址自动增加模式;如果设置HCNTL0 = HCNTL1 = 1 时,表示不使用地址自动增加模式,这时完成读写操作后,地址寄存器HP IA将不会变。

以下是C8051F060的HP I接口程序:

(1) 读HPID寄存器程序

unsigned int HP ID_Read ( )

{

unsigned char H_Byte,L_Byte;

HDS2 = 1;

HCS = 0;         使能HP I

HCNTL0 = 1;

HCNTL1 = 0; 主机可读写HPID

HB IL = 0; 当前是第一字节

HRW = 1; 主机要求读选通HPI

HDS1 = 0; 开始数据操作

H_Byte = P1; 读出高8位数据

Delay(2) ; 等待数据读出完成

HDS1 = 1; 结束数据操作

HB IL = 1; 当前是第二字节

HRW = 1; 主机要求读选通HPI

HDS1 = 0; 开始数据操作

L_Byte = P1; 读出低8位数据

Delay(2) ; 等待数据读出完成

HDS1 = 1; 结束数据操作

}

(2) 写HPID寄存器程序

void HPID_Write ( unsigned intW_data)

{

HDS2 = 1;

HCS = 0; 使能HP I

HCNTL0 = 1;

HCNTL1 = 0; 主机可读写HPID

HB IL = 0; 当前是第一字节

HRW = 0; 主机要求写选通HPI

HDS1 = 0; 开始数据操作

P1 = ( unsigned char) ( (W_data > > 8) 0xFF) ;  写入高8位数据

Delay(2) ; 等待数据写入完成

HDS1 = 1; 结束数据操作

HB IL = 1; 当前是第二字节

HRW = 0; 主机要求写选通HPI

HDS1 = 0; 开始数据操作

P1 = ( unsigned char) (W_data0xFF) ;  写入低8位数据

Delay(2) ; 等待数据写入完成

HDS1 = 1; 结束数据操作

}

3 结束语

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

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top