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