您当前的位置:五五电子网电子知识单元电路接口电路嵌入式处理器Nios II与液晶显示模块的接口及编程技术 正文
嵌入式处理器Nios II与液晶显示模块的接口及编程技术

嵌入式处理器Nios II与液晶显示模块的接口及编程技术

点击数:7896 次   录入时间:03-04 11:36:20   整理:http://www.55dianzi.com   接口电路

      液晶显示器(LCD)由于具有工作电压低、功耗低、体积小、显示信息量大、寿命长、不产生电磁辐射污染、可以显示复杂的文字及图形等优点,液晶显示器已被广泛应用于各种仪器仪表、电子设备及控制领域中,成为测量结果显示和人机对话的重要工具。液晶显示器按其功能可分为笔段式和点矩阵式液晶显示器,后者又可以分为字符点阵式和图形点阵式液晶显示器。图形点阵式液晶显示器不仅可显示数字、字符等内容,还能显示汉字和任意图形。

      本文是以240*128点阵型液晶显示模块MGL240128T为例。研究嵌入式Nios II软核处理器与液晶显示模块的接口和图形显示的编程技术。

1  Nios II软核处理器和SOPC设计

      在2004年,ALTEr推出了Nios II系列32位RSIC嵌入式处理器。Nios II软核处理器是Alter的第二代FPGA嵌入式处理器,比第一代Nios具有更高水平的效率和性能。Nios II核平均占甩不到50%的FPGA资源,而计算性能增长了1倍。Nios II嵌入式处理器性能超过200 DMIPS,采用32位指令、32位数据和地址、32位通用寄存器和32个外部中断源;支持用户的专用指令多达256个,这使得设计者能够细致地调整系统硬件以满足性能目标。Nios II支持60多个外设选项,开发者能够选择合适的外设,获得最合适的处理器、外设和接口组合,而不必支付根本不使用的硅片功能。

      目前。FPGA(现场编程逻辑门阵列)芯片密度已达到百万门级,在一片FPGA芯片上可以实现如DSP、MCU、PCI总线控制和各种控制算法等复杂的功能。由于FPGA芯片密度的不断提高和新的EDA开发工具的使用,利用FPGA器件实现SOC已成为可能,这项技术称为嵌入式SOPC(可编程单芯片系统)。SOPC技术既具有基于模板级设计的特征,又具有基于ASIC的系统级芯片设计的特征,具有了可重构性、高效自动化的设计方法。Alter推出的Nios II正是为设计者提供了FPGA优化的灵活的嵌入式处理器,以及为SOPC设计了一套综合解决方案。

      Nios II处理器具有完善的软件开发套件.包括编译器、集成开发环境(IDE)、m C调试器、实时操作系统(RTOS)和TCP/IP协议栈。设计者能够用Altera QUARTus II开发软件中的SOPC Builder系统开发工具很容易地创建用户定制的CPU和外设,获得恰好满足需求的处理器系统。利用SOPC Builder开发工具创建专用的处理器系统,需要进行SOPC的嵌入式处理器芯片和软件设计。SOPC Builder工具通过加载NioslI核和外围接口的定义配置一个高集成度的SOPC系统的嵌入式处理器芯片。

      图1所示是一个实现液晶显示的SOPC系统的NioslI处理器,主要端口包括全局输入时钟、复位信号、外部设备片选信号、读使能、写使能、数据地址总线以及和计算机通信的UART端口。由于NioslI是在FPGA片内实现的,因此它既可以通过FPGA的引脚连到外部和其它的设备相连接,也可以直接连到FPGA片内的其他模块上。同样,FPGA片内未被使用的资源仍然可以被配置成为其它的模块使用,从而实现系统的集成,使SOC成为可能。

2  Nios II与液晶显示模块的接口

      MGLS240128T液晶显示模块的引脚说明如表1所示,可显示各种字符及图形,该模块对液晶显示的控制和驱动都由模块内部的控制器T6963C芯片及电路来完成,因此它与外部的连接只有8位数据线和6条控制线及电源。外部CPU通过这些数据线和控制线来设置所需要的显示方式,其它功能均由模块自动完成。控制器T6963C最大的特点是具有独特的硬件初始设置功能,初始化在上电时就已基本设置完成。它还具有很强的软件控制能力,外部的处理器通过接口写入液晶模块的指令来实现模块控制。软件控制主要集中于显示功能的设置上。T6963C的控制指令如表2所示。T6963C的指令可带一个或多个参数,每条指令的执行都是先送入参数(如有参数),再送入指令。
 

      嵌入式处理器NioslI把液晶显示模块接口看着普通的外部设备PIO进行操作,因此液晶显示模块的数据以及读写片选信号都包括在Nios II上的PIO总线中。其接口电路如图2所示。其中LCD_DB[7..0]为8位数据线,负责将控制指令和显示数据输入到液晶显示模块中;LCD_CD为指令,数据切换;LCD_CS为为片选信号;LCD_RD为读使能;LCD_WR为写使能。

3  Nios II处理器的软件开发

      利用SOPC Builder开发工具创建专用的处理器系统的硬件后,SOPC Builder还为编写操作这些片上硬件的软件代码提供了一个Nios II集成开发环境(IDE),这个软件开发环境包括语言的头文件、外围接口的驱动以及实时操作系统的内核,可完成整个软件工程的编缉、编译、调试和下载等过程,极大地提高了软件的开发效率。

      由于该液晶显示模块的控制和驱动都是由模块内部的控制器T6963C芯片及电路来完成的,因此通过Nios II处理器将数据直接送入T6963C显示缓冲区RAM的指定地址,控制器T6963C就可以控制液晶屏上相应位置显示出所需要的数据。Nios II处理器的软件采用模块化结构,主要包括显示初始化、图形显示、清屏等模块。

      在进行显示之前。先调用显示初始化模块,实现对屏幕的初始化,即设置文本和图形缓冲区的起始地址以及显示方式。在显示一屏新的图形时,需要对屏幕清屏。清屏是将显示RAM区域中的所有单元清零。它需要用T6963C连续写的功能,并要先设定RAM区域的首地址。由于RAM 区共有240/8*128=3840个字节,所以循环清零需执行3840次。在介绍图形显示程序之前先给出三函数:写命令、写数据和画点函数。

  void LCD_Write_Command(UCHAR m_Command) //写命令

  { IOWR_ALTERA_AVALON_PIO_DIRECTION(LCD_DB_BASE,0xff); //数据总线:输出

  IOWR_ALTERA_AVALON_PIO_DATA(LCD_CD_BASE,1);//选择命令

  IOWR_ALTERA_AVALON_PIO_DATA(LCD_CS_BASE,0);//片选拉低

  IOWR_ALTERA_AVALON_PIO_DATA(LCD_WR_BASE,0);//写信号有效

  IOWR_ALTERA_AVALON_PIO_DATA(LCD_DB_BASE,m_Command);

  IOWR_ALTERA_AVALON_PIO_DATA(LCD_WR_BASE,1);//写信号无效

  IOWR_ALTERA_AVALON_PIO_DATA(LCD_CS_BASE,1);//片选无效 1

  void LCD_Write_Data(UCHAR m_Data) 写数据

  {IOWR_ALTERA_AVALON_PIO_DIRECTION(LCD_DB_BASE,0xff);//数据总线:输出

  IOWR_ALTERA_AVALON_PIO_DATA(LCD_CD_BASE,0);//选择数据

  IOWR_ALTERA_AVALON_PIO_DATA(LCD_CS_BASE,0);//片选拉低

  IOWR_ALTERA_AVALON_PIO_DATA(LCD_WR_BASE,0);//写信号有效

  IOWR_ALTERA_AVALON_PIO_DATA(LCD_DB_BASE,m_Data);

  IOWR_ALTERA_AVALON_PIO_DATA(LCD_WR_BASE,1);//写信号无效

  IOWR_ALTERA_AVALON_PIO_DATA(LCD_CS_BASE,1);//片选无效

  }

  void Draw_Point(UCHAR x,UCHAR y) //画点

  { unsigned int m_Addr;

  unsigned char n,t1,t2,t;

  n=x/8 ;m_Addr=GASAH*256+GASAL+y*ZIFU_NUM+n;

  t1= m_Addr&0xff;t2=m_Addr/256;

  LCD_Write_Data(UCHAR t1);

  LCD_Write_Data(UCHAR t2);

  LCD_Write_Command(0x24);

  If(y>=0x80) n=0xf0;else n=0xf8;

  t=x%8;t=(~t)&0x07;t=n|t;

  LED_Write_Command(t);

  }

[1] [2]  下一页


本文关键字:处理器  嵌入式  接口  编程技术  接口电路单元电路 - 接口电路