GSM模块MMS命令应用指导
文档名GSM模块MMS命令应用指导
版本 1.00
日期2009-11-24
状态正式发布
版权:
版权所有?上海移为通信技术有限公司2009。保留一切权利。
Copyright ? Quectel Wireless Solutions Co., Ltd. 2009
非经本公司书面许可,任何单位和个人不得擅自摘抄、复制本文档内容的部分或全部,并不得以任何形式传播。
Q u e c t e l
C o n f i d
e n t
i a l
目录内容
目录内容...........................................................................................................................................2 图索引...............................................................................................................................................3 0. 修改记录......................................................................................................................................4 1. 概要. (5)
1.1. 参考文档............................................................................................................................5 2. MCU 常规过程开发. (6)
2.1. 开机流程............................................................................................................................6 2.2. 关机方式............................................................................................................................7 2.3. AT 命令交互方式................................................................................................................7 2.4. 模块低功耗和UART 的关系.............................................................................................8 3. 彩信开发过程注意点 (9)
3.1. 运行彩信AT 命令时需要打开UART 硬件流控.................................................................9 3.2. 如何进行更加可靠的文件上传和下载............................................................................9 3.3. 激活彩信服务所在网络..................................................................................................10 3.4. 判断网络是否正常..........................................................................................................11 3.5. 发送和下载彩信过程中需要注意的一些问题.. (11)
3.5.1. 发送彩信.................................................................................................................11 3.5.2. 在彩信的发送过程中接收到新彩信通知.............................................................12 3.5.3. 在彩信的下载过程中接收到新彩信通知.............................................................12 3.6. 删除彩信..........................................................................................................................12 3.7. 彩信发送和接收流程图.. (13)
Q u e c t e l C
o n f i d e n t i a l
图索引
图 1: MCU启动模块流程图 (6)
图 2: MCU上传文件参考流程图 (10)
图 3:彩信操作总流程图 (13)
图 4:彩信发送流程图 (14)
图 5:彩信接收流程图 (15)
Q u e c t e l
C o n f i d
e n t
i a l
0. 修改记录
版本日期作者修改内容记录1.00 2009-11-24
辛健初始版本
Q u e c t e l
C o n f i d
e n t
i a l
1. 概要
该文档主要描述MCU进行彩信开发过程中需要注意的一些事项。
1.1. 参考文档
表1: 参考文档表 序号 文档名 备注
[1] Mxx ATC AT 命令集简介 [2] GSM_TCPIP_AN TCPIP 应用指导
[3] GSM_MMS_ ATC
彩信相关AT 命令简介及应用指导
[4] GSM 模块AT 命令应用指导 AT 命令操作应用指导 [5] GSM 模块使用SSCOM 工具操作
MMS 使用SSCOM 工具操作MMS 应用指导 [6] Mxx_HD 模块硬件接口指导文档
Q u e c t e l C
o n f i d e n t i a l
2. MCU 常规过程开发
本章节主要描述客户在使用模块时需了解的一些基本信息,包括模块开机流程、AT命令交互方式等。
2.1. 开机流程
模块开机是一个较复杂的过程。MCU通过编写完善的开机流程,可以使系统更加稳定。
下面,我们向客户推荐使用下面的流程图进行模块开机。
图 1: MCU启动模块流程图
Q u e c t e l C
o n f i d e n t i a l
MCU通过UART与模块相连,首先,MCU配置UART在某个固定的波特率上工作(注意:模块默认配置是打开UART硬件流控功能)。Power On 模块后, MCU通过UART给模块发送AT命令。
Quectel模块波特率默认出厂配置是自适应波特率。故上图1中,Power On模块后执行过程①②③的目的是为了使MCU同步上处于自适应波特率状态的模块。
建议客户务必执行上图1中过程④⑤。过程④“AT+IPR?”查询模块当前波特率。过程⑤中命令“AT+IPR=xxx&W
上述过程完成后,MCU开始执行“后续处理系统正常启动流程⑥”,具体参考文档“GSM 模块AT命令应用指导”中“模块开关机”章节。
关于“系统异常⑦”,具体处理方式可以和Quectel的工程师进一步沟通。
在上面的流程图中,建议MCU 在发送AT命令后等待100ms时长以接收命令返回结果, 100ms时长只是个建议参考值。事实上不同的AT命令在执行后返回结果的时间是不一样的。具体参考下节的“AT命令的交互方式”。
需要提醒是,Quectel模块出厂默认配置是工作在自适应波特率。在模块运行的过程中,客户虽然通过“AT+IPR=xxx&W
2.2. 关机方式
客户可以使用多个方式进行关机,如下:
第一种方式,使用“AT+QPOWD=1
第二种方式,拉低“PWRKEY ”0.6~1秒进行关机(具体可以参考M10_HD_V1.00.pdf文档)。当模块出现“NORMAL POWER DOWN ”后模块关机,完全被关机需要等待一段时间(可能达8秒左右,原因是整个关机流程包含网络注销的过程)。
最后一种方式是直接拉低“EMERG_OFF ”。拉低20毫秒后模块立即关机(具体可以参考Mxx_HD文档)。这是 一种“暴力性”操作方式,使用这个方式存在一定的风险。假如系统正在写FLASH,那么这个写过程将被强制停止了。所以通常不建议客户选择该方式来操作模块关机。
2.3. AT 命令交互方式
AT命令是以交互方式运行。MCU经过串口给模块发送一个AT命令后,MCU要“等待一段时间”来“侦听”串口上是否有模块的AT命令回应,在接收到AT命令回应后,MCU才能发送下
Q u e c t e l C
o n f i d e n t i a l
一个AT命令。
MCU在发送出AT命令后需要等待多久的时间才能获取到模块对AT命令的运行结果取决于AT命令本身。如果客户运行命令“ATI
更长时间后才能获取到激活成功返回的“OK ”
(RF信号弱的情况下,这个激活动作需要更多响应时间)。
2.4. 模块低功耗和UART 的关系
模块CPU运行存在两个状态:RUNING状态和SLEEPING状态(低功耗的状态)。模块出厂
默认配置是不允许进入SLEEPING状态的。客户可以设置“AT+QSCLK=1&W
在设置“AT+QSCLK=1
需要注意的是,当模块处于SLEEPING状态时,MCU向模块发送的数据将不被模块接收,所以,在某些情况下,客户在发送AT命令前,可以先拉低DTR引脚(通过这个方法唤醒模块),在100毫秒后再在串口上发送命令,当命令执行完后,再拉高DTR引脚。
处于SLEEPING状态的模块,可以被Keyboard、外部中断、闹钟等唤醒,当然网络事件也会唤醒模块,如来电、来短信、GPRS下行数据等。
Q u e c t e l C
o n f i d e n t i a l
3. 彩信开发过程注意点
3.1. 运行彩信AT 命令时需要打开UART 硬件流控
MCU使用串口与模块进行彩信的AT命令控制时,必须打开UART的硬件流控功能。因为在彩信各操作中,涉及文本、图片文件的上传,这些都需要通过串口上传数据给模块,数据传输的“稳定性”必须由UART的硬件流控来支持。
3.2. 如何进行更加可靠的文件上传和下载
客户使用彩信发送或接收文本文件、图片文件、音频文件时,需要使用“AT+QFUPL ”命
令上传文件和 “AT+QFDWL ”命令下载文件。这些命令提供checksum的方法来保证数据传输的可靠性。
如客户使用“AT+QFUPL=
结束时,模块会上报“+QFUPL:<
upload size>,
MCU在上传文件数据的过程中,可以对上传的数据每2个字节异或(XOR)一下,最后和模块报告的
举例:如果上传的文件数据长度为9,其16进制值如下: 0x23 0x13 0x65 0x B6 0x76 0x88 0xA3 0xEF 0x55
那么,checksum计算如下:
checksum = 0x2313 XOR 0x65B6 XOR 0x7688 XOR 0xA3EF XOR 0x5500
每两个数据组成一组和另一组进行异或XOR,最后一组若不满2个字节,那么用0x00进行补充。
Q u e c t e l C
o n f i d e n t i a l
图 2: MCU上传文件参考流程图
图2中,简单描述了MCU上传一个文件的参考流程。MCU需要注意的是在发送“AT+QFUPL ”命令后,MCU需等待接收到“CONNECT ”后才可以进行下一步文件数据的发送。
同理,客户使用“AT+QFDWL=
3.3. 激活彩信服务所在网络
在进行彩信发送和彩信接收前,需要配置彩信服务所处的APN并且激活当前网络。下面以激活中国移动网络为例。
注意:开机后,激活网络的动作仅仅只需一次就可以了(除非出现异常情况,如网络被
断开了,需要重新激活的等),不需要在每次发送彩信或接收彩信前做同样的网络激活操作。
MCU: AT+CGREG? // 查询GPRS网络是否正常 模块: +CGREG:0,1 // 模块回馈网络正常模块: OK MCU: AT+QIFGCNT=1 模块: OK
Q u e c t e l C
o n f i d e n t i a l
MCU: AT+QICSGP=1,”CMWAP” // 设置中国移动彩信服务的APN 模块: OK
MCU: AT+QIREGAPP 模块: OK
MCU: AT+QIACT // 激活这个PDP 模块: OK // 激活成功
MCU: AT+QILOCIP // 获得激活后获得的IP地址,该命令为可选操作 模块: 10.155.75.29
更进一步有关网络激活的问题可以参考文档“GSM_TCPIP_AN.pdf”中相关描述。
3.4. 判断网络是否正常
不管是彩信功能还是其它使用到GPRS网络的功能,在进行数据传输前,建议使用
“AT+CGREG?
当然,客户可以开启AT+CGREG命令的上报功能(AT+CGREG=2),实时监视GPRS网络状态。
假如激活的GPRS网络在失去同步时,模块会自动上报“+PDP DEACT ”给MCU,MCU需要重新激活网络。
3.5. 发送和下载彩信过程中需要注意的一些问题
3.5.1. 发送彩信
发送彩信,操作如下:
MCU: AT+QMMSEND=1 // 启动发送当前的编辑彩信
// 返回OK需等待时间可能较长,因为模块在连接彩信 代理时需要花费一些时间 模块:OK // 返回OK表示网络连接成功
// 提示彩信发送成功信息需等待时间可能比较长,因为 模块在这期间需要发送大量数据 模块:+QMMNOTIFY: 1,0,0
// 彩信发送成功提示
Q u e c t e l C
o n f i d e n t i a l
3.5.2. 在彩信的发送过程中接收到新彩信通知
彩信的发送过程中,各个阶段需等待的时间较长。在等待过程中可能会收到新彩信通知,客户在开发时需要注意,不能丢弃这些通知信息,如下:
MCU: AT+QMMSEND=1 // 启动发送当前编辑的彩信
模块: +QMMNOTIFY: 3,2,0 // 在发送彩信返回OK前收到新彩信 模块: OK // 返回OK表示网络连接成功
模块: +QMMNOTIFY: 3,3,0 // 在发送彩信过程中收到新彩信 模块: +QMMNOTIFY: 1,0,0 // 彩信发送成功提示
3.5.3. 在彩信的下载过程中接收到新彩信通知
彩信的下载过程中,各个阶段需等待的时间较长。在等待过程中可能会收到新彩信通知,
客户在开发时需要注意,不能丢弃这些通知信息,如下:
MCU: AT+QMMRECV=1,1 // 开始下载一个新彩信
模块: +QMMNOTIFY: 3,2,0 // 在下载彩信返回OK前收到新彩信 模块: OK // 返回OK表示网络连接成功
模块: +QMMNOTIFY: 3,3,0 // 在下载过程中收到新彩信 模块: +QMMNOTIFY: 2,1,0 // 彩信下载成功提示
3.6. 删除彩信
MCU在处理完接收到的彩信后,建议及时删除该彩信,从而能够及时“空出”模块的存储空间。具体的彩信删除操作可参考“AT+QMMRM”命令描述(详见:GSM_MMS_ATC文档)。
Q u e c t e l C
o n f i d e n t i a l
3.7. 彩信发送和接收流程图
本节流程图详细描述了彩信的操作过程,流程中的注意点已经在上面章节中描述,在这里不再具体描述了。
下面为彩信操作总流程图。
图 3:彩信操作总流程图
Q u e c t e l C
o n f i d e n t i a l
图 4:彩信发送流程图
Q u e c t e l C
o n f i d e n t i a l
图 5:彩信接收流程图
Q u e c t e l C
o n f i d e n t i a l
Shanghai Quectel Wireless Solutions Co., Ltd.
Room 801, Building E, No.1618, Yishan Road, Shanghai, China 201103
Tel: +86 21 5108 2965
Mail: info@https://www.doczj.com/doc/9d7236814.html,