新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 新興微型光學手指導航模組的嵌入式系統開發

        新興微型光學手指導航模組的嵌入式系統開發

        作者: 時間:2011-04-13 來源:網絡 收藏

          具有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微處理器平臺上測試OFNA2815性能的情形。中斷服務程序中進行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 結語

          手指模組,性能高度集成,成本低,形體小,在嵌入式應用系統中備受青睞。只要按照各種嵌入式應用體系的具體特點,遵循各類嵌入式體系及其操作系統下驅動軟件的開發規律,并因地制宜,具體情況具體分析,就可以無縫地將其融入到各個已有的嵌入式應用軟硬件體系中,并拓展到新的嵌入式應用產品中。不斷豐富完善的微型手指模組,應用前景極好,推動著人機輸入界面的深遠變革和長足發展。

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

        上一頁 1 2 3 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 甘泉县| 宜兰市| 泗阳县| 石景山区| 婺源县| 枣强县| 乐东| 宣恩县| 射洪县| 彭山县| 开阳县| 文山县| 巴中市| 彩票| 北辰区| 福海县| 湘潭市| 兴国县| 滦南县| 会宁县| 东兰县| 进贤县| 富阳市| 凤冈县| 来安县| 大关县| 德清县| 定结县| 杭锦旗| 延长县| 乌拉特后旗| 郑州市| 阳东县| 沙雅县| 虎林市| 当涂县| 孟津县| 龙口市| 博白县| 远安县| 固始县|