基于CPLD和嵌入式系统的LED点阵显示
时间:2023-09-25 22:57 来源: 作者: 点击:次
屏是公共信息的一种重要终端,其中大屏幕显示屏在许多场合得以应用。大屏幕显示所采用的技术比中小屏幕显示难度更大,因为其屏幕大、点数多,要求在极短的时间内刷新每个点,使得其扫描速率必须非常高,所以只有设计合理的控制电路才能达到这个要求。本文着重解决大屏幕LED显示这一技术难题。通过采用自顶向下的设计思想,综合运用高速、双口RAM等技术和芯片,设计出了大、小屏幕皆适合的显示控制电路。特别是利用单片机、与双口RAM的无缝结合,将复杂的任务分配给不同的硬件处理,满足了对实时性的要求。本不仅给大屏幕LED点阵显示提供了优良的控制电路,而且为器件和EDA技术提供了切实的应用实例。其中,共享双口RAM的应用,为高速总线与低速总线的通信提供了一个新的解决方案。 1 硬件设计 1.1 双口RAM的应用 由于CPLD扫描模块可以达到很高的扫描速率,而单片机的运行速度则相对较低,并且两个模块间需要有大量的数据交换,为此选择双口RAM芯片IDT7132SA35JS,它的速度等级是35ns,完全满足两个模块实时通信的要求。双口RAM是两个数据模块间的数据信道,必须是共享的,它在本设计中起到了关键作用。 1.2 CPLD的独立扫描模块 行扫描电路采用通用数字电路译码输出来控制。在32×32点阵显示时,扫描输出需要大量的I/O埠,而ATMEL公司生产的CPLD 芯片ATF1508AS15JC84(与ALTERA公司的MAX7128SLC84-15功能及封装等完全兼容)的外部I/O埠不够用,所以采用两片CPLD,一片专用于行扫描,另一片用于读取双口RAM IDT7132中的数据并进行列扫描。 列扫描电路的功能是在选中某行时送该行对应的列数据,由于采用的是8位微处理器,一次只能送一个字节的数据,即每次只能扫描8列。本设计中,采用8550三极管矩阵驱动方式,从而节省了大量控制信号引脚资源。 独立扫描模块的功能是以双口RAM 为中介将单片机送来的资料在LED 点阵显示屏上显示出来,其电路原理图如图3所示。单片机总线将处理好的待显示数据存放在U5(双口RAM IDT7132SA35JS中,然后U6(CPLD芯片ATF1508AS15JC84,用Verilog HDL语言编写其总线读逻辑)读取存放在U5中的待显示数据并驱动显示屏。整个显示屏为128×32点阵,一次扫描一个字节即8位,为此全屏显示需要128×32÷8=512字节。将地址线A9R、A10R 接地,这样只允许访问U5中的低512K 字节。 CA0~CA8是CPLD 输出到U5中的地址总线,CD0~CD7是从U5读出数据的数据总线。 J1是行扫描信号接口,CH0~CH4 为行扫描计数器输出信号,时钟信号可从CLK 输出给行扫描计数器。 J2为列扫描控制信号V0~V7输出接口。 DR0~DR15为一色的列选通控制信号输出,由于I/O端口引脚不够,所以另一色的列选通信号采用译码电路译码输出,用J3的四线输出。 CON1为JTAG 接口,J6为时钟源选择接口,可接单片机的ALE信号,也可接有源晶振CR2的输出。有源晶振CR2相当于一信号产生电路,只要其2脚接地,4脚接电源,3脚就有额定的输出波形。 由于采用CPLD 设计扫描逻辑,所以扫描逻辑的关键不再取决于硬件连接,而是取决于芯片的设计。 1.3 单片机的通信与信号处理电路 U4是AT89C51单片机;U3是地址锁存器,用来锁存单片机的低8位地址信号。因为要显示的数据量很大,特别是当设计复杂的显示效果时需要处理的资料量更大,而AT89C51内部缓存容量不足,所以扩展外部RAM,采用容量为8K字节的HM6264,即U7。 U2是容量为8K字节的EEPROM 28C64,用来存储字模数据,而不用作程序内存。U5是双口RAM,U1是将RS232电平转换为TTL电平的电平转换器。 PC机将欲显示的字或图形的点阵数据通过串口送到单片机,单片机将其存储在EEPROM(U2)中,然后再根据显示要求对这些数据进行特定的处理,处理完后存储在双口RAM(U5)的特定地址,供扫描模块扫描取数进行显示。为了便于编写串行通信程序,使用振荡频率为11.0592MHz的晶振CR1 和C5、R1及SW1组成的复位电路。 (责任编辑:admin) |