国内销售专线:0755-83573112 / 0755-81790748
产品类别
  • 联系方式
  • 在线QQ咨询:在线QQ咨询
    拨打销售专线
    0755-83573112 / 0755-81790748
    联系邮箱
    xyhlcd02@xyhlcd.com、service01@xyhlcd.com
    公司传真
    0755-81790647

以CBG12864液晶模块为例讲解其实驱动IP设计

发布来源:www.xyhlcd.com   发布时间:2012-10-12

本文采用有限状态机设计了CBGl28064液晶模块驱动硬件逻辑,并将显示驱动IP核进行封装构成了一个模块化的独立元件,使其能够在其他的工程中复用;在此基础上,基于NiosII嵌入式处理器构建了一个用户定制的片上系统。经过在Cyclone系列FPGA上测试,该驱动能够在C-BGl28064液晶模块上显示字符、图形。整个系统体现了SOPC嵌入式系统的灵活性和扩展性。
在NiosIIIDE环境下,使用自己添加的模块编写程序,可直接调用甬数IOWR(BASE,OFFSET,DATA)和IORD(BASE,OFFSET)对内部寄存器进行读写。本文使用结构体定义了一个指向模块的结构体指针,对寄存器进行读写操作。NioslI嵌入式处理器是A1tera公司提出的SOPC解决方案,是一种用户可随意配置和构建的32位嵌入式处理器,结合丰富的外设可快速、灵活地构建功能强大的SOPC系统。Altera公司提供了一些通用的IP核,使得用户可轻松集成属于自己的专用功能;但对于一些特定的外设,没有现成可用的IP核,如液晶模块CBGl28064等。
CBGl28064本身不带字库,可以通过2种方式添加字库:一种是把所需字库做到硬件ROM中,增加了硬件资源成本,且缺乏灵活性;另一种是在软件中定义字库,通过写数据寄存器进行显示。本设计采用第2种方式,在软件中定义字库,并编写了简单的显示测试程序,在液晶屏上显示“ZHONGGUO”字样。测试结果表明,该设计是正确可行的。此外,利用字模软件生成的图形数据,也可进行图形显示。用户可通过自定义逻辑的方法在SOPC设计中添加自定义IP核。在实际应用中,LCD液晶显示器凭借功耗低、体积小、轻薄及控制驱动简单等特点,在智能仪器、仪表和低功耗电子产品中得到了广泛应用。本文以液晶显示模块CBGl28064为例,在基于NioslI的SOPC系统中设计了LCD显示驱动IP核,并下载到Cyclone系列的FPGA中,实现了对LCD的显示驱动。
一、LCD显示驱动设计
设计的重点在于LCD显示驱动模块的设计。按照模块化、层次化的设计思想,显示驱动可分为3部分实现,即任务逻辑部分、寄存器组部分和Avalon总线接口部分。任务逻辑部分描述液晶模块的读写逻辑功能;寄存器文件部分提供了内部寄存器访问的通道;Avalon总线接口部分通过顶层接口模块对寄存器进行操作,从而实现对行为模块的访问和控制。其中,DATA[70]为8位数据线,CSl、CS2为片选信号,RS为指令/数据选择信号,R/W为读写选择信号,RST为复位信号,E为读写使能信号。
1.寄存器组
寄存器组由一系列寄存器组成,为软件提供了访问硬件的通道。寄存器组中的寄存器是根据任务逻辑中需要实现的特定逻辑功能来设定的,任务逻辑中的数据通过这些寄存器传输。本设计中,寄存器组设定了8位页地址寄存器、8位列地址寄存器,以及32位数据寄存器等。
2.Ayalon总线接口
显示驱动的Avalon总线接口需要一个简单的Slave端口。该端口使用较少的Avalon信号来处理简单的寄存器读/写传输。该模块是与Avalon总线接口的一个顶层模块,主要功能是对任务逻辑模块和寄存器模块进行例化和封装,使其信号类型符合Avalon总线信号规范和外接模块的信号规范。
3.任务逻辑
任务逻辑是整个驱动的核心部分。在时序逻辑电路中,数据信号和控制信号的配合比较复杂,但又十分重要,使用有限状态机可以较为容易地设计出复杂的数字电路系统。要实现对LCD的显示控制,就要按照CBG128064驱动控制器的规范及时序要求进行设计。
4.显示驱动封装及软件设计
由于是在NiosIIIDE环境下直接编写用户程序,可以不用编写驱动程序。完成后,将显示驱动IPCore添加至SOPC工程,并编译、下载到FPGA器件中。直接在SOPCBuilder中添加设计好的显示驱动IPCore和VerilogHDL语言描述的文件,并根据Avalon总线传输规范设置好相关的信号线及传输参数。
二、方案选择
通常有两种方式可以实现NiosII嵌入式处理器对LCD的显示驱动:
一是采用自定义IP核方式。把LCD模块看成是外部存储器或I/O设备,作为从设备挂接到NiosII嵌入式处理器的Avalon总线上,处理器以访问I/O设备或读写存储器的方式对其进行控制。这种方法需要写HDL模块,自己定义控制、状态、数据寄存器和控制位,可较为灵活地实现复杂的时序控制。一旦完成了设计,即可封装为SOPCBLdldel可用的独立元件,用户可以像使用Altera公司提供的其他外设一样来使用,并且可以提供给其他设计者使用。本文选用该方式实现。
再是利用现成的并行输入/输出(PIO)内核。该内核提供了Avalon总线从控制器端口到通用I/O口间的存储器映射接口,将LCD模块的接口与NiosII嵌入式处理器的并行端口相连接,NiosII嵌入式处理器通过对其端口的操作来完成对LCD模块的控制。这种方式类似于单片机操作,时序简单,易于实现;但是在SOPC系统中硬件上需要设计与外设相连的I/O口,软件上需要编写接口程序进行读写控制,增加了处理器的时间开销,FPGA的并行处理能力没有得到发挥。
三、CBGl28064液晶显示模块
HD61202是一种带有驱动输出的图形液晶显示控制器,可直接与8位微处理器相连;而HD61203只需提供电源,就能产生行驱动信号和各种同步信号。HD61202提供7条简单的指令:显示开/关指令、显示起始行(ROW)设置指令、页(RAGE)设置指令、列地址(YAddress)设置指令、读状态指令、写数据指令、读数据指令。外部处理器只需要通过其8位数据线和6条控制线来设置所需要的显示方式,其他功能均由模块自动完成。CBG128064是一款以2片HD61202作为列驱动器,1片HD61203作为行驱动器的液晶模块。CBGl28064液晶显示模块内置显示存储器RAM,显示屏上各像素点的显示状态与显示存储器RAM中的各位数据一一对应。显示存储器的数据直接作为图形显示的驱动信号。

Copyright© 2001-2017 深圳市兴宇合电子有限公司 [拥有十几年经验的液晶屏液晶模块背光源led数码管生产厂家!]
国内销售专线:0755-83573112 / 0755-81780748 前台电话:0755-81785846 地址:深圳市宝安区石岩镇宏发工业园16栋5楼
传真:0755-81790647 粤ICP备11030976号   网站地图


分享到: