GPRS使用AT指令發短信撥號

開發板:FL2440         內核版本:linux-3.0

一,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指令集是GSM網絡設備之間發送控制信息的標準指令集。用戶可以通過AT指令進行呼叫、短信、電話本、數據業務、傳真等方面的控制。

AT指令由手機制造商諾基亞、愛立信、摩托羅拉等共同研製,其中包括了短消息(SMS)控制功能。對SMS的控制有Block模式、文本模式和協議數據(PDU)模式3種,目前主要使用PDU模式,其他兩種模式逐步被淘汰。(本文使用的文本模式)

注:Block模式發送指令需要廠商提供的驅動,文本模式是串口模式,通過串口發送數據即可,不需要廠商提供的驅動、

計算機可以通過AT指令與手機或者GSM模塊通信。AT指令的特點是所有的指令都以AT字符串起始,後面是不同的指令。所有的AT指令都需要返回值,接收端通過返回信息處理AT命令操作結果。常見的AT命令示例如下:
AT< CR>
< LF> OK < LF>
ATTEST< CR>
< CR> ERROR < LF>

注:<CR>代表回車;<LF>代表換行。如果AT指令執行成功,“OK”字符串返回;如果AT 指令語法錯誤或AT 指令執行失敗,“ERROR”字符串返回。


二,常用AT指令集

1、常用操作
1.1 AT
命令解釋:檢測 Module 與串口是否連通,能否接收 AT 命令;
命令格式:AT<CR>
命令返回:OK (與串口通信正常)
             (無返回,與串口通信未連通)
測試結果:AT
          OK
1.2 AT+CSQ
命令解釋:檢查網絡信號強度
命令格式:AT+CSQ<CR>
命令返回:+CSQ: **,##
           其中**應在 1031 之間,數值越大表明信號質量越好,##爲誤碼
率,值在 099 之間。
          否則應檢查天線或 SIM 卡是否正確安裝
測試結果:AT+CSQ<CR>
          +CSQ: 20,5
1.3 AT+CPIN?
命令解釋:檢查登入移動設備(ME)的密碼.
命令格式:AT+CPIN?<CR>
命令返回:+CPIN:  狀態
           其中狀態值可能是:
READY(表示 SIM卡正常,同時不需要登入密碼),
SIM PIN (表示 ME等待提供 SIM卡的 PIN 碼)
SIM PUK (表示 ME等待提供 SIM卡的  PUK碼)
SIM PIN2 (表示 ME等待提供 SIM 卡的 PIN2 碼)
SIM PUK2 (表示 ME等待提供 SIM卡的  PUK2 碼)
PH-SIM PIN (表示設備被鎖 SIM卡,ME等待提供從手機到 SIM卡的密碼)
PH-NET PIN (表示設備被鎖網絡,ME等待提供提供網絡個性化密碼)
ERROR (表示 SIM卡失敗或沒有插入 SIM卡)
測試結果:AT+CPIN?<CR>
          +CPIN: READY
          表示SIM卡正常,同時不需要登入密碼。
1.4 AT+COPS?
命令解釋:查詢運營商選擇狀態.
命令格式:AT+COPS?<CR>
命令返回:+COPS: <mode>,<format>,<operator>
           <mode>的值爲0 到 4, 默認值是 0
<format>的值爲 02, 默認值是 2
<Operator>的值爲運營商代碼, 中國移動的代碼是 46000, 聯通的代碼是 46001
測試結果:AT+COPS?<CR> Tech-Link T&E Limited                                                                     常用 AT 命令手冊
-  2+COPS: 0, 2, 46000
1.5 AT+WOPEN=2
命令解釋:查詢模塊支持 Open AT 的 Library 版本及是否有 Open AT Application 在模塊中.
命令格式:AT+ WOPEN=2<CR>
命令返回:+WOPEN: 2, “ Open AT Library version” ,”  Open AT Application version” 
      Open AT Library version 代表的是模塊支持 Open AT 的 Library 版本,通常顯示的
值爲” AT v04.1x”   或  ” AT v04.2x” 
Open AT Application version 代表的是模塊支持 Open AT 的 Library 版本,通常顯
示的值爲” AT v04.1x”   或  ” AT v04.2x” 
注: “ Open AT Library version” 和”  Open AT Application version” 兩個值必須是一個
一致(除最後一位外),否則會導致 Open AT 程序不穩定.
如果返回值”  Open AT Application version” 中沒有數據,僅顯
示+WOPEN: 2,” AT v04.10” 則表示模塊中沒有 Open AT Application 程序.
測試結果:AT+WOPEN=2<CR>
          +WOPEN: 2,” AT v04.10” ,” AT v04.11” 
          OK
1.6 AT+WOPEN=0
命令解釋:停止 Open AT Application 程序.
命令格式:AT+ WOPEN=0<CR>
命令返回:OK       或      ERROR
測試結果:AT+WOPEN=0<CR>
          OK
1.7 AT+WOPEN=4
命令解釋:刪除 Open AT Application 程序.
命令格式:AT+ WOPEN=4<CR>
命令返回:OK       或      ERROR
測試結果:AT+WOPEN=4<CR>
          OK
      注:  刪除 Open AT Application 程序前,必須先使用 AT+WOPEN=0 停止 Open AT 程序.
1.8 AT+WOPEN=1
命令解釋:開啓 Open AT Application 程序.
命令格式:AT+ WOPEN=1<CR>
命令返回:OK       或      ERROR
測試結果:AT+WOPEN=1<CR>
          OK
1.9 AT+WIPCFG=3
命令解釋:查詢 WIP 軟件版本.   
命令格式:AT+ WIPCFG=3<CR>
命令返回:<revision >       或      ERROR
測試結果:AT+WIPCFG=3<CR>
      WIP Soft v201 on Open AT OS v411
      OK Tech-Link T&E Limited                                                               
注意:  使用 AT+WIPCFG=3 命令前,必須確保 Open AT 程序是開啓狀態(即 AT+WOPEN=1).
WIP Soft v201 代表 WIP 的軟件版本是 V201, on Open AT OS v411 代表前面 v201 的
WIP 軟件是基於 v411的 Opean AT 開發平臺上開發的.
WIP 軟件就是TCP/IP 協議站
1.10  AT+CSCS?
命令解釋:查詢終端適配器(TE)的字符集.
命令格式:AT+ CSCS?<CR>
命令返回:<字符集編碼格式>
       返回值通常是下列中的一項.
       “ GSM”  ----- GSM缺省符號集(參考 GSM 03.386.2.1 節).
       “ PCCP437”  ---- PC字符集代碼頁 437.
       “ CUSTOM”  ----  用戶自定義.
       “ HEX”  ----  十六進制: (取值範圍:00 到 FF。比如:052FE6 表示 3 個 8bit 字
符,轉換爲十進制,分別爲 547230,禁止轉換爲 ME原始字符集).
測試結果:AT+CSCS?<CR>
         +CSCS: “ PCCP437” 
         OK
1.11  AT+CGSN
命令解釋:查詢模塊的 IMEI 號碼.
命令格式:AT+ CGSN<CR>
命令返回:<IMEI>
測試結果:AT+CGSN<CR>
          012345678901234
          OK
注意:  如果顯示 012345678901234 表示模塊沒有寫IMEI 號碼,有 IMEI 號碼的話
應該顯示是 35xxxxxxxx (共 15 位數字).
1.12  ATI7
命令解釋:查詢語音編碼特性
命令格式:ATI7<CR>
命令返回:SPEECH CODINGS: FR,EFR,HR,AMR
1.13  A TZ
命令解釋:恢復默認設置
命令格式:ATZ<CR>
命令返回:OK
1.14  AT+CGMR   (此命令功能同等於 ATI3)
命令解釋:查詢模塊版本;
命令格式:AT+CGMR<CR>
命令返回: <revision >
+CMEERROR <err>
測試結果:AT+CGMR<CR>
          661_09gg.Q2686H 1925236 100506 11:13
解釋:模塊的 Firmware 版本號爲 661
1.15  AT+IPR
命令解釋:修改串口 1 波特率;
命令格式:AT+IPR=<value ><CR>
命令返回:ERROR  
OK  
測試結果:AT+IPR=115200<CR>
          OK
注意:串口波特率修改爲 115200 後要把串口調試工具的波特率設爲相應波
特率後模塊纔會有返回.
1.16  AT&W
命令解釋:保存模塊設置;
命令格式:AT&W<CR>
命令返回:OK
ERROR(保存不成功)
測試結果:AT&W <CR>
          OK
1.17  ;&W
命令解釋:連續保存命令
命令格式:ATxxx;&W<CR>  (AT xxx 代表要設置的命令,緊跟;&W 表示執行此設置的
同時保存該設置)
命令返回:OK
例如要將模塊的波特率設置成 115200 並保存它,則可以直接按如下操作:
測試結果:AT+IPR=115200;&W <CR>
1.18  AT+CGMI
命令解釋:查詢模塊廠商的標識;
命令格式:AT+CGMI<CR>
命令返回:WAVECOM  MODEM
測試結果:AT+CGMI <CR>
          WAVECOM  MODEM
1.19  AT+CGMM  
命令解釋:獲取模塊支持的頻帶;
命令格式:AT+CGMM<CR>
命令返回:MULTIBAND 900E  1800
 900E
 1800
 1900
 G850
 MULTIBAND G850  1900
測試結果:AT+CGMM <CR>
          MULTIBAND 900E  1800 (表示模塊支持多頻帶,首選頻帶爲 900E  1800)
1.20  A/  
命令解釋:重複上次命令;
命令格式:A/<CR>
命令返回:上一次 AT 命令返回的值
這命令重複前一個執行的命令
1.21  AT+CPOF  
命令解釋:關機;這個特殊的命令可停止 GSM軟件堆棧和硬件層
命令格式:AT+CPOF<CR>   
命令返回:OK
測試結果:AT+CPOF <CR>
          OK
注: AT+CPOF<CR>用於停止 GSM軟件堆棧,這命令的功能與 AT+CFUN=0 相同執行 AT+CFUN=1<CR>即可重新運行 GSM軟件堆棧.
    AT+CPOF=1<CR>用於停止 GSM硬件層,運行此命令後 AT 將失去迴應,必需對模塊進行硬件復位模塊方可重新工作.
1.22  AT+CMEE  
命令解釋:模塊的錯誤報告;
命令格式:AT+CMEE=0<CR>   和  AT+CMEE=1<CR>
命令返回:OK
AT+CMEE=0<CR>表示關閉模塊的出錯報告,當模塊的 AT 執行錯誤時,返回值
僅爲“ERROR” 
AT+CMEE=1<CR>表示開啓模塊的出錯報告,當模塊的 AT 執行錯誤時,返回值爲“+CME ERROR: xxx”。(xxx 代表錯誤代碼,依照此代碼可查詢錯誤類型)
1.23  AT+CCLK  
命令解釋:時鐘管理;
命令格式:AT+CCLK?<CR>  用於查詢模塊當前的時間
命令返回:+CCLK: "yy/MM/dd,hh:mm:ss"  
另: AT+CCLK="08/03/17,10:34:23"<CR>用於設置模塊的時鐘,執行此命令後,模
塊的時鐘將設定成爲 08 年3 月 171034231.24  AT+CREG
命令解釋:網絡註冊及狀態查詢;
命令格式:AT+CREG=MODE<CR>
命令返回:OK  
如果輸入 AT+CREG? <CR>則返回+CREG: <mode>, <stat> [ ,<lac>,<ci> ]  
注: <mode>的值共有三個選項,分別是 0 or 1 or 2,  其中0 代表關閉網絡註冊結果碼, 1 代表當網絡註冊狀態改變時激活網絡註冊結果碼, 2 代表激活網
絡註冊結果碼同時顯示區域和小區信息.
    <stat>的返回值共有三個,分別是 0, 1, 2,3,4,5 ,  其中 0 代表沒有註冊網絡同時模塊沒有找到運營商, 1代註冊到了本地網絡, 2 代表找到運營商但沒
有註冊網絡, 3 代表註冊被拒絕, 4 代表未知的數據, 5代表註冊在漫遊狀態.
    <lac>表示所屬網絡區域代碼,十六進制格式顯示,如: “ 279C”
    <ci>表示所屬網絡的小區 ID,十六進制格式顯示,如: “ 0EB2”  
注: <mode>的值設定爲 0 或1 的話, <lac>,<ci>的返回值則不顯示.
測試結果:AT+CREG=0 <CR>
          OK
          AT+CREG? <CR>
          +CREG: 0,1
 
          AT+CREG=1 <CR>
          OK
          AT+CREG? <CR>
          +CREG: 1,1
 
          AT+CREG=2 <CR>
          OK
          AT+CREG? <CR>
          +CREG: 2,1, “ 279C” , “ 0EB2” 
 
2、通話操作
2.1   ATD  
命令解釋:撥打電話
命令格式:ATD**********;<CR>(****爲電話號碼)
命令返回:無返回 (對方接通後就返回 OK)
          NO DIAL TONE(沒有撥號音)
          NO CARRIER(無載波)
          NO ANSWER(對方無應答)
         注:  撥叫語音號碼需要在電話號碼後加;號,  撥打數據號碼時無需;號
2.2  ATDL  
命令解釋:重撥上一次電話號碼
命令格式:ATDL<CR>
命令返回:*******  (*******爲上一次呼叫的電話號碼)
           其它返回值類似 ATD的返回值
2.3   RING
命令解釋:有電話呼入
命令格式:有來電時串口自動送出 RING 字符串.
命令返回:無
2.4   ATA
命令解釋:摘機
命令格式:ATA<CR>
命令返回:OK
測試結果:RING  
          RING
          ATA<CR>   (當串口收到 RING 時輸入)
          OK
           接通電話. Tech-Link T&E Limited                                                           
2.5   ATH 
命令解釋:掛機
命令格式:ATH<CR>
命令返回:OK
測試結果:ATH<CR>
          OK
          電話掛斷(通話過程中)
2.6  A T+VTS
命令解釋:撥打分機
命令格式:AT+VTS=“分機號碼”<CR>
命令返回:OK
測試結果:ATD26743050;<CR>
          OK
AT+VTS=“7”<CR>
OK
AT+VTS=“8”<CR>
OK
AT+VTS=“9”<CR>
OK
AT+VTS=“2”<CR>
OK
以上操作是通過 26743050 的總機撥到 7892 的分機上.
2.7 ATS0
命令解釋:自動應答
命令格式:ATS0<CR>
命令返回:OK
測試結果:ATS0?<CR>
000
OK
ATS0=003 (設置響鈴三聲後自動應答)
OK
2.8 AT+VGR
命令解釋:喇叭接收音量控制
命令格式:AT+VGR=xxx<CR>  (xxx 數值介於 0~255 之間,每 16 個數值增益改變 2db)
命令返回: +VGR: xxx
OK
2.9 AT+VGT
命令解釋:麥克風輸出音量控制
命令格式:AT+VGT=xxx<CR>  (xxx 數值介於 0~255 之間,每 32 個數值增益改變 3db)
命令返回: +VGT: xxx
           OK                                                               
2.10  AT+CMUT
命令解釋:麥克風靜音控制
命令格式:AT+CMUT=x<CR>
命令返回:OK
注:  上面 x 的值共包含 0和 1, 0代表關閉靜音功能, 1代表開啓靜音功能

3、短信操作

AT+CMGC   Send an SMS command(發出一條短消息命令)    
AT+CMGD   Delete SMS message(刪除 SIM 卡內存的短消息)    
AT+CMGF   Select SMS message formate (選擇短消息信息收發格式: 0-PDU;1-文本)
AT+CMGL   List SMS message from preferred store(列出 SIM 卡中的短消息
AT+CMGR   Read SMS message(讀短消息)    
AT+CMGS   Send SMS message(發送短消息)    
AT+CMGW   Write SMS message to memory(向 SIM 內存中寫入待發的短消息)
AT+CMSS   Send SMS message from storage(從 SIN |M 內存中發送短消息)
AT+CNMI   New SMS message indications(顯示新收到的短消息)    
AT+CPMS   Preferred SMS message storage(選擇短消息內存)    
AT+CSCA   SMS service center address(短消息中心地址)    
AT+CSCB   Select cell broadcast messages(選擇蜂窩廣播消息)   
AT+CSMP   Set SMS text mode parameters(設置短消息文本模式參數)
AT+CSMS   Select Message Service(選擇短消息服務)
AT+CNMI=2,1,0,0,0          //設置收到新短信存於SIM卡中併發CMTI通知
+CMTI:”SM”,1           //收到了短信,自動彈出,其中1表示存在SIM中的序號
AT+CMGR=1             //讀取短信,其中1要與上面序號對應
AT+CMGD=1             //刪除短信,其中1爲短信序號


三,GPRS模塊使用AT指令發短信撥號

在開發板上操作
>:microcom -s 115200 /dev/ttyS1
AT
OK

發送AT 是否能返回 Ok 檢查模塊和板子是不是連接好的模塊能不能正常的工作(microcom是在製作根文件系統時busybox裏自帶命令)

1.發短信
at+cmgf=1  //cmgf=0是以PUD模式發送的。爲1是以文本方式發送
at+cmgs="182********"    //是你要發送給的手機的號碼
〉HELLO  zzx                //你發送的你內容
注意:每敲完一條指令都要按回車,直到返回“>”後開始輸入信息,但是在輸入完短信內容後不能敲回車而應該按組合鍵“ctrl+z”作爲結束符。回車鍵在ascii碼中的數值是“\r”,“ctrl+z”在ascii碼中的數值是“0x1a”,所以在編程時可以直接在信息內容後進行字符串拼接。

2.打電話
ATD182********;    //千萬不要忘記後邊的分號!
例:
AT+CSQ
+CSQ: 18,0   //確認有信號,最強32
OK
AT+CREG=1
OK
AT+COPS?
+COPS: 0,0,"CHINA MOBILE"//確認已註冊上中國移動
OK
ATD182********;//撥打電話
OK
ATH           //掛斷 電話


3.接聽電話
當顯示RING這個單詞的時候就說明有電話打過來了
ata     //接聽電話
ath    //掛斷電話

4.檢測SIM卡是否註冊上
AT+CPIN?
返回值:READY

5.檢查SIM卡是否註冊上網絡,其中”,”後的值爲SIM卡的註冊狀態
如果狀態值爲0,表示未註冊;
如果爲1,表示本地號碼註冊上;
如果爲2,表示正在搜索運營商註冊,但沒註冊上;
如果爲3,表示拒絕註冊;
如果爲4,未知狀態;
如果爲5, 漫遊號碼註冊上。
AT+CREG?
+CREG:0,1
OK
可以看到我這張卡註冊上了!

6.檢測SIM卡的信號強度
AT+CSQ
返回值:+CSQ 29,99 

7.查詢模塊版本
AT+CGMR
返回值:R4A021      CXC1122528 (版本信息)

8.發英文短信
AT+CMGF=1/0(PS:1是文本模式;0是PDU模式)
AT+CMGS="號碼"
>短信內容(只能是英文或者數字,要發中文,要進行PDU編碼)
Ctrl+Z(發送)



OK!!!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章