1、成 绩 评 定 表学生姓名班级学号专 业电子信息工程课程设计题目HPI主机接口应用评语组长签字:成绩日期 20 年 月 日课 程 设 计 任 务 书分院(系)信息科学与工程学院专业电子信息工程学生姓名学号设计题目HPI主机接口应用内容及要求: 1完成TMS320C5509使用HPI与89S51连接2完成DSP对HIP口初始化设计工作计划与进度安排: 2012年12月31日选题、查阅资料及编写软件程序(或硬件原理图设计)。 2013年01月01-11日课内上机调试程序及仿真。 2013年01月01-11日课外上机调试程序及仿真。 2013年01月01-11日调试出结果、调试结果验收并写报告。 2
2、013年01月01-11日 修改报告及提交报告电子版(修改之后)。 2013年01月01-11日 正式提交报告(打印版)及参加第一次答辩。指导教师(签字): 年 月 日分院院长(签字): 年 月 日II沈阳理工大学信息科学与工程学院DSP课程设计报告摘 要以TMS320C5509为例,介绍了其系列DSP(digital signal processing)芯片HPI(host port interface)口的各个组成部分及其功能,并以89S51单片机作为主处理机,阐述了其与TMS320C509之间实现数据共享的方法,最后通过DSP芯片成功初始化HPI接口,完成了主机与DSP芯片的连接和通信。
3、关键词:DSP;TMS320C55x;HPI接口;单片机目 录1 相关知识31.1 TMS320C55x开发环境31.1 HPI接口32 设计任务及目的42.1设计任务42.2设计目的43 设计原理53.1 HPI-8接口结构53.2 HPI-8接口信号和控制寄存器63.3 HPI-8基本功能描述84 程序清单104.1 TMS320C55x HPI接口 DSP端程序104.2 TMS320C55x HPI接口单片机端程序125 结论156 参考文献161 相关知识1.1 TMS320C55x开发环境C55x编程可以采用汇编语言,也可以采用C/C+语言,本次编程主要采用汇编语言完成,所以执行效
4、率高。C55x的软件开发环境是CCS v3.1(Code Composer Studio),是IT公司推出的用于开发DSP芯片的集成环境,它集编辑、编译、链接、软件仿真、硬件调试、以及实时跟踪功能于一体。1.2 HPI接口HPI是HOST PORT INTERFACE的简称。HPI是一个与主机通信的并行接口,主要用于DSP与其他总线或CPU进行通信。信息可通过C54x的片内存储器与主机进行数据交换。不同型号的器件配置不同的HPI口,可分为8位标准标准HPI接口、8位增强型HPI接口和16位增强型HPI接口。TMS320C5402芯片的HPI接口分为HPI8(8位主机接口)和HPI16(16位主
5、机接口)两种,其应用方式大同小异,主要介绍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接口的原理(
6、4)掌握单片机与DSP芯片的连接方法(5)编写HPI初始化程序,在DSP芯片上运行2.2设计目的HPI主机接口是DSP芯片内部用于并行通信的一种接口部件,它主要用于将DSP和其他外部总线或CPU进行连接。HPI接口通过HPI控制寄存器(HPIC)、HPI地址寄存器(HPIA)和HPI数据寄存器(HPID)以及HPI内存区,实现和主机之间的通信。其主要特点是接口所需要的外围硬件很少,HPI接口单元允许芯片直接利用一个或两个数据选通信号、一个独立或复用的地址总线、一个独立或复用的数据总线连接到微控制器(MCU)上,主机和DSP可以独立地对HPI接口操作,主机和DSP的握手可通过中断方式快速实现。另
7、外,主机还可以通过HPI接口装载DSP应用程序、接受DSP运行结果、判断或决定DSP的运行状态和工作方式,HPI主机接口为DSP芯片的接口开发提供了一种方便、快捷的方法。根据HPI接口数据总线的不同,可以分为HPI-8主机接口和HPI-16主机接口。本次课设要求设计与HPI-8相关的接口程序。3 设计原理31 HPI-8接口结构HPI-8为8位并行口,提供了C55x和外部主机接口。C55x通过片内的RAM与主机设备交换数据。HPI-8为从设备,它使主机能够访问C54x内部的存储区。其接口包括一个8比特的双向数据和各种控制信号。16为的数据分为高、低两个字节传输,用HBIL信号线来控制传输的是高
8、字节还是低字节。主机和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和主机同时读/写同一存储区
9、域是将产生冲突,这时主机具有优先权,C55xCPU将等待一个时钟周期。3.2 HPI-8接口信号和控制寄存器HPI-8接口控制信号主要包括以下几类:HAS:地址锁存(ALE)或选通输入信号,如不用则接高电平HBIL:地址控制输入信号,HBIL=L时,读/写第1字节;HBIL=H是,读/写第2字节。HBIL和HPI控制寄存器(HPIC)中的BOB位结合使用HCNTL0,HCNTL1:地址控制输入信号,供主机选择读/写HPIC、HPIA或HPIDHCS:HPI选通使能,主机对HPI访问期间,信号HCS要保持低电平HD0HD7:HPI双向三态数据总线HDS1,HDS2:读/写数据选通输入信号HINT
10、:输出信号,供主机产生中断时使用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中断;
11、写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个C
12、55x时钟周期。图3.2给出了HPI-8中3个寄存器的联系和工作情况: 图 3.2 HPI-8的控制寄存器3.3 HPI-8基本功能描述外围HPI-8接口可以不需要或只需要很少一部分附加逻辑,就能够与各种主机相连接。8位数据总线(HD0HD7)用于与主机交换数据;两个控制输入(HCNTL0和HCNTL1)指示访问哪一个HPI-8寄存器;输入和HBIL一起,通常由主机地址总线驱动。图3.3给出了HPI-8和主机设备之间的一个简单连接关系:图3.3 HPI-8连接框图HPI-8使用中断逻辑使得软件的通信“握手”变得容易。主机通过在HPIC寄存器中设置特定位来中断C55x CPU。同样,C55x也能
13、够使用HINT输出来中断主机。C55x和主机都可以通过设置HPIC寄存器的HINT位来产生中断。 主机编程流程图如下:4 程序清单4.1 TMS320C55x HPI接口 DSP端程序typedef struct int head; / framehead int length; /framelength int func; /functype int data253; /the data HPIFRAME ;HPIFRAME hpiinbuf ;HPIFRAME hpiout buf ;# pragma DA TA_SECTION (hpiinbuf , . hpibuffer )# pragma DA TA_SECTION (hpioutbuf , . hpibuffer )void main () char hpidatacnt ; HPIFRAME*hpiinbufpt r = &hpiinbuf ; HPIFRAME*hpiout bufpt r = &hpiout buf c55_init () ; ser0inwrcnt = 1 ; ser0out rdcnt = 5 ; ser0inrdcnt = 5 ; ser0outwrcnt = 1 ; ser0flag = 0 ; for ( ; ;) if (hpirecflag = 1)
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1