關 閉

        新聞中心

        EEPW首頁 > 工控自動化 > 設計應用 > 出租車監控調度系統方案設計

        出租車監控調度系統方案設計

        作者: 時間:2012-06-06 來源:網絡 收藏

        (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()用于關閉打開的數據庫。



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 安福县| 广州市| 佳木斯市| 弥勒县| 临泽县| 洪湖市| 丰县| 荥阳市| 长阳| 怀柔区| 文成县| 江门市| 施秉县| 拉萨市| 黎城县| 南溪县| 井冈山市| 阳西县| 从化市| 顺昌县| 奉贤区| 清河县| 金堂县| 崇仁县| 鹿泉市| 湘乡市| 三河市| 南召县| 锦州市| 喜德县| 苏尼特左旗| 卢氏县| 剑阁县| 涿州市| 梨树县| 卢湾区| 滁州市| 钟祥市| 平阴县| 泉州市| 濮阳县|