公交車載GPS智能報站系統(tǒng)設(shè)計
文章出處:http://www.sgrivertours.com 作者:中國一卡通收錄 人氣: 發(fā)表時間:2011年12月09日
近年來, 隨著城市公交事業(yè)的迅速發(fā)展, 國內(nèi)公交車報站的方式已經(jīng)有了很大改善, 由傳統(tǒng)的售票員喊話報站逐漸變?yōu)轳{駛員使用報站器手動報站。
雖然手動報站器使用比較方便, 但是因為駕駛員需要在保證安全駕駛的前提下進行報站, 所以經(jīng)常出現(xiàn)報站不及時, 甚至錯報、漏報的現(xiàn)象, 而且讓駕駛員在駕駛過程中進行報站也存在安全隱患。采用自動報站的方式可以大大減輕駕駛員的工作量, 促進公交系統(tǒng)的現(xiàn)代化進程。要實現(xiàn)自動報站, 需要實時測出公交車的位置, 以確定公交車是否已經(jīng)到達(dá)站點。利用GPS 可以確定公交車的地理位置, 只需把當(dāng)前位置同公交站點的位置數(shù)據(jù)( 經(jīng)、緯度) 相比較, 就可以知道公交車是否到達(dá)站點, 使得報站系統(tǒng)具有一定的智能性。這種基于GPS 的智能報站系統(tǒng)能夠杜絕駕駛員駕駛過程中因兼顧報站器而帶來的隱患。特別適合因汽車行業(yè)高速發(fā)展而導(dǎo)致交通問題日益嚴(yán)峻的我國國情, 還可以在重點線路上加入對城市景點風(fēng)貌的相關(guān)介紹。該系統(tǒng)在GPS 導(dǎo)航領(lǐng)域和商業(yè)領(lǐng)域都有著非常大的潛力, 具有廣闊的發(fā)展前景。
1 系統(tǒng)方案
基于GPS 的公交車智能報站系統(tǒng)是移動通訊技術(shù)和GPS 技術(shù)的結(jié)合, 整個系統(tǒng)由S3C24l0 ARM9( 進階精簡指令集機器) 開發(fā)板、SIM548C GPS⁄GPRS模塊、語音播報模塊、AT89S52 單片機以及OCMJ5X10B 的LED( 發(fā)光二極管) 背光寬溫黃綠屏等器件組成。GSM⁄GPS 模塊由GPS 分模塊與GSM( 全球移動通訊系統(tǒng)) 分模塊組成。GPS 模塊負(fù)責(zé)GPS 數(shù)據(jù)接收。公交車在行進過程中, GPS 模塊的實測信息同已存儲的位置信息進行比較即可進行自動報站, 無需人為干預(yù), 還可實現(xiàn)在固定位置播放某些特定信息, 如乘車提示、廣告信息等。GSM 模塊用于公交車與調(diào)度室之間的數(shù)據(jù)通訊, 實現(xiàn)公交車的聯(lián)合調(diào)度, 實現(xiàn)調(diào)度中心對公交車的調(diào)度功能。
語音播報模塊負(fù)責(zé)語音播放, 提供進出站以及提示信息等語音的播放。單片機模塊控制按鍵掃描以及LCD 顯示。
1.1 硬件設(shè)計
系統(tǒng)硬件部分主要由S3C2410 ARM9 開發(fā)板、GPS⁄GSM 模塊、功放模塊、顯示模塊、語音播放模塊及相應(yīng)的外圍電路組成。GPRS 模塊和GPS 模塊均通過RS232( 串口) 與ARM 處理器相連, 而LCD( 液晶顯示器) 模塊則由單片機控制通過串口與ARM 通訊, 語音播放模塊通過IIS ( Inter IC Sound) 、SPI( 串行外設(shè)接口) 與ARM 通訊。硬件連接方式如圖1 所示。
圖1 系統(tǒng)硬件結(jié)構(gòu)
GSM⁄GPS 模塊采用SIMCOM 公司的GPS⁄GSM 模塊, 該模塊是一款四頻GSM⁄GPRS( 通用分組無線服務(wù)技術(shù)) 無線模塊, 同時支持SiRF Star III AGPS 技術(shù)。
GSM⁄GPRS 與AGPS 技術(shù)的整合使得該模塊可以滿足GPS跟蹤、導(dǎo)航、車輛船舶等設(shè)備和資產(chǎn)的監(jiān)控管理以及其他GPS 的應(yīng)用。鍵盤掃描和屏幕顯示由單片機做數(shù)據(jù)處理。鍵盤顯示板主要實現(xiàn)鍵盤掃描、液晶屏幕的顯示并與ARM處理器模塊進行通訊。硬件系統(tǒng)整體框圖如圖2所示。
圖2 系統(tǒng)組成
1.2 軟件總體設(shè)計
系統(tǒng)的主要功能由ARM 控制, 采用C 語言進行編程, 采用多線程處理相關(guān)功能模塊。執(zhí)行相關(guān)過程如下: 系統(tǒng)初始化完成后, 依據(jù)GPS 定位信息和系統(tǒng)存儲的線路信息計算位置、報站和讀取相關(guān)信息, 并由ARM 控制車內(nèi)的顯示模塊進行顯示、語音播放以及向數(shù)據(jù)中心進行數(shù)據(jù)傳送。 2 設(shè)計實現(xiàn) 2.1 系統(tǒng)初始化 在系統(tǒng)運行之前, 必須用軟件程序?qū)Ω鞑糠诌M行初始化。初始化包括以下幾個部分:
ARM 以及系統(tǒng)初始化;
顯示按鍵模塊初始化;
外部器件、接口初始化: 主要是GPS、GPRS和語音芯片等設(shè)備的初始化;
軟件系統(tǒng)的初始化: 設(shè)置全局變量、指針和數(shù)組、數(shù)據(jù)結(jié)構(gòu)以及公交信息初始化。
系統(tǒng)軟件部分主要是在主程序中檢測GPS 信息, 確定公交車當(dāng)前的地理位置, 然后決定是否播放語音信息。同時還需要實現(xiàn)按鍵所要求的功能, 如切換到手動播報等。本系統(tǒng)的軟件部分開發(fā)工作是基于Linux 開發(fā)環(huán)境實現(xiàn)的。根據(jù)系統(tǒng)要完成的功能和各個模塊的運行情況, 主程序部分采用了多線程以及消息隊列的方式, 可以及時接收GPS 數(shù)據(jù)。
因為只使用GPRMC 幀的數(shù)據(jù), 串行通訊的數(shù)據(jù)量不大, 通訊及數(shù)據(jù)處理過程比較快, 系統(tǒng)能夠及時播放報站及其他語音信息。公交車途經(jīng)的各站點的經(jīng)緯度數(shù)據(jù)需要預(yù)先測量好, 并存放到系統(tǒng)的數(shù)據(jù)區(qū), 作為對比參考使用。GPRS 的信息通過串行口傳遞, 采用查詢法, 按鍵也使用查詢方式進行接收, 以確定按下的是哪個功能鍵。軟件采用C 語言編寫, 調(diào)試成功后燒錄到Flash 中, 實現(xiàn)脫機運行。
2.2 GPS 模塊
由于該GPS 模塊設(shè)置信息掉電丟失, 在每次系統(tǒng)啟動時均要對該GPS 模塊進行初始化。將模塊設(shè)置成每秒鐘輸出一次GPS 信息。
系統(tǒng)啟動后, 模塊接收GPS 信息, 然后解析出GPS 信息, 根據(jù)解析出來的經(jīng)緯度信息與數(shù)據(jù)區(qū)中存儲的站點信息比較, 計算出實際距離。如果距離到達(dá)閥值時, 啟動GPS 報站中斷。
該GPS 模塊接收模塊遵循NMEA.0183 協(xié)議, 可以輸出多種格式的數(shù)據(jù)幀, 均以“MYM”開頭。輸出數(shù)據(jù)采用的是ASCII 碼字符, 內(nèi)容包含了緯度、經(jīng)度、速度、日期、航向及衛(wèi)星狀況等信息。幀格式達(dá)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ù)。
下行數(shù)據(jù)轉(zhuǎn)換模塊的功能與上行數(shù)據(jù)轉(zhuǎn)化模塊的功能相反, 它將主信息中心發(fā)送的命令進行識別后發(fā)送給車載終端, 并通知用戶界面模塊顯示。
通訊模塊的主要任務(wù)是完成車載終端與監(jiān)控中心的通訊, 它既可以通過GPRS 網(wǎng)絡(luò)實現(xiàn)與主信息中心的無線通訊。如果車載終端與上位機的距離隔的很遠(yuǎn)可以直接通過GPRS 網(wǎng)絡(luò)與監(jiān)控中心進行連接, 而且通過SIM548C 模塊連接GPRS 網(wǎng)絡(luò)與監(jiān)控中心連接也非常方便, 只需向GPRS 模塊發(fā)送幾條AT 命令就可以了, 但是監(jiān)控中心必須有因特網(wǎng)的固定IP。啟動車載終端的同時SIM548C 模塊也會被啟動, 這是模塊會自動連接上GPRS 網(wǎng)絡(luò)進入命令模式。撥號成功以后就連接上了GPRS 網(wǎng)絡(luò)了, 然后對與SIM548C 模塊連接的串口進行讀寫操作就可以實現(xiàn)與監(jiān)控中心的無線通訊。
在測試中發(fā)現(xiàn), 由于無線信號存在差異, 在某些網(wǎng)絡(luò)信號較差的地方容易與主信息中心失去網(wǎng)絡(luò)連接。為解決這一問題, 在系統(tǒng)中采用多線程監(jiān)視網(wǎng)絡(luò)連接狀態(tài), 一旦失去網(wǎng)絡(luò)連接, 立即與主信息中心重新連接。
2.4 語音播放模塊
語音播放采用飛利浦SPI 接口音頻芯片, 驅(qū)動為Linux 下的聲卡設(shè)備。通過S3C2410 SPI 控制音頻芯片, 通過IIS 傳送音頻數(shù)據(jù), 最終將音頻芯片驅(qū)動成系統(tǒng)下的標(biāo)準(zhǔn)聲卡設(shè)備。
在語音報站時, 需要為公交車上的喇叭提供語音信號, 功放電路采用MAXIM 功放模塊, 該功放模塊采用單端輸入的方式, 輸入的負(fù)端直接接地。
該功放模塊為單聲道⁄立體聲、D 類音頻功率放大器, 能向8 立體聲負(fù)載提供高達(dá)2 × 21W 功率,或向單聲道4 負(fù)載提供高達(dá)1 ×42 W 功率, 效率高達(dá)87%。該功放模塊兼具D 類放大器的效率和AB 類放大器的性能, 無需大體積散熱器, 降低了功耗。該功放模塊采用+ 10~ + 18 V 單電源供電, 可驅(qū)動BTL 配置的負(fù)載。
用于播放報站、廣告和信息等語音的播放器選用基于開源的播放器, 在源代碼的基礎(chǔ)上進行修改,形成適合播放短小音頻的播放線程, 為系統(tǒng)體統(tǒng)音頻播放功能。
2.5 顯示按鍵模塊
鍵盤掃描和屏幕顯示由51 單片機做數(shù)據(jù)處理。
鍵盤顯示板主要實現(xiàn)鍵盤掃描、液晶屏幕的顯示并與ARM 處理器模塊進行通訊。
顯示按鍵模塊通過串口與數(shù)據(jù)處理模塊通訊,將掃描到按鍵發(fā)送給數(shù)據(jù)處理模塊進行處理, 同時接受數(shù)據(jù)處理模塊的顯示數(shù)據(jù)命令, 在相應(yīng)的液晶屏幕位置顯示數(shù)據(jù), 從而實現(xiàn)車載報站系統(tǒng)的人機交互功能, 實現(xiàn)公交車的調(diào)度管理功能。
基于GPS 和GPRS 的公交自動報站系統(tǒng), 具定位功能, GPRS 無線通訊功能, 能實現(xiàn)自動報站、調(diào)度、信息收發(fā)和中心通訊, 具有USB 接口等優(yōu)點。
大大降低了公交員工的勞動強度, 提高了公交管理的科學(xué)性。
3 結(jié)束語
公交車載GPS 智能報站系統(tǒng)采用GPS 定位技術(shù)、無線通訊技術(shù), 具有體積小、播報準(zhǔn)確等特點。
能實現(xiàn)自動報站、調(diào)度、信息收發(fā)和中心通訊等功能。通過USB 接口可使系統(tǒng)存儲多條線路, 方便公交車臨時更換運營線路; 利用按鍵和廣播等作為人機交互界面, 方便乘客接收相關(guān)信息; 可提供廣告等增值業(yè)務(wù)。系統(tǒng)為建立完整的智能公交調(diào)度管理系統(tǒng)提供了關(guān)鍵的公交車載系統(tǒng)。