1.介紹
本模塊嵌入一個(gè)TCP/IP棧。主機(jī)(即外接的控制器)可通過(guò)AT指令直接連接互聯(lián)網(wǎng)。它可以減少對(duì)PPP和TCP/IP協(xié)議棧的依賴和最小化的消耗。本模塊提供以下的套接字服務(wù):TCP客戶端,UDP客戶端,TCP服務(wù)器和UDP服務(wù)器。
1.1使用TCP/IP AT指令的步驟
通過(guò)TCP/IP AT指令,主機(jī)可以配置PDP上下文,觸發(fā)/吊銷PDP上下文,開始/關(guān)閉套接字服務(wù)和發(fā)送/接收數(shù)據(jù)通過(guò)套接字服務(wù)。下圖表明怎么使用TCP/IP AT指令:

1.2 描述數(shù)據(jù)通道類型
本模塊TCP/IP的AT指令包含三種類型的數(shù)據(jù)通道類型。
1.緩存通道模式。
2.直接傳遞通道模式。
3.透?jìng)魍ǖ滥J健?/p>
當(dāng)通過(guò)AT+QIOPEN開啟一個(gè)套接字服務(wù),可以通過(guò)參數(shù)<access_mode>確認(rèn)數(shù)據(jù)傳輸模式。當(dāng)套接字服務(wù)開啟后,AT+QISWTMD可以被用來(lái)改變數(shù)據(jù)通道模式。
1.在緩存模式中,發(fā)送數(shù)據(jù)通過(guò)AT+QISEND。當(dāng)接收到數(shù)據(jù)時(shí),模塊會(huì)緩沖這個(gè)數(shù)據(jù),然后上傳一個(gè) +QIURC:"recv",<connectID>的URC給主機(jī)。主機(jī)可通過(guò)使用AT+QIRD讀取數(shù)據(jù)。說(shuō)明:如果模塊緩沖區(qū)不是空的,模塊不會(huì)發(fā)送一個(gè)新的URC給主機(jī),除非主機(jī)通過(guò)AT+QIRD讀取所有數(shù)據(jù)。
2.在直接傳遞模式中,發(fā)送數(shù)據(jù)通過(guò)AT+QISEND。當(dāng)接收到數(shù)據(jù),數(shù)據(jù)將會(huì)以 +QIURC:"recv",<connectID>,<currectrecvlength><CR><LF><data> 直接通過(guò)COM口發(fā)送給主機(jī)。
3.在透?jìng)髂J街?,相?duì)應(yīng)的端口(如UART,USB解調(diào)器等)進(jìn)入專有的模式(USB AT端口不支持透?jìng)髂J?。模塊從COM口接收到的數(shù)據(jù)直接發(fā)送到互聯(lián)網(wǎng)上,從互聯(lián)網(wǎng)上接收到的數(shù)據(jù)直接從COM口傳輸給主機(jī)?!?++”是用來(lái)退出透?jìng)髂J降?。?dāng)“+++”返回OK,這個(gè)模塊將會(huì)切換到緩存通道模式。AT+QISWTMD可以被用來(lái)回到透?jìng)髂J?。說(shuō)明:在透?jìng)髂J街?,主機(jī)不能執(zhí)行AT指令。如果套接字連接因?yàn)榫W(wǎng)絡(luò)錯(cuò)誤或者其他原因關(guān)閉,模塊會(huì)上傳NO CARRIER給主機(jī)和退出透?jìng)髂J?。在這種情況,AT+QICLOSE將被執(zhí)行去關(guān)閉套接字服務(wù)。
4.為了退出透?jìng)髂J?,使用?++”或者DTR(設(shè)置AT&D1)。為了防止“+++”被當(dāng)成數(shù)據(jù),它應(yīng)該完成如下順序:
1)在輸入“+++”之前T1時(shí)間(1秒)內(nèi)不要輸入任何字符;
2)在輸入“+++”1秒內(nèi),沒有任何字符輸入;
3)在輸入“++++”后,1秒內(nèi)不要輸入任何字符;
4)返回OK,退出透?jìng)髂J健?/p>
5.這里有兩種方式回到透?jìng)髂J剑?/p>
1)使用AT+QISWTMD。設(shè)置<access_mode>為2.如果進(jìn)入透?jìng)髂J?,CONNECT將會(huì)反饋。
2)使用ATO。在退出透?jìng)髂J胶?,ATO將會(huì)改變傳輸模式到透?jìng)髂J健H绻晒?,返回CONNECT,失敗,返回NO CARRIER。