<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          關(guān) 閉

          新聞中心

          EEPW首頁 > 工控自動化 > 設(shè)計應(yīng)用 > 出租車監(jiān)控調(diào)度系統(tǒng)方案設(shè)計

          出租車監(jiān)控調(diào)度系統(tǒng)方案設(shè)計

          作者: 時間:2012-06-06 來源:網(wǎng)絡(luò) 收藏

          (1)GPS 定位信息接收的實現(xiàn)

          該過程主要通過 Linux 串口通信編程來實現(xiàn),在實現(xiàn)過程中的關(guān)鍵處理部分是:串口屬性設(shè)置以及對接收到的GPS 信息的解析。

          由于 GPS 模塊輸出的每幀數(shù)據(jù)都是以換行符結(jié)束,所以在設(shè)置串口屬性的時候可將其模式設(shè)為規(guī)范(Canonical)模式,即每次讀取串口時先將數(shù)據(jù)保存到緩存,直到讀到換行符時所有數(shù)據(jù)才會被傳輸,這樣就能保證每次讀取的是整幀數(shù)據(jù),方便之后的幀頭判斷和信息解析。接下來還要根據(jù)GPS 模塊的默認(rèn)參數(shù)配置串口傳輸速率為4800bps,8 位數(shù)據(jù)位,1 位停止位,無校驗位,串口屬性就設(shè)置完畢了。

          GPS 模塊的輸出幀遵循NMEA0183 標(biāo)準(zhǔn),具有多種格式,主要由幀頭進(jìn)行標(biāo)志,包括$GPGGA、$GPGLL、$GPGSA、 $GPGSV、$GPGMC、$GPVTG 六種幀,分別描述不同信息,一般來說$GPRMC 幀就可以提供我們所關(guān)心的數(shù)據(jù),如經(jīng)緯度、速度、時間等,所以只需對該幀信息進(jìn)行提取。$GPRMC 幀的格式如圖2:

          在每次讀取的時候首先需要對幀頭進(jìn)行判斷是否是$GPRMC 幀,然后再根據(jù)幀中的逗號位置,對該幀數(shù)據(jù)進(jìn)行解析,提取所需的定位、速度和時間信息。

          (2)GPRS 撥號上網(wǎng)的實現(xiàn)

          該部分是整個的關(guān)鍵,是實現(xiàn)終端和中心進(jìn)行無線通信的基礎(chǔ),該過程主要依靠PPP(點(diǎn)到點(diǎn)協(xié)議)來實現(xiàn),它可以實現(xiàn)在串行鏈路上創(chuàng)建和運(yùn)行IP 協(xié)議。

          為了能夠?qū)崿F(xiàn)PPP 連接,首先需要配置內(nèi)核使其支持PPP,然后通過交叉編譯生成ARM平臺下的pppd 和chat 應(yīng)用程序。PPP 連接的建立和維持需要由pppd 和內(nèi)核中的PPP 驅(qū)動程序配合完成。chat 程序主要用于和GPRS 模塊進(jìn)行交互,完成撥號和各項配置。執(zhí)行pppd的時候?qū)⑹紫日{(diào)用chat 程序進(jìn)行撥號連接,PPP 鏈路的建立流程如圖3:

          首先執(zhí)行 chat 程序?qū)χ袊苿拥慕尤胩柎a進(jìn)行撥號,建立與PPP 服務(wù)器端的物理連接,然后進(jìn)行LCP 鏈路的協(xié)商,主要協(xié)商一些鏈路參數(shù)(數(shù)據(jù)幀格式、最大傳輸單元等),協(xié)商成功后將建立與PPP 服務(wù)器端的數(shù)據(jù)鏈路,接著向PPP 服務(wù)器端提供用戶和口令進(jìn)行PAP驗證,在未通過驗證之前是不能進(jìn)行任何數(shù)據(jù)傳輸?shù)?,最后,進(jìn)行IPCP 協(xié)商,主要進(jìn)行IP地址的協(xié)商,協(xié)商成功后,終端將獲得GGSN(GPRS 網(wǎng)關(guān))為其動態(tài)分配的IP 地址。PPP 鏈路就建立完成了,之后終端就相當(dāng)于公網(wǎng)上的一臺主機(jī),可以自由地與Internet 的其他主機(jī)進(jìn)行數(shù)據(jù)交互了。

          3.2 中心的軟件設(shè)計

          中心是位于出租車公司的控制中心,它與公司服務(wù)器進(jìn)行局域網(wǎng)連接如圖1,服務(wù)器具有固定公網(wǎng)(Internet)IP 地址,而監(jiān)控中心的IP 地址為局域網(wǎng)IP,公網(wǎng)上的主機(jī)(出租車終端)是不能通過該IP 來訪問監(jiān)控中心的,要想實現(xiàn)這個過程,必須在公司服務(wù)器設(shè)置端口映射,端口映射的原理是將擁有固定IP 地址的服務(wù)器端口映射到處于局域網(wǎng)的某臺主機(jī)端口上,如圖4:

          上圖中,將服務(wù)器的1111 端口映射到局域網(wǎng)內(nèi)監(jiān)控中心的2222 端口,這樣外網(wǎng)主機(jī)發(fā)往服務(wù)器1111 端口的數(shù)據(jù)都將被重定向到監(jiān)控中心的2222 端口,監(jiān)控中心只要開放并監(jiān)聽該端口,即可獲得相關(guān)數(shù)據(jù)。

          監(jiān)控中心主機(jī)采用 Debian Linux 操作,Debian 是一套為計算機(jī)設(shè)計的自由操作,它包含一萬五千多個軟件包,都是自由開源的,并被包裝成容易安裝的deb 格式,Debian是一款功能強(qiáng)大的Linux 操作系統(tǒng)。

          監(jiān)控中心的軟件設(shè)計主要完成以下兩個任務(wù):接收出租車終端發(fā)送過來的信息并寫入數(shù)據(jù)庫;設(shè)計圖形管理軟件,方便各項功能的實現(xiàn)。

          (1)接收出租車終端發(fā)送過來的定位信息并寫入數(shù)據(jù)庫

          設(shè)計一個守護(hù)(Daemon)進(jìn)程,它可以實現(xiàn)在操作系統(tǒng)啟動后一直在后臺運(yùn)行,不受控制終端的控制,該進(jìn)程主要用于監(jiān)聽本監(jiān)控中心的指定端口,接收由出租車終端發(fā)送過來的定位、速度和時間信息,然后將所有信息寫入POSTGRESQL8.0 數(shù)據(jù)庫[4]。POSTGRESQL數(shù)據(jù)庫是世界上可以獲得開放源碼的最先進(jìn)的數(shù)據(jù)庫系統(tǒng),支持幾乎所有 SQL 構(gòu)件(包括子查詢,事務(wù)和用戶定義類型和函數(shù)),并且為多種開發(fā)語言提供接口(包括 C,C++,Java 等)。

          Linux 系統(tǒng)下采用C 語言對該數(shù)據(jù)庫進(jìn)行操作,主要用到以下三個函數(shù):

          PQconnectdb(“dbname=psql_data”)用于打開名為psql_data 的POSTGRESQL 數(shù)據(jù)庫;PQexec(PQconnectdb(),sql_query)用于對打開的數(shù)據(jù)庫執(zhí)行各種SQL 語句;PQfinish()用于關(guān)閉打開的數(shù)據(jù)庫。



          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();