基于GPRS的ZigBee協(xié)調器網(wǎng)關(guān)設計通信
3 ZigBee協(xié)調器GPRS網(wǎng)關(guān)軟件設計
ZigBee協(xié)調器GPRS網(wǎng)關(guān)軟件設計流程如圖2所示。其中等待GPRS注冊成功是查看AT+CGREG?指令是否返回1或5,返回則表示GPRS模塊上網(wǎng)注冊成功;APN設置為CMNET;PPP撥號用AT%ETCPIP=\”\”,\”\””指令;域名解析指令AT%DNSR=”xxxx.3322.org”將返回與此域名綁定的IP;再用連接服務(wù)器指令AT%IPOPEN=“TCP”,xxx.xxx.xxx,1234連接上位機IP及監聽(tīng)端口。本文引用地址:http://dyxdggzs.com/article/153651.htm
數據傳輸程序的設計是重點(diǎn),數據傳輸包括將采集到的數據透明上傳至TCP服務(wù)器以及上位機指令的檢測和通信是否掉線(xiàn)的檢測。串口2接收到FEOF幀頭后再執行AT指令將有效測量數據透明上傳,收到心跳幀636F 6F6E后也透明上傳,收到其他字符則不處理。當串口1接收緩存中有%IPCLOSE字符串時(shí)表示通信斷開(kāi),此時(shí)則在下位機程序中重新執行連接服務(wù)器程序直至再次連接成功,保證數據通信可靠。
4 上位機程序設計
整個(gè)上位機軟件設計流程如圖3所示,即編寫(xiě)一個(gè)TCP服務(wù)器程序。采用LabVIEW通信工具中TCPListen來(lái)偵聽(tīng)客戶(hù)端的連接請求,建立連接后,利用TCP Read讀取傳輸的數據,工作模式設置為standard,即等待直至讀取所有“讀取的字節”中指定的字節或“超時(shí)毫秒”用完,返回目前已讀取的字節,如字節數少于請求的字節數,則返回部分字節并報告超時(shí)錯誤。由于數據幀通過(guò)下位機編程為固定長(cháng)度是20 B的數據,心跳幀為4 B的數據,因此在配置TCP Read函數時(shí),要將“讀取的字節”設置為20,“超時(shí)毫秒”設置為0。這樣既可以偵聽(tīng)到心跳幀,又不至于因心跳幀的4 B打亂數據幀的20 B而導致數據錯誤。程序控制部分可向下位機發(fā)送控制指令,實(shí)現對單個(gè)或多個(gè)節點(diǎn)數據采集周期以及開(kāi)始結束的控制,以適應不同的工作場(chǎng)合。主要原理是利用TCP Wtite函數向已建立的連接發(fā)送指令,程序中兩次利用TCP Write函數,第一次寫(xiě)入指令的長(cháng)度,第二次寫(xiě)入指令的內容。
tcp/ip相關(guān)文章:tcp/ip是什么
數字通信相關(guān)文章:數字通信原理
通信相關(guān)文章:通信原理
土壤濕度傳感器相關(guān)文章:土壤濕度傳感器原理
評論