AT扩展指令集

AT扩展指令集
主题: 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 


****************************************************************************
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 设置当前的连接 


****************************************************************************
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+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. 

****************************************************************************
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. 


****************************************************************************

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地址. 

****************************************************************************
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 查询状态 

****************************************************************************
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) 

****************************************************************************
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 

****************************************************************************
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 

****************************************************************************
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 

****************************************************************************
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 

******************************************************************************************************
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","www.263.net", "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<CR>  
发送(取消)短消息AT指令:    AT+CMGS=“目标卡号”<CR>
                               >HELLO WORLD!<ctrl+z>(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<CR> 返回“>”后输入要传输的数据,再发送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了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值