650 likes | 780 Views
4.11 LCD 控制器. 4.11.1 LCD 工作原理 如 图 4-24 所示, LCD 的横截面很像是很多层三明治叠在一起。每面最外一层是透明的玻璃基体,玻璃基体中间就是薄膜电晶体。颜色过滤器和液晶层可以显示出红、蓝和绿三种最基本的颜色。通常, LCD 后面都有照明灯以显示画面。. 一般只要电流不变动,液晶都在非结晶状态。这时液晶允许任何光线通过。 液晶层受到电压变化的影响后,液晶只允许一定数量的光线通过。光线的反射角度按照液晶控制。 当液晶的供应电压变动时,液晶就会产生变形,因而光线的折射角度就会不同,从而产生色彩的变化。.
E N D
4.11 LCD 控制器 4.11.1 LCD工作原理 如图4-24 所示,LCD 的横截面很像是很多层三明治叠在一起。每面最外一层是透明的玻璃基体,玻璃基体中间就是薄膜电晶体。颜色过滤器和液晶层可以显示出红、蓝和绿三种最基本的颜色。通常,LCD后面都有照明灯以显示画面。
一般只要电流不变动,液晶都在非结晶状态。这时液晶允许任何光线通过。一般只要电流不变动,液晶都在非结晶状态。这时液晶允许任何光线通过。 液晶层受到电压变化的影响后,液晶只允许一定数量的光线通过。光线的反射角度按照液晶控制。 当液晶的供应电压变动时,液晶就会产生变形,因而光线的折射角度就会不同,从而产生色彩的变化。
一个完整的TFT 显示屏由很多像素构成,每个像素象一个可以开关的晶体管。这样就可以控制TFT 显示屏的分辨率。 如果一台LCD的分辨率可以达到1024 x 768 像素 (SVGA),它就有那么多像素可以显示。
4.11.2 S3C44B0X LCD 控制器介绍 S3C44B0X内置LCD控制器可以支持规格为每像素2位(4级灰度)或每像素4位(16级灰度)的黑白LCD。也可以支持每像素8位(256级颜色)的彩色LCD屏。 LCD控制器可以通过编程支持不同LCD屏的要求,例如行和列像素数,数据总线宽度,接口时序和刷新频率等。 LCD控制器的主要的工作,是将定位在系统存储器中的显示缓冲区中的LCD图像数据传送到外部LCD驱动器。 其内部结构框图如图4-25所示。
寄存器控制对18个可编程LCD控制寄存器进行配置;寄存器控制对18个可编程LCD控制寄存器进行配置; DMA传送控制自动将显示帧缓冲区数据经由数据控制,传送到LCD屏; 数据控制将显示数据以4/8单扫描或4位双扫描模式输出数据VD[7:0] ; 信号产生电路产生 VFRAME、VLINE、VCLK、 VM等信号。
LCD控制器的外部接口信号 ①VFRAME: LCD控制器和LCD驱动器之间的帧同步信号。该信号告诉LCD屏新的一帧开始了。 LCD控制器在一个完整帧显示完成后立即插入一个VFRAME信号,开始新一帧的显示;该信号与LCD模块的YD信号相对应。 ②VLINE: LCD控制器和LCD驱动器之间的线同步脉冲信号,该信号用于LCD驱动器将水平线(行)移位寄存器的内容传送给LCD屏显示。 LCD控制器在整个水平线(整行)数据移入LCD驱动器后,插入一个VLINE信号;该信号与LCD模块的LP信号相对应。
③ VCLK:LCD控制器和LCD驱动器之间的像素时钟信号,由LCD控制器送出的数据在VCLK的上升沿处送出,在VCLK的下降沿处被LCD驱动器采样;该信号与LCD模块的XCK信号相对应。 ④VM:LCD驱动器的AC信号。VM信号被LCD驱动器用于改变行和列的电压极性,从而控制像素点的显示或熄灭。VM信号可以与每个帧同步,也可以与可变数量的VLINE信号同步;该信号与LCD模块的DISP信号相对应。 ⑤VD[3:0]:LCD像素点数据输出端口。与LCD模块的D[3:0]相对应。 ⑥VD[7:4]:LCD像素点数据输出端口。与LCD模块的D[7:4]相对应。
4.11.3 LCD控制器的操作 1. 显示类型 S3C44B0X的LCD控制器支持3种LCD驱动器:4位双扫描,4位单扫描,8位单扫描显示模式。其中,8位单扫描方式如图4-26所示。 图 4-26 8位单扫描方式 8位单扫描显示采用8位并行数据线进行“行”数据连续移位输出,直到整个帧的数据都被移出为止。 彩色像素点的显示要求3种颜色的图像数据,这使得行数据移位寄存器需要传输3倍于每行像素点个数的数据。这个RGB数据通过平行数据线连续地移位至LCD驱动器。
图4-27是LM057QC1T01的扫描模式图,可见LM057QC1T01是按照8位单扫描模式工作的。在8位单扫描方式中,LCD控制器的8条(VD[7:0])数据输出可以直接与LCD驱动器连接。图4-27是LM057QC1T01的扫描模式图,可见LM057QC1T01是按照8位单扫描模式工作的。在8位单扫描方式中,LCD控制器的8条(VD[7:0])数据输出可以直接与LCD驱动器连接。 图 4-27 LM057QC1T01的扫描模式图
2. 像素点字节数据格式(BSWP=0) 在彩色模式下,1个字节8位(3位红色、3位绿色、2位蓝色)的图像数据对应于一个像素点。像素点字节在存储器中保存的格式为332模式,如表表4-59所示。 表4-59 像素点字节数据格式表
3. 虚拟显示 S3C44B0X支持硬件方式的平行或垂直滚动。 如果要使屏幕滚动,可以通过修改LCDSADDR1和LCDSADDR2寄存器中的LCDBASEU和LCDBASEL的值来实现。 但不是通过修改PAGEWIDTH和OFFSIZE来实现。如果要实现滚动,则显示缓冲区的大小要大于LCD显示屏的大小。 LCDBASEU、LCDBASEL、PAGEWIDTH和OFFSIZE的定义如图4-28所示,LCDBASEU帧缓冲区的开始地址,在突发4字存取模式,最低4位必须取消。
LCDBASEL由LCD尺寸和LCDBASEU值确定,公式为: LCDBASEL=LCDBASEU+(PAGEWIDTH+OFFSIZE)×(LINEVAL+1) 其中: PAGEWIDTH为显示存储区的可见帧宽度(半字数); OFFSIZE为某一行的第一个半字与前一行最后一个半字之间的距离; LCDBANK指定视频缓冲区在系统存储器内的bank地址(ENVID=1时,该值不能改变)。
4. 查找表 S3C44B0X可以支持调色板表(即查找表),用于各种色彩选择或灰度级别的选择。 这种方法给予用户很大的灵活性。 • 查找表也称为调色板,在灰度模式中,通过查找表可以在16级灰度中选择4级灰度; • 在彩色模式中,1个字节的图像数据是用3位来表示红色,3位表示绿色,2位表示蓝色。
通过查找表,可以选择16级红色中的8级红色,16级绿色中的8级绿色,16级蓝色中4级蓝色。256色意味着所有颜色都是由8种红色,8种绿色和4种蓝色构成(8×8×4=256)。通过查找表,可以选择16级红色中的8级红色,16级绿色中的8级绿色,16级蓝色中4级蓝色。256色意味着所有颜色都是由8种红色,8种绿色和4种蓝色构成(8×8×4=256)。 参考后面小节关于查找表寄存器的说明. 例如: REDLUT(红色查找表寄存器),1个字节的3位是表示红色的,这3位可以取值000、001、010……111共8个值。取某个值时,对应的色彩级别究竟是多少,就在查找表中设定。每个色彩级别由4位数据表示,因此共有16个色彩级别可供选择。
4.11.4 LCD 控制器专用寄存器 LCD控制器主要提供液晶屏显示数据的传送时钟和各种信号产生与控制功能。 1. LCD 控制参数设定 VFRAME和VLINE脉冲的产生通过对LCDCON2寄存器的HOZVAL和LINEVAL域进行配置来完成。每个域都与LCD的尺寸和显示模式有关。 HOZVAL和LINEVAL可以通过下式计算出来: HOZVAL=(显示宽度/VD数据线的位数)-1
在彩色模式下: 显示宽度=3×每行的像素点数目 例如: 我们采用的LCD,HOZVAL=(320×3/8)-1 在单扫描显示类型下: LINEVAL=(显示宽度)-1; 在双扫描显示类型下: LINEVAL=(显示宽度/2)-1; 例如: 对于我们采用的LCD,LINEVAL=240-1
VCLK信号的频率可以通过LCDCON1寄存器的CLKVAL域来确定。它们存在以下关系:VCLK信号的频率可以通过LCDCON1寄存器的CLKVAL域来确定。它们存在以下关系: VCLK(Hz)=MCLK/(CLKVAL×2) LCD控制器的最大VCLK频率为16.5MHz,这使得LCD控制器几乎支持所有已有的LCD驱动器。 由于上述关系,CLKVAL的值决定了VCLK的频率,为了确定CLKVAL的值,应该计算一下LCD控制器向VD端口传输数据的速率,使得VCLK的值大于数据传输的速率。
数据传输速率通过以下的公式计算: 数据传输速率=HS×VS×FR×MV 其中HS是LCD的行的尺寸,VS是LCD的列的尺寸,FR是帧速率,MV是模式值,取值如表4-60所示。 表4-60 显示模式与MV对照表
假设HS = 320;VS = 240;FR =70; MV = 3/8。 数据传输速率=320×240×70×3/8 =2016000 VCLK的值应大于2M,小于16M,因此CLKVAL可以取值3~15。 VFRAME信号的频率与LCDCON1和LCDCON2寄存器中的WLH(VLINE脉冲宽度),WHLY(VLINE脉冲之后VCLK的延时宽度),HOZVAL,VLINEBLANK,和LINEVAL有关。
大多数的LCD驱动器需要适应的帧频率,LM057QC1T01的帧频率范围是70Hz~80Hz。大多数的LCD驱动器需要适应的帧频率,LM057QC1T01的帧频率范围是70Hz~80Hz。 帧频率的计算可以依据下式: 帧频率(Hz) = 1/[((1/VCLK)×(HOZVAL+1)+(1/MCLK)× (WLH+WDLY+LINEBLANK))×(LINEVAL+1)] 其中VCLK=8M,HOZVAL=119,MCLK=64M,LINEVAL=239
2. LCD 控制寄存器1/2/3 LCDCON1/2控制寄存器主要配置VFRME、VCLK、VLINE和VM控制信号,LCDCON3控制LCD刷新模式。如表4-61、4-62、4-63所示。 3. 帧缓冲区起始地址寄存器 1/2/3 LCDSADDR1/2/3 为帧缓冲区起始地址寄存器,其位定义如表4-64、表4-65、表4-66所示。 4.红绿蓝查找表寄存器 红色查找表寄存器定义如表4-67所示。 5.抖动模式寄存器
4.12 IIS-BUS 接口 4.12.1 IIS-BUS概述 S3C44B0X IIS(Inter-IC Sound)接口能用来连接一个外部8/16位立体声声音CODEC。 IIS总线接口对FIFO存取提供DMA传输模式代替中断模式,它可以同时发送数据和接收数据也可以只发或只收。
1.特征 • 支持IIS格式与 MSB-justified格式,每个通道16,32,48fs 的串行位时钟(fs为采样频率) • 每个通道可以8位或16位数据格式。 • 256,384fs主时钟 • 对主时钟和外部CODEC时钟的可编程的频率分频器 • 32字节(2*16)的发送和接收FIFO (每个FIFO组织为8*半字) • 正常和DMA传输模式
如图4-29所示,BRFC包括: • 总线接口、内部寄存器和状态机,他控制总线接口逻辑和FIFO访问; • 3位的双分频器包括一个作为IIS总线主设备时钟发生器,另外一个作为外部编解码器的时钟发生器; • 16字节发送和接收FIFO完成发送数据写入发送FIFO,接收数据从接收FIFO中读出功能; • 主设备串行比特时钟发生器(主设备模式),将从主设备时钟中分频得到串行比特数时钟; • 声道发生器和状态器 生成和控制IISCLK和IISLRCK,并且控制数据的接受和发送; • 16移位寄存器在发送数据时将数据由串变并,接收数据时做相反的动作。
4.12.2 传输方式 1.正常传输模式: IIS控制寄存器有一个FIFO准备好标志位,当发送数据时,如果发送FIFO不空,该标志为1,FIFO准备好发送数据,如果送FIFO为空,该标志为0。 当接收数据时,如果接收FIFO不满,该标志设置为1,指示可以接收数据,若FIFO满,则该标志为0。 通过该标志位,可以确定CPU读写FIFO的时间,通过该方式实现发送和接收FIFO的存取来发送和接收数据。
2.DMA传输方式: 发送和接收FIFO的存取有DMA控制器来实现,由FIFO准备好标志来自动请求DMA的服务。 3.发送和接收同时模式: 因为只有一个DMA源,因此在该模式,只能是一个通道(如发送通道)用正常传输模式,另一个通道(接收通道)用DMA传输模式,反之亦然,从而实现同时工作目的。
4.12.2 声音串口格式 1.IIS-BUS 格式 IIS有四条线,串行数据输入(IISDI),串行数据输出(IISDO),左/右通道选择(IISLRCK)和串行位时钟(IISCLK);产生IISLRCK和IISCLK信号的为主设备,如图4-30所示 。
串行数据以2的补码发送,首先发送高位。发送器总是在IISLRCK变化的下一个时钟周期发送下一个字的高位。LR通道选择线指示当前正发送的通道。串行数据以2的补码发送,首先发送高位。发送器总是在IISLRCK变化的下一个时钟周期发送下一个字的高位。LR通道选择线指示当前正发送的通道。 图 4-30 IIS-BUS格式(8或16位)
2.MSB JUSTIFIED 格式 如图4-31所示,MSB JUSTIFIED 格式与IIS不同的地方是它总是当IISLRCK变化时发送下一个字的高位。 图 4-31 MSB JUSTIFIED 格式(8或16位)
4.12.3 采样频率和主时钟 音频系统主时钟CODECLK,一般为采样频率的256倍或384倍,记为256fs或384fs其中fs为采样频率。 CODECLK通过处理器主时钟分频获得,可以通过在程序中设定分频寄存器获取。分频因子可以设为1~16。 CODECLK与采样频率的对应关系如表4-70所示。应用中需要正确地选择IISLRCK和CODECLK。 串行时钟频率IISCLK可以为采样频率的16、32、48倍,如表4-71所示。
4.12.4 IIS操作 启动IIS操作执行下列过程: • 允许IISFCON寄存器的FIFO • 允许IISFCON寄存器的DMA请求 • 允许IISFCON寄存器的启动
结束IIS操作执行如下过程: • 不允许IISFCON寄存器的FIFO,如果你还想发送FIFO的剩余数据,跳过这一步. • 不允许IISFCON寄存器的DMA请求 • 不允许IISFCON寄存器的启动
4.12.5 IIS-BUS 接口寄存器 ①IIS 控制寄存器 IISCON是IIS控制寄存器,如表4-72所示。 ②IIS 模式寄存器 IISMOD是IIS模式寄存器,如表 4-73所示。 ③IIS 预定标器寄存器 IISPSR是IIS预定标器寄存器,如表 4-74、表4-75所示 ④IIS FIFO控制寄存器 IISFCON是IIS FIFO控制寄存器,如表 4-76所示。 ⑤IIS FIFO寄存器 IIS总线接口包含2个16字节发送和接收FIFO,每个FIFO有8个16位单元,可以通过IISFIF寄存器来存取发送和接收FIFO的数据。如表4-77所示。
4.13 其它接口管理 4.13.1 S3C44B0X的 IIC 接口 1. 概述 (1) IIC-BUS结构 S3C44B0X微处理器能支持多主的 IIC-BUS串行接口。串行数据线 (SDA) 和串行时钟线 (SCL) 在主设备和外围设备之间进行数据传输。SDA 和 SCL 线是双方向的。
在多主IIC-BUS模式中,多S3C44B0X 微处理器同从装置间能接收或发送串行数据。 主S3C44B0X负责开始和终止数据传送。 S3C44B0X采用标准总线仲裁程序。 图4-32给出了IIC-BUS方框图,为了控制多主IIC-BUS操作,需初始化寄存器: • 控制寄存器IICCON • 控制/状态寄存器IICSTAT • Tx/Rx 数据移位寄存器IICDS • 地址寄存器IICADD。
(2) 开始和结束信号 如图4-33所示,当IIC总线空闲的时候,串行数据线和串行时钟线都应该处于高阻状态。 SCL高电平时,SDA从高到低跳变作为开始信号;SDA从低到高的跳变作为结束信号。主设备控制产生开始和结束信号。 图 4-33 开始结束信号
开始信号后,传送的首字节的7位为从设备的地址,第8位为数据传送方向位,如果第8位是0,指示一次写操作,否则指示一次读数据的请求。开始信号后,传送的首字节的7位为从设备的地址,第8位为数据传送方向位,如果第8位是0,指示一次写操作,否则指示一次读数据的请求。 数据传送每次都是8位,而且从最高位开始传送,每一个字节必须紧跟着接收到ACK位进行传送,传送字节数不限。
在SDA串行数据线上检测一个开始信号之前,IIC总线接口应该处于从模式下。在SDA串行数据线上检测一个开始信号之前,IIC总线接口应该处于从模式下。 • 检测到开始信号后,接口的状态转变成主控制模式,产生SCL时钟信号,启动数据传送,总线进入忙碌状态。 • 检测到结束状态后,总线又回到空闲状态。 • 如果控制器想继续进行数据传送,它又会产生开始信号,同时从控制器也是。
(3) 数据传送格式 如图4-34所示,串行数据线上的每一个字节在长度上都应该是8位。每次传送能够传送的字节数目是不受限制的。紧跟在开始状态后面的第一个字节应该是地址域。 当IIC总线工作在主控制模式的时候,地址由控制器传送。每一个字节后面应该跟着一位确认位ACK。串行数据地址的最高位总是被最先传送。如图4-35所示。
(4) ACK 应答信号 如图4-36所示,发送器SCL产生9个时钟周期,前8个周期发送器发送8位数据,第9个时钟周期接收器发送一个应答ACK位,完成一个字节的传输操作。当ACK时钟脉冲被收到时, 发送器置SDA高电平,接收器置SDA低电平。 在IICSTAT寄存器中,可以通过软件使能ACK 应答位。
(5) 读写操作 在发送器模式下,数据被发送之后,IIC 总线接口会等待直到 IICDS(IIC 数据移位寄存器)被程序写入新的数据。 在新的数据被写入之前,SCL 线都被拉低。 新的数据写入之后,SCL 线被释放。
S3C44B0X 利用中断来判别当前数据字节是否已经完全送出。 在 CPU 接收到中断请求后,再中断处理中再次将下一个新的数据写入 IICDS,如此循环。 在接收模式下,数据被接收到后,IIC 总线接口将等待直到 IICDS 寄存器被程序读出。 在数据被读出之前,SCL 线保持低电平。新的数据从读出之后,SCL 线才释放。 S3C44B0X 也利用中断来判别是否接收到了新的数据。CPU 收到中断请求之后,处理程序将从 IICDS 读取数据。
(6) 总线仲裁程序 串行数据线上的仲裁用来防止两个控制器对总线的竞争。 如果一个主控制器使SDA数据线为高电平,它发现另一个主控制器使SDA数据线为低电平,它不会进行一次数据传送操作,因为总线上当前的状态与自己的状态不相符合,这时候仲裁程序将一直执行到SDA数据线变高电平为止。
然而当多个主控制器同时使SDA为低电平,每个主控制器发地址位给从控制器。然而当多个主控制器同时使SDA为低电平,每个主控制器发地址位给从控制器。 因为串行数据线上保持低电平的能力要比保持高电平的能力强。 例如: 一个控制器产生了一个低电平作为第一个地址位,同时另外一个控制器正保持高电平,在这种情况下,两个控制器都会在总线上检测到低电平,这种情况下,产生低电平的主控制器将会得到控制权,产生高电平的控制器将会释放控制权。如果两个主控制器都产生低电平作为地址的第一位,将对地址的第二位的仲裁,这种仲裁会持续到地址的最后一位。
(7) 配置 IIC 总线 要控制串行时钟 SCL 的频率,可以通过 IICCON 寄存器中的 4 位预分频值来设置。IIC 总线接口地址保存在 IIC 总线地址寄存器 IICADD 内。 (8) 各种模式下的操作流程 S3C44B0X 支持的操作模式有主设备发送模式、主设备接收模式、从设备发送模式和从设备接收模式。
在IIC发送/接收操作中,遵循以下步骤: ① 如果需要,将本机地址写入地址寄存器 IICADD 中; ② 设置 IICCON 寄存器: a)使能中断; b)定义 SCL 周期; ③ 设置 IICSTAT ,使能串行输出 主控制器送/接收数据流程图如图4-37所示,从控制器发送/接收数据流程图如图4-38所示。
2. IIC 总线接口专用寄存器 (1) IIC 总线控制寄存器(IICCON) IICCON是IIC总线控制寄存器,定义如表4-78所示。 (2) IIC 状态寄存器(IICSTAT) IICSTAT是IIC总线状态寄存器,定义如表4-79所示。 (3) IIC 总线地址寄存器 IICADD是IIC总线地址寄存器,定义如表4-80所示。 (4) IIC 总线发送/接收数据移位寄存器(IICDS) IICDS是IIC总线发送/接收数据移位寄存器,定义如表4-81所示。
4.13.2 A/D转换器 1. S3C44B0X ADC概述 S3C44B0X 具有 8 路模拟信号输入的 10 位模/数转换器(ADC),它是一个逐次逼近型的 ADC,内部结构中包括模拟输入多路复用器,自动调零比较器,时钟产生器,10 位逐次逼近寄存器(SAR),输出寄存器如下图所示。 这个 ADC 还提供可编程选择的睡眠模式,以节省功耗。
如图4-39所示,S3C44B0X内部ADC的结构包括多路转换器MUX、D/A转换器、SAR逻辑、COMP比较器、预分频器PSR、ADCDAT数据寄存器和控制逻辑等。如图4-39所示,S3C44B0X内部ADC的结构包括多路转换器MUX、D/A转换器、SAR逻辑、COMP比较器、预分频器PSR、ADCDAT数据寄存器和控制逻辑等。 另外,出于对电压的稳定性的考虑,正向参考电压 REFT,反向参考电压 REFB 和模拟共用电压 VCOM 应该相应地连接一个旁路电容。 主要特性是: • 分辨率:10 位; • 微分线性度误差:±1LSB • 积分线性度误差:±2LSB(最大±3LSB) • 最大转换速率: 100KSPS • 输入电压范围:0-2.5V • 输入带宽:0-100Hz(不具备采样保持(S/H)电路) • 低功耗