DSP课设HPI主机接口应用文档格式.doc
- 文档编号:1451706
- 上传时间:2023-04-30
- 格式:DOC
- 页数:18
- 大小:92.50KB
DSP课设HPI主机接口应用文档格式.doc
《DSP课设HPI主机接口应用文档格式.doc》由会员分享,可在线阅读,更多相关《DSP课设HPI主机接口应用文档格式.doc(18页珍藏版)》请在冰点文库上搜索。
2013年01月01-11日修改报告及提交报告电子版(修改之后)。
2013年01月01-11日正式提交报告(打印版)及参加第一次答辩。
指导教师(签字):
年月日
分院院长(签字):
年月日
II
沈阳理工大学信息科学与工程学院DSP课程设计报告
摘要
以TMS320C5509为例,介绍了其系列DSP(digitalsignalprocessing)芯片HPI(hostportinterface)口的各个组成部分及其功能,并以89S51单片机作为主处理机,阐述了其与TMS320C509之间实现数据共享的方法,最后通过DSP芯片成功初始化HPI接口,完成了主机与DSP芯片的连接和通信。
关键词:
DSP;
TMS320C55x;
HPI接口;
单片机
目录
1相关知识 3
1.1TMS320C55x开发环境 3
1.1HPI接口 3
2设计任务及目的 4
2.1设计任务 4
2.2设计目的 4
3设计原理 5
3.1HPI-8接口结构 5
3.2HPI-8接口信号和控制寄存器 6
3.3HPI-8基本功能描述 8
4程序清单 10
4.1TMS320C55xHPI接口DSP端程序 10
4.2TMS320C55xHPI接口单片机端程序 12
5结论 15
6参考文献 16
1相关知识
1.1TMS320C55x开发环境
C55x编程可以采用汇编语言,也可以采用C/C++语言,本次编程主要采用汇编语言完成,所以执行效率高。
C55x的软件开发环境是CCSv3.1(CodeComposerStudio),是IT公司推出的用于开发DSP芯片的集成环境,它集编辑、编译、链接、软件仿真、硬件调试、以及实时跟踪功能于一体。
1.2HPI接口
HPI是HOSTPORTINTERFACE的简称。
HPI是一个与主机通信的并行接口,主要用于DSP与其他总线或CPU进行通信。
信息可通过‘C54x的片内存储器与主机进行数据交换。
不同型号的器件配置不同的HPI口,可分为8位标准标准HPI接口、8位增强型HPI接口和16位增强型HPI接口。
TMS320C5402芯片的HPI接口分为HPI8(8位主机接口)和HPI16(16位主机接口)两种,其应用方式大同小异,主要介绍HPI8。
HPI8实际上是一个8位的并行端口,主机通过它可以直接访问DSP片内的一段RAM。
在早期的DSP中,这段公用的RAM是一段2K字的双口RAM(对于TMSVC5402则可以访问所有的片内RAM)。
当主机和DSP同时访问同一地址时,主机优先。
由于TI的DSP芯片都是16位的,而HPI8只有8根数据线,所以数据的传输必须以字节为单位。
在DSP与主机传送数据时,HPI能自动地将外部接口传来连续的8位数组合成16位数后传送给主机。
2设计任务及目的
2.1设计任务
(1)熟悉DSP指令的用法
(2)掌握TMS320C5509的特点
(3)了解HPI接口的原理
(4)掌握单片机与DSP芯片的连接方法
(5)编写HPI初始化程序,在DSP芯片上运行
2.2设计目的
HPI主机接口是DSP芯片内部用于并行通信的一种接口部件,它主要用于将DSP和其他外部总线或CPU进行连接。
HPI接口通过HPI控制寄存器(HPIC)、HPI地址寄存器(HPIA)和HPI数据寄存器(HPID)以及HPI内存区,实现和主机之间的通信。
其主要特点是接口所需要的外围硬件很少,HPI接口单元允许芯片直接利用一个或两个数据选通信号、一个独立或复用的地址总线、一个独立或复用的数据总线连接到微控制器(MCU)上,主机和DSP可以独立地对HPI接口操作,主机和DSP的握手可通过中断方式快速实现。
另外,主机还可以通过HPI接口装载DSP应用程序、接受DSP运行结果、判断或决定DSP的运行状态和工作方式,HPI主机接口为DSP芯片的接口开发提供了一种方便、快捷的方法。
根据HPI接口数据总线的不同,可以分为HPI-8主机接口和HPI-16主机接口。
本次课设要求设计与HPI-8相关的接口程序。
3设计原理
3.1HPI-8接口结构
HPI-8为8位并行口,提供了C55x和外部主机接口。
C55x通过片内的RAM与主机设备交换数据。
HPI-8为从设备,它使主机能够访问C54x内部的存储区。
其接口包括一个8比特的双向数据和各种控制信号。
16为的数据分为高、低两个字节传输,用HBIL信号线来控制传输的是高字节还是低字节。
主机和HPI-8的通信通过专用的地址和数据寄存器完成,对C54x来说,这些区域不能直接读/写。
HPI控制寄存器允许主机和C54x进行读写,包括配置通信协议和控制通信(握手)的比特。
一个简单的HPI-8框图如图2.1所示:
HPI-8在8位外围接口时提供了有效地16位数据传输方式。
方法是将连续发送的字节自动组成16比特字。
当主机用HPI-8传送数据时,HPI-8控制逻辑自动进入C55x片内RAM存取数据,然后C55x在存储空间内进行读/写。
C55x和主机都能访问C55x的片内RAM。
当主机存取时必须同步于C55x时钟,以确保片内RAM读/写正确。
当C55x和主机同时读/写同一存储区域是将产生冲突,这时主机具有优先权,C55xCPU将等待一个时钟周期。
3.2HPI-8接口信号和控制寄存器
HPI-8接口控制信号主要包括以下几类:
HAS:
地址锁存(ALE)或选通输入信号,如不用则接高电平
HBIL:
地址控制输入信号,HBIL=L时,读/写第1字节;
HBIL=H是,读/写第2字节。
HBIL和HPI控制寄存器(HPIC)中的BOB位结合使用
HCNTL0,HCNTL1:
地址控制输入信号,供主机选择读/写HPIC、HPIA或HPID
HCS:
HPI选通使能,主机对HPI访问期间,信号HCS要保持低电平
HD0~HD7:
HPI双向三态数据总线
HDS1,HDS2:
读/写数据选通输入信号
HINT:
输出信号,供主机产生中断时使用
HRDY:
输出信号,供主机等待时使用。
当信号为高电平时,主机可进行数据传输;
为低电平时,HPI接口忙,主机不可传送数据。
HR/W:
读/写选通输入信号
HPI-8控制字寄存器包括以下几类:
(1)HPI控制寄存器(HPIC):
HPIC为16位寄存器,其高8位和低8位完全相同,各位的功能如下:
BOB:
由主机读/写,如BOB=1,主机读/写的第1字节为低字节,第2字节为高字节;
如BOB=0,主机读/写得第1字节为高字节,第2字节为低字节;
主机第1次存取HPIA和HPID之前,BOB必须先进行初始化。
DSPINT:
由主机写,写DSPINT=1,C55x产生DSPINT中断;
写DSPINT=0,无任何影响。
HINT,主机和C55x均可读/写,该位决定C55x引脚HINT的输出状态。
C55x复位时HINT=0,C55x写HINT=1使HINT变低,可用来中断主机;
主机写HINT=1可清除中断。
(2)HPI地址寄存器(HPIA):
HPIA只能由主机直接访问,它包含了当前访问所需的C55x片内RAM地址。
(3)HPI数据锁存器(HPID):
主机通过HPID与HPI内存块交换数据,HPI接口根据HPIA值,有HPI接口控制信号确定是将HPI内存单元值读入HPID,还是将HPID值写入HPI内存单元,读/写过程约需5个C55x时钟周期。
因此,主机读/写周期一般需要大于5个C55x时钟周期。
图3.2给出了HPI-8中3个寄存器的联系和工作情况:
图3.2HPI-8的控制寄存器
3.3HPI-8基本功能描述
外围HPI-8接口可以不需要或只需要很少一部分附加逻辑,就能够与各种主机相连接。
8位数据总线(HD0~HD7)用于与主机交换数据;
两个控制输入(HCNTL0和HCNTL1)指示访问哪一个HPI-8寄存器;
输入和HBIL一起,通常由主机地址总线驱动。
图3.3给出了HPI-8和主机设备之间的一个简单连接关系:
图3.3HPI-8连接框图
HPI-8使用中断逻辑使得软件的通信“握手”变得容易。
主机通过在HPIC寄存器中设置特定位来中断C55xCPU。
同样,C55x也能够使用HINT输出来中断主机。
C55x和主机都可以通过设置HPIC寄存器的HINT位来产生中断。
主机编程流程图如下:
4程序清单
4.1TMS320C55xHPI接口DSP端程序
typedefstruct
{inthead;
//framehead
intlength;
//framelength
intfunc;
//functype
intdata[253];
//thedata
}HPIFRAME;
HPIFRAMEhpiinbuf;
HPIFRAMEhpioutbuf;
#pragmaDATA_SECTION(hpiinbuf,"
.hpibuffer"
)
#pragmaDATA_SECTION(hpioutbuf,"
voidmain()
{
charhpidatacnt;
HPIFRAME *hpiinbufptr=&
hpiinbuf;
HPIFRAME *hpioutbufptr=&
hpioutbuf
c55_init();
ser0inwrcnt=1;
ser0outrdcnt=5;
ser0inrdcnt=5;
ser0outwrcnt=1;
ser0flag=0;
for(;
;
)
{
if(hpirecflag>
=1)
{
hpirecflag=0;
if(hpiinbufptr->
head==0xaa)
{
hpioutbufptr->
head=0xaa00+hpiinbufptr->
length;
func=hpiinbufptr->
func;
for(hpidatacnt=0;
hpidatacnt<
hpiinbufptr->
length;
hpidatacnt++)
hpioutbufptr->
data[hpidatacnt]=hpiinbufptr->
data[hpidatacnt];
hpidsp_host();
}
}
}
}
4.2TMS320C55xHPI接口单片机端程序
(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;
//当前是第二字节
L_Byte=P1;
//读出低8位数据
(2)写HPID寄存器程序
voidHPID_Write(unsignedintW_data)
HDS2=1;
HCS=0;
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;
P1=(unsignedchar)(W_data&
//写入低8位数据
5结论
HPI为8位主机与DSP的数据交换提供了简洁而有效的方案,由于使用DSP的片内内存的一部分实现主机与DSP的数据交换,所以不需要提供外部RAM,即主机与DSP通过HPI接口不需要任何附加硬件,DSP完全作为主机的外设进行工作,可方便地实现DSP与主机之间数据的并行通信。
本设计方案硬件结构简单、使用方便,成功连接了89S51单片机(主)与TMS320C5509芯片(从),并通过DSP对HPI接口进行了初始化,达到了本次课程设计的要求。
6参考文献
1.姜阳周锡青.《DSP原理与应用实验》西安:
西安电子科技大学出版社
2.刘向宇.《DSP嵌入式常用模块与综合系统设计实例精讲》北京:
电子工业出版社
3.张雄伟陈亮徐光辉.《DSP集成开发与应用实例》北京:
4.汪安民程昱.《DSP应用开发实用子程序》北京:
人民邮电出版社
5.TheTMS320VC5501/5502DSPHostPortInterface(HPI)ReferenceGuide.TexasInstruments,LiteratureNumber:
SPRU620C.March2004
-16-
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- DSP HPI 主机 接口 应用