comgt 發送AT指令


comgt 發送AT指令

 

comgt 是一個 GPRS/EDGE/3G/HSDPA 和 3G/GPRS 模塊配置工具。它更像是一個腳本語言解釋器,通過調用內建、或者外部腳本與 GPRS 和 3G 模塊通訊。

語法

comgt -d device -ehstvVx script

參數

  • -d device :指定模塊的通訊口,例如 /dev/ttyUSB2 或 /dev/modem
  • -e :打開串口通信的 echo
  • -h :顯示幫助信息
  • -s :在外部腳本執行前,不要運行內建的默認腳本
  • -t :使用備用線路終端
  • -v :運行詳細模式,會顯示詳細的通訊過程
  • -V :顯示版本信息
  • -x :將內建和外部腳本中的波特率 115200 改為 57600

內建腳本

  • comgt :運行默認的內建腳本。如果運行 comgt 時沒有指定任何腳本,例如 comgt -d /dev/ttyS1 ,它會依次執行幾個內建的腳本 PIN 、reg、sig 。
  • comgt help :列出所有幫助信息。
  • comgt info :列出當前模塊的配置。
  • comgt sig :獲取信號強度。
  • comgt reg :顯示注冊狀態。
  • comgt 3G :將模塊設為 3G only (UMTS/HSDPA) 模式。
  • comgt 2G :將模塊設為 2G only (GSM/GPRS/EDGE) 模式。
  • comgt 3G2G :將模塊設為 3G preferred (UMTS/HSDPA and GSM/GPRS/EDGE) 模式

外部腳本

以 sendmsg.gcom 為例,該腳本實現了發送短信的功能:

opengt
    set com 115200n81
    set comecho off
    set senddelay 0.02
    waitquiet 0.2 0.2
    flash 0.1

:start
    send "AT+CMGF=1^m"
    get 1 "" $s
    print $s
    send "AT+CSCS=GSM^m"
    get 1 "" $s
    print $s
    send "AT+CSMP=17,168,0,0^m"
    get 1 "" $s
    print $s
    print "Input message:\n"
    input $m
    send "AT+CMGS=+8613824741490^m"
    send  $m+"^Z"
    get 1 "" $s
    print $s

:continue
    exit 0

opengt 段用於設置串口的各項參數,之后會一次執行 start 段的命令,這里涉及到幾個常用的命令:

  • send : 向串口發送字符串。這個字符應該以 ^m 結尾,表示一個回車符。幾個字符串可以用加號連接。有時一個 AT 命令后會等待用戶輸入,比如 AT+CMGS 后會等待輸入短信內容,此時繼續調用 send 命令即可。^Z 表示 Ctrl+Z 組合鍵。
  • input : 等待用戶輸入,輸入的字符串放入變量 $x 中。
  • print : 在終端打印一行字符串。
  • get : 獲取串口返回從字符串。語法是 get timeout "terminators" $string

執行該腳本:

gcom -d /dev/ttyUSB2 -s sendmsg.gcom

 

各USB端口的作用

  • ttyUSB0用於moderm
  • ttyUSB1用於發AT指令
  • ttyUSB2用於VoUSB
  • ttyUSB3用於Debug

 

AT命令集

AT命令,用來控制TE(TerminalEquipment)和MT(Mobile Terminal)之間交互的規則,如下圖所示。在GSM網絡中,用戶可以通過AT命令進行呼叫、短信、電話本、數據業務、傳真等方面的控制。

AT命令是以AT作首,字符結束的字符串,AT命令的響應數據包在中。每個命令執行成功與否都有相應的返回。AT指令集可分為三個類型:

大部分模組支持3GPP TS27.007 AT命令集,並在此基礎上擴展出自定義指令集。以C開頭的命令如AT+CFUN是是通用的命令,以N開頭的命令是模組廠商自定義的命令,不同的模組廠商可能使用不同的命令實現相同的功能。

 

在物聯網中,AT指令集可用於通信模塊調測、控制&調測設備等。本節將以移遠通信的BC35-G模組為例,為大家剖析常用的NB-IoT 3GPP相關命令及其常見用法,完整的文檔可找模組廠家獲取。

 

常用AT命令

 

AT+CGSN(查詢模塊序列號)

AT+CGSN=<snt>,如果沒有寫入<snt>,則只返回"OK”。

  • <snt>=0,返回<sn>。
  • <snt>=1,返回IMEI(國際移動設備識別碼),這個序列號每個模塊都是唯一的。物聯網平台基本都是以IMEI號或者Mac地址來區分不同的設備,包括華為OceanConnect物聯網平台。
  • <snt>=2,返回IMEISV(國際移動電台設備身份和軟件版本)。
  • <snt>=3,返回軟件版本號SVN。

例:查詢IMEI發送命令:

AT+CGSN=1

模塊返回:

+CGSN:868744036640526

OK

 

AT+CGMR(查詢固件版本)

執行該命令返回固件版本 。例:發送命令:

AT+CGMM

模塊返回:

<Revision>

OK

 

AT+CMEE(查詢終端報錯)

用於設置終端錯誤報告,使能后當發送AT執行錯誤時終端會返回錯誤編碼,這樣便於定位問題。例:開啟錯誤碼上報

發送命令:AT+CMEE=1

模塊返回:

OK

 

AT+NRB(重啟模塊)

例:

發送命令

AT+NRB

模塊返回:REBOOTING

****

Boot: Unsigned

Security B.. Verified

Protocol A.. Verified

Apps A...... Verified

REBOOT_CAUSE_APPLICATION_AT

Neul

OK

 

AT+CSQ(查詢信號強度)

返回值為+CSQ:<rssi>,<ber>。rssi越大,表示信號越強。信號強度和rssi換算公式為:信號強度=113dBm+(rssi*2)。

沒有信號或信號強度過低,需要聯系運營商處理。例:

發送命令:

AT+CSQ

模塊返回

+CSQ:31,99

OK

  • rssi=0,表示信號非常差。
  • rssi=31,表示信號質量非常強。
  • rssi=99,表示沒有信號。
  • ber字段未使用,恆等於99。

 

AT+CGATT(查詢網絡是否激活)

返回:+CGATT:1,表示網絡已激活;若返回:+CGATT:0,則表示網絡未激活,請嘗試重啟模組激活網絡。

例:

發送命令:

AT+CGATT?

模塊返回:

+CGATT:1

OK

 

AT+CEREG(查詢網絡注冊狀態)

該命令用於查詢終端EPS網絡注冊狀態。

當使能提示時,終端的網絡注冊狀態信息有變化,會主動上報給用戶終端。通過不同的設置可以上報EPS注冊狀態、位置區碼、小區ID、服務小區的接入技術等信息,通常情況下只需要設置為自動上報EPS注冊狀態。

例:設置網絡注冊狀態上報信息

發送命令:

AT+CEREG=1

模塊返回:

OK

設置成功后,當網絡注冊狀態信息有變化,會主動上報給用戶終端,如:

+CEREG:1,1

OK

 

AT+CSCON(查詢網絡當前連接狀態)

返回格式為:+CSCON:<n>,<mode>?<n>是通知設置。

取值和說明:0為取消異步通知,當網絡連接后,串口不會主動上報+CSCON命令;1為使能異步通知,串口主動上報+CSCON。<mode>是當前模塊連接狀態,取值和說明:0處於IDLE狀態,1處於已連接狀態。當處於IDLE狀態時,只要發送數據或者重啟設備,就會變成已連接狀態。例:

發送命令:

AT+CSCON?

模塊返回:

+CSCON:0,1

OK

 

AT+CFUN(設置模塊射頻功能)

該命令用於設置和查詢模塊的射頻功能是否開啟。例:

AT+CFUN=0 //關閉射頻功能

OK

AT+CFUN=1 //開啟模塊射頻功能

OK

AT+CFUN? //查詢模塊的射頻開啟狀態

+CFUN:1 //射頻功能已打開成功,若回復0通常是因為SIM卡的電路與模塊沒有連接成功

 

AT指令集調測工具

AT指令集調測工具(也稱串口調試工具)有IoT Studio、QCOM、SSCOM、XCOM、COMTool。本節為大家重點介紹常用的IoT Studio和QCOM。

 

【IoT Studio】

IoT Studio是基於華為LiteOS嵌入式系統軟件開發的工具,支持C,C++、匯編等多種開發語言,提供了代碼編輯、編譯、燒錄及調試等一站式開發體驗,可以對系統關鍵數據進行實時跟蹤、保存與回放。


QCOM串口調試助手是經典的AT指令調試和NB-IoT開發工具,支持多條AT命令的保存,多個命令待發送區域,每個都可以單獨設置延時,使2G、NB-IoT模塊開發更容易。

 

=============== End

 


免責聲明!

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



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