SIM900A斷電重新連接過(guò)程
SIM900A模塊通過(guò)GPRS網(wǎng)絡(luò)與服務(wù)器連接,每10s匯報(bào)一次數(shù)據(jù)。連接方式是使用域名方式,服務(wù)器端是局域網(wǎng)內(nèi)的主機(jī),使用花生殼動(dòng)態(tài)域名解析,通過(guò)路由器端口轉(zhuǎn)發(fā)實(shí)現(xiàn)數(shù)據(jù)接收。設(shè)備每次向服務(wù)器發(fā)送數(shù)據(jù)
SIM900A模塊通過(guò)GPRS網(wǎng)絡(luò)與服務(wù)器連接,每10s匯報(bào)一次數(shù)據(jù)。連接方式是使用域名方式,服務(wù)器端是局域網(wǎng)內(nèi)的主機(jī),使用花生殼動(dòng)態(tài)域名解析,通過(guò)路由器端口轉(zhuǎn)發(fā)實(shí)現(xiàn)數(shù)據(jù)接收。
設(shè)備每次向服務(wù)器發(fā)送數(shù)據(jù)后會(huì)得到服務(wù)器的應(yīng)答,如果連續(xù)130s沒(méi)有得到服務(wù)器應(yīng)答,則認(rèn)為掉線,啟動(dòng)掉線重連流程。
掉線重連流程:1.關(guān)閉GPRS模塊電源,同時(shí)拉低GPRS的RST腳(避免通過(guò)該腳給GPRS供電);等待5*750ms
2.恢復(fù)RST腳高電平,打開(kāi)GPRS模塊電源
3.等待3*750ms
4.拉高GPRS模塊PWRKEY,等待5*750ms
5.拉低PWRKEY,等待750ms
6.搜索開(kāi)機(jī)字符串“RDY”或者“Call Ready”,收到則認(rèn)為開(kāi)機(jī)成功,繼續(xù)后續(xù)步驟。
7.等待5*750ms,等待GPRS模塊找到網(wǎng)絡(luò)
8.發(fā)送 AT,同步波特率
9.發(fā)送 ATE0
10.延遲16*750ms
11.發(fā)送 AT CPIN?,檢查卡
12.發(fā)送 AT CGATT=1,附著GPRS網(wǎng)絡(luò)
13.發(fā)送 AT CSQ,查詢信號(hào)質(zhì)量。返回 CSQ: 30,0
14.發(fā)送 AT CREG?,查詢網(wǎng)絡(luò)注冊(cè)情況。返回 CREG: 0,1,正常。
15.發(fā)送 AT CIPSHUT,關(guān)閉移動(dòng)場(chǎng)景,返回 SHUT OK。
16.發(fā)送 AT CSTT="CMNET","","",返回 OK
17.發(fā)送 AT CIPSTATUS,返回 STATE: IP START
18.發(fā)送 AT CIICR,等待20s沒(méi)有返回。重發(fā)該指令。等待20s左右,返回:
PDP:
ERROR
就是發(fā)送 AT CIICR 激活移動(dòng)場(chǎng)景失敗。
數(shù)據(jù)手冊(cè)上說(shuō):
AT CIICR 只有在IP START狀態(tài)下才能激活移動(dòng)場(chǎng)景,執(zhí)行后狀態(tài)變?yōu)镮P CONFIG。
在模塊接受激活場(chǎng)景操作后,如果移動(dòng)場(chǎng)景激活成功,狀態(tài)變?yōu)镮P GPRSACT,返回OK,否則返回ERROR。
我在激活移動(dòng)場(chǎng)景前狀態(tài)已經(jīng)是IP START了。
到底哪些原因可能導(dǎo)致激活移動(dòng)場(chǎng)景失敗呢?
而且AT CIICR指令的返回值手冊(cè)上只說(shuō)OK或者ERROR,并沒(méi)有說(shuō) PDP:DEACT,為什么這里會(huì)出現(xiàn)DEACT?
另外,手冊(cè)中提到:
如果上報(bào)“ PDP: DEACT”,表示gprs被network釋放,但是也需要執(zhí)行AT CIPSHUT來(lái)改變狀態(tài)。
如果沒(méi)有 attach 在 gprs 網(wǎng)絡(luò)上一定時(shí)間 或者因?yàn)槠渌?,?huì)出現(xiàn) PDP: DEACT 的 URC,這個(gè)時(shí)候需要執(zhí)行 AT CIPSHUT 恢復(fù)初始狀態(tài)。
為什么我在激活移動(dòng)場(chǎng)景之前是IP START,而發(fā)送激活移動(dòng)和場(chǎng)景命令后就會(huì)出現(xiàn) PDP:DEACT 呢?