DSP是一种高性能的数字信号处理器。由于其具有快速的计算能力和强大的信息处理能力,因此被广泛地应用到工业自动化、国防科研等领域中。与常规单片机相比,DSP的内部结构和时序发生了很大的变化。所以单片机适用的接口芯片,DSP并不一定适用。对于非常熟悉单片机电路的设计人员,在进行DSP电路设计时,应特别注意芯片的选型和时序的搭配。尤其在处理DSP与慢速设备或器件接口时,正确的时序搭配是至关重要的。 为了适应较慢的外部存储器和输入/输出设备,DSP配备了软件可编程的等待状态发生器,可以将外部总线周期扩展到数个机器周期。由于受硬件条件的限制,这种扩展通常也是有限的,如C54XX系列的DSP最多只能扩展到14个机器周期,C2XX系列的DSP最多只能扩展到7个机器周期。但在实际应用过程中,经常会遇到读写周期更慢的输入/输出设备,如液晶显示模块、打印机、键盘等。因此,仅通过软件编程控制内部状态等待发生器是不能实现输入/输出时序匹配的,必须进行外部硬件扩展设计。
在DSP与慢速外围设备接口设计过程中,通常采用双CPU的方法,由DSP完成高速数据处理和计算,用普通单片机(如51系列单片机)实现系统的输入/输出功能。这种方法由于采用了两种结构不同的CPU,增加了系统的复杂性,而且接口和调试难度加大。本文将利用DSP的READY(外部设备准备就绪)引脚,通过硬件扩展实现外部状态自动等待,从而使DSP与慢速输入/输出设备能直接连接以实现访问的时序匹配。这种方法接口容易,硬件扩展电路并不复杂,而且内、外等待状态结合起来使用,可产生任何数目的等待状态,甚至可以将外部硬件等待状态设计为受控方式,只在需要的时候启动外部等待状态。这样,使用的时候就会更加灵活。
1 DSP的I/O读写时序
现以TMS320F206 DSP芯片为例进行介绍。其时钟频率设为20MHz,它的外部读写时序如图1所示。
TMS320F206的读周期为一个时钟周期(50ns),写周期为两个时钟周期。读、写操作数据的保持时间T1、T2只有几个纳秒。内部可编程等待状态发生器最多只能扩展到等待7个时钟周期,即350ns。利用内部状态等待,只能实现DSP与常用单片机的外围芯片的读写时序相匹配。
2 慢速设备的读写时序
现以MDL(S)16465字符液晶显示模块为例进行介绍。其读写时序如图2和图3所示。
该液晶模块的读写周期Tcyc最小为1000ns,脉冲宽度Pw最小为450ns,读写操作数据保持时间最小为10ns。如果采用直接连接方式将TMS320F206与该液晶模块接口,即使采用最大的状态等待数目,DSP的读写时序也不能满足该液晶模块的要求。为实现二者的时序匹配,本文将给出一种合适的外部硬件等待扩展方法,以实现DSP与液晶模块的直接读写访问控制。
3 DSP的READY信号
TMS320F206提供两种状态等待选项,一种是片内状态等待产生器,可以实现有限的可编程状态等待;另一种是READY信号,利用它可进行硬件扩展,从片外产生任何数目的状态等待。
DSP在进行外部读写操作时,如果READY引脚信号为低电平,DSP将等待一个时钟周期后再次检查READY信号。在READY引脚被驱动至高电平之前,程序处于等待状态,将不会继续往下执行。如果不使用READY信号,DSP在进行外部访问期间内,READY应始终保持高电平。
利用DSP的READY信号和相关外部访问控制信号,通过硬件扩展,可以实现外部自动状态等待,从而使DSP能够与慢速外部设备进行直接连接访问。
4 DSP与慢速外部设备的直接访问接口
外部状态等待硬件扩展电路采用一片12级的二进制波纹计数器74HC4040来实现,该芯片每一级的输出信号的频率为前一级的一半。将TMS320F206的时钟输出信号CLKOUT1作为74HC4040的输入时钟,如果CLKOUT1为20MHz,那么最大等待时间可以达到212%26#215;50ns,使用者可以根据外部设备的时序需要选用74HC4040的不同输出引脚进行等待控制。由于输入时钟的频率较高,一般的CD4040或MC14040芯片响应速度不够快,至少应选用74HC4040或响应速度更快的芯片。
自动硬件等待扩展电路如图4所示。选用74HC4040的Q5脚输出作为延时等待控制,等待时间为1600ns。将Q4脚输出信号分别与DSP的读写信号相或,产生外部设备的读写控制信号,这样可以充分保证读写操作时数据的保持时间。该电路所产生的时序如图5所示。
经过以上硬件状态等待扩展,DSP对外部设备读写周期达到1600ns,读写操作的数据保持时间大于20ns,满足液晶模块的时序要求。此外,DSP在进行内部程序和数据访问时,READY始终为高电平,不影响DSP的内部运行速度。应用该电路,DSP与MDL(S)16465液晶模块的直接访问连接如图6所示。
RS为液晶模块的数据指令控制输入端,“1”表示数据,“0”表示指令;R/W为读写控制输入端,“1”为读操作,“0”为写操作;E为使能控制输入端,高电平有效。按图6的接法,用两根地址线A8、A9分别与RS、R/W相连,根据每个引脚的功能定义,液晶模块的指令口写地址为0000H,指令口读地址为0200H,数据口写地址为0100H,数据口读地址为0300H。DSP对液晶模块的访问控制子程序如下:
lcdcwaddr .set 0000h ; 指令口写地址
lcdcraddr .set 0200h ; 指令口读地址
lcddwaddr .set 0100h ; 数据口写地址
lcddraddr .set 0300h ; 数据口读地址
lcdenable: splk #6ff2h,60h ; io1=1
out 60h,iosr ; lcd enabled
ret
lcddisable: splk #6ff0h,60h ; io1=0
out 60h,iosr ; lcd disabled
ret
lcdrw: call lcdenable
in 60h,[读地址] ; 读操作
……………………
out 61h,[写地址] ; 写操作
……………………
call lcddisable
ret
利用TMS320F206的IO1作为读写使能控制信号,调用LCDENABLE和LCDDISABLE两个子程序打开和关闭对液晶模块的访问功能。除了需要调用两个简单的控制子函数以外,读写操作分别由IN和OUT两条指令完成,实现对该液晶模块的直接读写访问。由于该液晶模块没有单独的读写控制引脚,访问控制要求比较特殊, 所以只能按照图6的方式进行连接。该液晶模块的控制时序可参见参考文献[1]。
如果外部设备具有单独的读写控制引脚,可直接与图4中的DEV-RD和DEV-WE分别相连,然后将数据线与地址线对应连接,就能够进行直接读写访问控制。作者在处理键盘输入和打印机输出接口时,就是采用这种连接方式。使用结果表明,访问和控制都十分可靠。
由于DSP的应用日益广泛,作为一个完整的控制系统和测试设备,参数设置、结果显示等基本的输入/输出功能是必不可少的。因此,DSP与慢速设备的接口将是各种科研和开发中经常遇到的问题。本文给出的硬件接口方法能够实现DSP的外部访问自动状态等待,使高速的DSP芯片与传统的慢速输入输出设备融入一个系统,不仅有效地解决了DSP与各种慢速设备访问时序的匹配问题,而且硬件电路设计简单、访问直接、控制编程容易,进一步拓展了DSP在工业自动控制和测试设备中的应用空间。 |