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