当显示屏做得越大,即屏幕的点阵越多,向显示屏发送的数据就越多,数据传输与控制的时间也会增加,完成一屏扫描的时间会越长。因此,在设计中必须考虑这个因素。满足这一要求,关键在于提高程序的执行速度,可以选择更快的CPU或数字信号处理芯片ARM。本设计采用基于ARM的32位嵌入式RISC为处理器,S3C4510B是完全可以胜任的,该微处理器的速度较高,而且存储容量较大。
上位机通过串口经过RS232/RS485转换器将指令集发送给ARM微处理器,ARM微处理器把接收到的指令集放入外部的FLASH中保存,断电后内容不丢失,同时ARM外部扩展两片SRAM用于存放快速运算的数据,光传感器和温度传感器用来测量外界的光和温度,以便随着光线的强弱改变显示屏的亮度,在显示屏上显示出外界温度。FPGA完成对LED屏的扫描驱动过程,其内部固化的数字逻辑负责产生屏幕显示控制信号(串行移位时钟、行锁存信号、行选信号等),其外部配置的两片SRAM用于分时读取灰度数据。同时,FPGA从SRAM中读取灰度数据信号,并将其转换成上屏数据后串行输出到相应的颜色的信号数据总线上。FPGA外部扩展的两片SRAM组成了数据缓冲、切换区,采用乒乓逻辑,某一时刻向一片存储器写入数据,另一片被FPGA逻辑读取数据转换后送人显示屏,二者轮流切换,保证了数据的高速上屏和显示的连续性。ARM外部配置大容量的SRAM和FLASH存储器,与传统的显示屏控制电路相比较,可以支持更大的显示区域、存储更多的显示内容、获得更好的显示效果。
2.2扫描驱动电路设计
LED显示屏的扫描驱动电路部分是由FPGA来实现的,如图3所示。
扫描驱动电路主要完成灰度数据的读取和发送、上屏灰度数据的产生、移位时钟的产生、亮度信号的控制、4个分区锁存信号的产生、通知ARM发送数据等功能。这些功能均在一片FPGA中完成,这样使显示控制电路板的体积减小,而且由于FPGA功能用硬件描述语言VHDL编程实现,即可以通过使用VHDL语言编程,来验证系统方案的可行性及正确性,然后再用FPGA硬件来实现,从而可以大大缩短开发周期,使设计灵活、修改方便,同时FPGA由于高集成度、高速高可靠性、开发周期短的特点,从而大大改善电路性能。
这种设计的实现需要FPGA提供大量的I/O引脚,其中I/O引脚包括(1)系统总线接口:数据总线8根,控制信号线5根,亮度信号线3根,输入线1根,复位信号线1根,共18根;(2)双体SRAM总线接口:地址总线15根,数据总线8根,读写控制信号2根,共50根;(3)显示控制信号输出接口:移位时钟信号1根,行锁存信号1根,行选4根;(4)显示像素数据输出接口:红、绿、蓝共3根。共计18+50+6+3=77个I/O口。为了可以使LED显示屏的尺寸增加1倍,即所需的I/O口增多,同时考用VHDL语言描述的内部功能逻辑所需的宏单元数量,需要选择256个宏单芯片,在此FPGA选用32位的PolarPro QLlP300芯片。