1、引言
在某些图像处理系统中,往往需要在显示目标视频图像的同时,显示其参数及提示等信息。如医疗设备B超、CT、X透视,除了在监视器显示人体内部的组织器定外,还要显示相关参数,以辅助医生作出准确诊断。电力系统的红色外检测设备在显示被测目标的热像时,还要显示出其温度等参数,以便测试人员从定性的热像和定量的参数中诊断出故障所在。
利用MC141541在屏显示器件可使微处理器(MPU)通过I2C总线接口将需要显示的数据定入在屏显示器件(OSD),然后将数据输出显示。其字符的显示及同步均由OSD完成。OSD作为独立的智能I/O,可大大减轻MPU的负担。
2、I2C总线
I2C总线由PHILIPS公司推出,目前已广泛应用于MPU系统及数字电视等领域。它只有二根信号线:一根是双向数据线SDA,另一根是时钟线SCL。所有连接到I2C总线设备上的串行数据SDA都连接到总线的SDA线上,各设备的时钟线SCL接到总线的SCL。具有I2C总线的器件有很多种类,常用的如LED驱动器、LCD驱动器、静态RAM、EEPROM、时钟/日历、A/D、D/A、电视类及音响类器件等。I2C总线的标准传输速度为100k bit/s,而其高速方式的传输速度为400k bit/s。组成I2C总线的关键是其传输协议,即如何使总线上的主器件(通常是MPU)协调总线上的从器件。协议主要包括以下几个典型过程:
(1)一位数据传送:串行数据总线是按位传送的,因此位数据传送是I2C总线数据传送的最基本,也是最重要的过程。I2C总线规定SCL上一个时钟周期只能传送一位数据;
(2)起动和停止:起动和停止信号由主机发出,以控制总线上的数据传送。从设备在侦听到总线上的起动信号后开始准备收发数据;而监测到停止信号后结束数据传送。因而,起动和停止协议控制着一帧完整的数据传输。
(3)应答:在一个字节(8位)数据传送完毕后,接下来的一个时钟周期(即第9个)为应答过程。应答过程可保证传送数据的完整性,并可用来检验其有效性。
(4)寻址:要对并行数据总线上的I/O进行操作,就必须对地址总线进行译以选中某个I/O。而I2C总线并无地址总线,它是利用所发送串行数据的头几个字节作为地址来选中I2C总线的I/O设备的。每个I2C总线的I/O设备都有一个I2C地址。
3、MC141541芯片及其接口电路
MC141541是MOTOROLA公司推出的增强型在屏显示器件(EMOSD),可广泛应用于数字电视及图像系统中。其主要性能如下:
●具有二种可选分辨率模式,分别为320点/行(CGA)和480点/行(EGA);
●内置PLL电路,最高行频为110kHz,点时钟频率为52.8MHz;
●内部273字节寄存器可直接存取,全屏字符为10行×24列;
●字符集为128个符号图形ROM和8个用户可编程RAM。10×16点阵字符。其字符颜色、背景颜色、双倍高度、双倍宽度、边框及阴影均可编程;
●I2C总线接口地址为7A(Hex);
●采用单5V电源供电;
MC141541的接口电路原理图如图1所示。其中:Vss和VDD分别为地和电源端;Vco和RP用于外接振荡电路;H、V分别为分、场同步输入信号;SDA、SCL分别为I2C总线数据和时钟信号;SS为I2C总线允许信号;R、G、B为输出至监视器的RGB TTL电平信号。
MC141541是一种I2C总线接口器件,它的硬件接口非常简单。根据上述规则,只须将SDA与I2C总线的SDA信号相接,并将SCL与I2C总线的SCL信号相连即可。MC141541与MPU接口的关键在于按照I2C总线协议进行编程。
MC141541的数据包格式如下:
这样,在监视器上显示字符时,只须送出行、列坐标地址,然后再送出字符代码即可。在编程时,上述格式具体可划分为下述三种方式:
(1)R→C→I→R→C→I……
(2)R→C→I→C→I→C→I→……
(3)R→C→I→I→I……
MC141541可编程的字符RAM编程格式如下:
在编程时,上述格式亦可划分为下述三种方式:
(1)S→L→I→S→L→I……
(2)S→L→I→S→L→S→L……
(3)S→L→I→I→I……
在字符RAM编程格式中,SEG ADDRESS和LINE ADDRESS分别为要编程字符RAM的段、线地址,而其段地址字符RAM字模的位置内容由线地址寻址的RAM决定。这样,通过编程字符RAM就可以得到任意字符、图标及汉字。
4 传输协议子程序
图1中,接口电路的核心器件是MC141541,MPU选用8031系列芯片89C51。由于89C51没有I2C总线接口,因此要根据I2C总线协议及MC141541的数据传输格式,用软件编程模拟接口时序。以下是用Franklin C51语言编程模拟I2C总线基本传输协议的子程序清单:
void star( ) //起动
{SCL=0;
SDA=1;
SCL=1;
SDA=0;
}
void stop()//停止
{SCL=0;
SDA=0;
SCL=1;
SDA=1;
}
void ack()//应答
{SCL=0;
SCL=1;
SCL=0;
}
void wbit()//一位数据传送;写
{SCL=0
SDA=eebit;
SCL=1;
}
void rbit( ) //一位数据传送;读
{SCL=0;
SCL=1;
Eebit=SDA;
}
5 系统应用
图1所示接口电路可以用于电力行业红外测温诊断系统中在监视器上显示被测对象的温度及提示信息。
MC141541产生的字符可通过叠加电路将其叠加在视频信号中,并经视频液晶显示出来。在红外测温诊断仪则开始工作时,89C51将对MC141541进行初始化。然后清屏并显示相应提示信息。随着诊断的进行,89C51一边测量计算数据,一边将处理好的数据传送给MC141541来进行显示。图2所示为其程序流程。
图3所示为最后显示结果图。其中圆形为红外传感器本底,Crs、Max、Cir、Bas分别为实际温度、最大温度、环境温度和本底值;左下角交替显示有关参数,如发射率、档位、校正、存储体指示、调色板指示等。
MC141541是可以在视频输出上叠加字符信息的理想接口器件,它接口简单,性能价格比高,因而在仪器仪表中有广泛的应用。