SIM900A 各功能指令 詳細(xì)版
1 AT 指令簡(jiǎn)介關(guān)鍵詞:發(fā)送第一條指令;同步波特率;AT 即Attention ,指令集是從終端設(shè)備(TerminalEquipment,ATTE) 或數(shù)據(jù)終端設(shè)備(DataTerminalEqu
1 AT 指令簡(jiǎn)介
關(guān)鍵詞:發(fā)送第一條指令;同步波特率;
AT 即Attention ,指令集是從終端設(shè)備(TerminalEquipment,ATTE) 或數(shù)據(jù)終端設(shè)備(DataTerminalEquipment,DTE) 向終端適配器(TerminalAdapter,TA) 或數(shù)據(jù)電路終端設(shè)備(DataCircuitTerminalEquipment,DCE) 發(fā)送的。通過(guò)TA ,TE 發(fā)送AT 指令來(lái)控制移動(dòng)臺(tái)(MobileStation,MS) 的功能,與GSM 網(wǎng)絡(luò)業(yè)務(wù)進(jìn)行交互。用戶可以通過(guò)AT 指令進(jìn)行呼叫、短信、電話本、數(shù)據(jù)業(yè)務(wù)、傳真等方面的控制。
AT 指令必須以"AT" 或"at" 開(kāi)頭(第一條發(fā)給模塊的指令要都大寫(xiě)),以回車(chē)(
我們通過(guò)串口調(diào)試助手SSCOM 來(lái)測(cè)試一下,打開(kāi):選擇正確的COM 號(hào)(連接到SIM900A 模塊的COM 端口,我電腦是COM3),然后設(shè)置波特率為115200,勾選發(fā)送新行(必選!即sscom 自動(dòng)添加回車(chē)換行功能),然后發(fā)送AT 到SIM900A 模塊,如下圖所示:
我們發(fā)送了2次AT 指令,第一次看到有亂碼,這是因?yàn)槟K上電后,還沒(méi)有實(shí)現(xiàn)串口同步,在收到第一次數(shù)據(jù)(不一定要AT 指令) 后,模塊會(huì)自動(dòng)實(shí)現(xiàn)串口同步后續(xù)通信就不會(huì)出現(xiàn)亂碼了。因?yàn)镾IM900A 具有自動(dòng)串口波特率識(shí)別功能(識(shí)別范圍:1200~115200),所以我們的電腦(或設(shè)備) 可以隨便選擇一個(gè)波特率(不超過(guò)識(shí)別范圍即可)

,來(lái)和模塊進(jìn)行通
,信,這里我們選擇最快的115200。從上圖可以看出,我們現(xiàn)在已經(jīng)可以和SIM900A 模塊進(jìn)行通信了,我們通過(guò)發(fā)送不同的AT 指令,就可以實(shí)現(xiàn)對(duì)SIM900A 的各種控制了。
SIM900A 模塊提供的AT 命令包含符合GSM07.05、GSM07.07和ITU-TRecommendationV.25ter 的指令,以及SIMCOM 自己開(kāi)發(fā)的指令。接下來(lái)我們介紹幾個(gè)常用的AT 指令:
1,AT CPIN?該指令用于查詢SIM 卡的狀態(tài),主要是PIN 碼,如果該指令返回: CPIN:READY,則表明SIM 卡狀態(tài)正常,返回其他值,則有可能是沒(méi)有SIM 卡。
2,AT CSQ 該指令用于查詢信號(hào)質(zhì)量,返回SIM900A 模塊的接收信號(hào)強(qiáng)度,如返回: CSQ:30,0,
表示信號(hào)強(qiáng)度是30(最大有效值是31)。如果信號(hào)強(qiáng)度過(guò)低,則要檢查天線是否接好了? 3,AT COPS?該指令用于查詢當(dāng)前運(yùn)營(yíng)商,該指令只有在連上網(wǎng)絡(luò)后,才返回運(yùn)營(yíng)商,否則返回空,如返回: COPS:0,0,"CHINAMOBILE",表示當(dāng)前選擇的運(yùn)營(yíng)商是中國(guó)移動(dòng)。
4,AT CGMI 該指令用于查詢模塊制造商,如返回:SIMCOM_Ltd,說(shuō)明SIM900A 模塊是SIMCOM 公司生產(chǎn)的。
5,AT CGMM該指令用于查詢模塊型號(hào),如返回:SIMCOM_SIM900A,說(shuō)明模塊型號(hào)是SIM900A 。
6,AT CGSN該指令用于查詢產(chǎn)品序列號(hào)(即IMEI 號(hào)),每個(gè)模塊的IMEI 號(hào)都是不一樣的,具有全
球唯一性,如返回:869988012018905,說(shuō)明模塊的產(chǎn)品序列號(hào)是:869988012018905。 7,AT CNUM該指令用于查詢本機(jī)號(hào)碼,必須在SIM 卡在位的時(shí)候才可查詢,如返回: CNUM:"","15902020353",129,7,4,則表明本機(jī)號(hào)碼為:15902020353。另外,不是所有的SIM 卡都支持這個(gè)指令,有個(gè)別SIM 卡無(wú)法通過(guò)此指令得到其號(hào)碼。
8,ATE1該指令用于設(shè)置回顯模式(默認(rèn)開(kāi)啟),即模塊將收到的AT 指令完整的返回給發(fā)送端,啟用該功能,有利于調(diào)試模塊。如果不需要開(kāi)啟回顯模式,則發(fā)送ATE0指令即可關(guān)閉,這樣收到的指令將不再返回給發(fā)送端,這樣方便程序控制。
以上就是我們介紹的幾個(gè)常用的AT 指令,當(dāng)然還有其他一些常用的AT 指令,比如ATD/ATA/ATH等,我們?cè)诤竺娴恼鹿?jié)會(huì)慢慢介紹。關(guān)于SIM900A 詳細(xì)的AT 指令介紹,SIM900A_AT命令手冊(cè)這個(gè)文檔。發(fā)送給模塊的指令,如果執(zhí)行成功,則會(huì)返回對(duì)應(yīng)信息和"OK" ,如果執(zhí)行失敗/指令無(wú)效,則會(huì)返回"ERROR" 。
另外,提醒大家,所有的指令都必須是以ASCII 編碼字符格式發(fā)送,不要在指令里面夾
,雜中文符號(hào)。同時(shí),很多指令都帶有查詢或提示功能,可以通過(guò)指令 "?"來(lái)查詢當(dāng)前設(shè)置,通過(guò)指令 "=?"的方式來(lái)獲取設(shè)置提示。
2 撥打/接聽(tīng)電話
關(guān)鍵詞:接打電話;DTMF;
本節(jié),我們將介紹如何使用SIM900A 模塊進(jìn)行撥打和接聽(tīng)電話。本節(jié),將要用到的指令有:ATE1/ATD/ATA/ATH/AT COLP/AT CLIP/AT VTS等7條AT 指令。
ATE1,用于設(shè)置回顯,即模塊將收到的指令完整的返回給發(fā)送設(shè)備,方便調(diào)試。ATD ,用于撥打任意電話號(hào)碼,格式為:ATD 號(hào)碼 ;,末尾的’; ’一定要加上,否則不能成功撥號(hào),如發(fā)送:ATD10086; ,即可實(shí)現(xiàn)撥打10086。ATA ,用于應(yīng)答電話,當(dāng)收到來(lái)電的時(shí)候,給模塊發(fā)送:ATA ,即可接聽(tīng)來(lái)電。ATH ,用于掛斷電話,要想結(jié)束正在進(jìn)行的通話,只需給模塊發(fā)送:ATH ,即可掛斷。AT COLP,用于設(shè)置被叫號(hào)碼顯示,這里我們通過(guò)發(fā)送:AT COLP=1,開(kāi)啟被叫號(hào)碼顯示,當(dāng)成功撥通的時(shí)候(被叫接聽(tīng)電話),模塊會(huì)返回被叫號(hào)碼。AT CLIP,用于設(shè)置來(lái)電顯示,通過(guò)發(fā)送:AT CLIP=1,可以實(shí)現(xiàn)設(shè)置來(lái)電顯示功能,模塊接收到來(lái)電的時(shí)候,會(huì)返回來(lái)電號(hào)碼。AT VTS=*,產(chǎn)生DTMF 音,該指令只有在通話進(jìn)行中才有效,用于向?qū)Ψ桨l(fā)送DTMF 音,比如在撥打10086查詢的時(shí)候,我們可以通過(guò)發(fā)送:AT VTS=1,模擬發(fā)送按鍵1。
在介紹了本節(jié)要用到的幾個(gè)AT 指令之后,我們開(kāi)始實(shí)現(xiàn)本節(jié)功能,不過(guò)有前提條件:那就是模塊必須開(kāi)機(jī),并且找到了運(yùn)營(yíng)商。通過(guò)發(fā)送:AT COPS?,如果返回: COPS:0,0,"CHINAMOBILE",則可以開(kāi)始下面的測(cè)試了。
2.1撥打電話
本節(jié),我們將利用SIM900A 模塊來(lái)?yè)艽?0086,并進(jìn)行話費(fèi)查詢。首先發(fā)送:ATE1,設(shè)置回顯,再發(fā)送:AT COLP=1,設(shè)置被叫號(hào)碼顯示。如圖下圖所示:
,然后,我們發(fā)送:ATD10086; ,撥打10086,在接通后,SIM900A 模塊返回: COLP:"10086",129,"","",此時(shí),待一堆話結(jié)束后,我們發(fā)送:AT VTS=1,即可查詢本機(jī)電話號(hào)碼。最后,通過(guò)發(fā)送:ATH ,掛斷,結(jié)束本次通話。
查詢?cè)捹M(fèi)余額至此,我們就完成了一次撥號(hào)、發(fā)送DTMF 音、結(jié)束通話的操作。十分簡(jiǎn)單,所以用SIM900A 模塊來(lái)實(shí)現(xiàn)打電話,那實(shí)在是小菜一碟。
2.2接聽(tīng)電話
本節(jié),我們將通過(guò)SIM900A 模塊實(shí)現(xiàn)電話接聽(tīng)。首先,我們發(fā)送:AT CLIP=1,開(kāi)啟來(lái)電顯示功能,然后我們用其他電話機(jī)/手機(jī)撥打模塊上SIM 卡的號(hào)碼。然后,模塊在接收到來(lái)電的時(shí)候,會(huì)通過(guò)耳機(jī)輸出來(lái)電鈴聲,并且可以在串口接收到來(lái)電號(hào)碼,如: CLIP:"15124532672",161,"",,"ailin",0,表示當(dāng)前接入號(hào)碼為:15124532672。此時(shí),我們發(fā)送:ATA ,即可接聽(tīng)來(lái)電,并進(jìn)行通話。當(dāng)對(duì)方掛斷電話的時(shí)候,SIM900A 模塊會(huì)返回:NOCARRIER ,并結(jié)束此次通話。當(dāng)然,我們也可以通過(guò)發(fā)送:ATH ,來(lái)主動(dòng)結(jié)束通話。
2.3 短信的讀取與發(fā)送
本節(jié),我們將介紹如何使SIM900A 模塊進(jìn)行短信的讀取與發(fā)送。本節(jié),將要用到的指令有:AT CNMI/AT CMGF/AT CSCS/AT CSMP/AT CMGR/AT CMGS/AT CPMS等7條AT

指令。
,AT CNMI,用于設(shè)置新消息指示。發(fā)送:AT CNMI=2,1,設(shè)置新消息提示,當(dāng)收到新消息,且SIM 卡未滿的時(shí)候,SIM900A 模塊會(huì)返回?cái)?shù)據(jù)給串口,如: CMTI:"SM",2,表示收到接收到新消息,存儲(chǔ)在SIM 卡的位置2;存滿了就不會(huì)提示,可以通過(guò)刪除短信來(lái)解決。AT CMGF,用于設(shè)置短消息模式,SIM900A 支持PDU 模式和文本(TEXT )模式等2種模式,發(fā)送:AT CMGF=1,即可設(shè)置為文本模式。AT CSCS,用于設(shè)置TE 字符集,默認(rèn)的為GSM7位缺省字符集,在發(fā)送純英文短信的時(shí)候,發(fā)送:AT CSCS="GSM",設(shè)置為缺省字符集即可。在發(fā)送中英文短信的時(shí)候,需要發(fā)送:AT CSCS="UCS2",設(shè)置為16位通用8字節(jié)倍數(shù)編碼字符集。AT CSMP,用于設(shè)置短消息文本模式參數(shù),在使用UCS2方式發(fā)送中文短信的時(shí)候,需要發(fā)送:AT CSMP=17,167,2,25,設(shè)置文本模式參數(shù)。AT CMGR,用于讀取短信,比如發(fā)送:AT CMGR=1,則可以讀取SIM 卡存儲(chǔ)在位置1的短信。AT CMGS,用于發(fā)送短信,在"GSM" 字符集下,最大可以發(fā)送180個(gè)字節(jié)的英文字符,在"UCS2" 字符集下,最大可以發(fā)送70個(gè)漢字(包括字符/數(shù)字)。該指令我們?cè)诤竺嬖敿?xì)介紹。AT CPMS,用于查詢/設(shè)置優(yōu)選消息存儲(chǔ)器,通過(guò)發(fā)送:AT CPMS?,可以查詢當(dāng)前SIM 卡最大支持多少條短信存儲(chǔ),以及當(dāng)前存儲(chǔ)了多少條短信等信息。如返回: CPMS:用戶手冊(cè)"SM",1,50,"SM",1,50,"SM",1,50,表示當(dāng)前SIM 卡最大存儲(chǔ)50條信息,目前已經(jīng)有1條存儲(chǔ)的信息。
2.4 英文短信的讀取
本節(jié),我們將用其他手機(jī)先發(fā)送一條英文短信到SIM900A 模塊上,然后讀取模塊接收到的這條英文短信。
首先,我們發(fā)送:AT CMGF=1,設(shè)置為文本模式,然后發(fā)送:AT CSCS="GSM",設(shè)置GSM 字符集,然后發(fā)送:AT CNMI=2,1,設(shè)置新消息提示。接著,我們用別的手機(jī)發(fā)送一條英文短信“SIM900AModule ”到我們的模塊上(如果不知道模塊號(hào)碼,可以發(fā)送:AT CNUM,查詢模塊號(hào)碼)。模塊接收到短信后,會(huì)提示如: CMTI:"SM",2,表明收到了新的短信,存放在SIM 卡位置2。然后,我們發(fā)送AT CMGR=2,即可讀取該短信。
注意:某些時(shí)候,模塊收到了短信,但卻不發(fā)送提示,原因是:模塊存儲(chǔ)容量有限,不能繼續(xù)存儲(chǔ)短信。解決方法:可以刪除一些短信,例如發(fā)送:AT CMGD=1,刪除全部短信命令。
2.5 英文短信的發(fā)送
本節(jié),我們將利用SIM900A 模塊來(lái)給指定手機(jī)號(hào)碼發(fā)送一條英文短信。這里,我們用到AT CMGS指令來(lái)發(fā)送短信,發(fā)送全英文/數(shù)字短信的時(shí)候,我們先設(shè)置為:"GSM" 字符集(AT CSCS="GSM"),文本模式(AT CMGF=1)假設(shè)我們要給手機(jī)號(hào):。15124532672,發(fā)送
,一條短信,則發(fā)送:AT CMGS="15124532672",然后模塊返回:>,此時(shí)我們輸入我們需要發(fā)送的內(nèi)容:SIM900A TEST,注意,此可以不用發(fā)送回車(chē)了。在發(fā)送完內(nèi)容以后,最后以十六進(jìn)制(HEX)格式單獨(dú)發(fā)送:1A (即0X1A ),即可啟動(dòng)一次短信發(fā)送. 注1:0X1A, “CTRL Z”的鍵值,即用于告訴SIM900A ,要執(zhí)行發(fā)送操作。另外還可以發(fā)送:0X1B ,即“ESC ”的鍵值,用于告訴SIM900A ,取消本次操作,不執(zhí)行發(fā)送。稍等片刻,在短信成功發(fā)送后,模塊返回如: CMGS:156,的確認(rèn)信息,表示短信成功發(fā)送,其中156為模塊內(nèi)部的短信計(jì)數(shù)器,一般不用理會(huì)。
2.6 中英文短信的發(fā)送
本節(jié),我們將利用SIM900A 模塊來(lái)給指定手機(jī)號(hào)碼發(fā)送一條中英文短信。同樣,我們用到AT CMGS指令來(lái)發(fā)送中英文短信。還是采用文本模式發(fā)送,發(fā)送步驟如下:
首先,發(fā)送:AT CMGF=1,設(shè)置為文本模式。然后,發(fā)送:AT CSMP=17,167,2,25,設(shè)置文本模式參數(shù)。最后發(fā)送:AT CSCS="UCS2",設(shè)置為UCS2編碼字符集。此時(shí),我們便可以發(fā)送AT CMGS指令來(lái)發(fā)送中英文短信了,不過(guò)由于使用了UCS2字符集,所有字符/數(shù)字/漢字,都必須使用UNICODE 編碼。假定我們要給手機(jī)號(hào):15124532672,發(fā)送一條中英文短信,內(nèi)容為“SIM900A 中英文短信發(fā)送測(cè)試”。我們首先要用:漢字UNICODE 互換工具.exe ,這個(gè)軟件將號(hào)碼和發(fā)送內(nèi)容轉(zhuǎn)換為UNICODE 字符串(需要手動(dòng)去掉空格),得到:15124532672轉(zhuǎn)換后的UNICODE 字符串(去掉空格后)
為:00310035003100320034003500330032003600370032.SIM900A。
中英文短信發(fā)送測(cè)試,轉(zhuǎn)換后的UNICODE 字符串為:
00530049004D00390030003000414E2D82F1658777ED4FE153D190016D4B8BD5, 然后,發(fā)送:AT CMGS="00310035003100320034003500330032003600370032",這個(gè)指令,然后模塊返回:>此時(shí)我們輸入我們需要發(fā)送的內(nèi)容:
00530049004D00390030003000414E2D82F1658777ED4FE153D190016D4B8BD5,注意,此處不發(fā)送回車(chē)。在發(fā)送完內(nèi)容以后,最后以十六進(jìn)制(HEX)格式單獨(dú)發(fā)送(不用添加回車(chē)):1A (即0X1A ),啟動(dòng)一次短信發(fā)送。
短信的讀取與發(fā)送,我們就介紹到這里,我們?nèi)渴鞘褂梦谋荆═EXT )模式來(lái)實(shí)現(xiàn)的,當(dāng)然還可以用PDU 模式,不過(guò)PDU 模式稍微復(fù)雜點(diǎn),有興趣的朋友,可以參考相關(guān)資料自行研究下。
2.7 GPRS 通信
本節(jié),我們將介紹如何使用SIM900A 模塊進(jìn)行GPRS 通信,實(shí)現(xiàn)模塊與電腦的TCP 和
,UDP 數(shù)據(jù)傳輸。本節(jié),將要用到的指令有:
AT CGCLASS/AT CGDCONT/AT CGATT/AT CIPCSGP/AT CLPORT/AT CIPSTART/AT CIPSEN/AT CIPSTATUS/AT CIPCLOSE/AT CIPSHUT等10條AT 指令。AT CGCLASS,用于設(shè)置移動(dòng)臺(tái)類(lèi)別。SIM900A 模塊僅支持類(lèi)別"B" 和"CC" ,發(fā)送:AT CGCLASS="B",設(shè)置移動(dòng)臺(tái)類(lèi)別為B 。即,模塊支持包交換和電路交換模式,但不能同時(shí)支持。AT CGDCONT,用于設(shè)置PDP 上下文。發(fā)送:AT CGDCONT=1,"IP","CMNET",設(shè)置PDP 上下文標(biāo)志為1,采用互聯(lián)網(wǎng)協(xié)議(IP ),接入點(diǎn)為"CMNET" 。AT CGATT,用于設(shè)置附著和分離GPRS 業(yè)務(wù)。發(fā)送:AT CGATT=1,附著GPRS 業(yè)務(wù)。AT CIPCSGP,用于設(shè)置CSD 或GPRS 鏈接模式。發(fā)送:AT CIPCSGP=1,"CMNET",設(shè)置為GPRS 連接,接入點(diǎn)為”CMNET ”。AT CLPORT,用于設(shè)置本地端口號(hào)。發(fā)送:
AT CLPORT="TCP","8888",即設(shè)置TCP 連接本地端口號(hào)為8888。AT CIPSTART,用于建立TCP 連接或注冊(cè)UDP 端口號(hào)。發(fā)送:AT CIPSTART="TCP","180.120.52.222","8086",模塊將建立一個(gè)TCP 連接,連接目標(biāo)地址為:180.120.52.222,連接端口為8086,連接成功會(huì)返回:CONNECT OK 。AT CIPSEND,用于發(fā)送數(shù)據(jù)。在連接成功以后發(fā)送:AT CIPSEND,模塊返回:>,此時(shí)可以輸入要發(fā)送的數(shù)據(jù),最大可以一次發(fā)送1352字節(jié),數(shù)據(jù)輸入完后,同發(fā)短信一樣,輸入十六進(jìn)制的:1A (0X1A ),啟動(dòng)發(fā)送數(shù)據(jù)。在數(shù)據(jù)發(fā)送完成后,模塊返回:SENDOK ,表示發(fā)送成功。
AT CIPSTATUS,用于查詢當(dāng)前連接狀態(tài)。發(fā)送:AT CIPSTATUS,模塊即返回當(dāng)前連接狀態(tài)。
AT CIPCLOSE,用于關(guān)閉TCP/UDP連接。發(fā)送:AT CIPCLOSE=1,即可快速關(guān)閉當(dāng)
前TCP/UDP連接。
AT CIPSHUT,用于關(guān)閉移動(dòng)場(chǎng)景。發(fā)送:AT CIPSHUT,則可以關(guān)閉移動(dòng)場(chǎng)景,關(guān)閉場(chǎng)景后連接狀態(tài)為:IPINITIAL ,可以通過(guò)發(fā)送:AT CIPSTATUS,查詢。另外,在連接建立后,如果收到: PDP:DEACT,則必須發(fā)送:AT CIPSHUT,關(guān)閉場(chǎng)景后,才能實(shí)現(xiàn)重連。
以上就是我們本節(jié)可能將要用到的一些AT 指令的簡(jiǎn)單介紹,要實(shí)現(xiàn)模塊與電腦的GPRS 通信,需要確保所用電腦具有公網(wǎng)IP ,否則無(wú)法實(shí)現(xiàn)通信,推薦在ADSL 網(wǎng)絡(luò)下進(jìn)行測(cè)試,并最好關(guān)閉防火墻/殺毒軟件。
擁有1個(gè)公網(wǎng)IP ,你可以通過(guò)百度,搜索:IP ,第一個(gè)條目,就是本機(jī)IP ,如圖下圖所示。
,該IP 將與你的電腦IP (開(kāi)始--運(yùn)行--cmd--IPCONFIG/ALL)進(jìn)行對(duì)比,不一致的,對(duì)于使用了路由器的ADSL 用戶,如下圖所示
可以看到,我們電腦IP 為192.168.1.103,與公網(wǎng)IP 不一致,此時(shí)我們需要對(duì)路由器進(jìn)行一下轉(zhuǎn)發(fā)規(guī)則設(shè)置:登錄路由器控制頁(yè)面,然后選擇轉(zhuǎn)發(fā)規(guī)則DMZ 主機(jī),如下圖所示:
2.7.1 TCP 連接
TCP 是基于連接的協(xié)議,在收發(fā)數(shù)據(jù)前,必須先和對(duì)方建立可靠連接,是一種可靠的數(shù)據(jù)傳輸方式,不過(guò)速度慢。本節(jié),我們將在SIM900A 模塊和電腦之間建立一個(gè)TCP 連接,并實(shí)現(xiàn)數(shù)據(jù)的互相收發(fā)。首先,在電腦端,我們需要用到一個(gè)軟件:網(wǎng)絡(luò)調(diào)試助手.exe ,該軟件在:網(wǎng)絡(luò)調(diào)試助手文件夾下可以找到。打開(kāi)該軟件,設(shè)置協(xié)議類(lèi)型為:TCPServer ,本地IP 地址直接用默認(rèn)的即可,設(shè)置本地端口為:8086,注意,這里的端口號(hào)可以隨便設(shè)置,范圍為0~65535,只要該端口沒(méi)有被其他程序占用即可。設(shè)置好之后,點(diǎn)擊“連接”按鈕(點(diǎn)擊后變?yōu)椤皵嚅_(kāi)”,此時(shí)電腦端的)TCPServer 已經(jīng)開(kāi)始工作,等待連接接入,如下圖所示:



在SIM900A 模塊這邊,先發(fā)送4個(gè)指令:
AT CGCLASS="B"
AT CGDCONT=1,"IP","CMNET"
AT CGATT=1
AT CIPCSGP=1,"CMNET"
這幾條指令前面已經(jīng)介紹過(guò),用于設(shè)置移動(dòng)臺(tái)類(lèi)別、連接方式、接入點(diǎn)和附著GPRS 業(yè)務(wù)等。起到一個(gè)前期準(zhǔn)備的作用。之后,發(fā)送AT CLPORT="TCP","2000",設(shè)置本地TCP 連接端口為2000,然后發(fā)送:AT CIPSTART="TCP","180.120.52.222","8086",建立TCP 連接,連接到IP :180.120.52.222,連接端口為:8086。等待TCP 連接成功建立,模塊返回:CONNECT OK。

此時(shí),SIM900A 模塊和電腦便建立了一個(gè)TCP 連接,可以互相發(fā)送數(shù)據(jù)了。首先,我們來(lái)看如何通過(guò)SIM900A 模塊給電腦發(fā)送數(shù)據(jù)。通過(guò)串口調(diào)試助手發(fā)送:AT CIPSEND,此時(shí)模塊返回:>,然后我們發(fā)送字符串(不用發(fā)送新行):SIM900A TCP連接測(cè)試,最后發(fā)送十六進(jìn)制的:1A ,啟動(dòng)數(shù)據(jù)發(fā)送。然后等待模塊回應(yīng):SEND OK,說(shuō)明發(fā)送成功。在串口調(diào)試助手收到:SEND OK,之后,表明我們的數(shù)據(jù)已經(jīng)成功發(fā)送出去了,此時(shí)在電腦端的網(wǎng)絡(luò)調(diào)試助手,會(huì)顯示收到的數(shù)據(jù)。
最后,我們要關(guān)閉TCP 連接,發(fā)送:AT CIPCLOSE=1,關(guān)閉當(dāng)前TCP 連接,再發(fā)送:AT CIPSHUT,關(guān)閉場(chǎng)景。
2.7.2 UDP 連接
UDP 與TCP 對(duì)應(yīng),是面向非連接的協(xié)議,在收發(fā)數(shù)據(jù)時(shí),不需要建立連接,是一種不可靠的數(shù)據(jù)傳輸方式,不過(guò)速度快。本節(jié),我們將在-SIM900A 模塊和電腦之間建立一個(gè)UDP 連接,并實(shí)現(xiàn)數(shù)據(jù)的互相收發(fā)。同樣,我們先在電腦端,打開(kāi)網(wǎng)絡(luò)調(diào)試助手,設(shè)置協(xié)議類(lèi)型為:UDP ,使用默認(rèn)的IP 地址,并設(shè)置本地端口為:8086。設(shè)置好之后,點(diǎn)擊“連接”按鈕(點(diǎn)擊后變?yōu)椤皵嚅_(kāi)”,此)時(shí)電腦端的UDP 通信就準(zhǔn)備好了,等待發(fā)送和接收數(shù)據(jù),如下圖所示。
