液晶显示器按其功能可分为笔段式和点矩阵式液晶显示器,后者又可以分为字符点阵式和图形点阵式液晶显示器。图形点阵式液晶显示器不仅可显示数字、字符等内容,还能显示汉字和任意图形。但此类液晶显示屏属于非一般模式类设备,在Nios II中不能直接开发使用。
对于一个全新的外部设备,Nios II有更好的解决方案快速的掌握它的控制方法。按照设备的电器要求,使用Nios II的已有的基本控制设备(例如通用输入输出端口PIO)掌握新设备的控制特性与方法。当充分理解新设备的特性后就可以按照Nios II的硬件抽象层(HAL)的定义方法,编写新设备的驱动将其集成到Nios II中。这样在今后的开发中在SOPC Builder中就可以像其他设备一样增添这个新设备,Nios II软核生成后会自动加载此设备的设备驱动。这样提高了新设备的二次使用时的开发效率。
以下是液晶屏显示模块接口的设计与集成过程。
液晶显示模块的设计
液晶显示简介
GM12864A 是带显示存储器的图形液晶显示器。它的内部是由两块KS0108B作为列显示控制器和一片KS0107B作为行显示控制器组成。显示屏上各像素点的显示状态与显示存储器的各位相互对应,显示存储器的数据直接作为图形显示的驱动信号。显示数据为“1”,相应的像素点变亮。液晶屏结构如图1所示。
图1 液晶屏GM12864A的结构图
PIO类的介绍
设计初始阶段主要的目的在于充分了解新设备的特性与控制方法,为之后的设备集成打好基础。因此采用通用的输入输出控制接口(PIO)直接对液晶屏的引脚进行控制。
Nios II中PIO分为三大类:输入(I)、输出(O)和三态(Tri)。PIO通过Avalon总线与Nios II相连接。如图2所示。
图2 通用输入输出接口与Nios II的连接
接口的设计
在Quartus II中新建一个工程,芯片类型选择Cyclone 1C6Q240C8。设置画面如图3所示。
图3 芯片设置界面
工程创建完成后在SOPC Builder中定制Nios II处理器。液晶屏显示器驱动接口在设计初步作为普通的外部设备,用PIO进行操作。所以为系统增添所需要的PIO接口。设计完成后如图4所示。
图4 定制的Nios II处理器结构
定制结束后生成Nios II处理器模块。生成后回到Quartus II中进行系统顶层结构的设计。通过SOPC Builder生成的Nios II模块需要一个时钟和一个复位输入端,输出与定制时所设计的一致。增添相应的输入输出引脚。顶层结构如图5所示。
图5 液晶屏控制系统顶层结构
将控制系统编译,液晶屏与芯片的接口连接电路如图6所示。
图6 液晶屏与FPGA的接口电路
液晶屏显示模块的HAL集成
为了更好的对新外设进行高效二次开发,通过编写外设驱动并集成到HAL中是最好的方法。这样可以更加方便的再次构件系统,有效降低开发周期,提高开发效率,降低开发难度。
开发外设并集成的开发流程如图7所示。