AT指令
AT 即 Attention,AT指令集是從終端設(shè)備(Terminal Equipment,TE)或數(shù)據(jù)終端設(shè)備 (Data Terminal Equipment,DTE)向終端適配器(Terminal Adapter,TA)或數(shù)據(jù)電路終端設(shè)備 (Data Circuit Terminal Equipment,DCE)發(fā)送的。通過TA,TE發(fā)送AT指令來控制移動(dòng)臺(tái) (Mobile Station,MS)的功能,與GSM 網(wǎng)絡(luò)業(yè)務(wù)進(jìn)行交互。用戶可以通過AT指令進(jìn)行呼叫、短信、電話本、數(shù)據(jù)業(yè)務(wù)、傳真等方面的控制。
90年代初,AT指令僅被用于Modem操作。 沒有控制移動(dòng)電話文本消息的先例,只開發(fā)了一種叫SMS BlockMode的協(xié)議,通過終端設(shè)備(TE)或電腦來完全控制SMS。幾年后,主要的移動(dòng)電 話生產(chǎn)廠商諾基亞、愛立信、摩托羅拉和HP共同為GSM 研制了一整套AT指令,其中就包括對(duì)SMS的控制。AT指令在此基礎(chǔ)上演化并被加入GSM 07.05標(biāo)準(zhǔn)以及現(xiàn)在GSM07.07標(biāo)準(zhǔn),完全標(biāo)準(zhǔn)化和比較健全的標(biāo)準(zhǔn)。如:對(duì)SMS的控制共有3種實(shí)現(xiàn)途徑:最初的 Block Mode;基于AT指令的Text Mode;基于AT指令的PDU Mode。到現(xiàn)在PDU Mode已經(jīng)取代BlockMode,后者逐漸淡出。
GSM 模塊與計(jì)算機(jī)之間的通信協(xié)議是一些 AT指令集,AT指令是以AT作首, 字符結(jié)束的字符串,AT指令的響應(yīng)數(shù)據(jù)包在 中。每個(gè)指令執(zhí)行成功與否都有相應(yīng)的返回。其他的一些非預(yù)期的信息(如 有人撥號(hào)進(jìn)來、線路無信號(hào)等),模塊將有對(duì)應(yīng)的一些信息提示,接收端可做相應(yīng)的處理。
示例:CDMA modem DTE
輸入:AT< CR>
返回:< LF> OK < LF>
輸入:ATTEST< CR>
返回:< CR> ERROR < LF>
如果AT指令執(zhí)行成功,“OK”字符串返回;如果AT 指令語法錯(cuò)誤或AT 指令執(zhí)行失敗,“ERROR”字符串返回。<CR><LF>是控制字符,分別是回車和換行。
每個(gè)公司提供的設(shè)備的AT指令集并不相同,AT指令允許用戶定制自己的AT指令,一般使^字符表示是自己定制的。
我也只是用過一些比較基礎(chǔ)的指令,沒什么好些的。以后慢慢增加內(nèi)容吧。真正理解需要看3GPP的英文文檔吧。還沒看過。
用自己編的串口程序發(fā)送AT指令時(shí)有個(gè)問題要注意,發(fā)送AT命令的字符串到串口,可能會(huì)發(fā)現(xiàn)根本根本沒有響應(yīng)傳回來。這當(dāng)然可能是串口沒有打開或是沒有設(shè)置 好波特率等。這些都可以檢查。但有個(gè)比較容易被忽略的問題就是AT命令的格式問題。發(fā)送的AT命令字符串必須是在命令尾部加上回車和換行兩個(gè)字符,并且要注意順序,即‘\r' \n’。這是個(gè)很搞的問題,你可能查了很久也沒發(fā)現(xiàn)別的錯(cuò)誤,而想到是否是AT命令格式的問題的時(shí)候,查相關(guān)的文檔卻也看不到這樣的說明。
這里順便也講一下超級(jí)終端的一個(gè)問題。設(shè)備安裝好后從設(shè)備管理器中查看有哪些串口。不能確定用哪個(gè)com口通信,就挨個(gè)試。檢驗(yàn)是否能通信就在連接之后輸入AT后回車。但是有的時(shí)候 看不見自己輸入的內(nèi)容,這是因?yàn)殛P(guān)閉了設(shè)備的命令回顯功能(ATE0命令)。這時(shí)在連接的屬性中選擇顯示輸入的字符,就可以了。有的時(shí)候輸入一個(gè)A顯示 AA,這是因?yàn)槊罨仫@功能打開,而且連接屬性中顯示輸入字符也勾選了。