基于FPGA的液晶显示控制器设计
发布时间:2008/5/27 0:00:00 访问次数:476
液晶显示器由于具有低压、微功耗、显示信息量大、体积小等特点,在移动通信终端、便携计算机、gps卫星定位系统等领域有广泛用途,成为使用量最大的显示器件。液晶显示控制器作为液晶驱动电路的核心部件通常由集成电路组成,通过为液晶显示系统提供时序信号和显示数据来实现液晶显示。本设计是一种基于fpga(现场可编程门阵列)的液晶显示控制器。与集成电路控制器相比,fpga更加灵活,可以针对不同的液晶显示模块更改时序信号和显示数据。fpga的集成度、复杂度和面积优势使得其日益成为一种颇具吸引力的高性价比asic替代方案。本文选用xilinx公司的spartan iii系列xc3s200器件,利用硬件描述语言verilog设计了液晶显示控制器,实现了替代专用集成电路驱动控制lcd的作用。
1 功能分析与设计要求
液晶显示模块(lcm)采用深圳拓扑微lm2028、stn图形点阵液晶显示模块,5.7 in,320×240点阵,逻辑电压输入为3.0~5.0 v,4位控制接口,具有行列驱动电路,白光led背光源。表1为该液晶显示模块的引脚功能描述。
液晶显示器的扫描方式是逐行扫描,当一行被选通以后,这一行中的各列信号同时加到列上,并维持一个扫描行的时间。这一行维持时间结束后,即选通下一行,同时各列电极也施加下一行的显示电压。
列驱动器逻辑电路由移位寄存器和锁存器构成,在一个显示数据位移脉冲信号cp作用下,将一组显示数据(4位)位移到寄存器中并保持。当下一个cp到来后,移位寄存器中第1位显示数据被移至第2位,这样在80个cp脉冲作用下,一行显示数据被存入寄存器后,寄存器并口对接锁存器,在锁存脉冲lp的作用下,该行数据被锁存到锁存器内输出给列电极。锁存脉冲lp的间隔为一个行周期,而行移位脉冲间隔也为一个行周期,因此二者是一致的。 帧扫描信号flm即为行选通信号,脉宽为一行时间,在行移位脉冲lp作用下,存入移位寄存器后逐行位移,在一帧的最后一行输出高电平,代表下一帧的开始。m为液晶显示交流驱动波形信号,即一帧改变一次波形的极性,防止液晶单方向扭曲变形。更为详细的时序关系如图1所示。
2 设计与实现
2.1 液晶控制器总体设计
本设计的液晶显示器刷新频率为70 hz,每一帧周期为14.28 ms,每一行周期为60 μs,时钟信号cp的频率为2 mhz,将一行数据输入列移位寄存器的时间为40μs,因此每一行设计了20μs的空白时间。
液晶控制器系统原理如图2所示。时钟模块采用xilinx公司的coregen ip工具定制,数字时钟管理器dcm模块将fpga 50 mhz时钟信号clk_in 25分频为2 mhz控制器时钟信号clk。dcm采用了数字延迟锁相环技术来消除时钟相位的位移,提供比自行分频更稳定的时钟信号,以满足控制系统要求。controller模块为lcm提供满足图1所示时序要求的控制信号cp、lp、flm、m、dispoff,并且同步产生sram的读地址addra[14:0]。
sram为内存模块。为了提高输入lcd的数据流速度,设计了32k×4位的双端口内存,可同时实现读/写,并实现数据格式的转化,由上位机mcu输入的8位数据转为输入lcm列驱动器的4位数据;b端口由mcu_interface与上位机mcu连接,由mcu微控制器将显示数据写入内存sram。其中,addrb[13:0]控制16k×8位的写地址,dinb[7:0]为写人数据,web为写有效控制,clkb为写时钟;a端口由controller模块控制读地址addra[14:0],读时钟clka由系统时钟信号clk控制,douta[3:0]将数据写入lcm列驱动器。
2.2 控制模块设计
应用状态机的方法,用verilog硬件描述语言设计控制模块controller。clk为2 mhz输入时钟信号。lp和内部控制信号den由状态机1控制产生,flm由状态机2控制产生,m由状态机3控制产生,cp信号和addra[14:0]根据clk和den信号控制得到。状态机1有3个状态:状态1,lp为0,den为1,持续80个clk脉冲后转向状态2;状态2,lp为1,den为0,持续1个clk脉冲后转向状态3;状态3,lp为0,den为0,持续39个clk脉冲后转向状态1。状态机2有2个状态:状态1,flm为1,持续1个lp周期时间,即120个clk脉冲;状态2,flm为0,持续剩下的239个lp周期,即28 680个clk脉冲。状态机3有2个状态,状态1,m为1,持续1个flm周期时间,即28 800个clk脉冲;状态2,m为0,也持续1个flm周期时
液晶显示器由于具有低压、微功耗、显示信息量大、体积小等特点,在移动通信终端、便携计算机、gps卫星定位系统等领域有广泛用途,成为使用量最大的显示器件。液晶显示控制器作为液晶驱动电路的核心部件通常由集成电路组成,通过为液晶显示系统提供时序信号和显示数据来实现液晶显示。本设计是一种基于fpga(现场可编程门阵列)的液晶显示控制器。与集成电路控制器相比,fpga更加灵活,可以针对不同的液晶显示模块更改时序信号和显示数据。fpga的集成度、复杂度和面积优势使得其日益成为一种颇具吸引力的高性价比asic替代方案。本文选用xilinx公司的spartan iii系列xc3s200器件,利用硬件描述语言verilog设计了液晶显示控制器,实现了替代专用集成电路驱动控制lcd的作用。
1 功能分析与设计要求
液晶显示模块(lcm)采用深圳拓扑微lm2028、stn图形点阵液晶显示模块,5.7 in,320×240点阵,逻辑电压输入为3.0~5.0 v,4位控制接口,具有行列驱动电路,白光led背光源。表1为该液晶显示模块的引脚功能描述。
液晶显示器的扫描方式是逐行扫描,当一行被选通以后,这一行中的各列信号同时加到列上,并维持一个扫描行的时间。这一行维持时间结束后,即选通下一行,同时各列电极也施加下一行的显示电压。
列驱动器逻辑电路由移位寄存器和锁存器构成,在一个显示数据位移脉冲信号cp作用下,将一组显示数据(4位)位移到寄存器中并保持。当下一个cp到来后,移位寄存器中第1位显示数据被移至第2位,这样在80个cp脉冲作用下,一行显示数据被存入寄存器后,寄存器并口对接锁存器,在锁存脉冲lp的作用下,该行数据被锁存到锁存器内输出给列电极。锁存脉冲lp的间隔为一个行周期,而行移位脉冲间隔也为一个行周期,因此二者是一致的。 帧扫描信号flm即为行选通信号,脉宽为一行时间,在行移位脉冲lp作用下,存入移位寄存器后逐行位移,在一帧的最后一行输出高电平,代表下一帧的开始。m为液晶显示交流驱动波形信号,即一帧改变一次波形的极性,防止液晶单方向扭曲变形。更为详细的时序关系如图1所示。
2 设计与实现
2.1 液晶控制器总体设计
本设计的液晶显示器刷新频率为70 hz,每一帧周期为14.28 ms,每一行周期为60 μs,时钟信号cp的频率为2 mhz,将一行数据输入列移位寄存器的时间为40μs,因此每一行设计了20μs的空白时间。
液晶控制器系统原理如图2所示。时钟模块采用xilinx公司的coregen ip工具定制,数字时钟管理器dcm模块将fpga 50 mhz时钟信号clk_in 25分频为2 mhz控制器时钟信号clk。dcm采用了数字延迟锁相环技术来消除时钟相位的位移,提供比自行分频更稳定的时钟信号,以满足控制系统要求。controller模块为lcm提供满足图1所示时序要求的控制信号cp、lp、flm、m、dispoff,并且同步产生sram的读地址addra[14:0]。
sram为内存模块。为了提高输入lcd的数据流速度,设计了32k×4位的双端口内存,可同时实现读/写,并实现数据格式的转化,由上位机mcu输入的8位数据转为输入lcm列驱动器的4位数据;b端口由mcu_interface与上位机mcu连接,由mcu微控制器将显示数据写入内存sram。其中,addrb[13:0]控制16k×8位的写地址,dinb[7:0]为写人数据,web为写有效控制,clkb为写时钟;a端口由controller模块控制读地址addra[14:0],读时钟clka由系统时钟信号clk控制,douta[3:0]将数据写入lcm列驱动器。
2.2 控制模块设计
应用状态机的方法,用verilog硬件描述语言设计控制模块controller。clk为2 mhz输入时钟信号。lp和内部控制信号den由状态机1控制产生,flm由状态机2控制产生,m由状态机3控制产生,cp信号和addra[14:0]根据clk和den信号控制得到。状态机1有3个状态:状态1,lp为0,den为1,持续80个clk脉冲后转向状态2;状态2,lp为1,den为0,持续1个clk脉冲后转向状态3;状态3,lp为0,den为0,持续39个clk脉冲后转向状态1。状态机2有2个状态:状态1,flm为1,持续1个lp周期时间,即120个clk脉冲;状态2,flm为0,持续剩下的239个lp周期,即28 680个clk脉冲。状态机3有2个状态,状态1,m为1,持续1个flm周期时间,即28 800个clk脉冲;状态2,m为0,也持续1个flm周期时