当前位置:首页 > 嵌入式 > 嵌入式软件
[导读]嵌入式处理器Nios II与液晶显示模块的接口及应用

液晶显示器(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);

  }

在液晶显示屏上显示的各种曲线实际上是由若干段直线组成。所以直线的绘制就是曲线绘制的子程序。直线绘制的算法有多种多样,为了避免复杂的浮点运算,这里采用了Bresenham画线算法的整数数字增量分析法。该算法的基本思路是回避计算斜率k=(y1-y2)/(x2-x1)过程中的除法运算,应用dy=y1-y2 和dx=x2-x1之间的关系,根据直线的起点和终点的坐标不同,直线的走向和斜率将不同,即k的大小和正负将不同,因此绘制直线时将斜率 的取值分为四种情况进行绘图。下面给出从点(x1,y1)到点(x2,y2)画线的Nios II应用程序。

  void Draw_Line(UCHAR x1,UCHAR y1,UCHAR x2,UCHAR y2)

  { UCHAR u1,v1,u2,v2;

  signed int dx=x2-x1;

  signed int dy=y2-y1;

  UCHAR k;

  If(dx*dy>=0)

  { if (abs(x1-x2)>= abs(y1-y2))

  //斜率在[0,1]范围内

  { k=1; u1=x1;v1=y1;u2=x2;v2=y2;}

  else { k=2;u1=y1;v1=x1;u2=y2;v2=x2;}

  //斜率在(1,∞)范围内 }

  else { if(abs(x1-x2)>=abs(y1-y2))

  //斜率在[-1,0]范围内

  { k=3;u1=x1;v1=y1;u2=x2;v2=2*y1-y2;}

  else {k=4;u1=y1;v1=x1;u2=2*y1-y2;v2=x2;}

  //斜率在(-∞,-1)范围内 }

  int u,v,uEnd,p=2*abs(v1-v2)-abs(u1-u2);

  int twoDv=2*abs(v1-v2,twoDvDu=2*(abs(v1-v2)-abs(u1-u2));

  if(u1>u2) {u=u2;v=v2;uEnd=u1;}

  else {u=u1;v=v1;uEnd=u2;}

  switch(k)

  {

  case 1: Draw_Point(u,v);break;

  case 2: Draw_Point(v,u);break;

  case 3: Draw_Point(u,2*y1-v);break;

  case 4: Draw_Point(v,2*y1-u);break;

  default :break;}

  while(u { u++;

  if(p<0) {p+=twoDv;}

  else {v++;p+=twoDvDu;}

  switch(k)

  {case 1: Draw_Point(u,v);break;

  case 2: Draw_Point(v,u);break;

  case 3: Draw_Point(u,2*y1-v);break;

  case 4: Draw_Point(v,2(y1-u);break;

  default:break;}

  }

  }

4 结束语

在FPGA中使用软核处理器Nios II比硬核的优势在于:硬核实现没有灵活性,通常无法适应最新技术的发展;而基于Nios II处理器的方案是基于HDL源码构建的,可配置的程度很高。Nios II处理器可以将外部存储器、液晶显示屏、以太网控制器、RS-232通信和USB接口等外部设备连接在一起,进行外设的协调工作和数据共享,并能够根据系统的性能要求添加多个Nios II处理器,实现多CPU内核;还可以在Nios II核中加入实时操作系统,实现多任务的调度。

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

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 信息技术
关闭
关闭