描述hp i接口的工作原理及c8051f060和tms320vc5409 (简称c5409)之间的接口电路设计,给出了hp i接口的软件设计。该系统具有设计灵活、数据传输速度快、适用于其他含有hp i接口的dsp应用系统,为开发人员提供了一种便捷稳定的数据共享、传输方式。
1 tms320vc5409的hpi - 8接口
c5409的hp i - 8是一个增强型8位hp i8接口,主要用来与主处理器接口。c5409 内部有32k的ram空间,除了dsp本身可以访问该ram区域外,主机也可以通过hp i口实现对整个ram的访问,从而实现主机与dsp的通信。hpi - 8接口通过hp i控制寄存器hp ic、地址寄存器hp ia、数据寄存器hp id等3个hpi寄存器进行控制和实现数据传输。各寄存器功能如下:hpi - 8地址寄存器(hp ia) ,该寄存器只能由主机对其直接访问,寄存器中存放当前寻址hp i - 8 存储单元地址。hpi - 8逻辑控制单元(hpic) 。主机和c5409都能对它进行直接访问,它映射到c5409 的数据空间002ch单元。hpic只有4位用于控制hpi的操作,由于hp ic的高8位和低8位是相同的,因此这4位分别位于高字节和低字节的低4位。b it0 /8 (bob) ———用于字节顺序控制, bob = 1表示第1个字节为低字节,否则第1个字节为高字节。b itl/9 ( smod) ———访问模式控制, smod = l表示共享访问模式( sam) ,否则为主机访问模式(hom) 。b it2 /10 (dsp int) ———主机通过将该位写l来向dsp发送1次hp i中断。b it3 /11 (h1nt) ———dsp通过向该位置l,使外部引脚h int产生一个低电平作为给主机的中断,中断的清除必须由主机向该位写l来清除。hp i - 8数据锁存器(hp id) ,只能由主机对其进行访问,主机通过读写该寄存器来实现对共享ram的读写, ram的地址则由hp ia地址寄存器的内容来决定。因此,主机对dsp的访问过程是,先往hpi地址寄存器hp ia写入欲访问的地址,然后再对数据寄存器hp id进行读或写访问。
hp i接口信号包括:
hcs———片选信号。作为hp i - 8的使能输入端,在每次寻址期间为低电平,在两次寻址期间也可以停留在低电平。
has———地址选通信号,此信号用于主机的数据线和地址线复用的情况。当不用时此信号应接高。
hb il———字节识别信号,用于识别主机传送过来的是第一个字节还是第二个字节。当hb il = 0时为第一个字节, hb il = 1时为第二个字节。
hcntl1 /hcntl0———主机控制信号, hp i寄存器的访问地址信号,主机用来选择访问的hp i寄存器。当hcntl1 /hcntl0为00时,表明主机访问hp ic;当为01时,表明主机访问用hp ia指向的hp id,每读一次, hp ia事后增加1,每写一次, hp ia事先增加1;当为10时,表明主机访问hp ia;当为11时,表明主机访问hp id,而hp ia不受影响。当主机访问hp i时,先完成外部接口部分的操作,即先初始化hp ic寄存器,然后初始化hp ia寄存器,再从hp id寄存器中读出或写入数据,一般在dsp的初始化程序中对hpic进行了初始化后就无须再对hp ic操作了,其余的工作就完全由主机完成。hpi的传送控制是由hp i - 8内部选通信号实现的, 由3 个信号完成: /hds1、/hds2、/hcs。由图1hp i - 8 内部选通逻辑电路图可知,只有当/hds1、/hds2信号不同时为零,且/hcs信号为低电平时,内部hp i才被选通。
2 hp i接口设计
2. 1 hpi接口电路设计
c8051f060与c5409的hp i接口电路图如图2所示。图中将c8051f060的端口p1和hpi的8位数据线hd0~hd7相连作为数据传输通道, p20 ~p23 设置为输出以控制hp i口的操作。其中p20 和p21 分别连接hcntl0和hcntl l以实现对hpic、hp ia 和hp id寄存器的访问, p22连接字节识别信号hb il 可控制读写数据是属16位字的第一字节还是第二字节,p23作为读写控制选通信号连接hr /w, p24 与p25分别连接/hds1和/hds2,同与p26相连的信号/hcs一起作为数据选通信号来锁存有效的hcntl0 /1、hb il和hr /w 信号。地址锁存信号/has与p27 相连,为简化设计,可以直接将/has和/hds2置为高电平, /hcs置为低电平。p33作为检测hrdy信号的输入端,当hp i准备好时, hrdy输出高电平有效。p34作为输入与hp i口的主机中断信号/h int相连。由hp i接口的原理可知,在hcntl0 /1、hb il 和hr /w信号有效之后,设置hds1、/hcs为低电平可实现读写的数据选通,从而完成c8051f060对c5409hpi口的读写操作。在数据交换过程中, c8051f060向hpi发送数据可通过置c5409 的hpi控制寄存器hpic中的dspint位为1 来中断c5409。c8051f060 接收来自hpi的数据时则可用查询方式。当c5409准备发送数据时,置/h int信号为低。当c8051f060查询到p34为低时,系统将调用接收数据子程序来实现数据的接收。
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 =1&hcntl0 = 0,选择将要对hp ia进行操作。然后将要访问的c54x片内ram的地址写入hp i,高8位先写,低8位后写。
c) 读写c54x的片内ram。先设置hcntl1 /0,选择将要对数据锁存器hp id 进行操作。如果设置hcntl1 = 0&hcntl0 = 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_data&0xff) ; 写入低8位数据
delay(2) ; 等待数据写入完成
hds1 = 1; 结束数据操作
}
3 结束语
本设计方案具有硬件结构简单、使用方便等优点,有很好的使用价值。经在某导航系统中实际使用的效果来看,证明该设计方案简单、性能稳定、高效可靠,达到了预期的设计目的。
如何设置两个路由器使用同一个Wi-Fi网络?
巨头华录助力 激光电视市场迎来转折点
印制板制造用刷辊全新规范标准
全球5G手机出货量报告:华为超越三星夺第一 苹果暂时消失
TD-SCDMA步入重载时代
HPI在MCU和DSP接口中的应用
努比亚z11骁龙820 分身拍照堪比PS,超级拍照手机!
Intel与AMD之间的“火药味”越发浓烈,CPU数据频繁曝光
ir2110应用电路
微波雷达感应与红外感应的区别
完美改装:卡片收音机易改超外差收音机
电快速瞬变(EFT)是如何引起的?如何测量收发器EFT性能?
详细解析PCB布局设计“排线的秘诀”
新能源车巨头争霸:深度解析比亚迪/特斯拉
关于RIGOL可编程直流电子负载DL3000的性能分析和应用
基于嵌入式linux和s32410平台的视频采集
自动驾驶的全球大结盟非常重要 对自动驾驶的未来发展影响深远
为什么需要debug时钟频率 Debug时钟频率原理详解
顺丰把持高端市场,京东快递挑战顺丰
王健林宣布万达彻底告别房地产!中国楼市要变天了吗?楼市背后究竟隐藏着什么?