SIM800C模塊是**良好的M2M模塊及解決方案供應商芯訊通無線科技有限公司的一個產品系列,使用AT指令的GSM/GPRS無線通訊模塊,就自己的使用過程記錄下SIM800C系列模塊建立TCP連接到遠端服務器過程,模塊基本使用通用異步串口通訊,模塊內部TCP /IP應用程序用于GPRS服務。深圳市中寶通科技有限公司原廠代理sim800c模塊
先對AT命令做一個簡單介紹吧:
AT命令以AT開頭,一回車符結束。一個簡單命令如:AT回車符,模塊對命令的響應為:回車符、換行符response回車符、換行符
AT命令大致可分為三類:
1、基本AT命令:AT<><>或者AT&<><>,如:ATE1(打開串口回顯),AT&D1(開啟DTR低電平切換)。
2、S參數型AT命令:ATS<>=<>,如:ATS0=1(設置模塊來電一聲自動接起)。
3、擴展型AT命令(四種):
a)、AT+<>=?
用于查看此命令在模塊中允許設置的參數范圍,如發送命令:AT+CREG=?
正常時響應:+CREG:(0-2)
OK
b)、AT+<>?
用于查看此命令在模塊中的當前設置值,如發送命令:AT+IPR?
正常時響應:+IPR:0
OK
c)、AT+<>=<>
用于設置當前AT命令x的參數值。如發送命令:AT+CMGF=0
正常時響應:OK
d)、AT+<>
查看模塊內部的一些狀態值。如發送命令:AT+CSQ
正常時響應:+CSQ:29,0
OK
現在利用上述格式的一些命令描述模塊建立TCP連接到遠端服務器的過程,先介紹模塊建立一路鏈接的過程,建立多路連接時,方法基本相同。目前SIM800系列模塊共支持6路鏈接。從模塊開機到建立TCP鏈接過程如下:
1、等待模塊開機后,向模塊串口發送“AT”指令,讓模塊自適應主機串口波特率,設置成功時,返回:OK
2、向模塊串口發送“AT+CPIN?”指令,檢查SIM狀態,SIM正常時,
返回:+CPIN:READY
OK
3、向模塊串口發送“AT+CSQ”指令,檢查網絡信號強度,命令發送成功時,
返回:+CSQ:29,0
OK
4、向模塊串口發送“AT+CREG”指令,檢查GSM網絡注冊狀態,發送成功時,
返回:+CREG:0,1
OK
其中1代表已注冊本網,若為2代表未注冊。
5、向模塊串口發送“AT+CGREG”指令,檢查GPRS網絡注冊狀態,發送成功時,
返回:+CGREG:0,1
OK
其中1代表已注冊本網,若為2代表未注冊。
(若已設置命令“AT+CREG=1”和“AT+CGREG=1”時,模塊在注冊GSM和PGRS網絡成功或發生變化時,將主動上報其注冊狀態,如上報結果:+CREG:2或+CGREG:2。其中2表示GSM和GPRS網絡未注冊)
6、(可選命令)向模塊串口發送“AT+CMGF=0”指令,設置短消息為PDU模式,發送成功時,返回:OK
7、(可選命令)向模塊串口發送“AT+CNMI=2,1,0,0,0”指令,設置新短消息URC上報格式,發送成功時,返回:+CMTI:“SM”,1
(此返回結果為收到新短消息,1為此新短消息在存儲器中的序號)
8、向模塊串口發送“AT+CGATT=1”指令,使模塊附著GPRS網絡,發送成功時,返回:OK
(此時模塊內部TCP協議棧的狀態為:IP IINITIAL)
9、向模塊串口發送“AT+CIPMODE=1”指令,設置GPRS的TCP/IP透傳模式,發送成功時,返回:OK
(其中1為透傳模式,0為分透傳模式,及命令模式)
10、向模塊串口發送“AT+CSTT="CMNET"”指令,設置APN,發送成功時,返回:OK
(此時模塊內部TCP協議棧的狀態為:IP START)
11、向模塊串口發送“AT+CIICR”指令,激活移動場景,建立無線鏈路,發送成功時,返回:OK
(此時模塊內部TCP協議棧的狀態為:IP CONFIG或IP GPRSACT)
12、向模塊串口發送“AT+CIFSR”指令,獲取模塊本地IP地址,發送成功時,返回模塊的本地IP地址,如:10,143,166,133
13、向模塊串口發送“AT+CIPSTART=“TCP”,“118.114.247.142”,“40006””指令,設置要連接的遠端服務器類型,IP地址或域名,端口號。發送成功時,
返回:CONNECT
OK
14、若返回CONNECT值以后,即連接遠端服務器成功,并進入透傳模式,可隨意收發數據了。
一路鏈接的以上過程如圖所示:
SIM800系列模塊GSM/GPRS建立TCP連接到遠端服務器過程
建立多路鏈接時:
1、需在10步命令前,向模塊串口發送“AT+CIPMUX=1”指令,設置多鏈路模式,發送成功時,返回:OK
2、*13步命令,向模塊串口發送“AT+CIPSTART=0,“TCP”,“118.114.247.142”,“40006””指令,*在*0路建立TCP鏈接。發送成功時,返回:CONNECT OK
若*13步命令為,向模塊串口發送“AT+CIPSTART=1,“UDP”,“118.114.247.142”,“40007””指令,*在*1路建立UDP鏈接。發送成功時,返回:CONNECT OK
3、若要通過*0路鏈接發送數據,則向模塊串口發送“AT+CIPSEND=0”命令。然后就可以隨意收發數據了。
多路鏈接的以上過程如圖所示:
SIM800系列模塊GSM/GPRS建立TCP連接到遠端服務器過程