zoukankan      html  css  js  c++  java
  • 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:
    "
        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

  • 相关阅读:
    0001 工作业务问题_滞纳金公式计算区别实例
    001 win10下安装linux子系统--Ubuntu及其图形界面
    Java知识系统回顾整理01基础07类和对象01引用
    Java知识系统回顾整理01基础06数组07数组工具类Arrays
    Java知识系统回顾整理01基础06数组06二维数组
    Vue 框架中添加百度地图组件
    VUE中使用vue.nextTick 报this.nextTick is not a function错误
    VUE 饿了么项目实战 VUE &quot;TypeError: Cannot read property 'deliveryPrice' of undefined&quot;报错
    VUE vue2.0配置webpack.dev.conf.js加载本地json数据
    VUE response.json() 的更新问题
  • 原文地址:https://www.cnblogs.com/lsgxeva/p/13726581.html
Copyright © 2011-2022 走看看