SOPC中NiosII的LCD显示驱动IP设计

发布者:咖啡狐狸最新更新时间:2011-09-16 关键字:LCD显示  Cyclone  NioslI 手机看文章 扫描二维码
随时随地手机看文章
     引言

  NioslI嵌入式处理器是A1tera公司提出的SOPC解决方案,是一种用户可随意配置和构建的32位嵌入式处理器,结合丰富的外设可快速、灵活地构建功能强大的SOPC系统。Altera公司提供了一些通用的IP核,使得用户可轻松集成属于自己的专用功能;但对于一些特定的外设,没有现成可用的IP核,如液晶模块CBGl28064等。

  用户可通过自定义逻辑的方法在SOPC设计中添加自定义IP核。在实际应用中,LCD液晶显示器凭借功耗低、体积小、轻薄及控制驱动简单等特点,在智能仪器、仪表和低功耗电子产品中得到了广泛应用。本文以深圳秋田视佳实业有限公司的液晶显示模块CBGl28064为例,在基于NioslI的SOPC系统中设计了LCD显示驱动IP核,并下载到Cyclone系列的FPGA中,实现了对LCD的显示驱动。

  1 CBGl28064液晶显示模块

  CBG128064是一款以2片HD61202作为列驱动器,1片HD61203作为行驱动器的液晶模块。HD61202是一种带有驱动输出的图形液晶显示控制器,可直接与8位微处理器相连;而HD61203只需提供电源,就能产生行驱动信号和各种同步信号。CBGl28064液晶显示模块内置显示存储器RAM,显示屏上各像素点的显示状态与显示存储器RAM中的各位数据一一对应。显示存储器的数据直接作为图形显示的驱动信号。外部处理器只需要通过其8位数据线和6条控制线来设置所需要的显示方式,其他功能均由模块自动完成。HD61202提供7条简单的指令:显示开/关指令、显示起始行(ROW)设置指令、页(RAGE)设置指令、列地址(Y Address)设置指令、读状态指令、写数据指令、读数据指令。

  2 方案选择

  通常有两种方式可以实现NiosII嵌入式处理器对LCD的显示驱动:

  一种是利用现成的并行输入/输出(PIO)内核。该内核提供了Avalon总线从控制器端口到通用I/O口间的存储器映射接口,将LCD模块的接口与NiosII嵌入式处理器的并行端口相连接,NiosII嵌入式处理器通过对其端口的操作来完成对LCD模块的控制。这种方式类似于单片机操作,时序简单,易于实现;但是在SOPC系统中硬件上需要设计与外设相连的I/O口,软件上需要编写接口程序进行读写控制,增加了处理器的时间开销,FPGA的并行处理能力没有得到发挥。

  另一种是采用自定义IP核方式。把LCD模块看成是外部存储器或I/O设备,作为从设备挂接到NiosII嵌入式处理器的Avalon总线上,处理器以访问I/O设备或读写存储器的方式对其进行控制。这种方法需要写HDL模块,自己定义控制、状态、数据寄存器和控制位,可较为灵活地实现复杂的时序控制。一旦完成了设计,即可封装为SOPC BLdldel可用的独立元件,用户可以像使用Altera公司提供的其他外设一样来使用,并且可以提供给其他设计者使用。本文选用该方式实现。

  3 LCD显示驱动设计

  图l为系统结构图。设计的重点在于LCD显示驱动模块的设计。按照模块化、层次化的设计思想,显示驱动可分为3部分实现,即任务逻辑部分、寄存器组部分和Avalon总线接口部分。任务逻辑部分描述液晶模块的读写逻辑功能;寄存器文件部分提供了内部寄存器访问的通道;Avalon总线接口部分通过顶层接口模块对寄存器进行操作,从而实现对行为模块的访问和控制。其中,DATA[7..0]为8位数据线,CSl、CS2为片选信号,RS为指令/数据选择信号,R/W为读写选择信号,RST为复位信号,E为读写使能信号。

系统结构图

  3.1 任务逻辑

  任务逻辑是整个驱动的核心部分。要实现对LCD的显示控制,就要按照CBG128064驱动控制器的规范及时序要求进行设计。在时序逻辑电路中,数据信号和控制信号的配合比较复杂,但又十分重要,使用有限状态机可以较为容易地设计出复杂的数字电路系统。

  本文采用有限状态机实现显示驱动的核心逻辑。根据驱动控制器的读写命令及读写时序要求,本文设计了3个状态机,分别为读写控制状态机、读写状态机和读写时序状态机。

  如图2所示,读写控制状态机用于当发生读写请求时进行忙状态检测及读写操作控制,并在每个状态给出时序状态机读写信号。

读写控制状态机

  如图3所示,读写状态机给出读或者写信号,并在读写控制状态机的控制下,完成写命令、写数据和读数据之间的状态转移。在每一个状态下给出LCD显示数据及控制信号,如片选、所写数据/指令等。

读写状态机

  如图4所示,读写时序状态机用于控制读或者写外设的时刻,当读写完成时给出读写完成信号。其中,读写信号由图2中的读写操作给出。根据CBGl28064读写时序要求,当R/W为高电平时,读取显示RAM中的数据;当R/W为低电平且在E的下降沿时,向显示RAM中写入数据。读写时序状态机的读写信号由读写控制状态机给定,其中,E为模块使能信号。

 

读写时序状态机

  3.2 寄存器组

  寄存器组由一系列寄存器组成,为软件提供了访问硬件的通道。寄存器组中的寄存器是根据任务逻辑中需要实现的特定逻辑功能来设定的,任务逻辑中的数据通过这些寄存器传输。本设计中,寄存器组设定了8位页地址寄存器、8位列地址寄存器,以及32位数据寄存器等。

  3.3 Ayalon总线接口

  显示驱动的Avalon总线接口需要一个简单的Slave端口。该端口使用较少的Avalon信号来处理简单的寄存器读/写传输。该模块是与Avalon总线接口的一个顶层模块,主要功能是对任务逻辑模块和寄存器模块进行例化和封装,使其信号类型符合Avalon总线信号规范和外接模块的信号规范。顶层接口定义如下:

程序

  3.4 显示驱动封装及软件设计

  直接在SOPC Builder中添加设计好的显示驱动IP Core和Verilog HDL语言描述的文件,并根据Avalon总线传输规范设置好相关的信号线及传输参数。由于是在NiosII IDE环境下直接编写用户程序,可以不用编写驱动程序。完成后,将显示驱动IP Core添加至SOPC工程,并编译、下载到FPGA器件中。

  在NiosII IDE环境下,使用自己添加的模块编写程序,可直接调用甬数IOWR(BASE,OFFSET,DATA)和IORD(BASE,OFFSET)对内部寄存器进行读写。本文使用结构体定义了一个指向模块的结构体指针,对寄存器进行读写操作。

程序

  CBGl28064本身不带字库,可以通过2种方式添加字库:一种是把所需字库做到硬件ROM中,增加了硬件资源成本,且缺乏灵活性;另一种是在软件中定义字库,通过写数据寄存器进行显示。本设计采用第2种方式,在软件中定义字库,并编写了简单的显示测试程序,在液晶屏上显示“ZHONG GUO”字样。测试结果表明,该设计是正确可行的。此外,利用字模软件生成的图形数据,也可进行图形显示。

  结语

  本文采用有限状态机设计了CBGl28064液晶模块驱动硬件逻辑,并将显示驱动IP核进行封装构成了一个模块化的独立元件,使其能够在其他的工程中复用;在此基础上,基于NiosII嵌入式处理器构建了一个用户定制的片上系统。经过在Cyclone系列FPGA上测试,该驱动能够在C-BGl28064液晶模块上显示字符、图形。整个系统体现了SOPC嵌入式系统的灵活性和扩展性。

关键字:LCD显示  Cyclone  NioslI 引用地址:SOPC中NiosII的LCD显示驱动IP设计

上一篇:一种基于CPLD的超声波测厚系统的设计
下一篇:基于SoPC的超声导波激励信号发生器设计

推荐阅读最新更新时间:2024-05-02 21:34

基于STM32F4x9的LCD显示设计方案
  随着人机界面(GUI)在医疗、工业以及消费电子各应用领域需求的日益增长,高集成度、高性能的TFT 液晶显示方案成为电子产品设计开发的重要组成部分。在无内置液晶控制器的情况下,单片机与具有内置控制器的液晶板之间往往采用串行或并行的总线接口连接,受限于连接总线的数据传输速度,难以支持较高的显示分辨率和画面质量。   意法半导体推出了基于ARM Cortex-M4 内核的STM32F4x9 微处理器,借助内置的LCD-TFT 显示控制器和Chrom-ARM 图形加速器,使SVGA 高分辨率和高品质显示画面质量成为可能。本文围绕STM32F4x9 微控制器完成了液晶显示的硬件设计,并介绍了基于这一硬件平台以及STemWin 的软件
[单片机]
基于STM32F4x9的<font color='red'>LCD显示</font>设计方案
基于NioslILCD显示驱动IP设计
  引言   NioslI嵌入式处理器是A1tera公司提出的SOPC解决方案,是一种用户可随意配置和构建的32位嵌入式处理器,结合丰富的外设可快速、灵活地构建功能强大的SOPC系统。Altera公司提供了一些通用的IP核,使得用户可轻松集成属于自己的专用功能;但对于一些特定的外设,没有现成可用的IP核,如液晶模块CBGl28064等。   用户可通过自定义逻辑的方法在SOPC设计中添加自定义IP核。在实际应用中,LCD液晶显示器凭借功耗低、体积小、轻薄及控制驱动简单等特点,在智能仪器、仪表和低功耗电子产品中得到了广泛应用。本文以深圳秋田视佳实业有限公司的液晶显示模块CBGl28064为例,在基于NioslI的SOPC系统中设
[电源管理]
基于<font color='red'>NioslI</font>的<font color='red'>LCD显示</font>驱动IP设计
LCD显示接口模块的程序设计
  低功耗方式Sleep,通过执行一条睡眠指令就进入低功耗方式。如果使能,MDT将被清0,但仍保持运行。TO(STUATUS 4 )位被置1,PD位(STUATUS 3 )被清0,振荡器驱动器被停止。所有I/O端口保持Sleep指令执行前它们所有的状态(驱动高、驱动低或高阻)。   在这种方式时为使电流消耗最低,把所有的I/O引脚放在VDD或VSS电平上,以保证外部电路从I/O引脚、低功耗的A/D、不使能的外部时钟中拉出电流。为使电流消耗最低,TOCK1输入电平应该在VDD或VSS上。   1.睡眠唤醒   单片机通过下列事件之一唤醒睡眠:   · 在MCLR引脚上的外部复位输入;   · 监视定时器唤醒(如果WD
[嵌入式]
基于LCD显示的篮球定时计分器的设计
LCD1602显示的篮球定时计分器的51单片机程序: #include reg52.h #define uint unsigned int #define uchar unsigned char uchar code table = .. Play ball! .... ; uchar code table1 = Welcome to here! ; sbit key_ST=P1^5; //功能键(开始/暂停) sbit key_A1=P1^0; //功能键(A队分数加1) sbit key_A2=P1^3; //功能键(A队分数加2) sbit key_1A=P1
[单片机]
基于<font color='red'>LCD显示</font>的篮球定时计分器的设计
使用8051连接到LCD显示器程序
使用8051连接到LCD显示器程序执行时让LCD显示器显示出数字时钟修改时间4ⅹ4小键盘的按钮B ,可以修改间 (2009-08-04 18:57) /* Target:89S51 程序描述:这个范例说明如何使用8051的Port 1连接到LCD显示器,PORT 3的P3.3,P3.4和P3.5分别连接到LCD显示器的控制线程序执行时让LCD显示器显示出数字时钟PORT 2连接到4ⅹ4的小键盘,可以修改时间4ⅹ4小键盘的按钮B ,可以修改间*/ /* ***************************************************** */ #include REGX51.H #include lcd
[单片机]
基于STM32F4x9的LCD显示
随着人机界面(GUI)在医疗、工业以及消费电子各应用领域需求的日益增长,高集成度、高性能的TFT 液晶显示方案成为电子产品设计开发的重要组成部分。在无内置液晶控制器的情况下,单片机与具有内置控制器的液晶板之间往往采用串行或并行的总线接口连接,受限于连接总线的数据传输速度,难以支持较高的显示分辨率和画面质量。 意法半导体推出了基于ARM Cortex-M4 内核的STM32F4x9 微处理器,借助内置的LCD-TFT 显示控制器和Chrom-ARM 图形加速器,使SVGA 高分辨率和高品质显示画面质量成为可能。本文围绕STM32F4x9 微控制器完成了液晶显示的硬件设计,并介绍了基于这一硬件平台以及STemWin 的软件应用开发
[单片机]
基于STM32F4x9的<font color='red'>LCD显示</font>
模拟接口在LCD显示器设计中的优势
    新一代数字平板显示器正在稳步进入PC主流市场,这得益于成本的不断下降和LCD技术的性能增强。从表面上看,这是一个将桌上型电脑视频环境升级到纯数字互连和显示技术的绝佳机会。然而,这种向数字LCD显示器的转变带来了这个产业的一系列复杂的技术和业务挑战。根据对PC市场以及支持平板显示器所需技术的分析,我们认为,用于LCD显示器的模拟接口具有以下优势:   1. 传统兼容性的优势;   2. 比数字接口成本低;   3. 图像质量可与数字接口驱动的图像相媲美;   4. 作为LCD显示器唯一的工业级VESA标准接口而被认可。   模拟RGB传统支持   模拟RGB视频之后的惯性动力无可限量。Stanford Re
[嵌入式]
基于ARM9的带农历实时时钟LCD显示设计
S3C2440A是Samsung公司为手持设备应用提供的低功耗、高性价比芯片。S3C2440A基于ARM920T内核,并在ARM920T内核基本功能的基础上集成了丰富的外围功能模块,如UART、RTC、LCD控制器等外围器件,从而降低了嵌入式应用系统的成本。本文采用S3C2440A和WXCAT35液晶显示屏模块,搭建以两者为基础的嵌入式液晶系统工作平台。在此平台基础上,详细讨论带农历的实时时钟在液晶显示屏上的显示以及更改时间和设置报警时间的方法,并给出了具体的实现程序。 1 系统硬件设计 1.1 实时时钟(RTC)模块 S3C2440A集成了具有日历功能的RTC模块,它可以在系统关闭的情况下使用备用电池工作。RTC使用STR
[单片机]
基于ARM9的带农历实时时钟<font color='red'>LCD显示</font>设计
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved