基于Xilinx Spatan3 Starter Board实现液晶驱动程序的设计

作者:张开锋,肖山竹,陆静芳
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置1,而不影响其他位;同理,xgpio_discteteclear(&1cd240128,1,0x00000001)将lcd240128_pin置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开发方法,必将拥有广阔的应用前景。


手机死机的原因有哪些?
浅谈中国售电侧市场的竞争与监管
无源元件并非真的“无源”:第1部分——电容
抓住5G机遇,景旺电子可转债募投项目正有序投建中
NRK3301语音识别芯片在开关控制器的应用方案
基于Xilinx Spatan3 Starter Board实现液晶驱动程序的设计
高边电流检测测量:电路和原理
飞思推一亿像素相机!只能拍摄黑白照片却配备了彩色取景器
LCD工业液晶屏在我们生活中有着广泛的应用
高通、Intel支持,Windows 8.1将有多大作为?
最新移动装置设备管理技术
中科创达与亚马逊云科技合作实现物联网平台等技术高效集成
农业气象站设备有哪些功能
卫星通信v2 第七章 仿真与实战(10)关键技术
同样是运动感应,微波雷达感应技术和红外感应技术有什么区别?
未来的安防领域之中,园区巡检机器人将成为热点
NI PXI定时与同步设计优势
采用电磁干扰滤波器的原因是什么
博云视觉打造数字视网膜技术标准体系,实现产业AI化落地
贸泽开售Qorvo CMD328K3低噪声放大器 适用于X波段和Ku波段卫星通信