- MC55开发之与GPRS登陆有关的AT指令详解(独家整理!保证是你见过的MC55开发最全的笔记~~)
- 原文:http://blog.csdn.net/sdwuyulunbi/article/details/4743489
- (1)AT^SICS(Internet Connection Setup Profile)
命令格式:AT^SICS: <conProfileId>, <conParmTag>, <conParmValue>
conProfileId指连接平台,可以建立0-5共6个不同的连接。conParmTag指连接参数,包括user、passwd、apn等,conParmValue指提供的连接类型,包括GPRS0、CSD(电路交换数据业务)、none(清空)三种方式。
举例说明如下:
AT^SICS: 0,"conType","GPRS0" //连接平台0,连接方式是GPRS
AT^SICS: 0,"user","nd" //连接平台0,设置用户名
AT^SICS: 0,"passwd","nd" //连接平台0,设置密码
AT^SICS: 0,"apn","cmnet" //连接平台0,设置APN
AT^SICS: 1,"conType","" //连接平台1,空
AT^SICS: 2,"conType","" //连接平台2,空
AT^SICS: 3,"conType","" //连接平台3,空
AT^SICS: 4,"conType","" //连接平台4,空
AT^SICS: 5,"conType","" //平连接台5,空
-
(2)AT^SISS(Internet Service Setup Profile)
命令格式:AT^SISS=<srvProfileId>, <srvParmTag>, <srvParmValue>
Srvprofield是服务配置ID,可以建立0-9共10个配置ID,如说可以用AT^SISS将配置0作socket,配置1作HTTP,配置2作FTP等,然后要启用哪个服务,就用AT^SISO=0或1或2打开哪个服务,要关掉哪个服务就用AT^SISC=0或1或2关闭哪个服务。一般的数据传输用的都是socket服务,SISS指令里的ConID是指当前服务调用哪个连接配置ID,连接配置ID可以设定6个,可以用AT^SICS=0,apn,cmnet或者AT^SICS=1,apn,cmwap设定不同的APN,根据不同的应用,调用不同的连接配置。
举例说明如下:
AT^SISS: 0,"srvType","Socket" //第0个服务平台,服务类型为socket
AT^SISS: 0,"conId","0" //第0个服务平台,使用的连接平台为0
AT^SISS: 0,"address","" //第0个服务平台,目前设备的地址为空
AT^SISS: 1,"srvType","" //第1个服务平台
AT^SISS: 2,"srvType","" //第2个服务平台
AT^SISS: 3,"srvType","" //第3个服务平台
AT^SISS: 4,"srvType","" //第4个服务平台
AT^SISS: 5,"srvType","" //第5个服务平台
AT^SISS: 6,"srvType","" //第6个服务平台
AT^SISS: 7,"srvType","" //第7个服务平台
AT^SISS: 8,"srvType","" //第8个服务平台
AT^SISS: 9,"srvType","" //第9个服务平台
GPRS通讯模块MC55在使用时,需要进行通讯模块的初始化设置,校验用户名和密码,设置TCP/IP的地址与端口等。初始化时,需要MCU通过串行口按顺序给模块发送以下AT指令,设置模块及网络工作参数。
at^sics=0,conType,GPRS0 //设置GPRS工作模式
at^sics=0,user,cm //用户名称
at^sics=0,passwd,gprs //密码
at^sics=0,apn,cmnet //网络接入点名称
at^siss=1,srvType,socket // 设置服务类型为socket
at^siss=1,conId,0 //I.D.
at^siss=1,address,"socktcp://219.238.229.74:3000" //设置服务器地址及端口
at^siso=1 //打开端口,开始工作
-
(3)AT^SISO(Interner Service Open)
命令格式:AT^SISO=<srvProfileId>
启动GPRS连接。
- (4)AT^SISC(Internet Service Close)
命令格式:AT^SISC=<srvProfileId>
关闭GPRS连接。
- (5)AT^SISR(Internet Service Read Data)
命令格式:AT^SISR=<srvProfileId>, <reqReadLength>
通过GPRS发送数据,实际上是通过串行口把数据写入到GPRS通讯模块,然后由GPRS模块发送到指定的IP端口。发送时需要按照以下顺序进行操作。
写串口:at^sisw=0,10 // 使用通道0, 发送10字节的数字
读串口:^SISW: 0, 10 // 网络响应
写串口:12312312342342342345 // 发送数据
读串口:OK // 接收响应 OK
读串口:^SISW: 0, 1 //接收网络响应,收到则已经发送成功
-
(6)AT^SISW(Internet Service Write Data)
命令格式:AT^SISW=<srvProfileId>, <reqWriteLength>
接收GPRS的数据,即接收已经连接上的服务器发来的数据,可以通过串行口从GPRS模块中读取,按以下顺序进行操作:
读串口:^SISR: 0, 1 //接收到该信息则准备接收数据
写串口:at^sisr=0,20 //发送需要接收的数据长度
读串口:^SISR: 0, 20 //返回实际的数据长度
读串口:12312312342342342345 //所接收的数据
读串口:OK //接收成功
GPRS初始化和登陆的具体程序设计将在后续的博文中介绍。