当前位置:首页 > EDA > 电子设计自动化
[导读]MicroBlaze嵌入式软核是一个被Xilinx公司优化过的可以嵌入在FPGA中的RISC处理器软核,具有运行速度快、占用资源少、可配置性强等优点;液晶显示器(LCD)具有功耗低、体积小、工作电压低、寿命长、可以显示复杂的文字及图形等优点。本文以信利MPG240128点阵液晶显示模块为例,选择Xilinx公司的Spartan 3E系列FPGA作为控制芯片,介绍嵌入式软处理器MicroBlaze与液晶显示模块的接口和图形显示的编程技术。

1 MicrOBlaze的体系结构
   
MicroBlaze采用功能强大的32位流水线结构,包含32个32位通用寄存器和1个可选的32位移位器,时钟频率可达150 MHz;在Virrex一4 FPGA上运行速率高达120 DMIPS,仅占用Virtex—II Pro FPGA中的950个逻辑单元。MicroBlaze软核的结构框图如图1所示。它具有以下基本特征:
    ①32个32位通用寄存器和2个专用寄存器(程序计数器和状态标志寄存器)。
    ②32位指令系统,支持3个操作数和2种寻址方式。
    ③分离的32位指令和数据总线,符合IBM的OPB总线规范(与外设相连接的低速总线)。
    ④通过本地存储器总线(LMB,本地高速总线)直接访问片内块存储器(BRAM)。
    ⑤具有高速的指令和数据缓存(cache),三级流水线结构(取址、译码、执行)。
    ⑥具有硬件调试模块(MDM)。
    ⑦带8个输入和8个输出快速链路接口(FSL)。
    图中接口信号说明如下:
    ①DOPB,器件内部的外围设备数据接口总线,用于处理器与片内的设备进行数据交换。
    ②DLMB,实现数据交换的本地块存储器总线。该总线为处理器内核与块存储器(BRAM)之间提供专用的高速数据交换通道。
    ③IOPB,用于实现外部程序存储器的总线接口。当程序较大时,需要外接大容量的存储器。该总线提供读取指令的通道。
    ④ILMB,用于取指令的本地存储器总线。该总线与器件内部的块存储器(BRAM)相连,实现高速的指令读取。
    ⑤MFSLO~7,主设备数据接口,提供点对点的通信通道。
    ⑥SFSLO~7,从设备数据接口,提供点对点的通信通道。


2 MicroBlaze嵌入式开发工具EDK
    Xilinx公司提供了完善的嵌入式开发工具EDK(Em—bedded Development Kit)。EDK是Xilinx公司于2003年推出的SOPC(System On Programmable Chip)系统开发套件。该套件集成了丰富的开发工具和大量的IP核资源,其中集成的工具包括硬件平台生成器(PlatGen)、硬件仿真模型生成器(SimGen)、硬件调试工具(XMD)、软件库生成器(LibGen)、应用软件编译工具(GNU Compilers)、软件调试工具(GNU Debuggers)等;IP核资源包括LMB和OPB总线接口、外部存储器控制器(EMC)、SDRAM控制器、UART接口、中断控制器、定时器等。所有这些工具和资源都由EDK中的一个叫平台工作室XPS(XilinxPlatform Studio)的集成开发环境统一管理。XPS提供一个友好的图形用户界面(GUI),使用非常方便。设计流程如图2所示。

3 液晶显示模块
    MPG240128液晶模块为图形点阵式液晶,不仅可以显示数字、字符等内容,还可以显示汉字和任意图形。该模块的控制芯片为T6963C,与外部的连接只有8位数据线和6条控制线及电源。液晶模块引脚说明如表1所列。MCtJ只要通过这些数据线和控制线,按照相应的时序进行读写,即可实现对模块的显示控制。

4 MicrOBlaze与液晶显示模块的接口
    由于本文采用的液晶模块已经自带了显示控制芯片T6963C,因此液晶模块的外围电路相对来说就比较简单,只要考虑和MicroBlaze的接口电路即可。本设计采用GPIO模拟液晶模块的时序,实现对液晶模块的显示控制。MicroBlaze和液晶模块的接口电路如图3所示。

    在EDK开发套件的XPS集成开发环境下进行系统硬件设计。在其界面环境下,添加所需IP核,进行系统连接和各项参数设置。利用平台产生器,根据硬件描述文件(.MHS文件),生成嵌入式系统子模块的网表文件(.NGC),然后调用Xilinx的综合工具XST进行综合,从而构成整个应用系统的硬件模型。
    本设计中采用了GPIO对液晶模块进行控制。EDK提供了一系列API函数,通过这些函数可以很方便地对GPIO进行操作。下面先介绍2个函数:


    其中,InstancePtr是指针,指向要控制的GPIO的基地址;Channel为通道值,选0或1。这两个函数只对Mask中对应位为1的位有影响,比如,XGpio_DiscreteSet(&lcd240128,1,Ox00000001)将LCl3240128_pin<O>置1,而不影响其他位;同理,XGpio_DiscteteClear(&1cd240128,1,0x00000001)将LCD240128_pin<0>置0,而不影响其他位。为了增强程序的可读性,增加了8个宏定义:#define wr_high()XGpio_DiscreteSet(&lcd240128,1,Ox00000800),#define wr_low()XGpio_DiscreteClear(&1cd240128,l,0x00000800),其他6个同理可推知。有了这2个函数,就可以很方便地编写出写命令和写数据函数了。下面对这2个函数作简要介绍:


    液晶显示图形和字符都是由点阵组成的,因此,在液晶上显示一个像素点是显示图形和字符的基础。下面将单像素点显示函数介绍如下:


    有了单像素点显示函数,就可以很方便地编写出字符显示函数和图形显示函数了。限于篇幅,这里不作介绍。

结 语
    本设计已在Xilinx Spatan3 Starter Board上进行了验证,取得了良好的效果。通过本设计的实现可以看出,MicroBlaze是一个功能强大、应用灵活的嵌入式软处理器,特别是其强大的用户自定义逻辑功能,极大地方便了系统设计。可以预见,基于嵌入式软处理器的SOPC开发方法,必将拥有广阔的应用前景。

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

摘 要:从硬件与软件方面介绍了基于PXI技术的1553B总线通讯模块的设计,并对PXI总线接口设计、驱动程序的开发、 SDRAM存储器的控制和1553B总线通信协议实现等关键技术进行了详细的阐述,为航空领域测控系统开发P...

关键字: PXI技术 驱动程序 SDRAM存储器 1553B总线

PnP全称Plug-and-Play,译文为即插即用。PnP的作用是自动配置低层计算机中的板卡和其他设备,然后告诉对应设备都做了什么。PnP的任务是把物理设备和软件设备驱动程序相配合,并操作设备,在每个设备和它的驱动程序...

关键字: PnP 驱动程序 操作设备

作 者:道哥,10年嵌入式开发老兵,专注于:C/C、嵌入式、Linux。关注下方公众号,回复【书籍】,获取Linux、嵌入式领域经典书籍;回复【PDF】,获取所有原创文章(PDF格式)。目录kill命令和信号使用kill...

关键字: 信号 应用程序 驱动程序

驱动程序本质上是软件代码,主要作用是计算机系统与硬件设备之间完成数据传送的功能,只有借助驱动程序,两者才能通信并完成特定的功能。

关键字: 驱动程序 硬件设备 UNIX

驱动程序(Device Driver)全称为“设备驱动程序”,是一种可以使计算机和设备通信的特殊程序,可以说相当于硬件的接口,操作系统只能通过这个接口,才能控制硬件设备的工作,假如某设备的驱动程序未能正确安装,便不能正常...

关键字: 驱动程序 声卡 设备

作 者:道哥,10年嵌入式开发老兵,专注于:C/C、嵌入式、Linux。关注下方公众号,回复【书籍】,获取Linux、嵌入式领域经典书籍;回复【PDF】,获取所有原创文章(PDF格式)。目录API函数编写驱动程序编写应用...

关键字: 编写 驱动程序 字符设备驱动

作 者:道哥,10年嵌入式开发老兵,专注于:C/C、嵌入式、Linux。关注下方公众号,回复【书籍】,获取Linux、嵌入式领域经典书籍;回复【PDF】,获取所有原创文章(PDF格式)。目录示例程序目标编写驱动程序编写应...

关键字: GPIO 编写 驱动程序

打印机 在我们的办公区域实用性是非常强的,不仅可以提高办公的效率,而且还能节省用户时间,是一款非常不错的办公小助手。长时间使用, 打印机驱动程序无法使用 ,怎么回事呢?用户一定要做出详细了解,是否需要重新安装,下面我们一...

关键字: 驱动程序 打印机驱动

作 者:道哥,10年嵌入式开发老兵,专注于:C/C、嵌入式、Linux。关注下方公众号,回复【书籍】,获取Linux、嵌入式领域经典书籍;回复【PDF】,获取所有原创文章(PDF格式)。目录混乱的API函数旧的API函数...

关键字: 驱动程序 字符设备驱动

作 者:道哥,10年嵌入式开发老兵,专注于:C/C、嵌入式、Linux。关注下方公众号,回复【书籍】,获取Linux、嵌入式领域经典书籍;回复【PDF】,获取所有原创文章(PDF格式)。目录学习的困惑实践环境编译进内核编...

关键字: 内核 编译 驱动程序

电子设计自动化

21191 篇文章

关注

发布文章

编辑精选

技术子站

关闭