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

          新聞中心

          EEPW首頁 > 消費電子 > 設(shè)計應(yīng)用 > iMouse多功能空中鼠標(biāo)

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

          作者:梁平 中國科學(xué)院上海應(yīng)用物理所 時間:2011-02-22 來源:電子產(chǎn)品世界 收藏

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

          本文引用地址:http://www.ex-cimer.com/article/117099.htm

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

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

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

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

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

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

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

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

            總結(jié)與展望

            這一項目得到了完整的實施,產(chǎn)品原型在“時代民芯”杯電子設(shè)計大賽的決賽答辯中進行了正常的演示。

            但是由于時間的原因,還有很多值得改進的地方,一是放置桌面的常規(guī)使用方式功能還可以添加,二是靈敏度還能進一步進行調(diào)試,三是可以更換角速度器件作為傳感器件,將有更好的使用體驗。有了這些改進,這個產(chǎn)品將更加完美。


          上一頁 1 2 3 下一頁

          關(guān)鍵詞: iMouse MEMS MXT8051

          評論


          相關(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); })();