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

          關 閉

          新聞中心

          EEPW首頁 > 工控自動化 > 設計應用 > 藍牙在無線溫度傳感中的應用

          藍牙在無線溫度傳感中的應用

          作者: 時間:2011-07-08 來源:網(wǎng)絡 收藏

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

            3.2 程序設計

            本系統(tǒng)是基于的串口模型SPP(SerialPortProfile)實現(xiàn)數(shù)據(jù)的透明傳輸,在核心協(xié)議棧之上編寫自己的上層程序。CSR的核心協(xié)議棧包括HCI、LZCAP、SDP、RFCOMM等,以固件的形式提供給開發(fā)人員,用戶編寫的應用程序和協(xié)議棧一起運行在CSR嵌人式環(huán)境中。在CSR程序中,不同任務之間可以異步地發(fā)送消息,每一個任務在創(chuàng)建的時候可以讓其中一個擁有消息隊列,其它的就把發(fā)給任務的消息提交給該消息隊列,由任務調(diào)度程序自動運行獲得任務的消息。藍牙模塊上層應用程序流程如圖3所示。

            4 低功耗設計

            作為器,低功耗運行可以最大限度地延長設備的有效使用時間,為了獲得最佳性能,設計時在電源損耗和可用性方面必須根據(jù)情況權(quán)衡使用,除了選用低功耗器件外,筆者從以下幾個方面設計了電源管理程序以盡量減少器的功耗。

            (1)由于無線器負責向控制終端傳輸數(shù)據(jù),因此何時進行數(shù)據(jù)采集、何時進行數(shù)據(jù)傳輸可以由控制終端決定,非常適合使用休眠模式和呼吸模式,通過減少藍牙設備在微微網(wǎng)中的活動達到節(jié)電的目的,并且控制終端一般接有持久的電源,所以電源管理的開銷由終端來負責比較合適。把控制終端作為主設備,將電源管理程序設計在終端的應用控制層中,并由控制終端完成設備的查詢、配對、建鏈等工作,當無線傳感器與控制終端配對成功并建立RFCOMM連接后進人休眠模式,此時主從設備仍然保持著RFCOMM信道,只是不能發(fā)送和接收數(shù)據(jù),休眠模式下信標間隔可設為15,電流大概在lmA左右。當需要進行數(shù)據(jù)傳輸時,退出休眠模式進人呼吸模式,通過呼吸時隙發(fā)送數(shù)據(jù),呼吸間隔可設為20~40ms,間隔過大會帶來明顯延遲,當數(shù)據(jù)傳輸結(jié)束后再次進人休眠模式,從而盡可能地降低能耗。

           ?。?)CSR的BlueCore芯片提供T獨特的硬件節(jié)能方法—深度睡眠(Depslep)模式,進人和退出深度睡眠模式至少需要10ms,通過按鈕或事件進人深度睡眠模式很大程度上降低了損耗。當用戶確定將有較長時間不使用無線傳感器時,可通過控制終端發(fā)送事件消息進人深度睡眠模式,需要使用時再通過消息快速退出。在深度睡眠模式下電流一般可控制在50拼A左右。

           ?。?)凌陽單片機SPCE06lA也可以應用CPU的睡眠模式,且A口具有鍵喚醒功能,將BCM02的PIOS與單片機的IOA7相連接,當藍牙模塊退出休眠模式,發(fā)送指令進行數(shù)據(jù)采集時,PIOS輸出高電平,通過IOA7電平的變化產(chǎn)生中斷來喚醒CPU進人工作狀態(tài)。


          上一頁 1 2 3 下一頁

          評論


          相關推薦

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

          關閉
          看屁屁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); })();