智能家居無(wú)線(xiàn)網(wǎng)絡(luò )通訊協(xié)議設計方案
1.3 射頻通訊單元
接收部分采用無(wú)線(xiàn)射頻模塊nRF24l01,該模塊在2.4GHz 全球開(kāi)放ISM 頻段使用;最高工作速率2Mbps,高效GFSK 調制,抗干擾能力強;共有126個(gè)頻道,滿(mǎn)足多點(diǎn)通信和跳頻通信的需要;內置硬件CRC 校錯和點(diǎn)對多點(diǎn)通信地址控制[9].其中至少兩個(gè)模塊組成了通信系統,圖3 中,一個(gè)作為主控制器數據發(fā)送端;其它作為節點(diǎn)設備數據接收端。接收端完成命令數據接收,依據命令內容聯(lián)動(dòng)對應設備;完成命令后節點(diǎn)射頻模塊進(jìn)入發(fā)送狀態(tài),返回當前節點(diǎn)設備狀態(tài)。
圖3 無(wú)線(xiàn)通信系統。
2 軟件設計
2.1 射頻工作模式選擇
nRF24l01 射頻模塊的收發(fā)模式有三種:EnhancedShockBurst TM 收發(fā)模式、ShockBurst TM 收發(fā)模式和直接收發(fā)模式三種。Enhanced ShockBurst TM 收發(fā)模式由器件EN_AA 寄存器配置內容決定。
在Enhanced ShockBurst TM 收發(fā)模式下,使用片內先入先出堆棧區,數據從微控制器低速送入,高速發(fā)射,速率為1Mbps,通過(guò)這種節能方式即使使用低速的微控制器也能得到很高的射頻發(fā)射速率。并且與射頻協(xié)議相關(guān)的所有高速信號處理都在片內進(jìn)行,這樣有三大優(yōu)點(diǎn):節能;系統費用低;數據空中停留時(shí)間短,抗干擾性高。同時(shí)也減小了整個(gè)系統的平均工作電流。
2.2 數據發(fā)送接收流程
2.2.1 主控制器射流程
本文設計的無(wú)線(xiàn)通信系統是在同一信道下,初始狀態(tài)下只有一個(gè)發(fā)射節點(diǎn),多個(gè)接收節點(diǎn),主控制器射頻流程如圖4.
?。?) 等待網(wǎng)絡(luò )數據包的到來(lái),nRF24l01 射頻模塊啟動(dòng)發(fā)送模式,在配置信道上通過(guò)廣播方式發(fā)送,延時(shí)50ms,保證每個(gè)從控制器都能接收數據包。
?。?) 數據發(fā)送完成后射頻模塊立即配置為接收模式,接收從控制器設備的狀態(tài)數據幀,并定時(shí)2 秒,超時(shí)或成功接收從控制器設備應答數據則重新自動(dòng)配置成發(fā)送模式并返回第1 步,防止射頻模塊全部進(jìn)入接收模式出現互鎖"假死"狀態(tài)。
?。?) 如果成功接收從控制器設備應答數據,射頻模塊進(jìn)入等待狀態(tài)。
2.2.2 從控制器射頻流程
所有接收節點(diǎn)接收該數據包,并對該數據包的驅動(dòng)接口數據進(jìn)行解析校對,比如接收地址匹配,命令碼,操作文件?有匹配節點(diǎn)則進(jìn)入驅動(dòng)應用程序并執行操作。該射頻模塊多數情況下處于接收模式,具體流程如圖4:
圖4 主控射頻流程
?。?) 從控制器節點(diǎn)nRF24l01 射頻模塊配置成接收模式,直到接收數據包。
?。?) 對數據包的驅動(dòng)接口部分進(jìn)行解析,接收地址是否匹配,如不匹配則返回步驟(1),再判斷命令操作碼及文件標志,如出現非法操作碼或文件標志,則返回步驟(1),有對應驅動(dòng)接口則進(jìn)入驅動(dòng)應用程序。
?。?) 根據輸入的應用數據(記錄控制數據和記錄數據),操作設備將設備狀態(tài)寫(xiě)入發(fā)送數據幀。完成后,射頻模塊配置進(jìn)入發(fā)送模式,將發(fā)送數據幀返回主控制器,并延時(shí)1 秒。
?。?) 判斷是還發(fā)送成功,失敗則重新進(jìn)入步驟(1),成功則結束,同樣進(jìn)入初始化狀態(tài)。
圖5 從機節點(diǎn)射頻流程圖。
評論