用FPGA实现DSP与液晶显示器的快速接口
日期:2007-8-9
来源:电子技术应用 作者:周 博 杨 超 司锡才
摘要:高速处理器与慢速设备之间的接口是电子系统设计中经常遇到的问题。以液晶显示器为例,提出了一种以FPGA为基础的快速接口电路设计方案。该方案可有效地减小慢速设备对高速处理器的影响。
关键词:可编程器件 DSP 液晶显示器 微指令 快速接口
随着器件集成工艺的发展和Soc器件的出现,现在的数字系统正在越来越多地采用可编程器件设计。这样,不仅开发周期短,而且在价格和使用难易度上也显示了很大的优势。更为重要的是,还能利用器件的现场可编程特性,根据应用的要求对器件进行动态配置,简便易行地完成功能的添加或变化。
在高速的数字信号处理系统中,要涉及到大量的计算,为了提高运算速度,正大量使用DSP器件。目前的可编程器件,其时钟频率可以很高,在高速数字信号处理系统中将发挥越来越大的作用。因此,DSP+FPGA的方案正越来越多地被电子工程师们采用。 在很多的实际数字系统中,往往需要良好的用户界面,其中LCD是被大量采用的显示器件。由于LCD是典型的慢速设备(相对于DSP来讲),在与高速微处理器接口时,会耗费大量时间,这在高速系统设计中是不允许的。如果DSP有不太富裕的处理余量,如何利用它对LCD完成控制呢?仅仅在两者之间加入锁存器之类的简单接口电路,往往不能对LCD完成控制。不过,有了FPGA,就可以在不增加成本的情况下,在DSP和LCD之间设计一条双向的快速通道。
1 DSP和LCD的时序
TI公司是DSP在全球的主要供应商,其低价位的TMS320VC54x系列DSP深受广大电子工程师的青睐。下面以TMS320VC5416.html" target="_blank" title="TMS320VC5416">TMS320VC5416为例介绍DSP的时序。TMS320VC5416.html" target="_blank" title="TMS320VC5416">TMS320VC5416将寻址范围分为存储器空间、程序空间和I/O空间。其中,对I/O空间的操作由地址线、数据线和三根信号线IOSTRB、R/W和IS来完成,其时序图如图1所示。 读操作和写操作由R/W信号线上的高低电平决定。如果不采用外部插入等待周期的方法,仅靠内部的等待周期设置寄存器,访问外部I/O空间时最多可以插入14个等待周期。如果DSP运行在100MHz的主频上(实际上TMS320VC16可以运行在最高160MHz的主频上),也只有0.14μs。这对于LCD来说来远远不够的。常见的192×64点阵的LCD(FM19264)实际上是由3块独立的64×64点阵LCD构成的,共享地址线和数据线,可由CS1、CS2和CS3分别选中。每小块LCD都有各自独立的指令寄存器和数据寄存器,由控制线D/I上的高低电平选择。数据的锁存或出现在数据线上由E信号决定。LCD主要控制管脚的功能如表1所示。对LCD写操作的时序图如图2所示。LCD的每次读写操作最少要1μs。如果能使DSP对LCD的访问象对高速设备访问一样,就能够最大限度地减小DSP资源的浪费,并且能够减少系统的复杂性,这就需要在FPGA中添加一个DSP与LCD之间的高速双向通道。表1 LCD主要控制管脚功能管脚名称 | 功能描述 |
CS1 | 选中左边LCD,低有效 |
CS2 | 选中中间LCD,低有效 |
CS3 | 选中右边LCD,低有效 |
D/I | 高:对数据寄存器操作低:对指令寄存器操作 |
R/W | 高:读操作低:写操作 |
E | R/W为低(写操作)时,E信号的下降沿锁存数据R/W为高(读操作)、E为高时、LCD的数据出现在数据线上 |
RESET | 复位信号,低有效 |
D7~D0 | 数据 |
2 硬件电路设计
硬件框图如图3所示。LCD的原始控制指令如表2所示。表2 LCD原始控制指令指 令 码 | 功 能 | |||||||||
R/W | D/I | D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 | |
0 | 0 | 0 | 0 | 1 | 1 | 1 | 1 | 1 | 1/0 | 控制显示器的开关 |
0 | 0 | 1 | 1 | 显示起始行(063) | 设定显示器从哪一行显示数据 | |||||
0 | 0 | 1 | 0 | 1 | 1 | 1 | 页地址(07) | 设定页地址 | ||
0 | 0 | 0 | 1 | 列埴 (063) | 设定列地址 | |||||
0 | 1 | 写入LCD的数据 | 给显示器写数据 | |||||||
1 | 1 | 读出的状态 | 读显示器状态 | |||||||
1 | 0 | 读出的数据 | 读显示器数据 |
取指控制逻辑主要功能是根据FIFO的状态决定是否写入新的指令以及根据执行状态机的状态读入新的指令,填写状态寄存器,给出中断信号。
根据上述硬件设计,DSP的软件设计就大大简化了。以写入数据为例,在写入数据前先查询一下接口模块的状态,如果可以写入就写入数据;否则保持现有数据指针,等待下次写入。一读一写两次外部I/O操作,如果按7个等待周期、主频100MHz计算,只有140ns,加上判断所需时间,200ns内就可以完成写入数据。这里,7个等待周期是考虑到系统内还其它器件。如果只是对该接口模块操作,两三个等待周期是没有问题的。这样,100ns内就可完成写入数据。 在实际应用中,采用上述接口控制模块来完成LCD控制大大减轻了DSP的压力。推而广泛,这种方法还可以应用在其它慢速设备上,如打印机等,对于提高系统效率是比较有效的。需要指出的是,尽管这种方法能够建立双向快速通道,却是以占用可编程器件有限的资源为代价的。但是随着目前可编程器件容量的日益扩大,这个问题已不是很突出的了。