基于nRF2401的PLC無(wú)線(xiàn)通信控制器
2.3 波特率的設置
在接口電路設計完成后。要使單片機與nRF2401之間實(shí)現通信,還要考慮單片機的傳輸率,此處選擇單片機的波特率為9 600 b/s。根據波特率計算公式:
式中,波特率控制位SMOD置O,定時(shí)器時(shí)間常數X=253。
由此可得晶振頻率fosc=11.0592MHz,則單片機選用11.0592MHz的晶體振蕩器。
2.4 電源
該系統的電源部分由外部電源、集成穩壓電路和部分外圍元件組成,這里選用集成穩壓電路LMlll7為構成各元件提供供電電源。為了改善nRF2401的瞬態(tài)響應,在LMlll7外接2只電容,且在輸出端另加2只電容用于濾波,以改善輸出電壓波形。
3 軟件部分設計
在單片機與PLC的通信中,主要利用單片機向PLC發(fā)送命令和接收返回數據,用于讀取數據或修改PLC程序中控制參數。通信協(xié)議選用莫迪康Modbus ASCII串行通訊協(xié)議。
實(shí)現來(lái)自于RS-485通信接口基于Modbus ASCII串行通信協(xié)議的命令及數據轉換成滿(mǎn)足無(wú)線(xiàn)數據傳輸要求的通信格式,并傳送給其他通信終端,同時(shí)將現場(chǎng)采集的實(shí)時(shí)信號及狀態(tài)信號轉換為滿(mǎn)足Modbus ASCII串行通信協(xié)議要求的格式,并傳送給RS-485通信接口。圖4為無(wú)線(xiàn)通信控制器發(fā)送數據程序流程。圖5為無(wú)線(xiàn)通信控制器接收數據的程序流程。
圖4中,在單片機與nRF2401通信端,單片機先向nRF2401寫(xiě)入配置字,然后檢測CE是否為高,若CE為高電平,則檢測通道1的中斷DRl是否為高,DRl為高,則有中斷信號,使nRF2401進(jìn)入發(fā)送狀態(tài),開(kāi)始發(fā)送數據,每發(fā)送完l位,系統檢查l幀數據發(fā)送是否完成,若未完成,則繼續發(fā)送,反之,結束該幀的發(fā)送程序。由此將獲取的現場(chǎng)數據傳送給另一通信終端設備。
4 試驗結果
實(shí)驗室采用GFG8016G信號發(fā)生器與計算機進(jìn)行模擬PLC數據無(wú)線(xiàn)傳輸,試驗結果表明,在9 m范圍內,該無(wú)線(xiàn)通信控制器可實(shí)現數據的無(wú)線(xiàn)傳輸。
5 結論
基于nRF2401的PLC無(wú)線(xiàn)通信控制器,可根據需求實(shí)現短距離無(wú)線(xiàn)數據傳輸;對于該無(wú)線(xiàn)傳輸研究,后續需從其傳輸中的抗干擾和擴展傳輸距離方面進(jìn)一步研究。
評論