新聞中心

EEPW首頁 > 手機(jī)與無線通信 > 設(shè)計(jì)應(yīng)用 > 基于ATmegal6的GPRS數(shù)據(jù)終端設(shè)計(jì)

基于ATmegal6的GPRS數(shù)據(jù)終端設(shè)計(jì)

作者: 時(shí)間:2009-12-29 來源:網(wǎng)絡(luò) 收藏

(2)通過指令“at+mipopen=Socket ID>,Source Port>,Destination IP>,DestinationPort2>,Protocol2>”打開一個(gè)端口(Socket),如“at+mipopen=l,2000,“219.222.73.240”,6800,1”。其中,Socket ID2>是本地端口號,G20模塊一共可以打開4個(gè)端口,端口序號分別是1~4;Source Port>是G20模塊本機(jī)的端口號,其數(shù)值可以是0~65 535;“Destination IP”>是目標(biāo)IP地址,可以是直接連接到Internet公網(wǎng)的某臺PC的IP地址。DestinationPort>是目標(biāo)的端口號,其數(shù)值可以是0~65535。Protocol>是協(xié)議棧類型,其數(shù)值可以為0或1,0代表是TCP協(xié)議棧,1代表UDP協(xié)議棧;如果端口打開成功將返回“CR>LF>OKCR>LF>CR>LF>+MIPOPEN:Socket ID>,State>CR>LF>”,如“CR>LF>OKCR>LF>CR>LF>+MIPOPEN:1,1CR>LF>”。如果端口打開不成功,將會返回錯(cuò)誤信息“CR>LF>ERRORCR>LF>”。
(3)通過指令“at+mipsend=Socket ID>,Data>”將需要發(fā)送的數(shù)據(jù)壓入G20模塊的發(fā)送堆棧。如“at+mipsend=1,4142434445”。這里的Socket ID>是前面已經(jīng)打開的端口序號,Data>是所要發(fā)送的數(shù)據(jù),數(shù)據(jù)格式必須是用十六進(jìn)制表示的數(shù)據(jù)(數(shù)值或者字符)的雙字節(jié)ASCII值。如要發(fā)送的數(shù)據(jù)為“ABCDE”(A、B、C、D和E的ASCII數(shù)值分別為0x41,0x42,0x43,0x44和0x45),則要將“4142434445”作為Data>壓入發(fā)送堆棧。指令操作成功時(shí),G20模塊返回信息“CR>LF>+MIPSEND:Socket ID>,F(xiàn)ree Size>CR>LF>CR>LF>OKCR>LF>”,如“CR>LF>+MIPSEND:1,1367CR>LF>CR>LF>OKCR>LF>”,其中Socket ID>是端口序號,F(xiàn)ree Size>是指堆棧中的剩余空間,其數(shù)值可為O~1372。如操作不成功,G20模塊將會返回錯(cuò)誤信息“CR>LF>ERRORCR>LF>”。
(4)通過指令“at+mippush=Socket ID>[,“Destination IP”>,Destination Port>]”將特定序號發(fā)送堆棧中的數(shù)據(jù)出棧,如“at+mippush=1”執(zhí)行這條指令之后,堆棧中的數(shù)據(jù)就被發(fā)送出去了。這里所說的堆棧序號是和前面所述的端口序號一一對應(yīng)的。方括號中的內(nèi)容是可選項(xiàng),不需要時(shí)可以省去。數(shù)據(jù)發(fā)送成功時(shí),G20模塊返回信息“CR>LF>+MIPPUSH:Socket ID>CR>LF>CR>LF>OKCR>LF>”,如“CR>LF>+MIPPUSH:1CR>LF>CR>LF>OKCR>LF>”。如數(shù)據(jù)發(fā)送失敗,G20模塊將會返回錯(cuò)誤信息“CR>LF>ERRORCR>LF>”。
(5)反復(fù)進(jìn)行上述步驟(3)和(4),直至所有數(shù)據(jù)發(fā)送完畢為止。
(6)通過指令“at+mipclose=Socket ID>”關(guān)閉已打開的端口,如“at+mipclose=1”。端口關(guān)閉成功時(shí),G20模塊會返回信息“CR>LF>OKCR>LF>CR>LF>+MIPCLOSE:Socket ID>CR>LF>”,如“CR>LF>OKCR>LF>CR>LF>+MIPCLOSE:1 ID>CR>LF>”。如果端口關(guān)閉不成功,G20模塊將會返回錯(cuò)誤信息“CR>LF>ERRORCR>LF>”。
(7)通過指令“at+mipcall=0”關(guān)閉網(wǎng)絡(luò)連接。如果網(wǎng)絡(luò)連接關(guān)閉成功,G20模塊將會返回信息“CR>LF>OKCR>LF>CR>LF>NOCARRIERCR>LF>CR>LF>+MIPCALL:0CR>LF>”。如果網(wǎng)絡(luò)連接關(guān)閉不成功,G20模塊將會返回錯(cuò)誤信息“CR>LF>ERRORCR>LF>”。
另外,G20模塊接收到遠(yuǎn)程終端通過網(wǎng)絡(luò)發(fā)送過來的數(shù)據(jù)時(shí)會自動(dòng)從其串口輸出該數(shù)據(jù)。如果接收到的是UDP協(xié)議的數(shù)據(jù),G20模塊會以以下數(shù)據(jù)格式輸出:
CR>LF>+M1PRUDP:Source IP>,Source Port>,Socket ID>,Left>,Data>
其中,Source IP>是發(fā)送方的IP地址,Source Port>是發(fā)送方的端口號,Socket ID>是本機(jī)端口序號,Left>留在堆棧中的接收數(shù)據(jù)字節(jié)數(shù),Data>是所接收到的數(shù)據(jù)。如果接收到的是TCP協(xié)議的數(shù)據(jù),G20模塊會以以下數(shù)據(jù)格式輸出:
CR>LF>+MIPRTCP:Socket ID>,Left>,Data>
各部分含義如前述。編程使不斷查詢串口接收緩沖區(qū)即可實(shí)現(xiàn)數(shù)據(jù)接收,也可以采用接收中斷的方式提高運(yùn)行效率。

本文引用地址:http://www.butianyuan.cn/article/157699.htm


3 結(jié) 語
數(shù)據(jù)傳輸鏈路中GGSN(網(wǎng)關(guān)GPRS支持節(jié)點(diǎn))占用的端El的存活時(shí)間是有限的,如果鏈路空閑超時(shí),連接就會斷開,可通過定時(shí)發(fā)送數(shù)據(jù)短幀的方式來維持鏈路。經(jīng)測定,本地(廣州)的GPRS數(shù)傳鏈路維持時(shí)間為60 s。的GPRS成本低,易于推廣普及,可用于遠(yuǎn)程數(shù)據(jù)采集、系統(tǒng)監(jiān)測和Internet遠(yuǎn)程接入等領(lǐng)域。


上一頁 1 2 3 下一頁

評論


相關(guān)推薦

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

關(guān)閉