uC/GUI在ARM内核S3C44B0X的移植实例

uc/gui是micrigm公司推出的用于嵌入式系统的图形用户接口(graphics user interface,gui)软件包,由于uc/gui完全以ansi-c编写,因此它与处理器无关,可以很方便地移植到不同的操作系统和嵌入式微处理器上,并可支持不同尺寸的图形液晶显示器。它采用层次化的设计,功能强大,移植方便,被广泛地应用于嵌入式领域,如pda、机顶盒以及dvd ncd播放机等。本文详细介绍了uc/gui在arm 内核s3c44b0x的移植。实践证明uc/gui具有良好的实时性和稳定性以及广泛的应用前景。
1、硬件连接与液晶显示原理 本设计使用的硬件采用arm7开发板,液晶模块为l78c64,它是7.8in 256色stn型lcd显示屏,分辨率为640×480。
lcd控制器外部接口信号的定义及其与lcd模块各信号之间的对应关系如下:
(1)vframe:lcd控制器与lcd驱动器之间的帧同步信号。该信号负责指出lcd屏新的一帧开始的时间。lcd控制器在一个完整帧显示完成后立即插入一个vframe信号,并开始新一帧的显示。该信号与lcd模块的yd信号相对应;
(2)vline:lcd控制器和lcd驱动器之间的线同步脉冲信号。该信号用于将lcd驱动器水平线(行)移位寄存器的内容传送给lcd屏显示。lcd控制器在整个水平线(整行)数据移入lcd控制器后,插入一个vline信号。该信号与lcd模块的lp信号相对应;
(3)vclk:lcd控制器和lcd驱动器之间的像素时钟信号。由lcd控制器送出的数据在vclk的上升沿处送出,在vclk的下降沿被lcd驱动器采样。该信号与lcd模块的xck信号相对应;
(4)vm:lcd驱动器的ac信号。vm信号被lcd驱动器用于改变行和列的电压极性,从而控制像素点的显示和熄灭。vm信号可以与每个帧同步,也可以与可变数量的vline信号同步;
(5)vd3~0 lcd:像素点的数据输入端口。与lcd模块的d3~0相对应:
(6)vd7~4 lcd:像素点的数据输入端口。与lcd模块的d7~4相对应。
液晶显示原理:写满整个屏的数据称为1个“帧”数据,yd是帧同步信号,该信号启动lcd屏的新一帧数据。两个yd脉冲之间的时间长度称为帧周期。根据lcd模块的特性,刷新时间为12~14ms,频率为70~80hz。每一帧包括480个lp脉冲。lp为行(共480行)数据输入锁存信号,也就是行同步脉冲信号。该信号启动lcd屏的新一行数据。xck为行数据输入信号,也就是每1行中像素点数据传输的时钟信号。每组8位的数据在xck的下降沿被输入锁存,因此,每1行包括640×3/8个xck脉冲信号。d0~d7是8位的显示数据输入信号。
2、驱动程序设计 下面分三步完成液晶的初始化。
(1)i/o口的初始化
由于采用s3c44b0x的pc接口和pd接口作为lcd驱动接口,因此,需要设置pc接口工作在第3功能状态和pd接口工作在第2功能状态。
(2)相应控制寄存器的设置方法
s3c44b0x包括一个lcd控制器时序发生器timegen, 由它来产生vfram,vline,vclk和vm 控制时序。这些控制信号由寄存器lcocon1和lcdcon2进行配置。通过对寄存器种配置项目的设置,timegen就可以产生适应于各种lcd屏的控制信号了。
vfram和vline脉冲的产生是通过对lcdcon2寄存器的hozval和lineval进行配置来完成的。每个域都与lcd的尺寸和显示模式有关。
其中,hozval=(显示宽度/vd数据线位数)-1。
在彩色模式下,显示宽度=3×每行的像素点数。
对所选的液晶模块,hozval=(640×3/8)-1;lineval=(显示宽度)-1。
对所选的液晶模块,llneval=480-1。
vclk信号的频率可以通过lcdcon1寄存器的clkval域来确定,即
vclk=mclk/(clkval×2)
lcd控制器的最大vclk频率为16.5mhz,几乎支持所有已有的lcd驱动器。由于上述关系,clkval的值决定了vclk的频率。为了确定clkval的值,应该计算一下lcd控制器向vd端口传输数据的速率,以便使vclk的值大于数据传输的速率。
数据传输速率的公式为:
数据传输速率=hs×vs×fr×mv
其中,hs—lcd的行像素值;vs—lcd的列像素值:fr—帧速率;mv—模式值,这里取8位单扫描,彩色。
对于所选用的液晶模块:hs=640;vs=480;fr=70hz:mv=3/8。因此,数据传输速率=640×480×70×3/8=8,064,000hz。
vclk值应该大于8mhz而小于16mhz,因此,clkval可以取9~15。
(3)完整的液晶初始化程序
c程序
void lcd_init_controler()

微软史上最完美Window 10全新NEON UI界面现!调足你胃口
一文详解Linux内存检测技术
黄仁勋抛出三枚“核弹”,语出惊人!
红魔6游戏手机正式发布 提供红魔6和红魔6 Pro两个版本
MAX-IDE入门
uC/GUI在ARM内核S3C44B0X的移植实例
电压暂降的危害及其解决方法
蓝港互动将全面拥抱区块链 推动区块链技术与游戏的结合
新款iPad怎么样? 和iPad Air2比哪个好?
红米4X绝对是惊喜?小米的松果芯片和5c是意料之中!
普源DP811A/可编程线性直流电源
物联网产品开发所需要的关键成本有哪些
在燃气炉中压力传感器有什么应用?
PC0401 18V/4A DC-DC同步降压芯片SOT23-6封装
阿里首家未来酒店迎客 利用AI机器人技术让住客体验酷炫又舒适的服务
京能电力建设5000MW分布式光伏,预计2021年建成投用
坚果智慧墙O1Pro超短焦投影仪:高画质低蓝光
室内人员定位技术盘点,谁才是室内定位之王?
英特尔酷睿i9独树一帜:细数台北电脑展上的重磅产品
全球首个Mini LED商用显示屏团体标准正式发布!