DSP与慢速设备接口的实现_接口电路论文
关键词:dsp tms320f206 液晶显示模块 时序匹配
dsp是一种高性能的数字信号处理器。由于其具有快速的计算能力和强大的处理能力,因此被广泛地应用到工业自动化、国防科研等领域中。与常规单片机相比,dsp的内部结构和时序发生了很大的变化。所以单片机适用的接口芯片,dsp并不一定适用。对于非常熟悉单片机电路的设计人员,在进行dsp电路设计时,应特别注意芯片的选型和时序的搭配。尤其在处理dsp与慢速设备或器件接口时,正确的时序搭配是至关重要的。
为了适应较慢的外部存储器和输入/输出设备,dsp配备了软件可编程等待状态发生器,可以将外部总线周期扩展到数个机器周期。由于受硬件条件的限制,这种扩展通常也是有限的,如c54xx系列的dsp最多只能扩展到14个机器周期,c2xx系列的dsp最多只能扩展到7个机器周期。但在实际应用过程中,经常会遇到读写周期更慢的输入/输出设备,如液晶显示模块、打印机、键盘等。因此,仅通过软件编程控制内部状态等待发生器是不能实现输入/输出时序匹配的,必须进行外部硬件扩展设计。
图1 tms320f206的i/o读写时序
在dsp与慢速外围设备接口设计过程中,通常采用双cpu的方法,由dsp完成高速数据处理和计算,用普通单片机(如51系列单片机)实现系统的输入/输出功能。这种方法由于采用两种结构不同的cpu,增加了系统的复杂性,而且接口和调试难度加大。本文将利用dsp的ready(外部设备准备就绪)引脚,通过硬件扩展实现外部状态自动等待,从而使dsp与慢速输入/输出设备能直接连接以实现访问的时序匹配。这种方法接口容易,硬件扩展电路并不复杂,而且内、外等待状态结合起来使用,可产生任何数目的等待状态,甚至可以将外部硬件等待状态设计为受控方式,只在需要的时候启动外部等待状态。这样,使用的时候就会更加灵活。
1 dsp的i/o读写时序
现以tms320f206 dsp芯片为例进行介绍。其时钟频率设20mhz,它的外部读写时序如图1所示。
tms320f206的读周期为一个时钟周期(5ns),写周期为两个时钟周期。读、写操作数据的保持时间t1、t2只有几个纳秒。内部可编程等待状态发生器最多只能扩展到等待7个时钟周期,即350ns。利用内部状态等待,只能实现dsp与常用单片机的外围芯片的读写时序相匹配。
图2 液晶模块的写时序 图2 液晶模块的读时序
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,那么最大等待时间可以达到2 12×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
lcdrw: call lcdenable
in 60h,[读地址] ;读操作
……………………
out 61h,[写地址] ;写操作
……………………
call lcddisable
ret
利用tms320f206的io1作为读写使能控制信号调用lcdenable和lcddisable两个子程序打开和关闭对液晶模块的访问功能。除了需要调用两个简单的控制子函数以外,读写操作分别由in和out两条指令完成,实现对该液晶模块的直接读写访问。由于该液晶模块没有单独的读写控制引脚,访问控制要求比较特殊,所以只能按照图6的方式进行连接。
如果外部设备具有单独的读写控制引脚,可直接与图4中的dev-rd和dev-we分别相连,然后将数据线与地址线对应连接,就能够进行直接读写访问控制。作者为处理键盘输入和打印机输出接口时,就是采用这种连接方式。使用结果表明,访问和控制都十分可靠。
由于dsp的应用日益广泛,作为一个完整的控制系统和测试设备,参数设备、结果显示等基本的输入/输出功能是必不可少的。因此,dsp与慢速设备的接口将是各种科研和开发中经常遇到的问题。本文给出的硬件接口方法能够实现dsp的外部访问自动状态待,使高速的dsp芯片与传统的慢速输入输出设备融入一个系统,不仅有效地解决了dsp与各种慢速设备访问时序的匹配问题,而且硬件电路设计简单、访问直接、控制编程容易,进一步拓展了dsp在工业自动控制和测试设备中的应用空间。