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文章
310瀏覽量
34616 -
SIM900A
+關注
關注
3文章
54瀏覽量
35534
發布評論請先 登錄
相關推薦
使用GU900E替換SIM900A注意事項。
51單片機與sim900a 的通信問題
請問SIM900A模塊返回的數據是什么意思?
基于SIM900A的應用與實現
為什么單片機與SIM900A進行通信的時候波特率是9600?
sim900a http,SIM900A訪問HTTP的方法

評論