MCU在显示器控制中的应用
扫描二维码
随时随地手机看文章
一、 引言
近几年来,计算机显示器逐步由手调过渡为电调。与手调显示器相比,电调显示器具有使用方便,适应性强,生产、调试容易等特点。本文以摩托罗拉8位MCU MC68HC05BD3为例,介绍了显示器程序中的几个问题。在本文的最后,给出了一个完整的程序流程图。
二、 显示器程序需要解决的几个主要问题
1 显示模式识别
对计算机用户而言,新的显示适配卡一般都提供了分辨率设置(如640 X 480 、800 X 600、1024 X 768 、1600 X 1280等)和刷新率设置(如60Hz、70Hz、85Hz等)供用户选择。而对于显示器而言,不同的显示模式,显示适配卡输出的VGA信号行、场频率不同。目前常见的显示适配卡场频输出范围在60-85Hz之间,行频输出范围在31.5KHz-70KHz之间。较高级的专业图形卡和游戏用显示适配卡,场频已经超过100Hz。
我们知道,不同的行、场频率,需要不同的S校正电容和模拟量参数(如水平、垂直幅度,水平、垂直中心,梯形失真,桶形失真等)。因此,正确的识别行、场频率是显示器程序首先 要解决的问题。
2 自动使用合适的模拟量参数
手调显示器在显示适配卡的显示模式发生变化时,需要用户重新调整相应的电位器来改变各种模拟量,以取得较满意的显示效果。频繁地调整电位器不但极为繁琐,而且易造成旋钮损坏。电调显示器在改变显示模式时,自动使用合理的参数。一般的顺序如下: 用户最近一次对该显示模式设置的参数("用户模式"参数);
出厂时生产厂家预置的参数("工厂模式"参数);
缺省参数;
对用户而言,一旦调整满意,使用过程中即无须改动,且调节过程比手动调节精确、可靠。
生产厂家在显示器出厂前,对一些常见的显示模式进行了预先调整,这样可以保证显示器在进入用户手中时,对于大多数常见的显示模式都能显示比较满意的效果。在生产过程中,通过按下某几个特定键的组合,显示器进入"工厂模式"状态,输入标准的VGA 信号,调整到满意的显示效果,显示器自动记录下该显示模式下各参数值。输入多个VGA信号,记录下的一组数据即"工厂模式"参数。常见的显示模式如图1:
图1
缺省参数是指在"用户模式"参数和"工厂模式"参数中都无法找到合适的显示模式参数时所采用的参数。
3 节能和保护
电调显示器一般都支持节能方式,这是与新的符合"能源之星"标准的计算机主机板相配合的。同时,象WINDOWS95这样的流行的操作系统平台也对节能做了很好的支持,具体可参考PC98、PC99规范。
通常在这方面对显示器的要求是:输入VGA信号在只有一路行同步信号或场同步信号时,显示器处于"待机/挂机"状态(SUSPEND状态),高压电路关闭,灯丝处于预热状态;输入VGA 信号丢失两路同步信号时,显示器处于"离机"状态(OFFMODE状态),除了同步检测电路外,显示器的其它电路停止工作。整机功耗只有几瓦,具体数据取决于显示器规格。
MCU还对行、场频过高,高压过高进行了保护处理。对于手调显示器,当输入信号行、场频过高时,会出现不同步而产生的"花屏"现象,既不美观,对机内元件也有一定伤害。电调显示器在行、场频率过高时,会自动进入"离机"状态。
另外,电调显示器由MCU检测行高压,控制X射线保护电路
4 OSD
新的电调显示器一般都具备OSD功能,通过它提示用户对各项参数进行调整。显示内容常见的有行频、场频值、模拟量调整时的百分比进度。模拟量一般包括亮度、对比度、水平中心、垂直中心、水平幅度、垂直幅度、梯形失真、桶形失真等。
三、 实现
摩托罗拉公司的8位MCU MC68HC05BD3是专为显示器控制设计的微控制器,适合显示器控制的主要特点在于它内置了一个同步信号处理器(SYNC SIGNAL PROCESSOR)和多路PWM(PULSE WIDTH MODULATION)输出。前者可以直接接收来自于VGA电缆的行、场同步信号,把其处理成适合扫描电路使用的TTL电平。内置的两个专门寄存器返回了两个计数值,一个表示场频,另一个表示每场的扫描行数。简单的计算即可得出行频值:
行频=场频 X 每场扫描行数
MC68HC05BD3另有两个位标志指示两路同步信号的有无。
I/O管脚经过配置,最多可产生16路8位PWM输出,能够满足模拟量调节。
OSD的实现使用了摩托罗拉公司的专用OSD芯片MC141543。该芯片内置了128个常用字符,包括字母、数字以及用于模拟量调整用的提示符,如表示亮度的 ,表示对比度的 等,满足了OSD显示的要求。
通过IIC总线,微控制器可以向MC141543编程,控制显示的内容、字符位置、字符大小、颜色等参数,形成一个完整的OSD菜单,其数据传输格式有三种:
(a) RàCàIàRàCàIà…
(b) RàCàIàCàIàCàI…
(c) RàCàIàIàIàI…
其中,"R"为MC141543内部RAM的行位置,"C"为列位置,"I"为命令信息,有关具体的操作命令,见MC141543的数据手册。
外接的AT24C04用来存贮不同显示模式下设定的参数,以满足在显示模式改变时,自动使用合适的参数,其FLASH存贮区分配如图3。
AT24C04被分为两个部分,"工厂区数据"和"用户区数据",各占256个字节,每个数据区又被分为16段,每段16个字节,用来存贮不同显示模式的设置。换句话说,当前使用者最多可以设置好16种显示模式的参数。
下面,对各部分主要内容做一个介绍。
初始化部分:除进行I/O口、各寄存器的初始化外,扫描按键,如果有特定的组合键按下,进入"工厂模式",用于生产线上调校。否则,为"用户模式"。
节能、保护、S校正部分:判断行、场同步信号是否存在,并进入相应的节能状态,如果行、场同步信号都正常,进入正常工作状态,并根据行频,切换合适的S校正电容,多个S校正电容切换有助于实现更好的行线性。高压保护检测端检测到高压过限后,进入"离机"模
图2
调用显示模式部分:搜索AT24C04中已有的参数表,找到匹配的显示模式,设置模拟量输出。
调整参数部分:根据按键操作,刷新OSD,改变PWM输出,并把新参数记录在当前显示模式的数据段中。
软件流程:
七、结束语
本文介绍的是显示器MCU程序中主要的几个问题,对于IIC总线读写、键盘扫描等内容,在此不再赘述。另外,在具体编程中,OSD的菜单样式、程序稳定性等方面,应参照具体机器而异。