以模块MC55为例,MC55是SIEMENS(西门子)公司推出的GSM/GPRS三频模块,主要为语音传输、短消息和GPRS数据业务提供无线接口。MC55集成了完整的RF射频电路和GSM的基带处理器,十分适合开发一些基于GSM/GPRS的无线应用产品,如监控、调度、车载、遥控、远程测量、定位和导航等领域的系统和产品,应用范围十分广泛。用户只需投入少量的研发费用,就可以在较短的研发周期内集成自己的应用系统。

常用的AT命令如下表所示:

功能名称

AT命令

解释

厂家认证

AT+CGMI

获得厂家的标识

模式认证

AT+CGMM

查询支持频段

修订认证

AT+CGMR

查询软件版本

生产序号

AT+CGSN

查询IMEI序号

查询IMSI

AT+CIMI

查询国际移动电话支持认证

卡的认证

AT+CCID

查询SIM的序列号

关闭电源

AT+CPOE

暂停模块的运行

报告错误

AT+CMEE

报告模块设备错误

拨号命令

ATD

拨打电话号码

挂机命令

ATH

挂机

回应呼叫

ATA

当模块被呼叫时回应呼叫

关机命令

AT+CPOF

停止GSM软件堆栈和硬件层

声音控制

AT+CRSL

设定电话铃声的声音级别

时钟管理

AT+CCLK

设置或获得真实时钟

警报管理

AT+CALA

设定警报日期

设定电话机能

AT+CFUN

选择移动站点的机能水平

网络连接设置

AT^SICS

创建Internet连接到GPRS

网络服务设置

AT^SISS

指定服务器类型

开启网络服务

AT^SISO

启动GPRS连接

关闭网络服务

AT^SISC

关闭GPRS连接

读网络数据

AT^SISR

读取GPRS接收数据

写网络数据

AT^SISW

通过GPRS发送数据

接着是与GPRS有关的AT指令详解

  • (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通信首先需要与服务器建立GPRS连接,即实现GPRS登陆。在登陆前需要使用AT指令对无线通信模块MC55进行初始化设置,设置内容包括连接方式、服务类型、接入点名称、服务器地址及端口。初始化完成后即可开启网络服务,模块会自动登录到服务器的相应端口上,登陆完成后就可以进行数据通信了。

具体实现程序如下所示:

(1)OutPut("at^sics=1,contype,gprs0/r/0");   //连接平台1,设置网络连接类型为gprs方式

// void OutPut(char *strings)函数的功能是通过串口向MC55输出数据

检测到通信模块返回“OK”则设置成功。

(2)OutPut("at^sics=1,apn,cmnet");           //设置apn为cmnet

检测到通信模块返回“OK”则设置成功。

(3)OutPut("at^siss=2,srvtype,socket/r/0");  //第2个服务平台,设置服务类型为socket

检测到通信模块返回“OK”则设置成功。

(4)OutPut("at^siss=2,conid,1/r/0");         //第2个服务平台,使用的连接平台为1

检测到通信模块返回“OK”则设置成功。

(5)OutPut("at^siss=2,address,socktcp://219.238.229.74:1200");//设置服务器地址及端口

检测到通信模块返回“OK”则设置成功。

(6)OutPut("at^siso=2/r/0");         //打开网络服务,MC55登陆到服务器相应的端口上

检测到通信模块返回“OK”则设置成功。

(7)OutPut("at^sisw=2,10/r/0");      //使用平台2向服务器发送10字节的数据包

if(strstr(buffer,"^SISW:")!=0) //检测到模块返回数据“^SISW:”后通过模块将需要发送的数据发送到服务器相应端口上

OutPut("1234567890/r/0");        //发送数据包

通过GPRS发送数据,实际上是通过串行口把数据写入到GPRS通讯模块,然后由GPRS模块发送到指定的IP端口。

(8)写串口:at^sisr=0,20          //发送需要接收的数据长度 
         读串口:^SISR: 0, 20          //返回实际的数据长度 
         读串口:12312312342342342345  //接收的数据

接收GPRS的数据,即接收已经连接上的服务器发来的数据,可以通过串行口从GPRS模块中读取。

(9)OutPut("at^sisc=2/r/0");      //关闭网络服务,MC55从服务器断开

转自http://blog.csdn.net/sdwuyulunbi/archive/2009/10/29/4743075.aspx

西门子GPRS模块开发详解相关推荐

  1. STM32开发 -- 惯导模块开发详解

    如需转载请注明出处:https://juyou.blog.csdn.net/article/details/93476976 STM32开发 – GPS模块开发详解 这篇文章已经对于GPS模块开发讲得 ...

  2. STM32开发 -- 4G模块开发详解(3)

    如需转载请注明出处:https://blog.csdn.net/qq_29350001/article/details/81782682 上面两篇文章,基本上把软硬件部分讲完了.接下来我们就看一下收发 ...

  3. STM32开发 -- 4G模块开发详解(2)

    如需转载请注明出处:https://blog.csdn.net/qq_29350001/article/details/81773782 二.软件部分 1.初始化 模块的波特率为115200,8位数据 ...

  4. STM32开发 -- 4G模块开发详解(1)

    如需转载注明出处:https://blog.csdn.net/qq_29350001/article/details/81671534 这部分一直再看,资料都已经整理好了,但是一直没有汇总.接下来就详 ...

  5. STM32开发 -- 4G模块开发详解(4)

    如需转载请注明出处:https://blog.csdn.net/qq_29350001/article/details/82110375 前面用了三篇来讲基础知识,根据这些东西可以简单的实现4G模块的 ...

  6. STM32开发 -- GPS模块开发详解

    如需转载请注明出处:https://blog.csdn.net/qq_29350001/article/details/82110535 一.了解硬件 我使用的GPS模块型号为UBX-M8030 参看 ...

  7. Springboot分模块开发详解(2):建立子工程

    1.创建base-entity 选中base工程,右键创建一个新的maven工程 自动选择了base这个目录存放子工程 创建后,pom.xml修改成如下内容: <?xml version=&qu ...

  8. 【OpenCV 4开发详解】深度神经网络应用实例

    本文首发于"小白学视觉"微信公众号,欢迎关注公众号 本文作者为小白,版权归人民邮电出版社发行所有,禁止转载,侵权必究! 经过几个月的努力,小白终于完成了市面上第一本OpenCV 4 ...

  9. 【OpenCV 4开发详解】图像二值化

    本文首发于"小白学视觉"微信公众号,欢迎关注公众号 本文作者为小白,版权归人民邮电出版社发行所有,禁止转载,侵权必究! 经过几个月的努力,小白终于完成了市面上第一本OpenCV 4 ...

最新文章

  1. with admin option /with grant option
  2. 为你详细解读HTTP请求头(header)的具体含意
  3. LeetCode - 695. Max Area of Island (Java)
  4. Method Overloading
  5. 网站安全狗”响应内容保护“网页错误返回页面优化功能介绍
  6. repeated call of attachBrowserEvent
  7. 【模式识别】Fisher线性判别实验报告之MATLAB仿真
  8. 被3亿农民力挺,仍惨遭封杀!中国最冤产品,出路在哪?
  9. 《健康报》携手健康之路帮助医院医生免费搭建微官网
  10. pip添加国内镜像源
  11. 大数据系统如何提供抗击疫情信息
  12. IOS关于UIViewController之间的切换
  13. 关于未来IOT和移动APP集成的五个预言
  14. java实现界面化,java实现图形化界面
  15. 如何在word左侧显示目录
  16. 大学生静态HTML网页源码 我的校园网页设计成品 学校班级网页制作模板 web课程设计 dreamweaver网页作业
  17. 个子矮s弯如何看点打方向图解_科目二s弯怎么看点打方向技巧图解
  18. 苹果电脑为什么要换 CPU:Intel 与 ARM 的战争
  19. 对学生任务博客的评分练习
  20. MATLAB使用指南

热门文章

  1. 安卓:ListView组件实现微信通讯录效果(我的王者队友们)
  2. Android端乐橙云SDK集成
  3. 给Hexon升了个级
  4. anychat java开发文档_AnyChat视频云平台开发指南
  5. android kotlin中sp的使用
  6. 菌群16S测序引物的选择
  7. 关于gyp ERR node-gyp gyp ERR node -v错误记录
  8. 使用HBuilder打包Android和iOS,并上线
  9. ClickPaaS完成B轮融资,加速构建生态体系
  10. 镇魂歌~Qt5字符串