GM190 CAT1模组可进行短信文本的数据收发,可使用手机收发短信进行测试。测试样机使用4G的手机卡。
一、TEXT模式
使用Text模式收发短信代码简单,很容易实现,但不支持中文。这里给出基本的AT指令通信流程。
1.1 模组短信上发
模组上电后通过串口发送AT,直到返回"OK",确认硬件连接正常。
模组使用短信之前,先确认服务(是否支持上行、下行的短信收发)。CSMS可选1,0两个参数,参考网络资料,如果AT+CSMS=1,接收到短信时,TE需在一定的时间内发送反馈消息至模块;若超时,<mode>和<mt>的值会强制复位到0。那么,再有新的短信将不能被正确处理,需要用“AT+CNMI”指令重新设置参数才行。这增加了程序处理的复杂性。AT+CSMS=0时,省去了这些麻烦。
模组默认PDU通信方式,TEXT文本格式需通过CMGF重新设置
如上参数设置完成后就可以发送短信了,发送之前先填写号码,模组返回'>'字符后,就可以输入待发送的字符串了
这里输入字符串"Aramis is Testing",注意发送的时候不需要加回车换行(其实加上也没有关系)。
注意这里发送完成后,实际模组还没有将短信发出去,而是等待结束符"Ctrl+A"。字符串格式无法发送这个结束符,此时将发送格式修改为HEX发送,然后填写内容1A(等价于Ctrl+A),即完成刚刚字符串的发送。
这里是唯一需要注意的地方,即使用串口 工具进行短信收发需来回切换发送数据的格式。如果后期MCU程序处理,可以直接发送字符串后紧跟0x1A,相对容易。上述流程走完之后,手机就收到了刚刚发过来的短信
1.2 手机短信下发
用户可直接通过手机进行短信回发,正常模组会进行短信推送
当然,如果用户测试模组无法推送,可通过设置如下指令进行测试
CNMI指令说明比较复杂,简单说就是收到短信自动推送出来,与NB模组通信方式一样。
以下一段GMS说明直接COPY网络解释:
模组默认的编码格式是IRA, 一般使用的字符编码规则是"GSM"。"GSM"字符编码又分了8bit编码及7bit编码两种,在8bit编码模式下,短信息的长度最长是140个字符,由于这些字符其实都属于基本ASCII码的范围,故可以用7bit来表示一个字符,所以在7bit编码下,原来140个字符的空间可以容纳下(140*8)/7=160个字符的数据,即可以发送160个字符长度的短信。这就是为什么不同型号的手机在发送英文短信时,有的一条最长发出140个字符,有的最长能发出160个字符了,是因为使用的编码规则不一样。
在使用GSM模块发短信时,一般情况下,短信的模式是由指令"AT+CMGF"来设置的。对于TEXT模式,短信的字符编码规则是通过指令"AT+CSCS="GSM" "来设置字符集,并通过指令"AT+CSMP"设置DCS(Data Coding Scheme)字段来设置8bit编码还是7bit编码;对于PDU格式,短信的字符编码规则是通过指令"AT+CSCS="UCS2" "来设置字符集的,并且在PDU数据中的DCS字段也要做相应的设置。
以上参数设置完,手机下发短信链路测试也okay
当然,如果还是无法读取时,可通过以下两个指令来辅助查看。
1.3 常见问题
测试手机下发短信时,CAT1模组使用移动手机卡无法正常接收短信,但该手机卡上发正常。后来更换电信手机卡测试上行/下行链路都正常。用户后面出现该问题时可更换不同运营商手机卡进行对比测试&排查问题。
二、PDU模式
待续...