公交車載GPS智能報站系統(tǒng)設(shè)計
2. 2 GPS 模塊
由于該GPS 模塊設(shè)置信息掉電丟失, 在每次系統(tǒng)啟動時均要對該GPS 模塊進行初始化。將模塊設(shè)置成每秒鐘輸出一次GPS 信息。
系統(tǒng)啟動后, 模塊接收GPS 信息, 然后解析出GPS 信息, 根據(jù)解析出來的經(jīng)緯度信息與數(shù)據(jù)區(qū)中存儲的站點信息比較, 計算出實際距離。如果距離到達閥值時, 啟動GPS 報站中斷。
該GPS 模塊接收模塊遵循NMEA. 0183 協(xié)議, 可以輸出多種格式的數(shù)據(jù)幀, 均以“MYM”開頭。輸出數(shù)據(jù)采用的是ASCII 碼字符, 內(nèi)容包含了緯度、經(jīng)度、速度、日期、航向及衛(wèi)星狀況等信息。幀格式達10 余種, 該系統(tǒng)所使用的僅限于$ GPRMC 定位數(shù)據(jù)幀格式。
系統(tǒng)啟動后, 通過串口對GPS 模塊進行設(shè)置,由于系統(tǒng)對實時性要求不高, 將GPS 設(shè)置為每秒鐘輸出一次RMC 數(shù)據(jù)。提取GPRMC 語句的思路是設(shè)置一個數(shù)據(jù)緩沖區(qū), 把接收到的GPS 數(shù)據(jù)都放入這個緩沖區(qū), 當(dāng)緩沖區(qū)滿了的時候就在緩沖區(qū)中查找是否接受到GPRMC 定位語句, 如果沒有接收到則重新接收GPS 數(shù)據(jù)。如果找到了GPRMC 定位語句則還要判斷該語句在緩沖區(qū)中的位置離緩沖區(qū)的最大字節(jié)數(shù)是否大于62個字節(jié)( 因為本程序中需要的GPRMC 定位語句所包含的字節(jié)數(shù)為62) , 然后通過多程序提取相關(guān)經(jīng)緯度、時間和速度等信息并通過數(shù)據(jù)處理線程進行相關(guān)處理。系統(tǒng)工作流程如圖3 所示。
圖3 系統(tǒng)工作流程
2. 3 GPRS 無線通訊模塊
由于GSM 模塊內(nèi)嵌TCP/ IP 協(xié)議, 可以直接調(diào)用AT 命令與服務(wù)器通過TCP、UDP 通訊。無線通訊分為上行數(shù)據(jù)轉(zhuǎn)換模塊和通訊模塊2 個模塊。
上行數(shù)據(jù)轉(zhuǎn)換模塊的主要功能是把接收到的GPS 數(shù)據(jù)或是相關(guān)的狀態(tài)信息轉(zhuǎn)換成約定好的數(shù)據(jù)格式以便同主信息中心的通訊。該模塊會判斷需要轉(zhuǎn)換的數(shù)據(jù)是GPS 數(shù)據(jù)信息還是相關(guān)狀態(tài)信息或是二者都有, 然后選擇相應(yīng)的轉(zhuǎn)換程序。由上面的介紹可以知道接收到的GPS 數(shù)據(jù)都是順序存放在數(shù)據(jù)緩沖區(qū)當(dāng)中的, 需要什么數(shù)據(jù)就到緩沖區(qū)中相應(yīng)的位置提取就可以了。數(shù)據(jù)都是以字符形式存放的, 所以實際要用的時候必須先轉(zhuǎn)換成整形數(shù)據(jù)。
評論