1. 如何使用TCP向遠端SERVER傳輸資料
先要建立一個TCP連接配接.子產品作為CLIENT向遠端的SERVER發起一個TCP連接配接,要成功
建立連接配接需要SERVER端為連接配接到INTERNET的一台PC,而且該PC的IP位址是公網的IP位址
(可以用撥号的方式獲得,如在PC區域網路内部則無法建立連接配接),然後該PC運作我們的
SERVER軟體,這時就可以在子產品端用AT指令與SERVER建立TCP連接配接(AT+CIPSTART=
"TCP","SERVER的IP位址","SERVER的端口号"),連接配接成功後會傳回CONNECT
OK.然後就可以用AT+CIPSEND發送資料到SERVER,若SERVER有資料,子產品自動通過
序列槽接收.要關閉TCP連接配接可用AT+CIPCLOSE指令.
2. 如何使用UDP向遠端SERVER傳輸資料
先要注冊一個UDP端口(AT+CIPSTART="UDP","SERVER的IP位址","SERVER
的端口号"),成功後傳回CONNECT OK.然後用AT+CIPSEND發送UDP包到SERVER,
若SERVER有資料,子產品自動接收,從序列槽送出.
3. 如何發送資料
要發送資料必須先要建立TCP連接配接或注冊一個UDP連接配接.有3種方式發送資料.可變長
度的資料發送可以用AT+CIPSEND指令,傳回">"後輸入發送的資料,ctrl+z(0x1a)啟動
發送.固定長度的資料發送用AT+CIPSEND=LENGTH指令,傳回"> "後輸入發送的資料,
當輸入的資料長度等于LENGTH的時候自動發送,不需結束符.還有一種自動發送方式,先
用AT+CIPATS=,指令設定自動發送的時間,然後用AT+CIPSEND傳回">"
輸入要發送的資料,等定時到了之後自動發送輸入的資料.發送完成之後傳回SEND OK.
此時處于指令态,若有資料發送再重複以上的步驟就可以了.
注意:每次發送的資料長度應小于1024bytes.
4. 如何接收資料
接收資料為自動接收,若有遠端資料則自動接收.可以用AT+CIPHEAD=1在接收的數
據前面自動加上辨別.
SIMCOM Application Note for SIM100 TCP/IP AT Commands
4
5. 如何使用SIM100TCP的SERVER功能
子產品可以配置為TCPSERVER,接收來自遠端的TCP資料.具體的操作如下:
AT+CIPCSGP=1,"cmnet"(GPRS方式)
AT+CLPORT="TCP","PORT" (設定偵聽的TCP的端口号)
AT+CIPSERVER (啟動SERVER功能,成功後傳回SERVER OK,這時候已經啟動了SERVER
功能,開始偵聽PORT)
AT+CIFSR (獲得SERVER的IP位址)
或者:
AT+CIPCSGP=0,"17201","172","172", 2 (CSD方式,置為CSD連接配接,撥17201,使用者名和密
碼皆為172,連接配接速率為9600)
AT+CLPORT="TCP","PORT"(設定偵聽的TCP端口号)
AT+CIPSERVER(啟動SERVER功能,成功後傳回CONNECT 9600 和 SERVER OK,這時
候已經啟動了SERVER功能,開始偵聽PORT)
AT+CIFSR (獲得SERVER的IP位址)
可以用SMS通知遠端子產品本SERVER的IP位址和端口号,以便遠端可以與之連接配接,收發
資料.
這時遠端的子產品就可以與本SERVER建立連接配接,收發資料了.
如有CLIENT連接配接到SERVER,SERVER端會顯示 REMOTE CLIENT的IP位址和端口号.
這時候SERVER就可以接收來自REMOTE CLIENT的TCP資料包(不含TCP頭)了.
注意:目前TCP SERVER不能同時支援多個TCP連接配接.
SIMCOM Application Note for SIM100 TCP/IP AT Commands
5
6. 如何使用UDP,接收來自遠端的資料
可以使用SIM100TCP的UDP功能,接收來自遠端的UDP資料.具體過程如下:
AT+CIPCSGP=1,"cmnet"(GPRS方式)
AT+CLPORT="UDP","端口号"(設定UDP端口号)
AT+CSTT (啟動TCP任務,成功後傳回OK)
AT+CIICR (激活場景,成功後傳回OK)
AT+CIFSR (獲得本地IP位址)
AT+CIPSTART="UDP","REMOTE IP ADDR","REMOTE PORT"(注冊UDP
連接配接,其中"REMOTE IP ADDR"和"REMOTE PORT"可以随便設定一個,成功
後傳回CONNECT OK)
或者
AT+CIPCSGP=0,"17201","172","172", 2 (CSD方式,置為CSD連接配接,撥17201,使用者名
和密碼皆為172,連接配接速率為9600)
AT+CLPORT="UDP","PORT"(設定UDP端口号)
AT+CSTT (啟動TCP任務)
AT+CIICR (激活場景,成功後傳回CONNECT 9600和OK)
AT+CIFSR (獲得本地IP位址)
AT+CIPSTART="UDP","REMOTE IP ADDR","REMOTE PORT"(注冊UDP
連接配接,其中"REMOTE IP ADDR"和"REMOTE PORT"可以随便設定一個,成功
後傳回CONNECT OK)
此時就子產品就可以接收到遠端的UDP包.可以用AT+CIPSRIP=1在收到的UDP包的前面
加上辨別和發送方的IP位址和端口号.
SIMCOM Application Note for SIM100 TCP/IP AT Commands
6
7. 如何使用DNS功能
利用SIM100TCP的DNS可直接連接配接到一個域名,或者可以用DNS解析域名獲得IP位址.具體
步驟如下:
直接連接配接到一個域名
1:先配置DNS
AT+CDNSCFG="211.136.18.171" (以上海為例)
2:選擇域名還是IP位址
AT+CDNSORIP=1(選擇域名)
3:建立連接配接
AT+CIPSTART="TCP","www.263.net", "80" (連接配接到SERVER)
4:發送資料
AT+CIPSEND傳回">"後開始發送資料,ctrl+z啟動發送.
解析域名獲得IP位址
1:先激活一個移動場景
AT+CSTT
AT+CIICR
AT+CIFSR
2:配置DNS
AT+CDNSCFG="211.136.18.171" (以上海為例)
3:解析域名,獲得IP位址
AT+CDNSGIP="www.263.net"
傳回該域名的IP位址
8. 如何檢測是否線上,斷線後有什麼提示
可以用AT+CIPSTATUS查詢TCP所處的狀态,具體狀态請參考AT指令集,若處于連接配接
狀态則傳回CONNECTOK.斷線後會主動傳回CLOSE資訊,同時TCP狀态為IP CLOSE.
9. 如何區分接收的資料是AT指令的響應還是來自遠端
設定AT+CIPHEAD=1,這樣來自SERVER的資料前面就會自動加上一個标志,其格式
為:+IPD(datalength),+IPD為辨別,datalength為來自SERVER端資料的長度.這樣就可以
區分是來自SERVER的資料還是AT指令的相應.
SIMCOM Application Note for SIM100 TCP/IP AT Commands
7
10. 如何使用SIM100TCP建立點對點的TCP連接配接,傳輸資料
用GPRS方式的具體步驟為:
第一台:
AT+CLPORT="TCP","3030"
AT+CIPSERVER (啟動SERVER功能,開始偵聽3030端口)
AT+CIFSR(擷取本地IP位址)
AT+CLPORT="TCP","3000"(設定本地TCP端口)
第二台:
AT+CLPORT="TCP","2020"
AT+CIPSERVER (啟動SERVER功能,開始偵聽2020端口)
AT+CIFSR(擷取本地IP位址)
AT+CLPORT="TCP","2000"(設定本地TCP端口)
第一台:
AT+CIPSTART="TCP","REMOTE IP ADDR","2020" (REMOTEIP ADDR可由對方發SMS
得到)
已經建立連接配接
第二台:
AT+CIPSTART="TCP","REMOTE IP ADDR","3030"
已經建立連接配接
之後任何一方就可以向另外一方發資料(用AT+CIPSEND發送)
也可以用CSD方式建立,具體操作如下:
第一台:
AT+CIPCSGP=0,"17201","172","172", 2 (CSD方式,置為CSD連接配接,撥17201,使用者名和
密碼皆為172,連接配接速率為9600)
AT+CLPORT="TCP","3030"
AT+CIPSERVER (啟動SERVER功能,開始偵聽3030端口)
AT+CIFSR(擷取本地IP位址)
AT+CLPORT="TCP","3000"
第二台:
AT+CIPCSGP=0,"17201","172","172", 2 (CSD方式,置為CSD連接配接,撥17201,使用者名和
密碼皆為172,連接配接速率為9600)
AT+CLPORT="TCP","2020"
AT+CIPSERVER (啟動SERVER功能,開始偵聽2020端口)
AT+CIFSR(擷取本地IP位址)
AT+CLPORT="TCP","2000"
SIMCOM Application Note for SIM100 TCP/IP AT Commands
8
第一台:
AT+CIPSTART="TCP","REMOTE IP ADDR","2020" (REMOTEIP ADDR可由對方發SMS
得到)
已經建立連接配接
第二台:
AT+CIPSTART="TCP","REMOTE IP ADDR","3030"
已經建立連接配接
之後任何一方就可以向另外一方發資料(用AT+CIPSEND發送)
SIMCOM Application Note for SIM100 TCP/IP AT Commands
9
11. 如何使用SIM100TCP實作多個子產品之間的互相通信
目前SIM100TCP不支援多個TCP同時連接配接,但是可以用UDP方式來實作.可以用子產品啟
動UDP功能,這樣模快就可以接收來自遠端的UDP包,可以通過收到的UDP包擷取發送方的
IP位址和端口号,然後本子產品就可以作出應答,回應一個UDP包,實作互相的通訊.下面是
一個簡單的例子:
假設A,B,C三個子產品要互相通信,可以用以下的方式實作(以GPRS方式為例)
1:A,B,C分别初始化如下:
AT+CIPCSGP=1,"cmnet"(GPRS方式)
AT+CLPORT="UDP","端口号"(設定UDP端口号)
AT+CSTT (啟動TCP任務,成功後傳回OK)
AT+CIICR (激活場景,成功後傳回OK)
AT+CIFSR (獲得本地IP位址)
AT+CIPSTART="UDP","REMOTE IP ADDR","REMOTE PORT"(注冊UDP
連接配接,其中"REMOTE IP ADDR"和"REMOTE PORT"可以随便設定一個,成功後傳回
CONNECT OK)
2:若A要向B發送資料,隻要這樣就可以了:
AT+CIPCLOSE (登出目前UDP連接配接)
AT+CIPSTART="UDP","B的IP位址","B的端口号"(注冊新的UDP連接配接)
(成功後會傳回CONNECTOK和OK)
AT+CIPSEND (發送資料)
若C有資料發給A,則A自動接收到,同時可以獲得C的IP位址和端口号,這樣A就可以
發UDP包給C了,具體過程跟上面類似.
SIMCOM Application Note for SIM100 TCP/IP AT Commands
10
12. TCP連接配接出錯後應該如何處理
若在建立TCP連接配接的過程中出現錯誤或者SERVER斷線,則先用AT+CIPCLOSE關閉
TCP連接配接(本地IP位址不變),然後再重建立立連接配接.若其他時候可以用AT+CIPSHUT關閉
PDP Context(本地IP位址會改變),然後重建立立連接配接.
13. 如何建立一個點對點的CSD連接配接
首先要確定SIM卡已開通CSD業務,直接呼叫對方号碼(資料呼叫,非語音呼叫),對
方用ATA應答,然後會傳回CONNECT 9600,這時候雙方進入完全的透明資料傳輸狀态,雙
方都可以收發資料,發+++後傳回指令态(注意+++的前後0.5秒内必須無資料傳輸才能傳回
指令态),ATO可傳回資料态.ATH可結束本次CSD連接配接.