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