GPRS模块
SIM800C模块介绍
SIM800C模块可支持4频GSM/GPRS,工作的频段为:GSM850、EGSM900、DCS1800和PCS1900 MHz。
模块的尺寸只有17.6 * 15.7 * 2.3 mm,几乎可以满足所有用户应用中的对空间尺寸的要求。
模块的物理接口为42引脚的SMT焊盘,提供了模块的所有硬件接口。
- 两路串口(一路三线串口与一路全功能串口)
- 一路USB接口,便于用户调试、下载软件
- 一路音频接口,包含麦克风输入和受话器输出
- 可编程的通用输入输出接口(GPIO)
- 一路SIM卡接口
- 支持BT功能(需要软件版本支持)
- SIM800C采用省电技术设计,在休眠模式下耗电流低至0.6毫安。
更多介绍可以参考官方的手册
简单来说,SIM800C模块是一个联网模块,需要搭配手机卡使用,可以将单片机的数据上传到云端服务器,可在公网上传输
SIM800C模块与ESP-12S模块的比较
SIM800C模块与ESP-12S模块一样是联网的模块,通过联网模块就可以实现云端远程控制单片机,都是通过AT指令来控制,但两者还是有点区别
ESP-12S模块实验时是在局域网内的通信,模块充当的客户端与服务器连接的是同一个路由器IP地址,所以在同一个网络下的客户端与服务器可以随时通信
SIM800C模块需要搭配手机卡使用,所以不局限于局域网通信,可实现公网通信,这样就不必让客户端与服务器处在同一个网络下
模块引脚功能
PWRKEY:开关机信号,当单片机引脚给高电平,三极管导通,模块的PWRKEY引脚被拉低,模块开机
STATUS:模块状态引脚,没开机低电平,开机之后变高电平
NETLIGUT:网络指示灯,模块开机后通过熄灭时间长短判断模块处于哪种工作状态
UART1_TXD、UART2_RXD:串口通信引脚,模块与单片机是通过串口进行通信的
UART1_DCD:TCP连接状态引脚,当连接TCP服务器时为低电平,与TCP服务器断开则为高电平
SIM_xxx:SIM卡相关引脚,在实战板上还有个插手机电话卡的卡座,模块通过这些引脚与卡座引脚通信
GSM_ANT:GSM天线引脚,模块使用需要一根天线,并没有板载天线
流控制
这里讲到的“流”,当然指的是数据流。数据在两个串口之间传输时,常常会出现丢失数据的现象,或者两台计算机的处理速度不同,如台式机与单片机之间的通讯,接收端数据缓冲区已满,则此时继续发送来的数据就会丢失。我们在网络上通过modem进行数据传输,这个问题就尤为突出。流控制能解决这个问题,当接收端数据处理不过来时,就发出“不再接收”的信号,发送端就停止发送,直到收到“可以继续发送”的信号再发送数据。因此流控制可以控制数据传输的进程,防止数据的丢失。 pc机中常用的两种流控制是硬件流控制(包括rts/cts、dtr/dsr等)和软件流控制xon/xoff(继续/停止)
流控对于模块(DCE)和终端(DTE)之间数据传输的可靠性非常重要。比如如下应用场景:数据发送端发送速率快于接收端,当接收端缓冲过载,接收端可以通知发送端暂停数据发送,直到接收端缓冲区有足够空间继续处理数据。
SIM800系列模块默认未启用流控功能。可以使用命令“AT+IFC”来开启硬件流控或软件流控功能。
1、软件流控(XON/XOFF)
软件流控通过发送不同特征字符来暂停(XOFF,0x13)和恢复(XON,0x11)数据传输。常用于非全功能串口模式下。
命令“AT+IFC=1,1”开启软件流控。
开启软件流控功能后,PC端串口通信工具(比如 ProComm Plus,Hyper terminal或者WinFax Pro)也必须同时开启软件流控功能。
注意:
当有二进制数据被发送或接收时,应关闭软件流控功能,因为DTE可能把二进制数据当作软件流控字符。
2、硬件流控(RTS/CTS flow control)
硬件流控制必须将相应的电缆线连上。硬件流控制常用方式为:RTS/CTS(请求发送/清除发送)流控制和DTR/DSR(数据终端就绪/数据设置就绪)流控制。
硬件流控通过RTS/CTS信号来实现。当接收缓存快满的时候,模块(DCE)把CTS信号设置为无效,数据传输被暂停;当模块的接收缓存可以接收更多数据时,CTS信号重新被设置为有效。
命令“AT+IFC=2,2”开启硬件流控功能。
要实现硬件流控功能,请确保RTS/CTS线的正确连接。
注意:
终端(DTE)发送数据时,必须拉低DTR引脚;否则,CTS引脚状态变化可能被忽略。