当前位置:首页 > EDA > 电子设计自动化
[导读]为了解决CPU处理速度快,而液晶显示模块处理速度慢的矛盾,提高系统的运行的速度。利用FPGA以及异步FIFO的IP核实现液晶显示接口,在CPU和液晶模块之间建立一个FIFO缓冲区。同时根据液晶模块控制的流程设计了一个有限状态机,对液晶的数据命令信号进行控制,满足液晶模块读写的时序,实现了液晶模块控制命令以及显示数据的正确写入。测试结果表明,整个接口设计实现方式简单,可靠。

现在继电保护或者测控装置的CPU大都使用TI的DSP或者飞思卡尔的POWERPC处理器,这些处理器速度快,主频已经达到几百M甚至1 G,但是这类装置的显示部分还是在使用基于行驱动器KSOl07B和列驱动器KS0108B的液晶显示模块。这些液晶显示模块价格低,控制简单,但液晶控制器速度慢,每写入1个字节的数据或命令大约需要5μs。一般情况下,液晶显示模块控制方式有高速CPU直接控制和附加单片机协助高速CPU控制液晶显示模块两种。前者产生的问题是处理器与液晶显示模块的速度严重失配,大大占用CPU的开销,后者产生的问题是系统结构复杂,增加了系统开发的难度。因此这里提出一种利用XIUNX公司可编程逻辑器件FPGA实现异步FIFO和有限状态机控制液晶显示模块的方法,CPU只需要把显示数据写入高速FIFO缓冲器,写完一整屏数据后,由FPGA实现的液晶控制模块读出数据并写入到液晶模块,这样可以大幅度提高CPU的利用率,同时系统结构简单,易于实现。

1 液晶显示模块介绍
    128×64液晶显示模块是使用2片KS0108B作为列驱动器,1片KS0107B作为行驱动器组成的,另外还带有负压发生电路。由于KS0107B不与FPGA发生联系。因此只要提供电源就能产生行驱动信号以及各种同步信号。每个KS0108B器件控制8页(每页8行像素)、64列像素的屏幕区域,因此两个列控制器正好控制64行、128列的像素矩阵,左右半屏由其,引脚控制选择。列控制器KS0108B的主要特点如下:内置64×64共4 096位显示RAM,RAM中每位数据对应LCD屏上一个点的亮暗状态;64路列驱动输出;读写操作时序与68系列微处理器相符,因此,它可直接与68系列微处理器接口相连;占空比为1/32~1/64。图1为KS0108B的显示RAM的地址结构。表1为128×64液晶显示模块的指令列表,表2为其引脚功能描述。

 

 

 


2 基于免费IP核实现异步FIFO的设计
    设计所用的FPGA器件是XIUNX公司的XC3S100E,XC3S100E是SPARTAN3E系列的一款最低容量的FPGA,此系列FPGA利用90 nm工艺实现低成本高容量的需求,XC3S100E具有以下资源:2160个逻辑单元;RAM资源87 kb(其中BLOCK RAM 72 kb,分布式RAM 15 kb);2个DCM;4个乘法器:可实现FIFO等多个IP核。
    在XILINX ISElO.1集成开发工具下,容易利用XININX免费IP核实现异步FIFO。异步FIFO是在2个相互独立的时钟域下,数据在一个时钟域写入FIFO,而在另一个时钟域下又从该FIFO中将数据读出。异步FIFO通常被用来将数据从一个时钟域安全传送到另一个时钟域。在本设计中,FIFO和液晶控制(LCD_CONTROL)模块作为CPU和液晶显示模块之间的桥梁,使用FIFO作为输入缓冲器,由CPU将需要显示的字符或者图形数据写入FIFO,每写完一屏需要显示的字符以及图形便向液晶控制模块发送一个高电平信号,用来通知液晶控制模块读取FIFO中的图形或者字符数据,以便将此数据写入到128x64单色液晶显示模块中,这样比CPU直接控制液晶模块效率要高的多。
    异步FIFO中的写时钟WR_CLK、WR_EN以及FULL标志是用来控制数据写入的,在时钟的上升沿,如果写使能有效,则数据就会写入FIF0,如果持续写入,数据就会写满,这时FULL信号就会有效,表示FIF0已经写满。同理读时钟RD_CLK、RD_EN以及EMPTY标志是用来控制数据读出的,在时钟的上升沿,如果读使能有效,则数据就会读出FIFO,如果持续读出,数据就会读空,这时EMPTY信号就会有效,表示FIF0已经读空。FULL/EMPTY标志能够防止数据上溢和上溢,也可以用来控制数据的写入和读出。在本设计中,FULL标志表示CPU已经把FIF0写满,液晶控制模块开始把FIFO中的数据读出同时写到液晶显示模块中。EMPTY标志表示液晶控制模块已经把FIFO读空,即把FIF0中所有的数据写入到液晶显示模块中。实际上,在本设计中,FULL/EMPTY就是CPU和液晶控制模块的握手信号,当FIF0空时,CPU才可以往液晶控制模块中写入数据,当FIF0写满时,液晶控制模块才能从FIF0中读取数据。图2为系统设计框图,图中写入控制逻辑部分包括译码和信号整形电路,通过这些电路使CPU向FIFO写数据时写使能信号WR_EN,写时钟信号WR_CLK的正确的时序关系,实现数据正确写入。


    异步FIF0 IP核的参数指标直接影响FIFO的写入速度,首先FIF0的写入速度快能够减少CPU的开销,使CPU写满FIF0花费时间更少,这样CPU可以有更多时间完成实时性更高的任务。其次FIFO的存储深度要适宜,深度过大造成资源的浪费,深度过小会造成控制复杂,这样将占用更多的逻辑资源,同时会降低整个系统的可靠性。本设计中的异步FIFO是利用ISEl0.1中的参数化的IP核在XC3S100E器件的实现。由于液晶显示模块共有128 x64个像素,每个字节可以控制8个像素,所以一个整屏共占用l 024个字节的缓冲区,所以在参数化的FIF0设计中选择FIF0深度为1 024,宽度为8位。

3 基于FPGA的液晶控制模块
    由液晶指令列表(表1)和KS0108B的显示RAM地址结构(图1)可以看出,128x64液晶显示模块的控制相对简单,页地址范围为B8H~BFH,列地址范围为40H~7FH,数据为纵向读写,即每页的第l行对应BD0,第8行对应BD7。控制器KS0108的指令总共7条,即:指令显示开关设定3EH/3FH:显示起始行设定C0H~FFH:页地址设定B8H~BFH:列地址设定40H~7FH;状态读取;写数据;读数据。


    由于在向液晶显示模块写数据和命令前,都要回读液晶显示模块状态。如果模块内部的控制器处于忙状态,这时就要等待,直到液晶显示模块的控制器处于空闲状态才能向模块写数据和命令。从液晶显示模块手册可以看到如果将数据或者命令写入液晶显示模块,主要是正确控制数据、命令写入时序。为了实现液晶控制命令或者数据的正确写入,这里设计了一个有限的状态机,其状态转移图如图3所示。从该状态转移图可以看出,此状态机共有8个状态,分别是:空闲、显示开关设置、显示起始行设置、数据页设置、数据起始列设置、回读、数据装载、写数据。如果FIF0没有数据或者数据未写满,状态机一直在空闲状态。当FIF0满时,状态机就依次进入显示开关设置状态(显示打开,写入命令代码3FH)、显示起始行设置状态(设置显示起始行,写入命令代码COH)、数据页设置状态(设置起始页,写人命令代码B8H)、数据起始列设置状态(设置起始列,写入命令代码40H),之后就进人数据装载,写数据,状态回读的循环中,每写完l列,液晶模块的列地址自动加l,直到写完一页(64列),页地址加1,重新设置页序号,数据起始列,再进入写数据,状态回读的循环中,直到写完l片KS0108B控制的显示存储区。在控制第2片KS0108B时,FPGA液晶控制模块自动选通另一片KS0108B,重新设置该片液晶控制器.写入命令和数据,直到写满整个显示RAM。图4为FPGA实现的液晶控制模块的仿真。其中E为使能信号,CSA_N、CSB_N为液晶显示模块内部液晶显示控制的片选信号,低电平有效;D_I位数据命令选择信号,RW为读写信号,FULL为FIF0满信号,BD为数据总线,ENABLE为液晶控制模块的使能信号,RESET_N为系统复位信号。从图4中可以看出:当FIF0满且有效时,也就是FULL=1时,液晶控制状态机依次从空闲状态写入命令代码3FH(显示开关打开)、COH(显示起始行设为0)、B8H(起始页地址设为0)、40H(列地址设为0),之后就进入数据装载,写数据,状态回读的循环中,直到把整个液晶显示模块显示RAM写满,FPGA实现的液晶控制模块重新进入空闲状态,等待CPU把整个异步FIFO写满。


    由于液晶模块速度很慢,在用CPU直接控制时,CPU写数据和命令的时间twrite≥1μs,而且写数据和命令之前要有一个读忙的时间tbu-sy,大约为4μs的时间,所以写数据和命令总的时间约为5μs,写满整屏时间为5μs×1 024=5.12 ms,如果用CPU直接写入FIF0,因为现在的控制器总线速度很快,假设写入一个字节数据需要50 ns,则写满一整屏需要50 nsX1024=0.0512 ms,约是原来时间的1/100,节省了5 ms,提高了CPU的利用率。

4 结束语
    本文利用XIUNX SPARTAN3E系列FPGA器件实现异步FIFO和液晶控制功能模块的设计,CPU不用直接控制液晶模块,也不用增加单片机协助CPU控制液晶模块,CPU只需把显示的数据写入FPGA实现的FIF0缓冲区,剩下的任务交给FPGA实现的液晶控制模块处理,以便CPU去处理实时性高的任务,大大提高了CPU的利用率。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭