常用基本AT指令


常用基本AT指令

http://www.rosoo.net/a/201011/10451.html
 
AT 測試連接是否正確
ATE0 關閉回顯。程序初始化AT部分首先關閉回顯。
ATE1 打開回顯。使用超級終端測試命令時打開。
AT+CGMI 得到廠商信息
AT+CGMR 得到版本號
AT+CGSN 得到序列號(IMEI)
AT+CIMI 得到手機IMSI號碼
AT+CSCS 獲取、設置當前字符集。可設置為GSM或UCS2
AT+CBC 獲取電量
AT+CCLK 獲取設置手機時鍾
AT+CNUM 機身號碼。分為線路一和線路二
AT+CSQ 當前信號
AT+COPS 網絡營運商
AT+CSCA 短信中心號碼
AT+CPMS 選擇短信儲存地點。可選擇ME(SIM卡)和MT(機身)
AT+CMGL 列出指定狀態的短信息的PDU代碼
AT+CMGR 列出指定序號的短信息PDU代碼
AT+CMGS 發送短信
AT+CMGD 刪除指定的短信
AT+CMGF 短信格式。分為Text模式和PDU模式
AT+CNMI 設置新短消息通知電腦端
AT+CSCA 短信中心
AT+IPR? 顯示串口波特率
AT+IPR=19200更改串口波特率為19200
AT&W 保存設置
 
 
 
1.2 AT的優點。
 
命令簡單易懂,並且采用標准串口來收發AT命令,這樣對設備控制大大簡化了,轉換成簡單串口編程了。
AT命令提供了一組標准的硬件接口--串口。這個簡化的硬件設計.較新的電信網絡模塊,幾乎都采用串口硬件接口。
AT命令功能較全,可以通過一組命令完成設備的控制,完成呼叫、短信、電話本、數據業務、傳真.
    
1.3 AT命令與ppp協議的關系
 
在數據通訊的應用中,比如說無線撥號上網。除了AT命令,還會常聽到另外一個網絡協議ppp(Point to Point Protocol)。
 
在應用串口通訊的場合,我們可以從硬件上明確看到分為兩大塊。
 
DTE(Data Terminal Equipment)數據終端設備。通常是一個智能設備,如PC機, 嵌入式主機等,用於發送AT命令和PPP命令,
還有用於鏈路通訊的DCE(Data Circuit Terminal )數據電路終端。用於與外界建立通訊的鏈路。
DTE與DCE之間用串口相連。比如PC機用串口接入撥號MODEM時,PC機是DTE,撥號MODEM是DCE.
 
AT和PPP的相同點都是由DTE發送給DCE的協議。不同點是AT只用於DTE來控制DCE。比如初始化設備,用於發送呼叫,發送短消息等,雖然AT有規范,但是大部分DTE產商都擴展了一些AT命令。
 
而PPP是用於數據通訊,是DTE與遠程的接入服務器(Access Server)進行通訊的協議。是屬於網絡通訊的數據鏈路層協議,DCE本身收到PPP包時,除了將其調制到物理層上發送到遠端服務器外,本身並不處理PPP的內容。
 
2.AT的命令格式
  AT指令格式:AT指令都以”AT”開頭,以<CR>(即\r,回車符)結束,模塊運行后,串口默認的設置為:8位數據位、1位停止位、無奇偶校驗位、硬件流控制(CTS/RTS).
  注意為了發送AT命令,最后還要加上<LF> (即\n,換行符)這是串口終端要求.
  有一些命令后面可以加額外信息來.如電話號碼
 
  每個AT命令執行后,通常DCE都給狀態值,用於判斷命令執行的結果.
 
  AT返回狀態包括三種情況 OK,ERROR,和命令相關的錯誤原因字符串.返回狀態前后都有一個<CR>字符.
   如 <CR>OK<CR> 表示AT命令執行成功.
     <CR>ERROR<CR> 表示AT命令執行失敗
     <CR>NO DIAL TONE<CR> 只出現在ATD命令返回狀態中,表示沒有撥號音,這類返回狀態要查命令手冊
 
   還有一些命令本身是要向DCE查詢數據,數據返回時,一般是+打頭命令.返回格式
    <CR>+命令:命令結果<CR>
如:AT+CMGR=8 (獲取第8條信息)
  返回 +CMGR: "REC UNREAD","+8613508485560",,"01/07/16,15:37:28+32",Once more
  
 
3.DCE的狀態切換與AT的命令撥號流程
 
  這兩個協議都是DTE通過串口發往DCE。那DCE是如何區別是AT命令,如何區別PPP協議包?大部分DCE是采用分時段傳送的,兩個協議並不同時發送。但是可以通過AT命令兩個專用命令來用切換是AT命令時段,還是PPP協議時段。
 
在發送AT命令時稱為命令狀態,在發送PPP包時或者語音通訊時稱為數據狀態。
 
在modem設備啟動進,默認進入AT命令接收狀態,用ATDn ;命令撥出電話號碼n(語音撥號);ATDn 撥出電話號碼n(數據撥號),兩者區別在於前者有一個分號。用數據撥號撥通后,將進入PPP交互狀態。當需要切回接收AT命令狀態,DTE需要發送+++命令給DCE.讓其保持在線的狀態時,但接收是AT命令.如果此時需要切斷鏈接,此時發送ATH掛斷命令.
  注意發送+++需要前后各一秒的時間。否則會當成數據發送出去。
 
  ATO則是把在線命令狀切換到數據接收狀態。
 
 
 
 
一個DCE的撥號流程是
 
 3.1.初始化DCE的Modem設備
    主要DTE要配置好串口參數,並且向設備發送一些AT命令來進行初始化設置
 
  •     行軟復位的需執行”ATZ\r”命令;
  •    禁止命令回顯需執行”ATE0\r”命令;
  •    要使返回結果碼為數字形式則要執行”ATV0\r”;
  •    需要設置S 寄存器的需執行”ATSn=X\r”等等。
 3.2 撥號連接
   AT撥號連接分語音撥號連接和數據撥好連接。語音撥號命令為”ATDn;\r”(注意帶分號);數據撥號命令為”ATDn\r”(注意不帶分號)。連接成功返回”\r\nCONNECTXXXX/RLP\r\n”,其中XXXX 表示連接速率。在這里我們只討論數據撥號連接。要注意的是撥號連接需要一定的時間,編程時要根據實際情況進行適當的延時等待。
 
3.3 數據傳輸及處理
     在建立起連接后用戶就可通過DCE進行數據發送、接收及數據處理操作。這時發送數據就是簡單的寫串口,收數據是讀串口,即使數據中含有AT 命令字符串DCE也不會對其進行處理。此時進行PPP撥號處理流程了。
3.4  從數據狀態切換至在線命令狀態
   數據收發結束后,就要使DCE從數據狀態切換至在線命令狀態。向DCE發送換碼序列命令”+++”,並且前后各有至少一秒的延遲(不向TC35 發數據),可使DCE從數據狀態切換至在線命令狀態,否則DEC會將”+++”當作數據發送出去。在離線命令狀態時發送”ATO\r”可回到數據狀態。
3.5  掛斷連接
   掛斷連接(即掛機)是向DCE發送”ATH\r”
 
 
4.常用AT命令
 
    不同產商的AT命令大同小異,但是還是有所區別,一般要看產品手冊,如下列產商的
   西門子 TC35i 的  http://www.sendsms.cn/download/TC35i_AT_C.pdf
 
   這里羅列一些常見的AT命令
   4.1 基本操作
1.1 AT 
命令解釋:檢測Module與串口是否連通,能否接收AT命令;
命令格式:AT<CR>
命令返回:OK (與串口通信正常)(無返回,與串口通信未連通)
 
1.2 AT+CSQ
命令解釋:檢查網絡信號強度和SIM卡情況
命令格式:AT+CSQ<CR>
命令返回:+CSQ: **,##
          其中**應在10到31之間,數值越大表明信號質量越好,##應為99。
          否則應檢查天線或SIM卡是否正確安裝
測試結果:AT+CSQ<CR>
          +CSQ: 31, 99
          信號強度值會有少許變化,用手遮住天線,信號強度值會下降(大致在26左右)。
1.3 ATZ 
命令解釋:恢復原廠設置
命令格式:ATZ<CR>
命令返回:OK

1.4 AT+CGMR
命令解釋:查詢模塊版本;
命令格式:AT+CGMR<CR>
命令返回: <revision >
         +CMEERROR <err>
測試結果:AT+CGMR<CR>
         R4A021      CXC1122528
          OK
解釋:模塊版本號為R4A021

1.5 AT+IPR
命令解釋:修改串口1波特率;
命令格式:AT+IPR=<value ><CR>
命令返回: ERROR 
OK 
測試結果:AT+IPR=19200<CR>
OK
注意:串口波特率修改為19200后要把串口調試工具的波特率設為相應
波特率后模塊才會有返回

1.6 AT&W 
命令解釋:保存模塊設置;
命令格式:AT&W<CR>
命令返回: OK
ERROR(保存不成功)
測試結果:AT&W <CR>
OK
4.2、通話操作
2.1ATD 
命令解釋:撥打電話
命令格式:ATD**********;<CR>(****為電話號碼)
命令返回:OK
NO DIAL TONE(沒有撥號音)
NO CARRIER(無載波)
測試結果:a. ATD13510090403;<CR>
OK
呼叫成功;
b. ATD13510090403;<CR>
NO DIAL TONE
天線未接好,接觸不良;
c. ATD13510090403<CR>
NO CARRIER
命令錯誤,缺{;};
2.2 RING
命令解釋:有電話呼入
命令格式:
命令返回:無

2.3 ATA
命令解釋:摘機
命令格式:ATA<CR>
命令返回:OK
測試結果:RING
RING
ATA<CR>
          OK
          接通電話;

2.4 ATH
命令解釋:掛機
命令格式:ATH<CR>
命令返回:OK
測試結果:ATH<CR>
          OK
          電話掛斷(通話過程中);

2.5 AT+CHUP
命令解釋:掛機
命令格式:AT+CHUP<CR>
命令返回:OK
測試結果:RING
ATH<CR>
OK
電話掛斷(尚未接通來電);

2.6AT+VTS
命令解釋:撥打分機
命令格式:AT+VTS=“分機號碼”<CR>
命令返回:OK
測試結果:
AT+VTS=“0”<CR>
OK

4.3、短信息操作

  短信操作步驟及相關命令:
(1) 設置短信格式——AT+CMGF
(2) 設置短信存儲載體——AT+CPMS
(3) 設置短信接收提示方式——AT+CNMI
(4) 發送短信——AT+CMGS
(5) 顯示短信——AT+CMGL

3.1 AT+CPMS
命令解釋:選擇短信存儲載體

3.1.1命令格式:AT+CPMS=<mem1>[,<mem2>][,<mem3>]
設置短信存儲載體
命令返回:+CPMS:<used1>,<total1>,<used2>,<total2>,<used3>,<total3>
          OK
          ERROR
測試結果:a. AT+CPMS=”SM”
           +CPMS: 8,15,8,15,1,40
           OK
           設置成功,並顯示狀態:SM(SIM卡)存儲器總容量為15,當前存儲量8;
           ME(模塊)存儲器總容量為40,當前存儲量1;mem1定義為SM;
         b. AT+CPMS=”SM”,”SM”
           +CPMS: 8,15,8,15,1,40
           OK
           設置成功,並顯示狀態:SM存儲器總容量為15,當前存儲量8;
           ME存儲器總容量為40,當前存儲量1;mem1定義為SM;mem2
           定義為SM;
         c. AT+CPMS=”SM”,”SM”,”SM”
           +CPMS: 8,15,8,15,8,15
           OK
           設置成功,並顯示狀態:SM存儲器總容量為15,當前存儲量8;
           ME存儲器總容量為40,當前存儲量1;mem1定義為SM;mem2
           定義為SM;mem3定義為SM;
         d. AT+CPMS=”ME”,”SM”,”SM”
           +CPMS: 1,40,8,15,8,15
           OK
           設置成功,並顯示狀態:SM存儲器總容量為15,當前存儲量8;
           ME存儲器總容量為40,當前存儲量1;mem1定義為ME;mem2
           定義為SM;mem3定義為SM;
         e. AT+CPMS=”ME”,”SM”,”ME”
           +CPMS: 1,40,8,15,1,40
           OK
           設置成功,並顯示狀態:SM存儲器總容量為15,當前存儲量8;
           ME存儲器總容量為40,當前存儲量1;mem1定義為ME;mem2
           定義為SM;mem3定義為ME;
         f. AT+CPMS=”ME
           ERROR
           命令格式錯誤,缺少{”};

3.1.2命令格式:AT+CPMS?
          顯示當前短信存儲載體設置
命令返回:+CPMS:<mem1>,<used1>,<total1>,<mem1>,<used2>,<total2>,
                     <mem1>,<used3>,<total3>
          OK
          ERROR
測試結果:a. AT+CPMS?
            +CPMS: "SM",8,15,"SM",8,15,"ME",1,40
            OK
            當前短信存儲載體設置為:mem1為SM,mem2為SM,mem3
            為ME;
          b. AT+CPMS!
             ERROR
             命令錯誤;

3.1.3命令格式:AT+CPMS=?
          顯示本命令支持的參數
命令返回:+CPMS: (list of supported<mem1>s),(list of supported<mem2>s),
                    (list of supported<mem3>s)
          OK
          ERROR
測試結果:AT+CPMS=?
          +CPMS: ("ME","SM"),("ME","SM"),("ME","SM")
          OK

3.2 AT+CMGF
命令解釋:設置短信格式
3.2.1命令格式:AT+CMGF=<mode>
命令返回:OK
          ERROR
               設置短信格式

3.2.2命令格式:AT+CMGF=?
命令返回:OK
          ERROR
          顯示本命令支持的參數

3.2.3命令格式:AT+CMGF?
命令返回:OK
          ERROR
          顯示當前短信格式
測試結果:AT+CMGF=?
+CMGF: (0,1)
OK
AT+CMGF?
+CMGF: 0
OK
AT+CMGF=1
OK
AT+CMGF?
+CMGF: 1
OK
    
3.3 AT+CMGS
命令解釋:發送短信
命令格式:AT+CMGS=<da>[,<toda>]<CR>
          Text is entered<ctrl-z/ESC>
命令返回:+CMGS:<mr>[,<scts>]
          +CMS ERROR:<err>
          OK
          ERROR
測試結果:a. AT+CMGS=13510090403<CR>
          >ABCD1234.456<ctrl-z>
          +CMS ERROR:500
          命令錯誤;
        b. AT+CMGS="13510090403"<CR>
> IT IS TEST NOW<ctrl-z>
+CMGS: 235
OK

3.4 AT+CMGR
命令解釋:讀短信
命令格式:AT+CMGR=<indes>
命令返回:+CMGS:<stat>,[<alpha>],<length>]<CR><LF><pdu>
          +CMS ERROR:<err>
          OK
          ERROR
測試結果:a. AT+CMGR=5
          +CMS ERROR:500
          命令錯誤,5號短信位置為空;
        b. AT+CMGR=2
+CMGL: 2,"REC READ","+8613682326205","N?R","03/08/28 17:30:35+00"
998B76844F60002E518D5FCD5FCD5427+CMGS: 235
OK
讀出2號短信;

3.5 AT+CMGW
命令解釋:寫短信,並保存到存儲載體
命令格式:AT+CMGW=<length>[,<stat>]<CR>
命令返回:+CMGS:<index>
          +CMS ERROR:<err>
          OK
          ERROR
測試結果:AT+CMGW="13534139079"<CR>
> SHELLEY123456<ctrl-z>
+CMGW: 1
OK
把目標地址為13534139079的短信存入存儲載體,且被分配的地址
為1號短信;

3.6 AT+CMGD
命令解釋:刪除短信
命令格式:AT+CMGD=<index>
命令返回:+CMS ERROR:<err>
          OK
          ERROR
測試結果:AT+CMGD=1
          OK
          1號短信被刪除;

3.7 AT+CMGL
命令解釋:顯示短信清單
命令格式:AT+CMGL=<stat>
命令返回:+CMGL:<index1>,<stat>,<oa/da>,[<alpha>],[<scts>] [,<tooa/toda>,<length>]
<CR><LF><data>[<CR><LF>
測試結果:見總測試結果;

3.8 AT+CMSS
命令解釋:發送存儲載體中的短信
命令格式:AT+CMSS=<index>
命令返回:+CMSS:<mr>
+CMS ERROR:<err>
OK
ERROR
測試結果:AT+CMSS=2
+CMSS: 204
OK

3.9AT+CNMI
命令解釋:新短信提示
3.9.1命令格式:AT+CNMI=[<mode>[,<mt>[,<bm>[,<ds>]]]]
命令返回:OK
  ERROR
測試結果:AT+CNMI=3,2
  OK

3.9.2命令格式:AT+CNMI?
命令返回:+CNMI:<mode>,<mt>,<bm>,<ds>
OK
ERROR
測試結果:AT+CNMI?
  +CNMI: 3,2,0,0
  OK

3.9.3命令格式:AT+CNMI=?
命令返回:+CNMI:(list of supported<mode>s), (list of supported<mt>s), (list of supported<bm>s),
(list of supported<ds>s) 
OK
ERROR
測試結果:AT+CNMI=3,2
OK


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM