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