本系列博文将系统性讲解物联网模组系列的实际使用和调试指南,以移远4G模组EC20为例(其他厂家模组的调试方法大同小异),加快嵌入式软、硬件工程师对物联网模组调试和使用的上手速度。
一、准备工作
1、软件:串口调试助手(推荐官方的QCOM,可以讲命令保存为脚本,方便后续多次的调用)
2、硬件:EC20硬件套件、USB转串口线
3、文档:《Quectel_EC20_R2.1_AT_Commands_Manual》
二、硬件环境的搭建
1、模组正常开机,如果硬件有STATUS电路,STATUS电路的LED指示灯会常亮,指示模组开机成功,同样也可以使用万用表测量模组VDD_EXT引脚有稳定1.8V电压;
2、USB转串口线连接到电脑USB,另外一端连接到EC20硬件的主串口部分(再次注意串口电平的匹配问题);
3、打开官方的串口调试助手QCOM,根据自己的电脑不同,串口号会有不同,可以在电脑的设备管理器中观察USB转串口线插入电脑的前后,设备管理器中端口下面COM口的变化判断自己的COM号;
三、基础AT指令的说明和测试
1、打开官方的AT指令手册《Quectel_EC20_R2.1_AT_Commands_Manual》,因为EC20模组的功能十分强大,下面将以个人认为需要熟练掌握的AT命令做重点介绍,打开手册中第二章的AT指令如下所示,红色框框中个人认为是比较重要的部分:
当我们连接好EC20的硬件环境并且模块开机,我们首先会以AT这个指令为首要指令,判断模组是否能够正常响应命令,如果能够正常响应说明模块的串口通讯正常,可以进一步的调试工作;
需要特别注意:当PWRKEY引脚拉低进行开机时,注意手册中给出的串口有效时间(大于等于12s之后);在模块的串口没有初始化完成前发送AT指令模块是不响应的。
AT指令发送示例如下:
①:左下部分红色框框中的Show Time请选择性勾选;右上角红色框框中的白色框必须勾选,因为AT指令是以<CR>结尾,如果不勾选,模组会认为没有收到回车的字符判断命令还没有发送完毕,造成命令发送失败。
②:棕色框框中的部分是发送了什么命令?模组返回OK的指令?大家可以先猜测一下
答案:首先发送了AT,而后又发送了ATE
问题是模组出厂时没有打开回显功能,所以造成了不清楚发送了什么命令给模组;当调试较少的指令时还可以记住当下都发送了哪些指令,但是当调试的逻辑越来越复杂,AT指令越来越多,发送的指令根本记不住,所以回显的打开很重要。详细解释下:第一条指令是发送的AT,用来判断模组的通讯是否正常,如上图所示模组返回OK;此时发现模组虽然返回了OK,但是模组的回显功能并没有打开,所以发送了打开回显的AT指令ATE,模组返回OK,提示回显打开成功。所以在下面蓝色框框中的所有AT指令都有回显,打开回显后的调试阅读质量瞬间爆棚有木有。
③:ATI指令:此指令可以返回模组的生产厂家,模组的型号和模组的内核固件版本;之所以重要是因为有时候我们需要知道当前模组的固件版本,特别是当模组出现一些未知的Bug,需要提交模组的log给模组的原厂进行协助分析问题的时候。总之一句话:能救命!
④:AT+CGSN:此命令是返回模组的IMEI,众所周知IMEI号码是全球唯一的号码,可以作为设备的唯一识别码,有很多的模块应用厂家也都是这么做的,关于IMEI号码的组成含义大家有兴趣可以自行百度;至于是否重要就看你是否用到了设备唯一识别码了。
⑤:AT+CFUN?:注意输入命令的时候问号要在英文键盘下进行输入,中文下的问号输入后,发送命令给模组会造成模组返回ERROR的结果;此命令是确认模组当前所处的功能级别;不同的级别代表着不同的功能;注意发送此命令时模组必须返回+CFUN:1;否则需要手动设置写命令AT+CFUN=1,模组返回OK后再次进行查询确认CFUN是否为1。
下面以AT+CFUN指令为例详细说明AT指令的操作含义:
从上图可以看出AT指令大概分为三种命令状态:其一为测试命令,返回的结果为该命令都支持哪些参数设置,各个参数的含义在文档中会进行明确的解释和说明;其二是读命令,返回结果为当前模组所处的状态;其三为写命令,设置参数给模组,使模组达到自己预期的状态,返回结果可以判断命令设置是否成功。
关于AT+CMEE=1命令:此命令是操作模组遇到ERROR时,返回错误的代号;例如上图中+CME ERROR:<err>;模组默认是仅仅返回ERROR,设置为AT+CMEE=1后可以根据模组返回的err代码进行辅助判断问题大致出现在什么地方;此命令在后面章节会有更加详细的说明。
以上就是针对移远4G通讯CAT4模组EC20关于基础串口指令的操作的介绍,希望大家能够对模组AT命令调试方面有一些更加深刻的认识,下一节会针对模组的串口调试的驻网部分做详细介绍,请拭目以待。
------------------------------------------------------------------------------------------------------------------------------------------
因为小编自己能力水平有限,文中难免有错误或表达不到的信息,还望广大阅读者留言批评指正,谢谢。