SIM900A调试之波特率设置
1、波特率
1.1自适应波特率
当SIM900A模块处于自适应波特率下,模块开机后,会从串口发出一串字符,在上位机不同的波特率下,会显示出不同的字符,以115200为例子,模块开机后,上位机会收到如下信息,其中0x49是英文字母”I”的ASCII码:
然后我们发送AT指令,即可把模块的波特率同步成我们上位机的波特率(能同步成功的波特率是特定的几个:1200、2400、4800、9600、19200、38400、57600、115200)同步好后,会出现以下界面,返回“OK”,自适应下同步出来的波特率,在关机后就失效,下次启动还是自适应波特率。
1.2确定波特率
当SIM900A模块处于确定波特率下,模块开机后,若上位机在正确的波特率下,那么就会收到如下的信息,其中“RDY”代表模块启动成功,可以接收AT指令,“+CREG: 1”代表SIM卡注册网络成功。
2、GPRS心跳包
GPRS连上TCP后,若长期不发送数据,会发生连接在但不能发数据的情况。这是运营商为了保护网络资源而设定的。我们需要定时发生数据包以维持连接一直可用,这个数据包也叫做心跳包。心跳包的间隔随着地区运营商不同而不同,可根据实验情况确定,网络繁忙地区一般为几分钟。当SIM发送心跳包或者其他数据,服务器没有回应的时候,我们不需要继续等待数据,认为这次的连接已失效,主动断开连接,转入重连程序。
系统有这么一个徐需求:服务器决定SIM900A何时上传数据,上传什么数据,由于服务器不能主动去连接SIM900A,且SIM900A是运营商的内网,服务器是外网,要实现这样的需求,有两个方案:
1)SIM900A一直连接TCP,用心跳包维持;
2)SIM900A平时与服务器是断开连接的,要连接时,服务器发送短信,SIM900A然后连接TCP。
我使用的是方案1,用定时中断。不一定是SIM向服务器发送心跳包,服务器定时向SIM发送数据也是可以维持的。
心跳包的作用可以不仅仅是维持连接,我们可以在心跳包里附加一点有价值的状态信息等。
在我调试这个模块的时候,经常连接不上,后来发现是信号的问题,信号低于10,很难通信成功。
3、网络时间同步
如果SIM模块是带有网络时间功能的,就可以不使用MCU的RTC了。授时服务器可以多准备几个,防止某一个服务器挂掉。另外,还可以根据ntp协议,做一个自己的授时服务器。
SIM900A基站定位调试详细步骤
第1步:ATE1握手并设置回显
第2步:AT+CGMR查看SIM900的版本信号
第3步:AT+CSQ查看信号质量
第4步:AT+CREG?查看GSM是否注册成功
第5步:AT+CGREG?查看GPRS是否注册成功
第6步:AT+CGATT?查看GPRS附着状态
第7步:AT+SAPBR=3,1,“CONTYPE”,“GPRS”设置网络参数
第8步:AT+SAPBR=3,1,“APN”,“CMWAP”//设置APN
第9步:AT+SAPBR=1,1//激活网络场景
第10步:AT+SAPBR=2,1//获取分配IP地址
第11步:AT+CIPGSMLOC=1,1获得定位信息
第12步:AT+CIPGSMLOC=2,1获得时间信息
第13步:AT+SAPBR=0,1关闭网络场景
-
波特率
+关注
关注
2文章
307浏览量
34120 -
SIM900A
+关注
关注
3文章
54浏览量
35253
发布评论请先 登录
相关推荐
评论