開發板: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: **,## 其中**應在 10 到 31 之間,數值越大表明信號質量越好,##爲誤碼 率,值在 0 到 99 之間。 否則應檢查天線或 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>的值爲 0 到 2, 默認值是 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.38 第 6.2.1 節). “ PCCP437” ---- PC字符集代碼頁 437. “ CUSTOM” ---- 用戶自定義. “ HEX” ---- 十六進制: (取值範圍:00 到 FF。比如:052FE6 表示 3 個 8bit 字 符,轉換爲十進制,分別爲 5、47、230,禁止轉換爲 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 月 17 日 10 點 34 分 23 秒 1.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!!!