主题:
上海毅加智能设备有限公司 AT扩展指令集
1
AT 扩展指令集
目 录
1.Overview.…….......................................................….................................... ..................2
2. Detail……………………………………………………………………………...…….3
2.1.1. AT+CIPSTART................................….......................................................3
2.1.2. AT+CIPSEND....................................….....................................................4
2.1.3. AT+CIPCLOSE...........................…............................................................4
2.1.4. AT+CIPSHUT................................….........................................................5
2.1.5. AT+CLPORT........…..................................................................................5
2.1.6. AT+CSTT...............….................................................................................5
2.1.7. AT+CIICR.......…........................................................................................6
2.1.8. AT+CIFSR.........…......................................................................................6
2.1.9. AT+CDNSCFG...…....................................................................................7
2.1.10. AT+CDNSGIP..........................................................................................7
2.1.11. AT+CIPSTATUS......................................................................................7
2.1.12. AT+ CDNSORIP.......................................................................................8
2.1.13. AT+ CIPHEAD...............….................................................................….8
2.1.14. AT+ CIPATS....................…................................................................….9
2.1.15. AT+ CIPSPRT....................…............................................................….10
2.1.16. AT+ CIPSERVER................…...............................................................10
2.1.17. AT+ CIPCSGP.......................….............................................................11
2.1.18. AT+ CIPCCON........................…...........................................................12
3. Example.........................................................................................................................13
上海毅加智能设备有限公司 AT扩展指令集
2
1. Overview
命令 功能描述
AT+CIPSTART 连接到服务器
AT+CIPSEND 发送数据
AT+CIPCLOSE 关闭TCP/UDP连接
AT+CIPSHUT 关闭移动场景
AT+CLPORT 设置本地端口号
AT+CSTT 启动任务并设置APN, user name, password
AT+CIICR 激活移动场景
AT+CIFSR 获得本地IP地址
AT+CIPSTATUS 查询目前状态
AT+CDNSCFG 配置DNS的IP地址
AT+CDNSGIP 域名解析, 获取IP地址
AT+CDNSORIP 设置连接域名或IP地址
AT+CIPHEAD 设置接收的数据头
AT+CIPATS 设置自动发送时间
AT+CIPSPRT 设置在AT+CIPSEND后是否返回发送提示符>
AT+CIPSERVER 配置为服务器
AT+CIPCSGP 设置为CSD或GPRS连接以及相关参数
AT+CIPCCON 设置当前的连接
上海毅加智能设备有限公司 AT扩展指令集
3
2. Details
2.1.1. AT+CIPSTART
AT+CIPSTART 建立TCP连接或注册UDP端口号
Execute command
AT+CIPSTART =("TCP",
"UDP"), ("IP ADDRESS",
"DOMAIN NAME"), "PORT"
Response
命令正确返回OK
错误返回ERROR
Parameter: 对TCP连接:
AT+CIPSTART="TCP", "IP ADDRESS/DOMAIN NAME",
" PORT"
SERVER可以是IP地址或者已在INTERNET上注册过的域名
命令正确返回OK,错误返回ERROR
连接成功返回CONNECT OK
失败先返回STATE 状态码,后再返回CONNECT FAIL
对UDP连接:
AT+CIPSTART="UDP", "IP ADDRESS/DOMAIN NAME",
" PORT"
SERVER可以是IP地址或者已在INTERNET上注册过的域名
命令正确返回OK,错误返回ERROR
连接成功返回CONNECT OK
失败先返回STATE 状态码,后再返回CONNECT FAIL
在AT V 0设置下,只返回状态码0-8
Reference STATE 状态说明
0 IP INITIAL 初始化
1 IP START 启动任务
2 IP CONFIG 配置场景
3 IP IND 接受场景配置
4 IP GPRSACT 场景已激活
5 IP STATUS 获得本地IP地址
6 TCP/UDP CONNEXTING 与SERVER建立连接阶段
7 IP CLOSE 连接已关闭
8 CONNECT OK 连接建立成功
上海毅加智能设备有限公司 AT扩展指令集
4
AT+CIPSTART只有在IP_INITIAL,IP_CLOSE,IP_STATUS状态下
才可以进行连接的建立,连接建立成功后的状态为CONNECT OK;
连接失败,则处在失败的状态上.
2.1.2. AT+CIPSEND
AT+CIPSEND 发送数据
Execute command
AT+CIPSEND
返回">"后写入需发送的数据,
按CTRL+Z开始发送
Response
此命令用来发送可变长度的数据
连接未建立或已被断开, 返回ERROR
如果数据发送成功, 返回SEND OK
如果数据发送失败, 返回SEND FAIL:
Set Command
AT+CIPSEND=
Response
此命令用来发送固定长度的数据
连接未建立或已被断开, 返回ERROR
如果数据发送成功, 返回SEND OK
如果数据发送失败, 返回SEND FAIL:
Parameter
需要一次发送的数据长度
发送失败错误代码
Reference Note
注:1.每次传送的数据字节数应≤1024 bytes.
2.通过AT+CIPATS可以在设定的时间内自动发送数据
3.只有在连接已建立的状态下才可发送数据,否则返回ERROR
2.1.3. AT+CIPCLOSE
AT+CIPCLOSE 关闭TCP或UDP连接
Execute command
AT+CIPCLOSE
Response
关闭成功返回CLOSE OK
关闭失败返回ERROR
Reference AT+CIPCLOSE只有在TCP/UDP CONNECTING或CONNEXT OK状态下才
关闭连接,否则认为关闭失败返回ERROR,关闭后的状态为IP CLOSE.
上海毅加智能设备有限公司 AT扩展指令集
5
2.1.4. AT+CIPSHUT
AT+CIPSHUT 关闭移动场景
Execute command
AT+CIPSHUT
Response
关闭成功返回SHUT OK
关闭失败返回ERROR
Reference 只要状态不是出在IP INITIAL情况下,都可以用AT+CIPSHUT正
常关闭移动场景,关闭后状态为IP INITIAL.
2.1.5. AT+CLPORT
AT+CLPORT 设置本地端口
Response
命令正确返回OK,
错误返回ERROR.
Execute command
AT+CLPORT=("TCP",
"UDP"),"PORT"
Parameter
设置本地TCP端口
AT+CLPORT="TCP","PORT"
返回:命令正确返回OK, 错误返回ERROR.
设置本地UDP端口
AT + C L P O RT ="UDP","PORT"
返回:命令正确返回OK, 错误返回ERROR.
Reference
2.1.6. AT+CSTT
AT+CSTT 启动任务并设置APN,USER ID,PASSWORD
Execute command
AT+CSTT=,
Response
命令正确返回OK,
错误返回ERROR.
上海毅加智能设备有限公司 AT扩展指令集
6
,
Parameter
在建立连接之前,或者移动场景关闭后要建立连接,有一个初
始化的过程,这个过程分为启动任务,激活移动场景,获取本
地IP地址三个步骤.这三个步骤可以由AT + C I P S TA RT一次完
成,也可以通过AT + C S T T,AT + C I I C R,AT + C I F S R分步完成.
在这些步骤执行完成后,AT + C I P S TA RT只进行连接操作.
AT + C S T T只有在IP INITIAL状态下才启动任务,执行后状态变
为IP START.
Reference
注:直接输入AT+CSTT命令, 按照缺省值APN="CMNET",
USER ID="",PASSWORD=""
2.1.7. AT+CIICR
AT+CIICR 激活移动场景
Execute command
AT+CIICR
Response
命令正确返回OK,
错误返回ERROR.
Reference AT+CIICR只有在IP START下才激活移动场景,执行后状态变
为IP CONFIG.如果激活操作被模块接受,状态变为IP IND;
在模块接受激活场景操作后,如果移动场景激活成功,状态变
为IP GPRSACT,返回OK,否则返回ERROR.
2.1.8. AT+CIFSR
AT+CIFSR 获得本地IP地址
Execute command
AT+CIFSR
Response
命令正确返回本地IP地址
错误返回ERROR
Reference 只有在移动场景已激活的状态:IP GPRSACT,TCP/UDP
CONNECTING,CONNECT OK,IP CLOSE下才可以通过AT+CIFSR
查询得到本地IP地址,否则返回ERROR.
只有在状态为IP GPRSACT下才将状态改变为IP STATUS,既已获得本
地IP地址.
上海毅加智能设备有限公司 AT扩展指令集
7
2.1.9. AT+CDNSCFG
AT+CDNSCFG 配置DNS
Response
命令正确返回OK
Execute command
AT+CDNSCFG=,
[] Parameter
Primary DNS IP Address
Secondary DNS IP Address
Reference
2.1.10. AT+CDNSGIP
AT+CDNSGIP 域名解析
Response
此命令用来解析域名的IP
如果解析成功,该域名的IP地址
如果解析失败,返回ERROR:
3 INVALID PARAMETER
4 NETWORK ERROR
5 NO SERVER
6 TIMEOUT
7 NO CONFIG
8 NO MEMORY
9 BAD MSG
Execute command
AT+CDNSGIP=
Parameter
Internet上注册的域名
Reference
2.1.11. AT+CIPSTATUS
AT+CIPSTATUS 查询状态
上海毅加智能设备有限公司 AT扩展指令集
8
Execute command
AT+CIPSTATUS
Response
State
0 IP INITIAL 初始化
1 IP START 启动任务
2 IP CONFIG 配置场景
3 IP IND 接受场景配置
4 IP GPRSACT 场景已激活
5 IP STATUS 获得本地IP地址
6 TCP/UDP CONNECTING 与SERVER建立连接阶段
7 IP CLOSE 连接已关闭
8 CONNECT OK 连接建立成功
2.1.12. AT+ CDNSORIP
AT+CDNSORIP 设置连接的SERVER端为IP地址还是域名
Query command
AT+CDNSORIP
Response
此命令用来查询连接的SERVER端为IP地址还是域名
Set Command
AT+ CDNSORIP=
Response
此命令用来设置连接的SERVER端为IP地址还是域名
命令正确返回OK
命令错误返回ERROR
0 设置连接的SERVER端为IP 地址
1 设置连接的SERVER端为域名
Reference Note
2.1.13. AT+ CIPHEAD
AT+CIPHEAD 设置接收数据的IP头
Query command
AT+CIPHEAD
Response
此命令用来查询是否设置了IP头
Test command
AT+CIPHEAD=
Response
+CIPHEAD:(0-NO HEADER,1-ADD HEADER)
上海毅加智能设备有限公司 AT扩展指令集
9
Set Command
AT+ CIPHEAD=
Response
此命令用来设置接收数据的IP头
命令正确返回OK
命令错误返回ERROR
0 未设置IP头
1 设置IP头
IP头格式为:"+IPD(data length):"
Reference Note
2.1.14. AT+ CIPATS
AT+CIPATS 设置自动发送时间
Query command
AT+CIPATS
Test command
AT+CIPATS=
Response
此命令用来查询是否设置了自动发送时间
Response
+CIPATS:(0-NOT AUTO SEND,1-AUTO SEND)
Set Command
AT +
CIPATS=,
Response
此命令用来设置自动发送数据
命令正确返回OK
命令错误返回ERROR
0 未设置自动发送数据
1 设置自动发送数据
mode为1情况下,要设置自动发送数据时间,以秒为单位.
设置自动发送时间后,如果在设定的时间内未发送数据,则模
块自动发送,可以继续对模块AT命令操作.
Reference Note
上海毅加智能设备有限公司 AT扩展指令集
10
2.1.15. AT+ CIPSPRT
AT+CIPSPRT 设置在AT+CIPSEND后是否给出>提示
Query command
AT+CIPSPRT
Test command
AT+CIPSPRT=
Response
此命令用来查询在AT+CIPSEND后是否给出>提示
Response
+CIPSPRT: (0-NOT PROMPT,1-PROMPT)
Set Command
AT +
CIPSPRT=
Response
此命令用来设置在AT+CIPSEND后是否给出>提示
命令正确返回OK
命令错误返回ERROR
0 AT+CIPSEND后无提示,直接输入要发送数据
1 AT+CIPSEND后有>提示
Reference Note
2.1.16. AT+ CIPSERVER
AT+CIPSERVER 配置为服务器
Test command
AT+CIPSERVER
Response
查询是否配置为服务器,
0 表示未配置
1 表示已经配置
Execute Command
AT+ CIPSERVER
Response
此命令配置为SERVER,
命令正确返回OK
配置成功返回SERVER OK
失败返回STATE 状态码
当有客户端发起连接,则建立TCP连接,显示REMOTE IP:.
Reference Note
上海毅加智能设备有限公司 AT扩展指令集
11
2.1.17. AT+ CIPCSGP
AT+CIPCSGP 设置为CSD或GPRS连接
Query command
AT+CIPCSGP
Response
Test command
AT+CIPCSGP=
Response
+CIPCSGP: 0-CSD,DIAL NUMBER,USER
NAME,PASSWORD,RATE(0,3)
+CIPCSGP: 1-GPRS,APN,USER NAME,PASSWORD
Set Command
AT +
CIPCSGP=,[
,,,,,,]
Response
此命令配置为CSD或GPRS连接.
0 CSD连接
1 GPRS连接
CSD连接下要设置的参数:
拨打号码 默认为17201
用户名 默认为172
密码 默认为172
连接速率 0 2400bps
1 4800bps
2 9600bps
3 14400bps
默认为9600bps
GPRS连接下要设置的参数:
访问接入点 默认为CMNET
用户名 默认为空
密码 默认为空
Reference Note
上海毅加智能设备有限公司 AT扩展指令集
12
2.1.18. AT+ CIPCCON
AT+CIPCCON 设置当前连接
Query command
AT+CIPCCON
Response
OK
Test command
AT+CIPCCON=
Response
+CIPCCON: 1-CLIENT,2-SERVER
Set Command
AT +
CIPCCON=
Response
设置当前连接
若已与远端服务器建立连接,设为1返回OK,否则返
回ERROR
若已有远端客户与本地服务器建立连接,设为2返回
OK,否则返回ERROR
1 客户端连接
2 服务器连接
Reference Note
上海毅加智能设备有限公司 AT扩展指令集
13
3. Example
一. 连接到SERVER端IP地址并开始传送数据
1. AT+CIPSTART="TCP", "18.187.2.150","2020" 连接到SERVER
2. AT+CIPSEND 开始发送数据
3. AT+CIPCLOSE 关闭TCP连接
4. AT+CIPSHUT 关闭移动场景
二. 连接到SERVER端域名并开始传送数据
1. AT+CDNSCFG="211.136.18.171" 配置DNS (以上海为例)
2. AT+CDNSORIP=1 设置连接的SERVER端为域名
3. AT+CIPSTART="TCP","", "2020" 连接到SERVER
4. AT+CIPSEND 开始发送数据
5. AT+CIPCLOSE 关闭TCP连接
三. 作为SERVER端,等待客户端建立连接
1. AT+CIPCSGP=0,"17201","172","172", 2 设置为CSD连接,拨17201,用户名和密码皆为
172,连接速率为9600
2. AT+CLPORT="TCP","2020" 设置SERVER的端口号为2020
3. AT+ CIPSERVER 启动SERVER开始侦听2020端口,启动成功后
返回CONNECT 9600和SERVER OK.如有远端
客户与本地服务器建立连接,则建立TCP连接,
显示REMOTE IP:
前一段时间玩了一下gprs模块,在众多的模块中选择了国产的德信的piml-900/18000,就是一个字-便宜。技术支持做的也很好。说说我的调试过程吧。
现在的gprs模块都封装的很好,与mcu连接的管脚我只用了rxd,txd作为数据线,另外加上几条控制线,控制模块的工作状态。操作起来很简单。
什么进口国产,够我们用就行了。
一.模块的选择
其实在选择模块时并没有考虑价钱,反正有人报销。网上流行的有的虽有gprs功能,但没有tcp/ip协议(mc35i),要不就是价钱高,gr47, wavecom2046.小弟当时也是没信息,第一次接触这无线传输的东东,总怕出问题。除了问题怎么办,找技术支持。找国内的总比国外的方便吧。所以选择了德信的piml模块。价钱也便宜,后来证实,技术支持做的确实好。
二.模块的电源设计:
在众多的GPRS模块中,模块的电源范围都在3.3-4.2V之间,推荐使用电压3.6-3.8V,峰峰值电流1700mA 。德信的PIML-900/1800模块的推荐的典型电源电压为3.8V,有2A的电流输出能力。由于周围网络很好,所以我在实际的使用中电源设计采用的是LM2941,输出电流为1A,调整电阻使输出在3.8v左右,模块工作正常。在周围网络不好的情况下,模块不停的搜寻网络,这时将消耗较大的电流,此时应采用输出电流能力较大的电源芯片。为了防止模块电源电压产生突然的降低导致模块死机,在靠近模块的输入端加了一个470uf的电容,增强模块在发送数据期间供电电压的稳定性。
用这种电源芯片,发短信,打电话,发送数据均没出现问题。
注意:如果电路中没有设计充电电池,应把电源接到模块的VBAT管脚。我在应用时第一次接到了CHG_IN管脚,充电电路工作,模块发热量很大。
下面的这段程序适合给新手,初步了解用哪些at指令对模块进行基本的操作
以下为对模块操作的具体程序、流程及用到的AT指令:
该函数完成通过串口向模块写入字符串(AT命令)的功能
void writeGSM(uchar *str)
{
uchar i=0;
while(str[i]!=0x00) //判断是否为字符串结尾
{
TXBUF0=str[i]; //不是则将字符发给串口
while((UTCTL0&0x01)==0); //等待数据发送完成
i++;
}
}
2.1 短消息传输的控制
2.1.1 设置短信格式为文本格式
在用模块发送短信前要对短信格式进行设置 指令为 AT+CMGF=1
发送(取消)短消息AT指令: AT+CMGS=“目标卡号”
>HELLO WORLD!(Esc)
短信例程:
writeGSM("AT+CMGF=1\r");
writeGSM("AT+CMGS=\"13126520830\"\r"); //发送手机号 writeGSM ("HELLO CAU"); //发送短信内容 TXBUF0=0x1a; //发送CTRL+Z
2.2 GPRS数据传输的控制
2.2.1 首先定义PDP移动场景
AT+CGDCONT=1,"IP","CMNET"
2.2.2 激活PDP,获得IP地址
AT+CGATT=1
2.2.3 设置模块连接方式为GPRS连接,接入点为“CMNET”
AT+CIPCSGP=1,"CMNET"
2.2.4 建立连接
AT+CIPSTART="TCP/UDP",221.216.163.44,2020
TCP/UDP指明是TCP连接还是UDP连接,221.216.163.44是SEVER端的IP地址,2020为端口,连接成功后模块返回 CONNECT OK
2.2.5 发送数据
AT+CIPSEND 返回“>”后输入要传输的数据,再发送CTRL+Z
即将所要发送的数据发送到指定IP的服务器上
2.2.6 关闭TCP连接
AT+CIPCLOSE
只有在TCP/UDP处于CONNECTING 或者CONNECT OK的状态下才返回OK,否则返回ERROR
2.2.7 关闭移动场景
AT+CIPSHUT
注意:服务器端的IP地址,我当时是在学校做实验,服务器打开了,但是模块就是连不上,后来分析才知道(高手一看就知道),我的ip属于私网的,非公网IP,估计是找不到网络入口,所以找了一个同学,他们是研究所,有一个公网ip地址,把服务器接收软件传给他,他打开接收软件,我在学校这边进行连接, ok了。