华为模块官网资料下载:1.华为AT指令的详解 2.华为模块使用例程3.华为模块业务流程
《模块业务集成开发示例V3.0_严禁提供第三方》
《HUAWEI ME909s Series LTE 模块AT命令手册-%28V100R001_01%2C Chinese%29》
《HUAWEI ME909s Series LTE Module Application Guide-%28V100R001_03%2C English%29》
开发步骤:
- AT+CPIN? return:+CPIN: READY 说明检测到电话卡,只要是插入电话卡,一般就会有信号的,如何没有信号一定要检测天线的连接!!!
- 之前的3G 4G模块是要通过拨号进行数据连接的,但是华为ME909是提供了一种模块化的联网方式,不通过拨号也是可以连接网络使用TCP的。在《模块业务集成开发示例》中,有更加直观的介绍。
- 网络连接的一般步骤:
- AT^IPINIT="3GNET","card","card" 进行本地的用户信息初始化,APN 这个需要和电话卡的运营商进行匹配的,但是如果是公网卡,APN即使是错误的,也没有关系,运营商会自动进行修改。如果是专网卡就不可以了,用户名和密码随意,填不填写都无所谓。设置成功后,可以通过AT^IPINIT? 进行查询,这时候模块在本地已经分配了IP地址和DNS。
- AT^IPOPEN=1,"TCP","192.168.1.1",110 进行连接TCP服务器了IP地址:192.168.1.1 端口:110。这就会完美连接。
数据的传输:
- 数据接受比较简单,^IPDATA: 1,4,data 模块会将服务器发送的数据 显示,1代表连接的通道,4代表数据长度,后边就是数据。
- 数据的发送有俩种模式:透明模式简单直接: 建立好连接后发送 AT^IPENTRANS=1 打开透明传输,直接相当与管道,
- AT指令进行发送数据,AT^IPSEND=1,"CSDN" 或者 AT^IPSENDEX=1,0,"CSDN" 第2种有三种发送数据的方式,但是数据都是以“”为识别符,所以数据中一定不能包含“”。
- AT^IPSENDEX 命令通过已建立的链接,发送用户数据,支持 3 种模式发送数据。推荐使用模式
- 模式 0 可兼容之前的 AT^IPSEND 功能。
- 模式 1 是数据强制转换模式。在这种模式下,用户请求发送的原始数据必须完成十六进制数到字符串的转换。模块在内部转换回原始数据后,再发送到另一端。例如:用户想发送 4 字节数据 0x01,0x08,0x1B,0x2C,可输入命令AT^IPSENDEX=1,1,"01081B2C",接收端将收到 4 字节数据0x01,0x08,0x1B,0x2C。
- 模式 2 是限长全字符模式。在这种模式下,用户先发送命令通知模块要发送数据的长度,等待模块返回 OK 后,用户再接着输入数据直至达到请求的长度。 如果输入的数据小于请求的长度,模块将一直等待剩余数据的输入。 如果输入的数据大于请求长度,则返回错误。
开发中注意事项
- +CUSAIP 模块会自动回发,这个是无法关闭的 AT^CURC=0 可以关闭部分回显
- 退出透传的+++指令是不要回车的,有回车换行会导致失败
- 模块不具有统计流量的功能,可以通过使用发短信,解析短息,或本地统计流量
- AT指令是有冷却时间的,发送多快会导致 +CMR ERROR: 1001 错误,尤其是AT^IPSENDEX 指令,大约100ms 就没有问题了
- 常见错误:1001 : AT指令格式错误导致或发送数据过快
- 10 :SIM卡拔出,会导致
- 1002 :与服务器连接中断,发送数据会导致
- 1003 :TCP 通道已经占用,
- 1012 :网络没有打开
- 集体的错误含义见华为说明手册。
- 对于AT^IPCLOSE=1 指令的特殊之处,无论有无网路连接,都是可以关闭返回OK,建议连接网络前,先进行关闭
AT指令
AT+CPIN? // 查询SIM卡
AT^CURC=0 // 关闭回显
AT+CREG=1 // 注册网络
AT+CREG? // 查询网络注册状态,1 和 5 为正常
AT+CSQ // 查看信号强度
AT+COPS? // 查询运营商 移动 CMCC 联通 CHN-UNICOM 电信 CHN-CT
AT+CGATT=1 // 附着网络
AT^IPINIT= // 本地网络初始化
AT^IPOPEN= // 打开网络连接
AT^IPENTRANS=1 // 打开透明传输