新聞中心

EEPW首頁(yè) > 手機(jī)與無(wú)線通信 > 設(shè)計(jì)應(yīng)用 > 基于GPRS的ZigBee協(xié)調(diào)器網(wǎng)關(guān)設(shè)計(jì)通信

基于GPRS的ZigBee協(xié)調(diào)器網(wǎng)關(guān)設(shè)計(jì)通信

作者: 時(shí)間:2012-12-21 來(lái)源:網(wǎng)絡(luò) 收藏

3 協(xié)調(diào)器網(wǎng)關(guān)軟件設(shè)計(jì)
協(xié)調(diào)器網(wǎng)關(guān)軟件設(shè)計(jì)流程如圖2所示。其中等待注冊(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)聽端口。

本文引用地址:http://2s4d.com/article/153651.htm

b.JPG


數(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í)表示通信斷開,此時(shí)則在下位機(jī)程序中重新執(zhí)行連接服務(wù)器程序直至再次連接成功,保證數(shù)據(jù)通信可靠。

4 上位機(jī)程序設(shè)計(jì)
整個(gè)上位機(jī)軟件設(shè)計(jì)流程如圖3所示,即編寫一個(gè)TCP服務(wù)器程序。采用通信工具中TCPListen來(lái)偵聽客戶端的連接請(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。這樣既可以偵聽到心跳幀,又不至于因心跳幀的4 B打亂數(shù)據(jù)幀的20 B而導(dǎo)致數(shù)據(jù)錯(cuò)誤。程序控制部分可向下位機(jī)發(fā)送控制指令,實(shí)現(xiàn)對(duì)單個(gè)或多個(gè)節(jié)點(diǎn)數(shù)據(jù)采集周期以及開始結(jié)束的控制,以適應(yīng)不同的工作場(chǎng)合。主要原理是利用TCP Wtite函數(shù)向已建立的連接發(fā)送指令,程序中兩次利用TCP Write函數(shù),第一次寫入指令的長(zhǎng)度,第二次寫入指令的內(nèi)容。

c.JPG

tcp/ip相關(guān)文章:tcp/ip是什么


數(shù)字通信相關(guān)文章:數(shù)字通信原理


通信相關(guān)文章:通信原理


土壤濕度傳感器相關(guān)文章:土壤濕度傳感器原理


評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉