<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 新興微型光學(xué)手指導(dǎo)航模組的嵌入式系統(tǒng)開(kāi)發(fā)

          新興微型光學(xué)手指導(dǎo)航模組的嵌入式系統(tǒng)開(kāi)發(fā)

          作者: 時(shí)間:2011-04-13 來(lái)源:網(wǎng)絡(luò) 收藏

            2

            2.1 應(yīng)用器件選型

            不少半導(dǎo)體公司進(jìn)行了OFN器件及其的研發(fā)與生產(chǎn),如Avago的ABDSA320、ST的VD5376、ATLab的ATA2188MOF與MOA器件及其FO1R/FO3R/SMID/AP33M2I/P、CrucialTec的CT01~27系列模組、Apexone的A2815器件及其AMF813模組、Mitsumi的SFN11LE與SFN11GU等。特別值得一提的是SFN11GU,模組超薄化已經(jīng)達(dá)到了2 mm。很多光電半導(dǎo)體公司采用現(xiàn)有的OFN器件生產(chǎn)不同規(guī)格的OFN模組系列產(chǎn)品,如科特通信、世紀(jì)芯成、合盈光電等。

            選擇OFN器件或模組,需要考慮的主要因素有:形體大小、功率消耗、電源供給和硬件接口。形體方面更關(guān)心的是厚度,越薄越適宜便攜式消費(fèi)產(chǎn)品,當(dāng)然成本也會(huì)越高。便攜式消費(fèi)產(chǎn)品的應(yīng)用,特別注重形體、功耗和電源供應(yīng),通常形體小巧、工作與待機(jī)電流小和可以更低電壓供電的OFN器件或模組更受青睞。工農(nóng)業(yè)過(guò)程控制、儀表儀器設(shè)備等行業(yè)應(yīng)用,則更多考慮的是OFN器件或模組的穩(wěn)定高效、連接方便和EMI/EMC/ESD能力。

            這里重點(diǎn)說(shuō)明一下OFN的復(fù)合功能,及實(shí)時(shí)觸控與位移檢測(cè)是OFN的基本功能,由此衍生OFN的復(fù)合功能包括:點(diǎn)擊、雙擊、拖動(dòng)、滾屏、翻頁(yè)、卷屏等。通常采用的OFN器件,僅有基本功能。為適合常用的“點(diǎn)擊確認(rèn)”需求,構(gòu)成OFN模組時(shí),常常在其FPC下附帶的“鍋?zhàn)衅?rdquo;機(jī)械按鍵,已經(jīng)能夠滿足大多數(shù)應(yīng)用場(chǎng)合了,非常經(jīng)濟(jì)。一些OFN,則直接把常用的點(diǎn)擊、雙擊、拖動(dòng)等簡(jiǎn)單的復(fù)合功能集成在器件內(nèi),把滾屏、翻頁(yè)、卷屏等復(fù)雜的復(fù)合功能設(shè)計(jì)成規(guī)范API函數(shù)庫(kù),供OFN器件或模組用戶在具體的應(yīng)用的上層軟件中自由按需添加,CrucialTec的部分CTxx系列OFN模組就是如此。

            2.2 硬件體系設(shè)計(jì)

            中引入OFN,硬件電路設(shè)計(jì)上需要做到:

            ① 數(shù)字I/O接口的連接,主要考慮3個(gè)方面。

            ◆ I/O接口的連接。增加10~50 Ω限流電阻加以實(shí)現(xiàn),特別是電壓規(guī)格不同的情形。

            ◆ 電磁干擾的抑制。可以通過(guò)瓷片電容與限流電阻構(gòu)成簡(jiǎn)潔的RC濾波電路加以實(shí)現(xiàn)。

            ◆ 驅(qū)動(dòng)能力的增強(qiáng)??梢酝ㄟ^(guò)上拉電阻簡(jiǎn)單加以實(shí)現(xiàn)。

           ?、?供給電源的去噪濾波可以選用鉭電容與瓷片電容,簡(jiǎn)單加以實(shí)現(xiàn)。

            圖1給出了一種典型的OFN模組硬件電路設(shè)計(jì),其中Mode用于選擇I2C或SPI總線形式,INT為對(duì)外的實(shí)時(shí)中斷信號(hào),#RST和#ShtDwn為主機(jī)的復(fù)位和開(kāi)關(guān)控制端口,I2C信號(hào)為SCK與SDA,SPI信號(hào)為SCK、RxD、TxD和#CS。

          OFN的硬件電路設(shè)計(jì)示意圖


          圖1 OFN的硬件電路設(shè)計(jì)示意圖

            對(duì)于抗干擾、驅(qū)動(dòng)和適應(yīng)能力強(qiáng)大的OFN器件,可以不考慮濾波、限流和上拉電阻,具體情況應(yīng)視所選用的OFN模組的性能和電路設(shè)計(jì)需求而定。電路設(shè)計(jì)時(shí)需要注意參考廠家的推薦電路及其器件參數(shù)與相關(guān)的估算公式,特別是PCB或FPC的印制板設(shè)計(jì)。

            2.3 軟件體系設(shè)計(jì)

            OFN模組,作為一種的人機(jī)輸入接口設(shè)備,一般是以片外設(shè)備的身份,加入到以各類微處理器為核心的應(yīng)用中的,微處理器軟件體系必需實(shí)現(xiàn)對(duì)OFN模組的驅(qū)動(dòng)才能及時(shí)地從中得到來(lái)自O(shè)FN的各種信息。

            OFN模組的驅(qū)動(dòng)程序主要包括3部分:初始配置、過(guò)程變化控制和數(shù)據(jù)的收發(fā)傳輸。初始配置完成對(duì)OFN光敏分辨率、休眠方式、連續(xù)中斷間隔等項(xiàng)的設(shè)置,如果不進(jìn)行初始配置,OFN則按默認(rèn)配置工作。過(guò)程變化控制用于主機(jī)對(duì)OFN的開(kāi)關(guān)、復(fù)位及其工作參數(shù)變化的控制。數(shù)據(jù)收發(fā)傳輸是OFN的常規(guī)行為,只要有觸控,OFN就會(huì)以一定的時(shí)間間隔按中斷的形式通知主機(jī)系統(tǒng)??梢圆捎弥袛嗷虿樵兊姆绞綄?shí)時(shí)地從OFN中獲取手指的觸控輸入信息。查詢操作往往需要使用周期定時(shí)器,在定時(shí)中斷中查詢并獲取必要的OFN數(shù)據(jù)。從這層意義上講,查詢方式也是一類中斷方式。主機(jī)可以在外部事件中斷或定時(shí)中斷服務(wù)中,通過(guò)I2C或SPI總線操作,得到必要的OFN檢測(cè)信息。

            通過(guò)底層驅(qū)動(dòng)程序得到OFN檢測(cè)信息后,對(duì)于沒(méi)有嵌入式操作系統(tǒng)EOS(Embedded Operatig System)的直接軟件體系,或諸如RTX、μC/OSII等微型嵌入式實(shí)時(shí)操作系統(tǒng)ERTOS(Embedded Real Time Operating System)的主機(jī)系統(tǒng),上層應(yīng)用程序直接用來(lái)進(jìn)行屏幕指示、操作控制或數(shù)據(jù)的存儲(chǔ)、轉(zhuǎn)發(fā)等活動(dòng),這主要針對(duì)工農(nóng)業(yè)過(guò)程控制、儀表儀器設(shè)備、器件性能檢測(cè)完善等應(yīng)用情形。對(duì)于使用Nucleus MTK、ThreadX展迅、Symbian、Windows CE/Mobile、ARMLinux/Android、MACOSXiPhone、VxWorks等典型EOS及其應(yīng)用體系的主機(jī)系統(tǒng),還需要對(duì)OFN信息進(jìn)行數(shù)據(jù)封裝或控制格式轉(zhuǎn)換,以便使原有系統(tǒng)的絕大多數(shù)應(yīng)用程序都能直接使用,如鼠標(biāo)數(shù)據(jù)包格式、觸摸屏數(shù)據(jù)包格式、方向鍵信息格式等。這種信息封裝或變換,操作簡(jiǎn)單的直接在驅(qū)動(dòng)程序中實(shí)現(xiàn),操作復(fù)雜的則需要在應(yīng)用層通過(guò)消息、隊(duì)列等軟件通信或同步機(jī)制做“二傳”或“三傳”加以實(shí)現(xiàn)。

          linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)


          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();