基于FPGA的液晶显示接口设计
时间:09-26
来源:国际电子商情
点击:
引言
在小规模图形液晶显示模块上使用液晶显示驱动控制器组成液晶显示驱动和控制系统,是当今低成本,低功耗,高集成化设计的最好选择,SED1520是当前最常用的一种液晶显示驱动控制器,这类图形液晶显示模块的规模为32行,本文用到的液晶模块CM12232即是内置SED1520的液晶显示模块,该模块的驱动控制系统由两片SED1520组成。
FPGA即现场可编程门阵列器件,这是一种超大规模集成电路,具有在电路可重配置的能力(in circuit reconfigurable,ICR)。设计者设计的逻辑可在编译、适配后变成网络表下载到FPGA芯片上之后,FPGA即可执行设计的逻辑功能。因此,FPGA在芯片控制、接口逻辑设计等各个方面的应用越来越广泛。
系统硬件设计
本方案采用的FPGA为Alter公司的ACEX1K30芯片,它可提供系统的时钟及读写控制,ACEX系列的FPGA由逻辑阵列块LAB(Logic array block)、嵌入式阵列块EAB(embedded array block)、快速互联以及IO单元构成,每个逻辑阵列块包含8个逻辑单元LE(logic element)和一个局部互联[1]。每个逻辑单元则由一个4输入查找表(LUT)、一个可编程触发器、快速进位链、级连链组成,多个LAB和多个EAB则可通过快速通道互相连接。EAB是ACEX系列器件在结构设计上的一个重要部件,他是输入端口和输出端口都带有触发器的一种灵活的RAM块,其主要功能是实现一些规模不太大的FIFO、ROM、RAM和双端口RAM等。在本液晶显示接口电路中,EAB主要用宏功能模块实现片上ROM。它通过调用FPGA上的EAB资源来实现汉字的显示和字符的存储,并根据控制信号产生的地址值从ROM中读取字符值,然后送LCD显示器进行显示。
由于所用的图形点阵液晶块内置有SED1520控制器,所以,其电路特性实际上就是SED1520的电路特性。SED1520的主要特性如下[2]:
具有液晶显示行驱动器,具有16路行驱动输出,并可级联实现32行驱动。
具有液晶显示列驱动器,共有61路列驱动输出。
内置时序发生器,其占空比可设置为1/16和1/32两种。
内藏显示存储器,显示存储器内的数据可直接显示,"1"为显示,"0"为不显示。
接口总线时序可适配8080系列或M6800系列,并可直接与计算机接口。
操作简单,有13条控制指令。
采用CMOS工艺,可在电压低至2.4-7.0V时正常工作,功耗仅30μW。
本设计所用的字符液晶模块CM12232由两块SED1520级连驱动,其中一个工作在主工作方式下,另一个工作在从方式下,主工作方式SED1520负责上半屏16行的驱动和左半屏的61列驱动,从工作方式的SED1520则负责下半屏16行的驱动和右半屏的61列驱动,使能信号E1、E2用来区分具体控制的是那一片SED1520,其系统的硬件连接图如图1所示。
由图1可见,该系统的硬件部分连接十分简单,其中FPGA部分没画出,而液晶与FPGA的接口则可直接以网表的形式给出,将它们直接与FPGA的普通I/O引脚相连即可。
系统的软件接口实现
具体实现的重点是如何从存放有字符的ROM块中读出数据,并按照液晶的时序正确的写入,在介绍具体实现方法前,首先要熟悉SED1520的指令。
SED1520的控制指令表
SED1520的几种主要的控制指令格式如下:
(1)复位格式(Reset)
该指令用于实现SED1520的软件复位。该指令执行时,显示起始行寄存器清零,接着列地址指针清零,之后页地址寄存器置为"3"。
(2)休闲状态
设置(Statis drive ON/OFF)
该指令是休闲状态的软件开关,当S=1时,SED1520进入休闲状态;当S=0时,SED1520将中止或退出休闲状态。
(3)占空比设置(Slect duty)
该指令用于设置SED1520的占空比,Du=0时为1/16占空比,Du为1时为1/32占空比。
(4)ADC选择指令(Selet ADC)
该指令用于设置显示存储器中单元的地址所对应的显示驱动输出的顺序。A=0时,顺时针显示;A=1时,逆时针显示。
(5)显示起始行设置(Display start line)
该指令可用于设置显示屏上第一行(行驱动输出COMO所对应的显示行)所对应的显示存储器的行号,由此行顺序下延可得到对应显示屏上的显示效果,L=0-31(1FH),对应表示显示存储器的第1-32行。
(6)显示开/关设置(Display ON/OFF)
该指令控制着显示驱动器的输出。当Di=0时,显示关,当Di=1时,显示开。
(7)页面显示存储的设置
SED1520将显示存储器分为4个页面(0-3页)。每个页面都有80个字节。页面管理可由2位页地址寄存器控制,该指令就是设置页地址寄存器的内容,以选择相应的显示寄存器的页面。P=0-3,对应代表0-3页。
(8)列地址设置(Set column(segment)address)
SED1520的显示存储器的每个页面上都有80个字节,每个字节中的8位数据对应着显示屏上同一列的8点行,列地址指针就是管理这80个字节单元的,列地址指针是一个7位加一计数器,由它和页地址寄存器组合,可唯一指定显示存储器的某一个单元,列地址指针在计算机对显示存储器的每次操后都将自动加一。该指令就是设置列地址指针内容的。当CY=0-4FH,分别对应于1-80单元的地址。
- 利用FPGA和新技术,使LCD进入HDTV市场(08-27)
- 基于DSP和FPGA的电视观瞄系统设计(09-02)
- FPGA与SRAM相结合完成大容量数据存储(09-03)
- HDTV接收机中Viterbi译码器的FPGA实现(09-09)
- 解决硬盘驱动器能耗难题(10-13)
- 低批量手持设备设计:勇敢者的工作(10-07)