新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > iMouse多功能空中鼠標(biāo)

iMouse多功能空中鼠標(biāo)

作者:梁平 中國(guó)科學(xué)院上海應(yīng)用物理所 時(shí)間:2010-06-29 來(lái)源:電子產(chǎn)品世界 收藏

  軟件系統(tǒng)設(shè)計(jì)

本文引用地址:http://butianyuan.cn/article/110397.htm

  系統(tǒng)的軟件可以分為鼠標(biāo)主體端與鼠標(biāo)接收端兩個(gè)部分??刂破鞣謩e是的MXT8051微控制器與TI的430單片機(jī),在此兩部分的控制器上分別都成功移植了mC/OS嵌入式操作系統(tǒng),并在mC/OS操作系統(tǒng)上運(yùn)行應(yīng)用程序。

  mC/OS是一種免費(fèi)公開源代碼、結(jié)構(gòu)小巧、具有可剝奪實(shí)時(shí)內(nèi)核的實(shí)時(shí)操作系統(tǒng)。

  mC/OS 和mC/OS-II 是專門為計(jì)算機(jī)的嵌入式應(yīng)用設(shè)計(jì)的, 絕大部分代碼是用C語(yǔ)言編寫的。CPU 硬件相關(guān)部分是用匯編語(yǔ)言編寫的、總量約200行的匯編語(yǔ)言部分被壓縮到最低限度,為的是便于移植到任何一種其它的CPU 上。用戶只要有標(biāo)準(zhǔn)的ANSI 的C交叉編譯器,有匯編器、連接器等軟件工具,就可以將mC/OS-II嵌人到開發(fā)的產(chǎn)品中。mC/OS-II 具有執(zhí)行效率高、占用空間小、實(shí)時(shí)性能優(yōu)良和可擴(kuò)展性強(qiáng)等特點(diǎn), 最小內(nèi)核可編譯至 2KB 。mC/OS-II 已經(jīng)移植到了幾乎所有知名的CPU 上。

  mC/OS-II目標(biāo)是實(shí)現(xiàn)一個(gè)基于優(yōu)先級(jí)調(diào)度的搶占式的實(shí)時(shí)內(nèi)核,并在這個(gè)內(nèi)核之上提供最基本的系統(tǒng)服務(wù),如信號(hào)量、郵箱、消息隊(duì)列、內(nèi)存管理、中斷管理等。

  鼠標(biāo)主體端軟件結(jié)構(gòu)

  主體端軟件結(jié)構(gòu)如圖7所示。

  在主體端的軟件中,主要用到了μC/OS操作系統(tǒng)的多任務(wù)調(diào)度與任務(wù)間的通訊功能,在鼠標(biāo)動(dòng)作數(shù)據(jù)處理之后,通過(guò)消息隊(duì)列的方式傳遞給通訊任務(wù),通訊任務(wù)將此數(shù)據(jù)有效地發(fā)送給接收端電路。如圖9所示。

  鼠標(biāo)動(dòng)作數(shù)據(jù)處理的流程如圖8所示。在的加速度傳感方案中,最為關(guān)鍵的是如何用軟件的方法除去重力以及抖動(dòng)對(duì)傳感器輸出產(chǎn)生的影響,這里首先對(duì)傳感器輸出的數(shù)據(jù)進(jìn)行差分,所得的數(shù)據(jù)通過(guò)一定的衰減后再減掉防抖閾值,最后形成要輸出的數(shù)據(jù)。

  接收端軟件結(jié)構(gòu)

  接收端軟件結(jié)構(gòu)如圖10。

  在鼠標(biāo)的接收這一端,無(wú)線通訊的任務(wù)流程基本與主體端的流程差不多,只是這端以接收為主,而主體端則以發(fā)送為主。同時(shí),在有效接收到數(shù)據(jù)包后,程序?qū)⒃u(píng)估通訊雙端的中心頻率偏差,并對(duì)芯片進(jìn)行配置修正。無(wú)線通訊的一個(gè)關(guān)鍵問(wèn)題是如何處理好數(shù)據(jù)丟包的問(wèn)題,處理不好,鼠標(biāo)就會(huì)跳躍,這里,借鑒了USB協(xié)議中對(duì)數(shù)據(jù)包交錯(cuò)發(fā)送的控制方法與應(yīng)答機(jī)制,很好解決了這個(gè)問(wèn)題。

  USB控制這一塊是軟件中最關(guān)鍵的一塊,這里涉及了USB協(xié)議以及HID的協(xié)議。USB的固件程序結(jié)構(gòu)如圖11。

  USB事件由中斷進(jìn)行驅(qū)動(dòng),中斷發(fā)生后根據(jù)不同的中斷向量對(duì)中斷事件進(jìn)行處理。如圖12所示。如果是控制包,則向主控的進(jìn)程發(fā)送一個(gè)信號(hào),由主控進(jìn)程對(duì)控制包進(jìn)行分析處理。在程序的應(yīng)用層,HID鼠標(biāo)的數(shù)據(jù)包通過(guò)USB接口的端口1進(jìn)行傳輸,計(jì)算機(jī)對(duì)此端口的詢問(wèn)間隔為10ms。



評(píng)論


相關(guān)推薦

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

關(guān)閉