1、简介

SIM800C是一款四频GSM/GPRS模块,为城堡孔封装。其性能稳定,外观小巧,性价比高,能满足客户的多种需求。SIM800C工作频率为GSM/GPRS850/900/1800/1900MHz,可以低功耗实现语音、SMS和数据信息的传输。SIM800C尺寸为17.6*15.7*2.3mm,能适用于各种紧凑型产品设计需求。

 

2、模块配置表 

模块配置

SIM800C

BT (蓝牙)(需要软件版本支持)
FLASHSIM800C(24Mbit)
SIM800C32(32Mbit)
GSM850、 900、 1800、 1900MHz
RAM32Mbit

 

3、模块主要特性 

特性

说明

省电SLEEP模式下的耗流为0.6毫安 (AT+CFUN=0 )
GPRS 连接特性GPRS 时隙缺省为等级12
GPRS 时隙 class8, 10, 12 可选
GPRS 移动台等级B
GPRS数据特性GPRS 数据下行传输:最大 85.6 kbps
GPRS 数据上行传输:最大 85.6 kbps
编码格式: CS-1, CS-2, CS-3 和 CS-4
支持通常用于PPP连接的PAP(密码验证协议)协议
内嵌TCP/IP 协议
支持分组广播控制信道(PBCCH)
SIM卡接口支持的SIM卡: 1.8V, 3V
串口默认支持一路标准的全功能串口
可以通过串口发送AT命令和数据
支持RTS/CTS硬件流控,并且可以通过软件打开或者关闭流控功能
支持符合GSM 07.10协议的串口复用功能
支持从1200bps到115200bps 的自动波特率检测功能
SIM应用工具包支持 SAT class 3, GSM 11.14 Release 99

 

4、常用功能介绍:

 

4.1、GSM短信收发

  • 1、短信接收发功能指令:

          “AT+CMGF=1\r” //配置短信形式
          “AT+CMGL=\”ALL\”\r” //读取所有短信
          “AT+CSCS=\”GSM\”\r” //进行CSCS设置
          “AT+CMGS=” //后面添加信息中心短信号码
          “AT+CMGD=” //进行短信删除

  • 2、AT+CMGF=mode:
    mode:
    0 PDU模式
    1 TXT文本模式(经常用的)
  •  3、AT+CMGL=”ALL”

          标识列出所有的信息,包括已读和未读的。或者是
          AT+CMGL=“REC UNREAD”
          会列举出所有未读的消息
          AT+CMGL=“REC READ”
          会列举出已读的消息。
          后面列举的形式:包括短信状态(已读 未读),短信Num,消息发送方号码,消息发送时间,最后面就是紧跟着信息的内容了。

  • 4、AT+CSCS=”GSM”

          设置信息服务发送模块,其实这个可以不设置也可以发送,默认的就是这个模式。

  • 5、AT+CMGS= 号码

          这个命令执行完之后,就像其他传输一样会出现一个‘>’符号,后面就是你要写入的信息内容。注意这个结束有点奇怪。要在短信内容后面添加0x1A 0x1D才可以结束。对应的是Ctrl+Z的按键的ASCII码。如果不加的话,短信是永远不会结束的。

  • 6、AT+CMGD=NUM

          NUM:就是短信的序列号,当短消息发过来,其短信的序列号就固定了,短信息对应的序列号不会随着你删除一条短信,其他短信息序列号随着改动。

  • 7、AT+CMGR=NUM

          NUM:同上,就是短信息的序列号,固定读取这个序列号的短信内容。
          以上的用法利用好了,足矣做一个短信收发的小功能了。前提要把GSM基本的功能配齐全,例如AT+CFUN=1,AT+CREG=1检测GSM入网成功才可以,其他标准用法就不一一说了,看看AT指令集应该都会用了。

 

4.2、GPRS数据传输

 这个2G的数据流量功能,与GSM网络还不一样,大家千万不要认为这2个东西走的是一个网络通道。

 GSM是全球移动通讯系统(Global System for Mobile Communications)的简称;GPRS是通用分组无线业务(General Packet Radio Service)的简称。

 GPRS是在GSM基础上发展起来的一种分组交换的数据承载和传输方式,与原有的GSM比较,GPRS在数据业务的承载和支持上具有非常明显的优势:GPRS可以更有效的利用无线网络信道资源,特别适合突发性、频繁的小流量数据传输;GPRS支持的数据传输的速率更高,理论峰值达115kbps;GPRS计费方式更加灵活,可以支持按数据流量来进行计费;GPRS还能支持用户在进行数据传输的同时进行语音通话等等。

  •  1、相关命令

           “AT+CGATT=1\r”
           “AT+CGATT?\r”

  • 2、AT+CGATT=NUM

           NUM:0表示与当前GPRS网络分离,1表示要附着现有检测到的GPRS网络。

  • 3、AT+CGATT?

           表示检测当前的GPRS网络附着状态,成功返回1 失败返回0
           当然以上的成功条件是sim卡已经插入,并且射频天线正常,sim卡开通了数据流量,否则会无法附着GPRS网络。
           当然上面的一步就是为了下面的TCP/IP服务做准备的。

 

4.3、TCP/IP协议数据传输

 模块已经内置了TCP/IP协议栈,很强大。

 AT+CSTT=\”” //设置APN账号,用户名,密码(后面如果说sim卡没有设置用户和密码就不需要填写)
“AT+CIICR\r” //唤醒无线连接 进行连接用GPRS或者CSD
“AT+CIFSR\r” //获取联网后 本地分配的IP地址
“AT+SAPBR=3,1,\”Contype\”,\”GPRS\”\r”//基于IP的应用程序的承载设置
“AT+SAPBR=3,1,\”APN\”,\”” //设置网络承载的APN服务
“AT+CIPSTART=\”TCP\”,\”” //进行网络传输服务的选择
“AT+CIPSEND=length” //进行数据的传输写入
“AT+CIPCLOSE=1\r ” //关闭TCP/IP连接通道
以上顺序不要有颠倒,否则其中配置会报错。

  •  1、AT+CSTT=

           这个是来配置sim卡运营商的APN账号,用户名和密码
           如果用户名和密码没有设置可以不用写,只写一个APN就可以

  • 2、AT+CIICR

           这个是开启无线射频模块的指令。

  • 3、AT+CIFSR

           这个是在进行入网后,根据运营商网络获取基站分配给终端的IP地址。

  • 4、AT+SAPBR=3,1,”Contype”,”GPRS”

           设置无线连接数据的承载形式,为GPRS,也可以设置成CSD,但一般设置都是GPRS.

  • 5、AT+SAPBR=3,1,”APN”,“运营商的APN名称”

           这一步很关键,这是你的数据最终是由哪家运营商接入的公网设置。例如:移动2G:CMMTM/CMNET/CMIOT等,联通2G:UNINET UNWAP等,沃达丰网络2G例如:internet.gdsp/ppinternetd.gdsp/spe.inetd3.gdsp.当然这个沃达丰是国际运营商,世界好多国家也都有支持和合作,再进行 国际业务开拓时候,这个APN是一定要修改的,要根据使用的沃达丰的sim卡类型来修改。APN有沃达丰人员提供。

  • 6、”AT+CIPSTART=”TCP”,”IP地址”

           这个就是描述了我们终端模块使用的是什么协议,还有要连接的服务端的IP地址,也可以是域名。里面继承了DNS服务,可以转换的。
           支持填写UDP/TCP.

  • 7、AT+CIPSEND=length

           这个命令是描述你要本次发向服务器的数据量多少,以字节为单位。
           等这条命令执行完成之后,会出现‘>’这个符号,等你输入的字符数据长度等于你上一步要发送的数据长度时候,他会自动进行发送,不用加任何的结束标志符,不想短信一样还要加0x1A 0x1D这样的结束符。

  • 8、AT+CIPCLOSE=1

           数据发送成功之后,模块会返回senk ok标识。
           这时候如果没有更多的数据发送这时候可以使用上面的指令进行通道断开连接。
以上步骤最好不要有顺序颠倒,按照配置一步步来最后可以实现与服务器端的收发功能。

 

4.4、LBS信息的定位

 

4.5、串口发送AT指令

  •  AT+HTTPINIT ————————–>初始化HTTP 服务
  • AT+HTTPTERM ————————->结束HTTP 服务
  • AT+HTTPPARA ————————->设置HTTP 参数值
  • AT+HTTPDATA ————————->HTTP 写数据
  • AT+HTTPACTION ———————->HTTP 方式激活
  • AT+HTTPREAD ————————->查询HTTP 服务响应
  • AT+HTTPSCONT ———————–>保存HTTP 应用上下文
  • AT+HTTPSTATUS ———————->读取HTTP 状态
  • 文档链接地址https://download.csdn.net/download/caofengtao1314/12530046

5、实验一:验证SIM800是否将通过GET命令获取的http数据放在自己的内存中

      

使用格西烽火串口助手 发送AT指令的顺  格西烽火下载链接http://www.geshe.com/zh-cn/products/gbeacon

得到的日志应答

[2020-06-12 18:11:34.260 T]AT

[2020-06-12 18:11:34.291 R]
OK

[2020-06-12 18:11:35.274 T]ATE0

[2020-06-12 18:11:35.305 R]
OK

[2020-06-12 18:11:36.288 T]AT+CPIN?

[2020-06-12 18:11:36.319 R]
+CPIN: READY

OK

[2020-06-12 18:11:37.302 T]AT+CSQ

[2020-06-12 18:11:37.333 R]
+CSQ: 20,0

OK

[2020-06-12 18:11:38.316 T]AT+CREG?

[2020-06-12 18:11:38.363 R]
+CREG: 0,1

OK

[2020-06-12 18:11:39.330 T]AT+CGATT?

[2020-06-12 18:11:39.361 R]
+CGATT: 1

OK

[2020-06-12 18:11:40.344 T]AT+CIPSHUT

[2020-06-12 18:11:40.375 R]
SHUT OK

[2020-06-12 18:11:41.358 T]AT+SAPBR=0,1

[2020-06-12 18:11:42.123 R]
OK

[2020-06-12 18:11:42.372 T]AT+SAPBR=3,1,"CONTYPE","GPRS"

[2020-06-12 18:11:42.404 R]
OK

[2020-06-12 18:11:43.386 T]AT+SAPBR=1,1

[2020-06-12 18:11:43.979 R]
OK

[2020-06-12 18:11:44.400 T]AT+SAPBR=2,1

[2020-06-12 18:11:44.432 R]
+SAPBR: 1,1,"10.23.253.176"

OK

[2020-06-12 18:11:45.414 T]AT+HTTPTERM

[2020-06-12 18:11:45.446 R]
OK

[2020-06-12 18:11:46.428 T]AT+HTTPINIT

[2020-06-12 18:11:46.475 R]
OK

[2020-06-12 18:11:47.442 T]AT+HTTPPARA="CID",1

[2020-06-12 18:11:47.474 R]
OK

[2020-06-12 18:11:48.456 T]AT+HTTPPARA="URL","http://114.115.223.53:8080/star_link/upgrade/get_upgrade_file?path=upgrade/liclS100/1.1.4/upgrade.bin"

[2020-06-12 18:11:48.503 R]
OK

[2020-06-12 18:11:48.957 T]AT+HTTPACTION=0

[2020-06-12 18:11:49.003 R]
OK

[2020-06-12 18:12:38.878 R]
+HTTPACTION: 0,200,265620

 

等待五分钟以后,关闭当前串口助手打开另个一串口助手

实验一总结:

  • 可以直接从模块中读取数据,说明数据确实是先存储在模组中的。
  • 从模块搬移开始时间[2020-06-12 18:16:31.268]# SEND HEX>

从模块搬移结束时间[2020-06-12 18:16:54.361]# RECV ASCII>

花费:23.093秒

 

6、实验二:验证SIM800通过http下载264KB的数据,需要的时间

使用格西烽火串口助手发送AT指令 格西烽火下载链接http://www.geshe.com/zh-cn/products/gbeacon

[2020-06-12 19:24:41.839 T]AT

[2020-06-12 19:24:41.874 R]
OK

[2020-06-12 19:24:42.839 T]ATE0

[2020-06-12 19:24:42.864 R]
OK

[2020-06-12 19:24:43.839 T]AT+CPIN?

[2020-06-12 19:24:43.872 R]
+CPIN: READY

OK

[2020-06-12 19:24:44.839 T]AT+CSQ

[2020-06-12 19:24:44.865 R]
+CSQ: 21,0

OK

[2020-06-12 19:24:45.840 T]AT+CREG?

[2020-06-12 19:24:45.870 R]
+CREG: 0,1

OK

[2020-06-12 19:24:46.840 T]AT+CGATT?

[2020-06-12 19:24:46.861 R]
+CGATT: 1

OK

[2020-06-12 19:24:47.840 T]AT+CIPSHUT

[2020-06-12 19:24:47.865 R]
SHUT OK

[2020-06-12 19:24:48.839 T]AT+SAPBR=0,1

[2020-06-12 19:24:49.609 R]
OK

[2020-06-12 19:24:49.839 T]AT+SAPBR=3,1,"CONTYPE","GPRS"

[2020-06-12 19:24:49.870 R]
OK

[2020-06-12 19:24:50.840 T]AT+SAPBR=1,1

[2020-06-12 19:24:51.375 R]
OK

[2020-06-12 19:24:51.839 T]AT+SAPBR=2,1

[2020-06-12 19:24:51.867 R]
+SAPBR: 1,1,"10.92.26.140"

OK

[2020-06-12 19:24:52.839 T]AT+HTTPTERM

[2020-06-12 19:24:52.880 R]
OK

[2020-06-12 19:24:53.840 T]AT+HTTPINIT

[2020-06-12 19:24:53.870 R]
OK

[2020-06-12 19:24:54.839 T]AT+HTTPPARA="CID",1

[2020-06-12 19:24:54.864 R]
OK

[2020-06-12 19:24:55.840 T]AT+HTTPPARA="URL","http://114.115.223.53:8080/star_link/upgrade/get_upgrade_file?path=upgrade/liclS100/1.1.4/upgrade.bin"

[2020-06-12 19:24:55.880 R]
OK

[2020-06-12 19:24:56.840 T]AT+HTTPACTION=0

[2020-06-12 19:24:56.875 R]
OK

[2020-06-12 19:25:06.841 T]AT+HTTPREAD

[2020-06-12 19:25:06.873 R]
OK

[2020-06-12 19:25:16.843 T]AT+HTTPREAD

[2020-06-12 19:25:16.878 R]
OK

[2020-06-12 19:25:21.841 T]AT+HTTPREAD

[2020-06-12 19:25:21.861 R]
OK

[2020-06-12 19:25:26.842 T]AT+HTTPREAD

[2020-06-12 19:25:26.873 R]
OK

[2020-06-12 19:25:31.842 T]AT+HTTPREAD

[2020-06-12 19:25:31.867 R]
OK

[2020-06-12 19:25:36.843 T]AT+HTTPREAD

[2020-06-12 19:25:36.874 R]
OK

[2020-06-12 19:25:39.577 R]
+HTTPACTION: 0,200,265620

实验二总结:

SIM800信号Qos质量为21,0 通过HTTP下载264KB的升级包,需要的时间大约为62秒误差2秒左右

 

总结:

      通过实验一与试验二,可以证明发送HTTP的GET请求以后,SIM800C模块会先将数据下载到模块里面,模块有4M字节的RAM,然后等待用户通过HTTPREAD命令将数据从模块中读出

 

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐