0 引言
TMS320VC5402是TI公司推出的性价比极高的定点数字信号处理器(DSP)。它具有先进的多总线结构(三条16位数据存储器总线和一条程序存储器总线);其数据/程序寻址空间为1 M×16 bit: 内置4 k×16 bitP/DROM和16 k×16 bit-DARAM;此外,该DSP内含两个多通道缓冲串行口,一个8位并行与外部处理器通信的HPI口,2个16位定时器以及6通道DMA控制器;具有低功耗,适合电池供电设备等特点[1]。
51系列单片机是一种很经典的单片机。20多年来一直久盛不衰。而且Intel通过授权5l内核,目前已出现了很多第三方生产的51系列产品。这些产品一般都具有较高的时钟频率和较大的存储空间,而且还能运行嵌入式操作系统。因而极大地提高了单片机的性能,扩大了它的应用范围。
1 TMS320VC5402的主机接口(HPI)
HPI(主机接口)是主机与TMS320VC5402进行数据交换的8 bit并行数据口。该接口在
TMS320VC5402芯片上,内部有数据寄存器(HPID),控制寄存器(HPIC)及地址寄存器(HPIA)。HPI口可用8 bit数据线传输16 bit的数据,并可通过设置控制寄存器的相关位来控制高8位和低8位传输。HPI有两种工作方式:一种是主机独占模式 (HOM); 另一种是主机和TMS320VC5402共享模式(SAM)。其中SAM是通用方式,二者都可寻址HPI存储器(DARAM)。当二者产生冲突时,主机具有较高的优先权,而在TMS320VC5402插人一个等周期。通过HPI传输的数据率是每5个CLKOUT时钟周期传输1字节。HMS320VC5402芯片中HPI8的内部结构逻辑如图1所示[2]。
HPI通信主要是通过对HPIA、HPIC和HPID3个寄存器赋值来实现的。简单地说,HOST通过外部引脚HCNTL0和HCNTLl选中不同的寄存器后,就将当前8位数据发送到该寄存器中了。由于HPIC是16位寄存器,而HPI口总是传送8位数据宽度,所以用HOST向HPIC写数据时,需要发送两个一样的8位数据。对TMS320VC5402来说,仅低8位有意义。当地址寄存器HPIA选择后,直接向它写数据就可以了,但是要注意MSB和LSB的顺序。另外,HPIA具有自动增长的特性,即在每写入一个数据前和每读一个数据后HPIA都会自动加1。这样,如果使用了该功能,只需设定一次HPIA即可实现连续数据块的写入和读出,只是在实现时,数据应首先从主机发到HPID中,然后再根据HPIA指定的地址把HPID中的数据再写到片内RAM的地址中。
2 DSP与单片机的通信
由于本系统具有主从式双CPU结构,因此,DSP从处理器和单片机主处理器之间的数据通信是必不可少的。它们之间的通信接口设计是整个系统的一个关键。对于DSP和单片机的具体连接方案,考虑到不论是接串口还是接I/O口都要占用DSP的硬件资源,同时软件开销也非常大。而TMS320VC5402提供有HPI接口,可专用于DSP和主机之间的通信,因此DSP在通过HPI口和主机通信的过程中完全没有硬件和软件开销,而是由DSP自身的硬件来协调冲突,因从而不会打断DSP正常程序的运行。在HPI通信方式下,DSP的片内存储器对外界是完全透明的,可由主机通过访问HPI的地址和数据寄存器来完成对DSP片内存储器的读写。本系统采取DSP的HPI口和单片机的P0口相连来作为数据传输口从而实现两者的交互。
2.1 DSP和单片机的硬件接口设计
本设计选取ATMEL公司的AT89C51单片机作为主机,并以I/O接口方式连接DSP和AT89C51,设计时使用了AT89C51的两个通用I/O端口P0和P2,其硬件接口原理图如2所示。图中将AT89C51的端口P0和HPI的8位数据线HD0一~HD8相连作为数据传输通道,P20~P24设置为输出以控制HPI口的操作。其中P2.0和P2.1分别连接HCNTL0和HCNTLl以实现对HPIC、HPIA和HPID寄存器的访问,P2.2连接字节识别信号HBIL可控制读写数据是属16位字的第一字节还是第二字节,P2.4作为读写控制选通信号连接HR/W,P2.7与HCS相连,而连接HDS1作为数据选通信号来锁存有效的HCNTL0/1,HBIL和HR/W信号。 INT0作为输入与HPI口的主机中断信号HINT相连。ALE与HAS相连,WR和HDS2相连。由HPI接口的原理可知,在HCNTL0/1、HBIL和HR/W信号有效之后,设置HDS1为低电平可实现读写的数据选通,从而完成AT89C51对DSPHPI口的读写操作。在数据交换过程中,AT89C51向HPI发送数据可通过置TMS320VC5402的HPI控制寄存器HPIC中的DSPINT位为1来中断5402。AT89C51接收来自HPI的数据时则可用查询方式。当TMS320VC5402DSP准备发送数据时,置/HINT信号为低。当AT89C51查询到INT0为低时,系统将调用接收数据子程序来实现数据的接收。
TMS320VC5402 DSP的外部I/O引脚用的是3.3 V逻辑电平,而AT89C51单片机用的是5 V逻辑电平,两者之间存在电平差异而不能直接相连,故采用74LVC16245进行接口隔离同时还可增强DSP的总线驱动能力。
2.2 通过HPI接口读取数据的软件设计
在硬件搭建好后,接下来便是软件功能模块的设计工作。本系统主机程序主要完成HPI寄存器的选择、时序的构建和数据读/写等。可根据DSP HPI接口的工作时序置HPIENA引脚为高电平,使能DSP进入HPI工作模式,然后设置TMS320VC5402的HPIC寄存器和HPIA寄存器,使其工作在能够配合8 bit HPI Bootloader状态下。AT89C51的部分汇编源程序所完成的功能包括初始化串口、初始化HPI接口、从串口接收命令字(包括16,bit地址和8,bit数据)、通过HPI接口读取DSP的相应内部存储器,并发送到串口、以及等待接收下一次的命令等,其具体汇编程序代码如下:
3 结束语
DSP与单片机之间有许多连接方式, (例如利用双口RAM或者通过串口),但是它们都要占用DSP的处理时间,这在要求苛刻的场合可能会影响到系统的实时性。而HPI接口则通过DSP片内的DMA控制器来访问片内存储器,它不需要DSP的干预。可以说,HPI接口是DSP的一个"后门",单片机通过这个"后门"可以访问到DSP的片内存储器。只有当HPI接口和DSP同时对同一地址进行访问时,由于HPI具有访问优先权,这时DSP的执行大会被延迟一个周期,而这种情况对系统实时性的影响是非常小的。
上一篇:基于SPCE061A的语音识别技术应用
下一篇:基于AT89C51的数据采集系统设计新方法
推荐阅读最新更新时间:2024-03-16 12:22