基于Nios II的非一般模式类设备设计与集成

时间:2006-09-29

摘要:在Nios II的开发过程中,硬件抽象层提供多种一般模式类设备,使得开发者可以高效的在系统中添加并使用这些设备。然而对不属于一般模式类的新设备的使用将不能按照原有的设计方法进行系统开发。为此,需要根据Nios II内部总线规范提供一个设备驱动,并按照SOPC Builder要求集成到硬件抽象层中。通过设计并集成非字符型液晶显示模块得出结论:任何非一般模式类设备均可加载到Nios II系统中并能正常工作。

    液晶显示器按其功能可分为笔段式和点矩阵式液晶显示器,后者又可以分为字符点阵式和图形点阵式液晶显示器。图形点阵式液晶显示器不仅可显示数字、字符等内容,还能显示汉字和任意图形。但此类液晶显示屏属于非一般模式类设备,在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所示。

图7  新设备集成HAL流程 
    对于新外部设备的HAL集成流程是从设备功能角度出发并划分控制单元模块,因此使控制程序代码对设备无关,即外部设备细节控制对开发者是透明的,从而使代码具有更好的规范性和可移植性。当此设备处于不同的硬件配置的Nios II系统时仍能正常工作。
结语
    在Altera FPGA中使用软核处理器Nios II可以将外部存储器、液晶显示屏、以太网控制器等外部设备连接在一起,进行外设的协调工作和数据共享。从而具有较高灵活性并且能适应变化较多的技术领域。
    一个新的外部设备只要根据Nios的内部规范编写驱动就可以集成到HAL中,加强新设备的运行稳定性和二次使用的效率。
    另外,可以根据系统的需要添加多个Nios II处理器实现“多内核”系统或者在Nios II核中加入实时操作系统(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.


上一篇:HY-240128M-201液晶显示模块及其应用
下一篇:XScale PXA270在Linux下的FPGA设备驱动

免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。

相关技术资料