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