1 引言
在車輛定位系統中,GPS 系統是目前世界上應用得最為廣泛的,其功能作用已廣為人所接受。它能為用戶提供全球、全天候、高精度、連續實時的導航、定位和授時。
隨著移動 GPRS 業務的開展,GPRS 在無線傳輸中已經成為一種成熟可靠的傳輸方式。
GPRS 網本身支持TCP/IP、X.25 等協議,可以直接與IP 網或X.25 網互通,實現GPRS 終端的上網功能。它可以保證永遠在線,而且是按照流量記費,不傳輸數據時不計費,同時中國移動公司的眾多基站和可靠的頻段信號能夠保證信息傳輸及時、無誤。
2 系統總體結構和實現功能介紹
本系統基于 GPS/GPRS 進行設計,主要以出租車公司為服務對象,總體結構如圖1:
主要實現的功能為:
出租車終端利用 GPS 模塊實時地接收其定位、速度、時間等信息,然后通過GPRS 模塊將這些信息上傳至監控中心,在遇到緊急情況時,向監控中心發出求救警報。
監控中心將接收到的信息寫入數據庫,對車輛的位置、速度進行實時的監控,必要時發出警告信息,處理客戶預訂業務時向出租車發送調度信息。
3 整體系統的設計
本系統的設計主要由三部分組成:出租車終端軟硬件設計、監控中心軟件設計以及車載終端和監控中心通信程序設計。
3.1 出租車終端的軟硬件設計
3.1.1 出租車終端的硬件設計
該終端硬件部分主要由主控芯片、GPRS 模塊、GPS 模塊組成。
主控芯片選用三星公司生產的 S3C2410 處理器,該處理器采用ARM920T 內核,S3C2410外圍電路包含電源模塊、64M SDRAM、64M FLASH、RS232 串行口、USB 接口、4×4 鍵盤接口模塊、LCD 模塊等。
GPS 模塊選用的是Compass Systems 公司生產的GM611 滑鼠型GPS 衛星接收機,它具有超高靈敏度、超低功耗和超小體積的特點,而且帶強力磁性,擁有嚴格的防水設計,可將其直接吸附于車頂使用,2D 定位精度小于10 米。該GPS 模塊與主板的串口1 連接,上電后以每秒鐘一次的頻率將定位信息傳送給處理器。
GPRS 模塊選用的是WAVECOM 公司生產的WISMO QUIK Q2406A 模塊,它是GSM/GPRS 900/1800 雙頻模塊,與標準的AT 指令兼容。它與S3C2410 主板的串口2 連接,實現GPRS 撥號上網。
3.1.2 出租車終端的軟件設計
該終端的軟件設計主要包含兩個部分:GPS 定位信息的接收和GPRS 撥號上網的實現。
由于終端移植了嵌入式Linux(內核版本為2.6.16),它提供豐富的設備支持和成熟的系統管理能力,因而大大地簡化了軟件的開發過程。
(1)GPS 定位信息接收的實現
該過程主要通過 Linux 串口通信編程來實現,在實現過程中的關鍵處理部分是:串口屬性設置以及對接收到的GPS 信息的解析。
由于 GPS 模塊輸出的每幀數據都是以換行符結束,所以在設置串口屬性的時候可將其模式設為規范(Canonical)模式,即每次讀取串口時先將數據保存到緩存,直到讀到換行符時所有數據才會被傳輸,這樣就能保證每次讀取的是整幀數據,方便之后的幀頭判斷和信息解析。接下來還要根據GPS 模塊的默認參數配置串口傳輸速率為4800bps,8 位數據位,1 位停止位,無校驗位,串口屬性就設置完畢了。
GPS 模塊的輸出幀遵循NMEA0183 標準,具有多種格式,主要由幀頭進行標志,包括$GPGGA、$GPGLL、$GPGSA、 $GPGSV、$GPGMC、$GPVTG 六種幀,分別描述不同信息,一般來說$GPRMC 幀就可以提供我們所關心的數據,如經緯度、速度、時間等,所以只需對該幀信息進行提取。$GPRMC 幀的格式如圖2:
在每次讀取的時候首先需要對幀頭進行判斷是否是$GPRMC 幀,然后再根據幀中的逗號位置,對該幀數據進行解析,提取所需的定位、速度和時間信息。
(2)GPRS 撥號上網的實現
該部分是整個系統的關鍵,是實現出租車終端和監控中心進行無線通信的基礎,該過程主要依靠PPP(點到點協議)來實現,它可以實現在串行鏈路上創建和運行IP 協議。
為了能夠實現PPP 連接,首先需要配置內核使其支持PPP,然后通過交叉編譯生成ARM平臺下的pppd 和chat 應用程序。PPP 連接的建立和維持需要由pppd 和內核中的PPP 驅動程序配合完成。chat 程序主要用于和GPRS 模塊進行交互,完成撥號和各項配置。執行pppd的時候將首先調用chat 程序進行撥號連接,PPP 鏈路的建立流程如圖3:
首先執行 chat 程序對中國移動的接入號碼進行撥號,建立與PPP 服務器端的物理連接,然后進行LCP 鏈路的協商,主要協商一些鏈路參數(數據幀格式、最大傳輸單元等),協商成功后將建立與PPP 服務器端的數據鏈路,接著向PPP 服務器端提供用戶和口令進行PAP驗證,在未通過驗證之前是不能進行任何數據傳輸的,最后,進行IPCP 協商,主要進行IP地址的協商,協商成功后,出租車終端將獲得GGSN(GPRS 網關)為其動態分配的IP 地址。PPP 鏈路就建立完成了,之后出租車終端就相當于公網上的一臺主機,可以自由地與Internet 的其他主機進行數據交互了。
3.2 監控中心的軟件設計
監控中心是位于出租車公司的控制中心,它與公司服務器進行局域網連接如圖1,服務器具有固定公網(Internet)IP 地址,而監控中心的IP 地址為局域網IP,公網上的主機(出租車終端)是不能通過該IP 來訪問監控中心的,要想實現這個過程,必須在公司服務器設置端口映射,端口映射的原理是將擁有固定IP 地址的服務器端口映射到處于局域網的某臺主機端口上,如圖4:
上圖中,將服務器的1111 端口映射到局域網內監控中心的2222 端口,這樣外網主機發往服務器1111 端口的數據都將被重定向到監控中心的2222 端口,監控中心只要開放并監聽該端口,即可獲得相關數據。
監控中心主機采用 Debian Linux 操作系統,Debian 是一套為計算機設計的自由操作系統,它包含一萬五千多個軟件包,都是自由開源的,并被包裝成容易安裝的deb 格式,Debian是一款功能強大的Linux 操作系統。
監控中心的軟件設計主要完成以下兩個任務:接收出租車終端發送過來的信息并寫入數據庫;設計圖形管理軟件,方便各項功能的實現。
(1)接收出租車終端發送過來的定位信息并寫入數據庫
設計一個守護(Daemon)進程,它可以實現在操作系統啟動后一直在后臺運行,不受控制終端的控制,該進程主要用于監聽本監控中心的指定端口,接收由出租車終端發送過來的定位、速度和時間信息,然后將所有信息寫入POSTGRESQL8.0 數據庫[4]。POSTGRESQL數據庫是世界上可以獲得開放源碼的最先進的數據庫系統,支持幾乎所有 SQL 構件(包括子查詢,事務和用戶定義類型和函數),并且為多種開發語言提供接口(包括 C,C++,Java 等)。
Linux 系統下采用C 語言對該數據庫進行操作,主要用到以下三個函數:
PQconnectdb(“dbname=psql_data”)用于打開名為psql_data 的POSTGRESQL 數據庫;PQexec(PQconnectdb(),sql_query)用于對打開的數據庫執行各種SQL 語句;PQfinish()用于關閉打開的數據庫。
(2)圖形管理軟件設計
監控中心采用 GTK+2.0 進行圖形管理軟件的開發,GTK+2.0 采用面向對象的C 語言開發框架,盡管完全用 C 寫成的,但它是基于類和回調函數的思想實現的,應用它可以輕松的在Linux 系統平臺的X WINDOW 環境下開發出漂亮的圖形界面應用程序。
該管理軟件采用雙線程編程,實現的功能如圖5:
POSTGRESQL 數據庫中保存的信息是各項功能實現的基礎。由于GTK+2.0 開發可以完全使用C 語言來實現,所以在一個GTK+2.0 程序中可以很方便的進行POSTGRESQL 數據庫的各項操作。需要注意的是在使用GTK+2.0 開發中文軟件的時候要將輸入字符設置為utf-8 的格式,否則軟件不能正常顯示中文字。
3.3 車載終端和監控中心通信程序設計
出租車終端已獲得 IP 實現撥號上網,監控中心也進行了服務器端的端口映射,兩者都成為了連上Internet 的主機,接下來就可以通過Socket(嵌套字)實現兩主機進程間的通信。
在網絡通信過程中,各主機的進程是由與其綁定的端口號來進行區分的。
出租車終端和監控中心采用 client 和server 模型,因為數據發送比較頻繁,所以使用UDP 協議進行數據包的傳輸,以提高傳輸速率。首先由車載終端進程創建一個Socket,接著向監控中心指定端口發起連接請求。監控中心進程也創建一個Socket,并將其綁定到該指定端口,接著對該端口進行監聽,一旦檢測到連接請求,隨即調用connect 函數建立該連接,從而在兩主機上的Socket 之間建立連接,之后雙方進程之間就可以通過send()和recv()函數進行數據的發送和接收操作了。
4 結論
本文提出了一套完整的出租車監控調度系統設計方案,充分利用了 GPS 精確的定位能力和GPRS 穩定、高速的無線數據傳輸能力。在經過實際調試應用后,系統運行穩定。再加上本系統軟件部分都是在Linux 操作系統下實現,使得系統開發成本大大降低,如果在車載終端硬件設計時能夠進行針對性的優化配置,將使得成本進一步降低。另外,在本系統的基礎上擴展其他功能也是很方便的,如在車載終端引入電子地圖的導航功能,以及監控中心引入路況報告功能等。隨著GPS定位能力的進一步提高和3G時代帶來的移動通信速率的提升,相信本系統將擁有更為廣闊的應用前景。
-
gps
+關注
關注
22文章
2895瀏覽量
166196 -
監控
+關注
關注
6文章
2205瀏覽量
55178 -
服務器
+關注
關注
12文章
9129瀏覽量
85347 -
GPRS
+關注
關注
21文章
984瀏覽量
129427
發布評論請先 登錄
相關推薦
評論