这回我再讲讲从 MCU 到 LCD 之间是怎样一个控制流程,即我们的位图数据是怎样显示到 LCD 上的。前面我们了解到 LCD 显示是用动态扫描的方式来实现的,每次显示一整行,在一帧里每行一次扫描一遍,这样要有电路来控制行和列上的输出电压,这种电路就是 LCD 驱动器;而驱动器的输出又跟图像及 LCD 的工作方式是相关的,驱动器需要接受从图像转换来的控制信号,从而改变行/列上的输出电压,将工作方式及图像位图转换成控制信号的电路就是控制器。控制器 从 MCU 接收位图数据,然后把它转换成控制信号提供给驱动器。对于小分辨率的 LCD,驱动器和控制器通常是直接集成在一个 IC 上的,而大尺寸的 LCD,驱动器和控制器则是分开的,并且一般行驱动器和列驱动器也是分开的。那么控制器和驱动器之间到底是怎样连接的呢?我们来看看下图:

此主题相关图片如下:

YD 是帧同步信号,LP 是行同步信号,DATA 是列驱动的数据总线,用来传送列上的输出数据(0 或 1),XCLK 是移位时钟,每跳变一次时 DATA 上传送一次数据,DOFF#是关闭输出信号。以 640x480 的单色屏为例,640 个列输出,对应 640 个位的输出, 80 字节,即也就是每行扫描,列上需要的数据为 80 字节。假设列驱动器使用 8 位数据线,那么 80 字节需要 80 个 XCLK 时钟。这些信号,均由控制器驱动,仍以 640x480 的单色显示为例,驱动器为 8 位总线,则每帧开始时控制器连续输出 80 个 XCLK,并将第一行的数据输出,列控制器在每个 XCLK 时将数据锁存,然后控制器在 YD 上输出一个脉冲,行驱动器复位,准备从第一行输出,控制器在 LP 上输出一个脉冲,列驱动器复位,将刚才锁存的数据输出,同时行驱动器也从第一行输出,于是第一行便显示了,接着控制器再输出第二行的数据,然后再输出一个 LP,于是第二行便显示,依次类推,直到第 480 行后又输出一个 YD 回到第一行,即开始了第二帧的扫描。由此可见,驱动器的输出,完全由控制器的时序和数据决定。对于控制器和驱动器分离的系统,驱动器无法得知当前的显示特 性,如单色还是灰度或者彩色,颜色深度是多少等等,所以在这样的系统上,灰度/彩色只能用 FRC 的方式来实现,因此一般单独的通用控制器,工作频率都相当高。达到几十兆,对于像电脑显示屏这样的大尺寸,甚至达到几百兆。

最新文章

  1. JAVA的界面(Swing)
  2. wpf中手风琴控件Accordion编辑模板后控件不正常。
  3. 键盘ctrl+shift不能切换输入法
  4. 使用CSS创建有图标的网站导航菜单
  5. OpenNMS界面图 .
  6. maven3.0
  7. Ionic 测试针对Andorid平台
  8. DEDE首页调用{dede:field.content/}
  9. Sql Server专题三:SQL操作与技巧
  10. zepto的源代码注释(转)
  11. CSS3特效----制作3D旋转照片展示区
  12. 使用spark-streaming实时读取Kafka数据统计结果存入MySQL
  13. 设计模式(三)装饰者模式Decorator
  14. Android自定义View的套路
  15. LOJ6001 - 「网络流 24 题」太空飞行计划
  16. Android简易实战教程--第十话《模仿腾讯手机助手小火箭发射详解》
  17. Intellij IDEA 代码格式化/保存时自动格式化
  18. oracle报错 ORA-02290: 违反检查约束条件问题
  19. linux驱动编写之阻塞与非阻塞
  20. RabbitMQ 内存控制 硬盘控制

热门文章

  1. php curl向远程服务器上传文件
  2. vscode使用php调试
  3. CSS3前缀自动补全方案和插件
  4. hdu 1061 Rightmost Digit
  5. string xml json格式区别
  6. IIC,RS485,RS232各种协议手册更新中
  7. 有关Duilib的博客(持续更新)
  8. Struts2的处理结果(二)——处理结果的类型
  9. BZOJ 3199 escape
  10. CF 321B Ciel and Duel(费用流)