基于单片机的TMS320VC5402的HPI通信设计
本文所介绍的是我所正在研制的卫星CDMA接收机末端DSP与微机串口通信的接口电路。由于CDMA接收机支持两个独立CDMA信道的接收,并将两路解调后的数据分别经串口送至不同的计算机做后续的处理,故接收机需要带两个RS232接口。
微机的异步串口与DSP处理器通信的方法通常有三种,第一种方法是采用异步通信芯片扩展串口,如用TI公司的TL16C550完成数据的串/并、并/串变换。由于TL16C550提供了丰富的控制管脚和应答信号,对其只需设置一些寄存器就可进行灵活的控制,故编程比较简单,但对其数据的读取或写入则需要用到DSP的数据总线。第二种方法是将DSP的I/O口XF和,或者将DSP的McBSP口用软件模拟成异步串口。用这种方法,虽然DSP与微机串口之间无需串/并变换器件,硬件构成十分简单,但DSP的编程比较复杂,用I/O口线模拟串口需要占用两个定时器资源,并且只有在DSP操作不繁忙的情况下这种方法才可行。第三种方法是用单片机实现数据的串/并、并/串转换。与第一种方法相比较,这种方法增加了对单片机的编程,但单片机可以作为控制器操作DSP的HPI口,对DSP存储器的数据收发可完全由单片机发起,DSP几乎无需作任何操作,也无需用到数据总线。在DSP处理过程复杂、运算量大的情况下,这种方法特别有用。
在本系统中,我们采用的DSP处理器是高性能、低功耗的TMS320VC5402,用以实现系统的MAC层控制和数据的编、解码工作,处理器的工作量很大。另外DSP数据总线需要与作为基带处理器的FPGA芯片(APEXEP20K600E)交换数据,为避免引入额外的控制逻辑实现与数据总线复用,采用单片机控制HPI口的方法实现DSP与双串口的通信。考虑到FPGA芯片的存在及节省成本,没有采用价格贵且需用高级仿真器开发的双串口单片机(如DS80C320),而是采用两片AT89C2051,并借用物理层FPGA的冗余资源作为总线仲裁器来实现同样的功能。
1TMS320VC5402 简介
TMS320VC5402是TI公司C54x系列定点DSP芯片中的新产品它集中了此系列早期产品的优点,并提供了许多新的功能,开发和使用更加方便。C5402具有灵活的指令系统和操作性能,它可选择助记符指令或算术指令作为编程指令,同时支持汇编语言和C语言的单独或混合编程。C5402采用改进的Harvanl处理结构,指令流水线操作。计算和处理速度很高,系统单指令周期可达到10ns。在片内提供16k的RAM用作程序和数据存储,其最大可扩展寻址空间为1M字节。C5402提供的McBSP串口和DAM数据传送方式极大地方便它在通信领域的应用和开发。C5402由于其高性能价格而成为当前语言和静态图象处理和主流产品。
2 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字节。
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的地址中。
HPI接口还提供了中断逻辑同主机进行软件握手。主机可通过对控制寄存器HPIC的第二位(DSPINT)置1中断DSP芯片;DSP芯片可通过对HPIC的第三位(HINT)置1中断主机,此时HPI的引脚被置为低电平,从而向主机发出中断请求;主机还可设置HPIC的位HINT为1使
脚回到高电平,从而清除中断信号。
下面给出HPI口相关管脚说明:
HD0~HD7是8位双向数据线,与单片机P1口相连,用于交换数据。
HCNTL1/0的组合用于选择主机所访问的HPI寄存器,00表明主机访问HPIC;10表明访问HPIA;01
单片机 MS320VC5402 HPI通信 相关文章:
- FPGA的DSP性能揭秘(06-16)
- 基于单片机通用引脚的软件UART设计(10-16)
- 分时操作系统思想在单片机中的具体应用 (10-30)
- 基于AT89C51+DSP的双CPU伺服运动控制器的研究(05-26)
- 关于RTX51 TINY的分析与探讨(05-30)
- 基于MC9S12DGl28单片机的智能寻迹车设计(04-03)