基于藍牙技術的無線溫度傳感器應用
3 軟件設計及流程
3.1 單片機軟件設計
單片機軟件部分主要包括主程序、中斷子程序、測溫子程序、轉換顯示及存儲子程序、UART通信子程序、語音播放子程序等,為了降低功耗,使用中斷來喚醒單片機進行測溫等工作,因此主程序部分比較簡單,主要負責系統(tǒng)各部分初始化和中斷的調用,在系統(tǒng)初始化完成后就直接進人睡眠模式,當中斷到來時單片機退出睡眠模式,調用中斷子程序實現測溫、轉換顯示、溫度數據的傳輸以及語音的播報和報警等功能。
本系統(tǒng)是基于藍牙的串口應用模型SPP(SerialPortProfile)實現無線數據的透明傳輸,在核心協議棧之上編寫自己的上層應用程序。CSR的藍牙核心協議棧包括HCI、LZCAP、SDP、RFCOMM等,以固件的形式提供給開發(fā)人員,用戶編寫的應用程序和協議棧一起運行在CSR嵌人式環(huán)境中。在CSR程序中,不同任務之間可以異步地發(fā)送消息,每一個任務在創(chuàng)建的時候可以讓其中一個擁有消息隊列,其它的就把發(fā)給任務的消息提交給該消息隊列,由任務調度程序自動運行獲得任務的消息。藍牙模塊上層應用程序流程如圖3所示。
4 低功耗設計
作為無線傳感器,低功耗運行可以最大限度地延長設備的有效使用時間,為了獲得最佳性能,設計時在電源損耗和可用性方面必須根據情況權衡使用,除了選用低功耗器件外,筆者從以下幾個方面設計了電源管理程序以盡量減少無線溫度傳感器的功耗。
?。?)由于無線溫度傳感器負責向控制終端傳輸數據,因此何時進行數據采集、何時進行數據傳輸可以由控制終端決定,非常適合使用休眠模式和呼吸模式,通過減少藍牙設備在微微網中的活動達到節(jié)電的目的,并且控制終端一般接有持久的電源,所以電源管理的開銷由終端來負責比較合適。把控制終端作為主設備,將電源管理程序設計在終端的應用控制層中,并由控制終端完成設備的查詢、配對、建鏈等工作,當無線傳感器與控制終端配對成功并建立RFCOMM連接后進人休眠模式,此時主從設備仍然保持著RFCOMM信道,只是不能發(fā)送和接收數據,休眠模式下信標間隔可設為15,電流大概在lmA左右。當需要進行數據傳輸時,退出休眠模式進人呼吸模式,通過呼吸時隙發(fā)送數據,呼吸間隔可設為20~40ms,間隔過大會帶來明顯延遲,當數據傳輸結束后再次進人休眠模式,從而盡可能地降低能耗。
(2)CSR的BlueCore芯片提供T獨特的硬件節(jié)能方法—深度睡眠(Depslep)模式,進人和退出深度睡眠模式至少需要10ms,通過按鈕或事件進人深度睡眠模式很大程度上降低了損耗。當用戶確定將有較長時間不使用無線溫度傳感器時,可通過控制終端發(fā)送事件消息進人深度睡眠模式,需要使用時再通過消息快速退出。在深度睡眠模式下電流一般可控制在50拼A左右。
(3)凌陽單片機SPCE06lA也可以應用CPU的睡眠模式,且A口具有鍵喚醒功能,將BCM02的PIOS與單片機的IOA7相連接,當藍牙模塊退出休眠模式,發(fā)送指令進行數據采集時,PIOS輸出高電平,通過IOA7電平的變化產生中斷來喚醒CPU進人工作狀態(tài)。
評論