1 微型光学手指导航模组简介
微型光学手指导航模组,集感应丈量光路、微型机械结构和数字/模仿微电子集成电路于一体,是高度微型化的机电一体化人机输入模块,其间心技能是光学手指导航OFN(Optical Finger NavigaTIon),又称为单手指导航SFN(Single Finger NavigaTIon)、光学轨道板OTP(OpTIcal Track Pad)或光学导航触键ONK(OpTIcal Navigation Key)。不同厂家有不同的称谓,比较公认的是“光学手指导航OFN”。
简略地说,OFN模组便是高度微型化的鼠标。
1.1 作业原理
OFN模组,一般由红外LED光源、遮光接触面板、光学透镜组和具有光敏阵列的片上处理/操控芯片组成,一般制造在便于集成运用的柔性线路FPC(Flexible Printing Circuit)板上。常用的OFNFPC,还集成了外表按键,即所说的“锅仔片(Metal Dome Switch)”,以简略地完成“点击承认”的功用。
OFN模组的作业原理如下:手指接触遮光接触面板,光敏阵列检测到有方针活动,唤醒片上系统SoC投入正常作业状况,红外LED发光,发动检测光路,经过光学透镜组的折射和聚集,由光敏阵列得到一幕一幕的图画数据信息;SoC从中笼统出不同的运动矢量MV(Motion Vector),从而依据运动矢量在时刻和空间上的相关性,核算出每次手指移动的平面相对量,构成运动数据,并及时经过数据接口向外传输出去。手指移出后,光敏阵列经过检测还能够使SoC转入休眠状况,以节约功耗。
遮光接触面板,需求能够应对强光辐射搅扰及外界湿度改变影响。
运动相关性的判别与核算是OFN的中心,一般沿袭光电鼠标中老练的简化的13点、9点、7点或5点运动猜测算法。还能够对得到的一系列数据,打开进一步的剖析核算,得到“点击”、“双击”、“拖动”等随同信息,从而完成传统鼠标的各种功用。
OFN构成的数据信息一般包含两类:操控信息和运动信息。操控信息指示是否运动、点击、双击、拖动等,运动信息即平面的X方向与Y方向相对位移量。
1.2 技能特征
从运用视点归纳起来,OFN的功用特征如下:
① 超薄超小规划。一般,外形面积在10 mm×10 mm以内,有用感光孔径在1.5 mm×1.5 mm以内,厚度在2?8~5?1 mm,也有2 mm厚度的OFN推出。
② 极低功耗规划。作业电流在2~16 mA,一般为3 mA;待机电流为80~150 μA,大大都器材为100 μA。
③ 直流供电需求。2.6~5.0 V规模,常用为2.8 V作业电压,正执政自适应、更低的电源供应开展。
④ 灵敏的多接口支撑。能够经过惯例数字接口I2C(InterIntegrated Circuit)或SPI(Serial Peripheral Interface)上传数据或承受主机装备,也有PS2鼠标接口或USB接口的;能够以中止方法向主机随时提示需求信息输入;能够经过复位和开关的方法承受主机一致调度。
⑤ 可选或自适应的光敏阵列分辨率,200~1250 CPI(Dots Per Inch)一般为800CPI。
⑥ 位移数据设置。一般为8位补码格局。
⑦ 优秀的EMC/EMI规划,2 kV以上的ESD(ElectroStatic Discharge)才干。
1.3 产品化运用
OFN一经推出,就得到了敏捷运用,特别是各式各样的手机,无论是廉价的功用手机(feature phone)仍是高功用的3G(3rd?Generation)智能手机(smart phone),无论是Nucleus MTK、ThreadX?展迅、Symbian系统仍是Windows Mobile、ARMLinux/Android、MACOSXiPhone系统,如Samsung的i329/728/780/788/908/8510、Nokia的E72/N900、BlackBerry的8520/9700、LG的ks500/kt500、SonyEricsson的X1/X2/X3、Sharp的SH8020C、中兴的X60等,不乏其人。
别的,在MID(Mobile Internet Devices)/MPC(Multimedia Personal Computer)/上网本、GPS导航、PMP(Portable Media Player)文娱、数码相机/摄像机等大众化产品中,也在不断地得到广泛运用。不侧重考虑本钱和功耗的工农业进程操控、外表仪器设备等职业范畴,也在悄然进行OFN的扩展运用。
OFN运用远景非常壮丽,需求推进着OFN的运用,运用促进着OFN的不断完善开展。
2 微型光学手指导航模组开发
2.1 运用器材选型
不少半导体公司进行了OFN器材及其模组的研制与出产,如Avago的ABDSA320、ST的VD5376、ATLab的ATA2188MOF与MOA器材及其FO1R/FO3R/SMID/AP33M2I/P模组、CrucialTec的CT01~27系列模组、Apexone的A2815器材及其AMF813模组、Mitsumi的SFN11LE与SFN11GU等。特别值得一提的是SFN11GU,模组超薄化现已到达了2 mm。许多光电半导体公司选用现有的OFN器材出产不同标准的OFN模组系列产品,如科特通讯、世纪芯成、合盈光电等。
挑选OFN器材或模组,需求考虑的首要因素有:形体巨细、功率耗费、电源供应和硬件接口。形体方面更关怀的是厚度,越薄越合适便携式消费产品,当然本钱也会越高。便携式消费产品的运用,特别重视形体、功耗和电源供应,一般形体细巧、作业与待机电流小和能够更低电压供电的OFN器材或模组更受喜爱。工农业进程操控、外表仪器设备等职业运用,则更多考虑的是OFN器材或模组的安稳高效、衔接便利和EMI/EMC/ESD才干。
这儿要点阐明一下OFN的复合功用,导航及实时手指触控与位移检测是OFN的根本功用,由此衍生OFN的复合功用包含:点击、双击、拖动、滚屏、翻页、卷屏等。一般选用的OFN器材,仅有根本导航功用。为合适常用的“点击承认”需求,构成OFN模组时,常常在其FPC下顺便微型的“锅仔片”机械按键,现已能够满意大大都运用场合了,非常经济。一些OFN,则直接把常用的点击、双击、拖动等简略的复合功用集成在器材内,把滚屏、翻页、卷屏等杂乱的复合功用规划成标准API函数库,供OFN器材或模组用户在详细的运用系统的上层软件中自在按需增加,CrucialTec的部分CTxx系列OFN模组便是如此。
2.2 硬件系统规划
嵌入式系统中引进OFN,硬件电路规划上需求做到:
① 数字I/O接口的衔接,首要考虑3个方面。
◆ I/O接口的衔接。增加10~50 Ω限流电阻加以完成,特别是电压标准不同的景象。
◆ 电磁搅扰的按捺。能够经过瓷片电容与限流电阻构成简练的RC滤波电路加以完成。
◆ 驱动才干的增强。能够经过上拉电阻简略加以完成。
② 供应电源的去噪滤波能够选用钽电容与瓷片电容,简略加以完成。
图1给出了一种典型的OFN模组硬件电路规划,其间Mode用于挑选I2C或SPI总线方法,INT为对外的实时中止信号,#RST和#ShtDwn为主机的复位和开关操控端口,I2C信号为SCK与SDA,SPI信号为SCK、RxD、TxD和#CS。
图1 OFN的硬件电路规划示意图
关于抗搅扰、驱动和适应才干强壮的OFN器材,能够不考虑滤波、限流和上拉电阻,详细情况应视所选用的OFN模组的功用和电路规划需求而定。电路设计时需求留意参阅厂家的引荐电路及其器材参数与相关的预算公式,特别是PCB或FPC的印制板规划。
2.3 软件系统规划
OFN模组,作为一种新式的人机输入微型接口设备,一般是以片外设备的身份,参加到以各类微处理器为中心的嵌入式运用系统中的,嵌入式微处理器软件系统必需完成对OFN模组的驱动才干及时地从中得到来自OFN的各种信息。
OFN模组的驱动程序首要包含3部分:初始装备、进程改变操控和数据的收发传输。初始装备完成对OFN光敏分辨率、休眠方法、接连中止距离等项的设置,假如不进行初始装备,OFN则按默许装备作业。进程改变操控用于主机对OFN的开关、复位及其作业参数改变的操控。数据收发传输是OFN的惯例行为,只需有手指触控,OFN就会以必定的时刻距离按中止的方法告诉主机系统。能够选用中止或查询的方法实时地从OFN中获取手指的触控输入信息。查询操作往往需求运用周期守时器,在守时中止中查询并获取必要的OFN数据。从这层意义上讲,查询方法也是一类中止方法。主机能够在外部事情中止或守时中止服务中,经过I2C或SPI总线操作,得到必要的OFN检测信息。
经过底层驱动程序得到OFN检测信息后,关于没有嵌入式操作系统EOS(Embedded Operatig System)的直接软件系统,或比如RTX、μC/OSII等微型嵌入式实时操作系统ERTOS(Embedded Real Time Operating System)的主机系统,上层运用程序直接用来进行屏幕指示、操作操控或数据的存储、转发等活动,这首要针对工农业进程操控、外表仪器设备、器材功用检测完善等运用景象。关于运用Nucleus MTK、ThreadX展迅、Symbian、Windows CE/Mobile、ARMLinux/Android、MACOSXiPhone、VxWorks等典型EOS及其运用系统的主机系统,还需求对OFN信息进行数据封装或操控格局转化,以便使原有系统的绝大大都运用程序都能直接运用,如鼠标数据包格局、接触屏数据包格局、方向键信息格局等。这种信息封装或改换,操作简略的直接在驱动程序中完成,操作杂乱的则需求在运用层经过音讯、行列等软件通讯或同步机制做“二传”或“三传”加以完成。
具有EOS的软件系统,OFN驱动程序需求遵从相应EOS共用驱动程序的编写、调试、加/卸载要求,如Windows CE/Mobile的单/双层、本地/流接口驱动、动态库方法,ARMLinux的字符设备驱动、动态加/卸载、VxWorks的I/O设备驱动等。OFN驱动程序传达的是系统共用的人机交互输入信息,有必要为共用驱动程序。EOS驱动程序能够划分为专用驱动程序或共用驱动程序两大类,共用驱动程序软件要求很高,需求依据详细EOS的特色和要求,仔细编写、调试和测验。
3 微型光学手指导航模组运用实践
在各类嵌入式运用系统中开发运用OFN模组,软硬件系统规划的中心是OFN驱动程序的完成,其要害在于OFN数据信息的实时收集和详细EOS下共用信息的构成。下面针对一些最常见的OFN运用开发规划实践,加以论述。其间触及的I2C、SPI、UART、LCD(Liquid Crystal Display)、守时器(Timer)、GPIO(General Port Input/Output)等的软件驱动操作,限于篇幅,这儿不再侧重阐明。
3.1 工业测控/外表仪器运用
工农业进程操控、外表仪器设备、器材功用检测等软件系统或微型ERTOS下的OFN运用,能够选用外部事情中止或守时器查询的方法,在其间止服务程序中直接操作I2C或SPI总线,高效地从OFN中取得手指触控信息,并进行屏幕指示、操作操控或数据的存储、转发等活动。
下面的例程代码(见网络版)展现了ARM926T内核的S3C2440微处理器渠道上测验OFN模组A2815功用的景象。中止服务程序中进行I2C或SPI总线操作,取得手指触控信息,在LCD屏上以“鼠标”方法随动显现,并经过UART接口上传数据给PC机。
3.2 Nucleus MTK手机运用
联发科技MediaTek推出的各种样式功用手机,以高度的性价比具有极高的市场份额,其内核是ARM7EJS或ARM9EJS微处理器,在MentorATI的优先级抢占调度和时刻片轮转的多使命ERTOS–Nucleus基础上,构成了完好的人机接口MMI(Man Machine Interface)运用程序系统,俗称“MTK”。Nucleus MTK大都情况下选用可办理的逐级中止机制:初级中止LISR(Lower ISR)→高档中止HISR(High ISR)→中止使命处理ISR(Interrupt Serve Routine)。ISR能够与其他使命进行通讯或同步的交互。
Nucleus MTK系统不支撑鼠标,但支撑键盘和接触屏操作,而接触屏操作终究归结在键盘操作上。因而在Nucleus MTK下运用OFN模组,需求把OFN的“触控”信息转化为“方向动作”信息,从而播送为能够共用的“方向按键”信息,从而为大都现有的和未来的运用程序所同享。不容忽视的是有必要完成高度频频的OFN信息与缓慢的方向按键之间的合理匹配,能够经过均值滤波和逻辑剖析进行取舍算法到达这一意图。
需求留意的是,Nucleus MTK软件系统层次和等级较为严厉,高低层之间除了通讯、同步和信息传递,一般不允许函数相互调用;一起,为确保中止呼应的及时性,不应在中止服务程序中作过多的逗留,因而传统的设备驱动及其剖析处理需求放在不同的层次上,按轻重缓急,别离加以完成。
依照上述Nucleus MTK的设备驱动标准和OFN信息的运用机理,规划OFN模组的Nucleus MTK软件运用如下:界说OFN特定音讯结构,分配中止方法和总线接口;实时获取OFN移动信息,取舍处理后,打包成OFN音讯包,上传MMI运用处理层;MMI运用处理层拆包剖析,改换成方向按键的“按下”和“开释”音讯,从而播送给整个系统。相关的要害程序开发如下:
① 根本设置。增加大局操作常量MSG_ID_MMI_OFN_MOVE_REQ,界说OFN音讯结构体ofn_hdr_ind_struct{LOCAL_PARA_HDR, kal_uint8 Direction},并在系统自界说设备驱动的初始化文件中参加对OFN初始化函数的调用。
② 底层驱动程序规划。限于篇幅,这儿仅列出I2C接口的守时器中止查询完成。
③ 共用信息构成。在上层首要程序文件MMITask.c中增加代码。
3.3 Windows CE/Mobile运用
Windows CE/Mobile是一款在嵌入式系统,特别是智能手机中,广泛运用的EOS。Windows CE/Mobile依照“物理中止IRQ(Interrupt ReQuest)→逻辑中止SYSINTR(System Interrupt)→中止服务线程IST(Interrupt Serve Thread)”的层层映射方法进行中止处理,其设备驱动程序以用户态下的DLL(Dynamic Link Library)文件方法存在,区分为本地与流接口驱动、独立与双层驱动,能够在系统发动时主动加载或动态加载。发动时加载的驱动程序,需求特别进行注册表的装备增加。
OFN模组及其运用特色决议了在Windows CE/Mobile下,其驱动程序宜规划为独立的本地驱动方法,并在系统发动时能够主动加载。Windows CE/Mobile支撑鼠标操作,有鼠标音讯结构体的系统界说,能够用来简化OFN的驱动程序。OFN模组的Windows CE/Mobile软件运用能够彻底在驱动程序中完成,中止服务程序的编写和系统注册表的装备增加是OFN模组Windows CE/Mobile驱动程序规划的要害。以I2C总线接口、外部中止事情触发方法阐明OFN模组Windows CE/Mobile驱动程序的详细完成,中心微处理器为ARM926T内核的S3C2440。
3.4 ARMLinux/Android运用
ARMLinux/Android是一个源码敞开、音/视频功用优秀、网络功用强壮、易于扩打开发的EOS及其运用系统,一经推出就在便携式移动通讯、微型笔记本电脑等许多范畴得到了广泛运用。其底层多是依据CortexA8/A9、ARM1176、ARM9EJS等内核的微处理器。Linux下设备驱动标准是将设备视作文件操作,称为“设备文件”,运用非常便利。其设备驱动程序分为字符型、块型和网络型三类,嵌入式系统的大大都外设或接口都能够作为字符型设备进行驱动。依据运用的特色,Linux将一切输入设备归为能够数据缓冲的链表结构的字符型输入子类(Input),包含鼠标、键盘、接触屏等,其间鼠标类驱动(mousedev)架构系统非常齐备。ARMLinux/Android系统的这些特征,使得OFN模组的驱动运用开发简便了许多:能够依照鼠标类驱动的实例化方法,快速完成OFN的驱动程序规划。Linux驱动能够动态加载,也能够在发动时加载;OFN设备运用频频,宜挑选发动时加载。这儿以常见的TI推出的CortexA8内核的OMAP3530微处理器渠道为例,要害的程序代码略–编者注。
4 结语
光学手指导航模组,功用高度集成,本钱低,形体小,在嵌入式运用系统中备受喜爱。只需依照各种嵌入式运用系统的详细特色,遵从各类嵌入式系统及其操作系统下驱动软件的开发规则,并量体裁衣,详细情况详细剖析,就能够无缝地将其融入到各个已有的嵌入式运用软硬件系统中,并拓宽到新的嵌入式运用产品中。不断丰富完善的微型光学手指导航模组,运用远景极好,推进着人机输入界面的深远革新和长足开展。