液晶显示器按其功能可分为笔段式和点矩阵式液晶显示器,后者又可以分为字符点阵式和图形点阵式液晶显示器。图形点阵式液晶显示器不仅可显示数字、字符等内容,还能显示汉字和任意图形。但此类液晶显示屏属于非一般模式类设备,在NiosII中不能直接开发使用。
对于一个全新的外部设备,NiosII有更好的解决方案快速的掌握它的控制方法。按照设备的电器要求,使用NiosII的已有的基本控制设备(例如通用输入输出端口PIO)掌握新设备的控制特性与方法。当充分理解新设备的特性后就可以按照NiosII的硬件抽象层(HAL)的定义方法,编写新设备的驱动将其集成到NiosII中。这样在今后的开发中在SOPCBuilder中就可以像其他设备一样增添这个新设备,NiosII软核生成后会自动加载此设备的设备驱动。这样提高了新设备的二次使用时的开发效率。
以下是液晶屏显示模块接口的设计与集成过程。
液晶显示模块的设计
液晶显示简介
GM12864A 是带显示存储器的图形液晶显示器。它的内部是由两块KS0108B作为列显示控制器和一片KS0107B作为行显示控制器组成。显示屏上各像素点的显示状态与显示存储器的各位相互对应,显示存储器的数据直接作为图形显示的驱动信号。显示数据为“1”,相应的像素点变亮。液晶屏结构如图1所示。
图1液晶屏GM12864A的结构图
PIO类的介绍
设计初始阶段主要的目的在于充分了解新设备的特性与控制方法,为之后的设备集成打好基础。因此采用通用的输入输出控制接口(PIO)直接对液晶屏的引脚进行控制。
NiosII中PIO分为三大类:输入(I)、输出(O)和三态(Tri)。PIO通过Avalon总线与NiosII相连接。如图2所示。
图2通用输入输出接口与NiosII的连接
接口的设计
在QuartusII中新建一个工程,芯片类型选择Cyclone1C6Q240C8。设置画面如图3所示。
图3 芯片设置界面
工程创建完成后在SOPCBuilder中定制NiosII处理器。液晶屏显示器驱动接口在设计初步作为普通的外部设备,用PIO进行操作。所以为系统增添所需要的PIO接口。设计完成后如图4所示。
图4 定制的NiosII处理器结构
定制结束后生成NiosII处理器模块。生成后回到QuartusII中进行系统顶层结构的设计。通过SOPCBuilder生成的NiosII模块需要一个时钟和一个复位输入端,输出与定制时所设计的一致。增添相应的输入输出引脚。顶层结构如图5所示。
图5液晶屏控制系统顶层结构
将控制系统编译,液晶屏与芯片的接口连接电路如图6所示。
图6 液晶屏与FPGA的接口电路
液晶屏显示模块的HAL集成
为了更好的对新外设进行高效二次开发,通过编写外设驱动并集成到HAL中是的方法。这样可以更加方便的再次构件系统,有效降低开发周期,提高开发效率,降低开发难度。
开发外设并集成的开发流程如图7所示。
图7新设备集成HAL流程
对于新外部设备的HAL集成流程是从设备功能角度出发并划分控制单元模块,因此使控制程序代码对设备无关,即外部设备细节控制对开发者是透明的,从而使代码具有更好的规范性和可移植性。当此设备处于不同的硬件配置的NiosII系统时仍能正常工作。
结语
在AlteraFPGA中使用软核处理器NiosII可以将外部存储器、液晶显示屏、以太网控制器等外部设备连接在一起,进行外设的协调工作和数据共享。从而具有较高灵活性并且能适应变化较多的技术领域。
一个新的外部设备只要根据Nios的内部规范编写驱动就可以集成到HAL中,加强新设备的运行稳定性和二次使用的效率。
另外,可以根据系统的需要添加多个NiosII处理器实现“多内核”系统或者在NiosII核中加入实时操作系统(RTOS),实现多任务的调度。运用 Altera的SOPC技术可以高效快速的开发一个用户定制的片上系统。并且具有外围电路少,控制灵活方便,研发周期短等特点。
[1]. GM12864A datasheet https://www.dzsc.com/datasheet/GM12864A+_1482729.html.
[2]. KS0108B datasheet https://www.dzsc.com/datasheet/KS0108B_440203.html.
[3]. KS0107B datasheet https://www.dzsc.com/datasheet/KS0107B_440202.html.
免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。