3.2 输入/输出设备
嵌入式系统中的输入设备一般包括触摸屏、语音识别、按键、键盘和虚拟键盘。输出设备主要有LCD显示和语音输出。
3.2.1 液晶显示
液晶显示屏(Liquid Crystal Display,LCD)用于显示GUI(图像用户界面)环境下的文字和图像数据,适用于低压、微功耗电路。
从选型角度看,我们将常见液晶分为段式(也称8字)、字符型和图形点阵,分别介绍如下。
(1)段式液晶
常见的段式液晶每字由8段组成,即8字和一点,只能显示数字和部分字母,如果必须显示其他少量字符、汉字和符号,一般需要在厂家定做,将所要显示的字符、汉字和其他符号固化在指定的位置上,比如计算器和电子表所用的液晶。
(2)字符型液晶
顾名思义,字符型液晶是用于显示字符和数字的,但其对于图形和汉字的显示方式与段式液晶无异。字符型液晶一般有以下几种分辨率:8×1、16×1、16×2、16×4、20×2、20×4、40×2和40×4等,其中8(16、20、40)的含义为一行可显示的字符(数字)个数,1(2、4)的含义则是指显示的行数。
(3)图形点阵式液晶
我们将其分为TN、STN(DSTN)、TFT等几类。这种分类需从液晶材料和液晶效应讲起,具体请参考液晶显示原理章节。
TN类液晶由于它的局限性,只用于生产字符型液晶模块;STN(DSTN)类液晶模块一般为中小型,既有单色的,也有伪彩色的;TFT类液晶,则是从小到大的型号都有,而且几乎都为真彩色显示模块。除了TFT类液晶外,一般小液晶屏都内置控制器(控制器的概念相当于显示卡上的主控芯片),直接提供MPU接口,而大中液晶屏要想控制其显示,都需要外加控制器。
从色彩上分,LCD显示屏分为单色、灰度和彩色3种,其价格按照由低到高排序。单色LCD的点阵只能显示亮和暗,通常只用于低端的不需显示图形的场合;带灰度级的LCD常用的有2-bit、4级灰度和4-bit、16级灰度,可以显示简单的带有层次的图形或图像;彩色LCD的色彩以颜色数为标准。彩色LCD分为有源(Active)及无源(Passive)型两种,有源型就是常见的TFT(Thin Film Transistor,薄膜晶体管)LCD,其特点是显示清晰、明亮、视角大,但价格高。之所以如此,是因为有源LCD更新屏幕的频率较快,而且它的屏幕上的每个像素分别是由一个独立的晶体管控制的(无源的就不是)。这样,也导致了有源矩阵LCD的一个缺点,就是这种显示器要使用相当多的晶体管,其造价也就高了。无源型就是常见的STN(Super Twisted Nematic,超扭曲向列型)LCD,其最显著的优点是造价低。
按背光将液晶分类,有透射式、反射式、半反半透式3类。因为液晶为被动发光型显示器,所以必须有外界光源,液晶才会有显示。透射式液晶必须加上背景光,反射式液晶需要较强的环境光线,半反半透式液晶则要求环境光线较强或加背光。
字符类液晶带背光的一般为LED背光,并且以黄颜色(红、绿色调)为主,一般为+5V驱动。单色STN中的小点阵液晶,多用LED或EL背光,EL背光以黄绿色(红、绿、白色调)常见,一般用400Hz~800Hz、70V~100V的交流驱动,且常用驱动需要约1W的功率。中大点阵STN液晶和TFT类液晶多为冷阴极背光灯管(CCFL/CCFT),背光颜色为白色(红、绿、蓝色调),一般用25kHz~100kHz、300V以上的交流驱动。
3.2.2 触摸屏
嵌入式系统中的触摸屏分为电阻式、电容式和电感式3种,其中电阻式触摸屏最为常用。3种触摸屏技术的比较如表3-2所示。
表3-2 3种触摸屏技术的比较
电阻触摸屏的工作部分一般由3部分组成(如图3-1所示),分别为两层透明的阻性导体层、两层导体之间的隔离层和电极。阻性导体层选用阻性材料,如铟锡氧化物(ITO)涂在衬底上构成,上层衬底用塑料,下层衬底用玻璃。隔离层为黏性绝缘液体材料,如聚酯薄膜。电极选用导电性能极好的材料(如银粉墨)构成,其导电性能大约为ITO的1000倍。
图3-1 电阻触摸屏结构
触摸屏工作时的上下导体层相当于电阻网络,如图3-2 所示。当某一层电极加上电压时,会在该网络上形成电压梯度。如有外力使得上下两层在某一点接触,则在电极未加电压的另一层可以测得接触点处的电压,从而知道接触点处的坐标。比如,在顶层的电极(X+,X-)上加上电压,则在顶层导体层上形成电压梯度,当有外力使得上下两层在某一点接触时,在底层就可以测得接触点处的电压,再根据该电压与电极(X+)之间的距离关系,就可知道该处的X坐标。然后,将电压切换到底层电极(Y+,Y-)上,并在顶层测量接触点处的电压,即可知道Y坐标。这就是所有电阻技术触摸屏共同的最基本原理。对电阻式触摸屏的控制有专门的芯片,如BB(Burr-Brown)公司生产的芯片ADS7843。很显然,控制芯片要完成两件事情:其一,完成电极电压的切换;其二,采集接触点处的电压值(即A/D)。
图3-2 工作时的导体层
电容式触摸屏是一块4层复合玻璃屏,并在玻璃屏的内表面和夹层各涂有一层ITO。其中最外层是只有0.0015mm厚的矽土玻璃保护层;夹层ITO涂层做工作面,4个角引出4个电极;内层ITO为屏层以保证工作环境。当用户触摸电容屏时,由于人体电场,用户手指和工作面会形成一个耦合电容,又因为工作面上接有高频信号,所以手指会吸收一个很小的电流,这个电流分别从屏的4个角上的电极中流出,且理论上流经4个电极的电流与手指头到4个角的距离成比例,控制器通过对4个电流比例的精密计算,可以得出其位置所在。
电感式触摸屏的工作原理是在触摸笔中安装LC谐振线圈,通过改变与安装有激励线圈及感应线圈的触摸屏之间的空间距离,使电磁场发生变化从而计算出触点的位置。这种触摸屏是安装在液晶显示屏的后面,而普通的电阻式和电容式触摸屏需要安装在液晶显示屏的前面。两者相比,使用电感式触摸屏,输入笔不必接触屏幕,可以减少对屏幕的磨损,同时可大大提高输入的灵敏度。由于触摸屏安装在显示屏的后面,也增加了显示的清晰度和亮度,减少了背光的使用,进而可以减少系统功耗。
3.2.3 语音输入/输出技术
随着应用的发展,用户不断地要求所用的嵌入式装置更小、更轻便,同时又更易于使用,而能解决这3方面问题的一种可行技术就是语音识别。由于这种技术去掉了传统的输入器件,故具有更小和更轻便的特点。语音识别输入可以在嵌入式处理器功能足够强大时用相应的软件实现,也可以使用专用芯片增加一个硬件功能模块来实现。前者对嵌入式系统硬件配置的要求较高,如处理器的速度和存储器的容量等。后者则通过专门的DSP芯片来完成语音识别输入过程中的所有运算工作,不会加重系统主处理器的负担。这种专用的语音识别芯片现在已经有多种产品出现了,如Sensory公司的语音识别芯片系列,其内部采用神经网络技术来识别训练过的单词或短语,准确度高于99%,并且芯片高度集成化,减少了所需外部元器件的数目,可以快速和方便地嵌入到现存的和新设计的产品中,适用于多种需要语音控制的嵌入式产品。
语音识别技术以识别方法来分,有模板匹配法、随机模型法和概率语法分析法,这3种方法都属于统计模式识别方法。它的识别过程大致如下:首先选定语音的特征作为识别参数的模板,然后采用一个可以衡量未知模式和参考模式(即模板)的似然度的测量函数,最后选用一种最佳准则及专家知识作为识别策略,对识别候选者做最后判决,得到最好的识别结果作为输出。以识别范围来分,语音识别技术又分为语音从属(Speaker-Dependent)模式和语音独立(Speaker-Independent)模式。语音从属意味着必须有培训系统,而且通常它只可识别培训系统的人所讲的词;语音独立系统则可识别几乎所有讲话人的词。从目前水平来看,语音从属模式下的模板匹配法用得比较广泛。
语音识别技术在嵌入式系统上的使用,不仅可以通过声音命令来控制设备,还可将输入的声音转换为文本,使得用户能用声音口述需要输入的文本。如果再加上语音合成输出功能,就可以在嵌入式系统中实现书面语言和口头语言的双向转换,从而构成完整的语音输入/输出功能。
3.2.4 键盘
键盘输入作为最常用的输入设备仍有其不可替代的作用。
1.传统键盘的介绍
键盘通常有两种结构形式:线性键盘和矩阵键盘。在不同的场合下,这两种键盘均得到了广泛的应用。
线性键盘由若干个独立的按键组成,并且每个按键的一端与微机的一个I/O口相连,有多少个键就要有多少根连线与微机的I/O口相连,因此,只适用于按键少的场合。
矩阵键盘的按键按N行M列排列,每个按键占据行列的一个交点,需要的I/O口数目是N+M,容许的最大按键数是N×M。显然,矩阵键盘可以减少与微机接口的连线数,简化了结构,因此是一般微机常用的键盘结构。根据矩阵键盘的识键和译键方法的不同,矩阵键盘又可以分为非编码键盘和编码键盘两种。
● 非编码键盘:主要用软件的方法识键和译键。根据扫描方法的不同,可以分为行扫描法、列扫描法和反转法3种。
● 编码键盘:主要用硬件来实现键的扫描和识别,通常使用8279专用接口芯片,在硬件上要求较高。
2.新型键盘的硬件和软件实现原理
在特殊情况下组成一个最小的单片机系统的过程中,由于通用的I/O口有限,而又需要大量的按键输入,这就要求一种新的键盘结构,即用尽量少的I/O口实现尽可能多的键盘输入。经过分析,实际上用N+1个I/O口,辅以适当的接口电路,是可以实现N×N个按键的。现以6个端口实现5×5的按键为例来叙述。
(1)硬件实现
如图3-3所示的是用6个I/O口来实现25个按键的示意图。
图3-3 6个I/O口实现的5×5按键矩阵的示意图
具体的物理实现电路如图3-4所示。由图3-3和图3-4可见,其硬件部分分为两块:一块是普通键盘矩阵,另外一块是中断和接口电路,主要由相应数目的二极管和电阻组成。具体到6个I/O口的情况,实现5×5的按键矩阵的中断和接口电路(如图3-4所示)共需要10只二极管、12只电阻和1只三极管。10只二极管按其在电路中所起的作用可分为两组:第一组包括D6、D7、D8、D9和D10,用于保证按键信息的单一流向;第二组包括D1、D2、D3、D4和D5,它们在电路上对NPN三极管的基极构成“或”的逻辑关系,并对单片机进行初始化。除了PORT6(要求其具有中断功能)以外,其余的I/O口均被置成高电平,这样当有键按下时,三极管的基极由低变高,三极管导通;集电极由高电平跳变成低电平,向单片机发出中断信号,从而启动键盘扫描程序。
图3-4 6个I/O口实现的5×5按键矩阵的原理图
(2)软件实现
按键的识别主要靠软件来实现,需要编写键盘扫描程序。为了更好地说明键盘扫描的过程,假设编号为S12的键(见图3-4)被按下,扫描程序已经启动,扫描的具体过程如表3-3所列。
表3-3 键盘扫描过程
注:P-PORT,O-输出,I-输入,H-高电平,L-低电平。