《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 其他 > 設(shè)計(jì)應(yīng)用 > 基于GPS的公交車自動(dòng)報(bào)站系統(tǒng)的設(shè)計(jì)
基于GPS的公交車自動(dòng)報(bào)站系統(tǒng)的設(shè)計(jì)
來(lái)源:微型機(jī)與應(yīng)用2010年第24期
王 東,張海輝,,路艷巧
(西北農(nóng)林科技大學(xué) 機(jī)械與電子工程學(xué)院,,陜西 楊陵712100)
摘要: 為了公交系統(tǒng)的安全,,減輕司機(jī)的負(fù)擔(dān),,目前迫切需要智能化,、自動(dòng)化的語(yǔ)音報(bào)站系統(tǒng)。針對(duì)國(guó)內(nèi)公交系統(tǒng)報(bào)站裝置應(yīng)用的現(xiàn)狀,提出了一個(gè)基于GPS定位的嵌入式公交自動(dòng)報(bào)站系統(tǒng),。該系統(tǒng)由嵌入式設(shè)備,、GPS擴(kuò)展板及通信接口等組成,采用Linux操作系統(tǒng)及GPS定位技術(shù),自動(dòng),、準(zhǔn)確地播報(bào)站名,、服務(wù)用語(yǔ), 并可提供語(yǔ)音廣告等。系統(tǒng)軟件可通過(guò)串口升級(jí), 可同時(shí)存儲(chǔ)多條線路,,可調(diào)節(jié)定位精度,,便于公交車臨時(shí)更換運(yùn)營(yíng)線路, 具有很好的應(yīng)用前景。
Abstract:
Key words :

摘  要: 為了公交系統(tǒng)的安全,,減輕司機(jī)的負(fù)擔(dān),,目前迫切需要智能化、自動(dòng)化的語(yǔ)音報(bào)站系統(tǒng),。針對(duì)國(guó)內(nèi)公交系統(tǒng)報(bào)站裝置應(yīng)用的現(xiàn)狀,提出了一個(gè)基于GPS定位的嵌入式公交自動(dòng)報(bào)站系統(tǒng),。該系統(tǒng)由嵌入式設(shè)備、GPS擴(kuò)展板及通信接口等組成,,采用Linux操作系統(tǒng)及GPS定位技術(shù),自動(dòng),、準(zhǔn)確地播報(bào)站名、服務(wù)用語(yǔ), 并可提供語(yǔ)音廣告等,。系統(tǒng)軟件可通過(guò)串口升級(jí), 可同時(shí)存儲(chǔ)多條線路,,可調(diào)節(jié)定位精度,便于公交車臨時(shí)更換運(yùn)營(yíng)線路, 具有很好的應(yīng)用前景,。
關(guān)鍵詞: 全球定位系統(tǒng),;嵌入式;自動(dòng)報(bào)站

    目前城市公交系統(tǒng)飛速發(fā)展,,且已基本都是無(wú)人售票,,報(bào)站也由原來(lái)的售票員報(bào)站改為由司機(jī)手動(dòng)控制報(bào)站。但是由于公交司機(jī)既要開(kāi)車,,又要兼顧手動(dòng)按鍵報(bào)站,,所以時(shí)常出現(xiàn)誤報(bào)、漏報(bào)等現(xiàn)象,,不能滿足公交系統(tǒng)的要求,;另外,由于司機(jī)開(kāi)車時(shí)為報(bào)站分散精力,,也對(duì)公交的安全運(yùn)行埋下了隱患,。應(yīng)用自動(dòng)報(bào)站系統(tǒng)即可以節(jié)省員工開(kāi)支,增強(qiáng)公司效益,又可以利用報(bào)站器播報(bào)標(biāo)準(zhǔn)的普通話站名,,使各城市更利于交流和發(fā)展,。
    GPS衛(wèi)星定位語(yǔ)音報(bào)站系統(tǒng)具有定位精度高、語(yǔ)音自動(dòng)播報(bào)等特點(diǎn),。目前市場(chǎng)上已有基于GPS的公交車自動(dòng)報(bào)站系統(tǒng)的試用,但這些系統(tǒng)都是基于各種單片機(jī)為處理芯片的,。
    車載設(shè)備安裝于公交車上,,其工作環(huán)境比較惡劣,因此對(duì)設(shè)備的結(jié)構(gòu)也有一定的要求,,本系統(tǒng)采用工作穩(wěn)定可靠,、抗干擾能力強(qiáng)的ARM9處理器。嵌入式系統(tǒng)固化于存儲(chǔ)器中,,其可靠性高,、成本低、體積小,、功耗低,。鑒于此,本研究設(shè)計(jì)了一種基于GPS的嵌入式公交車自動(dòng)報(bào)站系統(tǒng),,可以實(shí)現(xiàn)公交車到達(dá)站點(diǎn)后的實(shí)時(shí)報(bào)站,,預(yù)報(bào)下一站的信息,播放語(yǔ)音,、視頻等信息,,結(jié)合LCD進(jìn)行報(bào)站顯示,讓乘客可以更方便地了解周邊信息,,也可以降低司機(jī)的勞動(dòng)強(qiáng)度,。
1 GPS技術(shù)概述
    全球定位系統(tǒng)GPS(Global Positioning System)是美國(guó)從20世紀(jì)70年代開(kāi)始研制,歷時(shí)20年,,耗資200億美元,,具有海、陸,、空全方位實(shí)時(shí)三維導(dǎo)航與定位能力的新一代高精度衛(wèi)星導(dǎo)航與定位系統(tǒng),。
    GPS定位的基本原理是根據(jù)高速運(yùn)動(dòng)的衛(wèi)星瞬間位置作為已知的起算數(shù)據(jù),采用空間距離后方交會(huì)的方法,,確定待測(cè)點(diǎn)的位置,。假設(shè)t時(shí)刻在地面待測(cè)點(diǎn)上安置GPS接收機(jī),可以測(cè)定GPS信號(hào)到達(dá)接收機(jī)的時(shí)間?駐t,,再加上接收機(jī)所接收到的衛(wèi)星星歷等其他數(shù)據(jù)可以確定以下4個(gè)方程式,,如圖 1 所示。
  

   
2 GPS通信的NMEA0183協(xié)議
    通常GPS模塊支持兩種格式:二進(jìn)制消息格式和NMEA-0183 ASCII消息格式。前者的通信協(xié)議為9 600 b/s,、無(wú)校驗(yàn),、8 bit數(shù)據(jù)位、1 bit停止位,;后者的通信協(xié)議為4 800 b/s,、無(wú)校驗(yàn)、8 bit數(shù)據(jù)位,、1 bit停止位,。由于NMEA-0183 ASCII格式直觀、易于識(shí)別及應(yīng)用, 因此本設(shè)備采用ASCII格式,。目前GPS廠商遵循NMEA0183協(xié)議提供串行通信接口,,串行通信參數(shù)為:波特率=4 800 b/s,數(shù)據(jù)位=8 bit,,停止位=1 bit,,無(wú)奇偶校驗(yàn)。
    GPS與系統(tǒng)通信時(shí),,通過(guò)串口發(fā)送數(shù)據(jù),。系統(tǒng)接收到的GPS數(shù)據(jù)主要由幀頭、幀尾和幀內(nèi)數(shù)據(jù)組成,。根據(jù)數(shù)據(jù)幀的不同, 幀頭也不相同, 主要有 GPGGA,、  GPGSA、GPGSV以及  GPRMC等,。各類數(shù)據(jù)幀分別包含了不同的信息,。
    由于幀內(nèi)各數(shù)據(jù)段由逗號(hào)分割, 因此在處理緩存數(shù)據(jù)時(shí)通過(guò)搜尋ASCII 碼“  ”來(lái)判斷是否是幀頭。在對(duì)幀頭的類別進(jìn)行識(shí)別后, 再通過(guò)對(duì)所經(jīng)歷逗號(hào)個(gè)數(shù)的計(jì)數(shù)判斷出當(dāng)前正在處理的是哪一種定位導(dǎo)航參數(shù), 并做出相應(yīng)處理,。
    如果與衛(wèi)星的通信正常,,則可以接收到的數(shù)據(jù)格式如下: GPRMC,204700,A,3403.868,N,11709.432,W,001.9,336.9,170698,013.6,E*6E
    數(shù)據(jù)說(shuō)明如下:
    GPRMC:代表 GPS 推薦的最短數(shù)據(jù);204700:UTC_TIME 24h制的標(biāo)準(zhǔn)時(shí)間,,按照h/min/s的格式,;
    A:A或者V,A表示數(shù)據(jù)"OK",,V表示一個(gè)警告,;
    3403.868:LAT緯度值,精確到小數(shù)點(diǎn)前4位,,后3位,;
    N:LAT_DIR N表示北緯,S表示南緯,;
    11709.432:LON經(jīng)度值,,精確到小數(shù)點(diǎn)前5位,,后3位;
    W:LON_DIR W表示西經(jīng),,E表示東經(jīng),;
    下面是一個(gè)接收不到衛(wèi)星信號(hào)的例子:
      GPRMC,204149,V,…,,170698,*3A
3 報(bào)站系統(tǒng)模塊設(shè)計(jì)
3.1 GPS數(shù)據(jù)解析模塊

    在接收進(jìn)程receive中收到“\n”之后,,表示收到一條完整的信息。在gps_parse子程序中實(shí)現(xiàn)GPRMC格式數(shù)據(jù)的解析,,show_gps子程序中實(shí)現(xiàn)數(shù)據(jù)的顯示,。
    從GPS原始采集的數(shù)據(jù)可以解析出年月日、時(shí)間,、狀態(tài),、緯度經(jīng)度以及高度等信息,,然后可以通過(guò)GPS的報(bào)站程序,,按照設(shè)定的格式,只要條件滿足就執(zhí)行報(bào)站程序及數(shù)據(jù)的顯示,。
3.2 串口通信的設(shè)計(jì)
    打開(kāi)串口:打開(kāi)串口是通過(guò)標(biāo)準(zhǔn)的文件打開(kāi)函數(shù)來(lái)實(shí)現(xiàn)的,。
    串口設(shè)置:最基本的設(shè)置串口包括波特率設(shè)置、校驗(yàn)位和停止位設(shè)置,。串口的設(shè)置主要是設(shè)置struct termios結(jié)構(gòu)體的各成員值,,關(guān)于該結(jié)構(gòu)體的定義可以查看/arm2410s/kernel-2410s/include/asm/termios.h文件。
    讀寫(xiě)串口:設(shè)置好串口之后,,讀寫(xiě)串口很容易,,把串口當(dāng)作文件讀寫(xiě)就可以了。
    讀取串口數(shù)據(jù):使用文件操作read函數(shù)讀取,,如果設(shè)置為原始模式(Raw Mode)傳輸數(shù)據(jù),,那么read函數(shù)返回的字符數(shù)是實(shí)際串口收到的字符數(shù)??梢允褂貌僮魑募暮瘮?shù)來(lái)實(shí)現(xiàn)異步讀取,,如fcntl,或者select等操作,。
    關(guān)閉串口:關(guān)閉串口就是關(guān)閉文件,。
3.3 語(yǔ)音報(bào)站的設(shè)計(jì)
    語(yǔ)音報(bào)站是基于GPS的自動(dòng)報(bào)站系統(tǒng)的核心部分,只有實(shí)現(xiàn)了語(yǔ)音報(bào)站,,整個(gè)系統(tǒng)才算完成,。實(shí)驗(yàn)箱中的音頻驅(qū)動(dòng)程序和視頻驅(qū)動(dòng)程序都是一個(gè)獨(dú)立的程序,要想在GPS的自動(dòng)報(bào)站程序中使用音頻驅(qū)動(dòng)程序?qū)崿F(xiàn)語(yǔ)音報(bào)站,,就必須用一個(gè)函數(shù)來(lái)實(shí)現(xiàn)程序的調(diào)用,。System函數(shù)就有這樣的功能,。System函數(shù)已經(jīng)被收錄在標(biāo)準(zhǔn)C庫(kù)中,可以直接調(diào)用,。
    語(yǔ)音報(bào)站程序主要是通過(guò)system函數(shù)調(diào)用音頻驅(qū)動(dòng)程序來(lái)實(shí)現(xiàn)的,。如果采集信號(hào)的狀態(tài)為“A”,就可以進(jìn)行數(shù)據(jù)的對(duì)比,,如果在站點(diǎn)范圍內(nèi)就用system函數(shù)調(diào)用一段語(yǔ)音,,如果出了站點(diǎn)范圍就調(diào)用另外一段語(yǔ)音。站點(diǎn)具體的經(jīng)度和緯度可以用數(shù)組來(lái)定義,,這樣可以方便修改,,也更加直觀、簡(jiǎn)單,。站點(diǎn)的范圍通過(guò)一個(gè)方框限定,,經(jīng)度和緯度在站點(diǎn)的100 m范圍內(nèi)。站點(diǎn)的范圍也可以用一個(gè)圓來(lái)限定,,即到站點(diǎn)的距離小于d的范圍,,兩個(gè)站點(diǎn)間的距離可以用公式計(jì)算。
3.4 多線程的應(yīng)用
    多線程程序作為一種多任務(wù),、并發(fā)的工作方式,,有以下的優(yōu)點(diǎn):(1)提高應(yīng)用程序響應(yīng);(2)使多CPU系統(tǒng)更加有效,;(3)改善程序結(jié)構(gòu),。LIBC中的pthread庫(kù)提供了大量的API函數(shù),為用戶編寫(xiě)應(yīng)用程序提供支持,。在本程序的代碼中大量使用了線程函數(shù),,如pthread_create(線程創(chuàng)建函數(shù))、pthread_join(等待一個(gè)線程的結(jié)束)pthread_exit(一個(gè)線程的結(jié)束)等,。
4 系統(tǒng)總體設(shè)計(jì)及調(diào)試
4.1 系統(tǒng)總體設(shè)計(jì)

    系統(tǒng)的軟件部分主要是GPS數(shù)據(jù)的解析和報(bào)站子程序的設(shè)計(jì),。目前軍用GPS接收機(jī)的定位精度已經(jīng)達(dá)到1 m,但是民用GPS定位系統(tǒng)定位精度只有10 m~20 m,,而實(shí)際的公交車報(bào)站的精度只要在150 m范圍內(nèi)就可以,,所以本次設(shè)計(jì)中的站點(diǎn)范圍為100 m,完全可以達(dá)到設(shè)計(jì)的要求,。如果是中小城市的話可以將定位的精度進(jìn)行適當(dāng)?shù)恼{(diào)整,。
    由于GPS采集信號(hào)的周期是每1 s采一次,而實(shí)際上公交車站點(diǎn)之間的距離較遠(yuǎn),,且報(bào)站的時(shí)間需提前一點(diǎn),,1 s進(jìn)行一次數(shù)據(jù)對(duì)比比較麻煩,每隔5 s進(jìn)行一次數(shù)據(jù)對(duì)比就可以了,,所以程序中將數(shù)據(jù)對(duì)比的周期改成了5 s一次,。公交車上還可以采用車輪計(jì)速的方法,,每次車輪轉(zhuǎn)夠一定的圈數(shù)就進(jìn)行一次數(shù)據(jù)比對(duì),這樣可以防止公交車到站停車后繼續(xù)執(zhí)行報(bào)站程序,。
    采集到的信號(hào)狀態(tài)為“A”時(shí),,執(zhí)行相應(yīng)的報(bào)站程序,但是有時(shí)候會(huì)出現(xiàn)信號(hào)不好的情況,,這時(shí)就要提醒司機(jī)臨時(shí)將自動(dòng)報(bào)站改成原來(lái)的手動(dòng)報(bào)站,,以防止乘客下錯(cuò)站。
    系統(tǒng)的軟件流程圖如圖2所示,。

    GPS公交自動(dòng)報(bào)站系統(tǒng)包含硬件和軟件兩部分,。硬件以ARM9S3c2410x處理器為核心, 配置存儲(chǔ)器、I/O設(shè)備,、通信模塊等必要的外設(shè),;軟件以嵌入式Linux操作系統(tǒng)為核心,提供應(yīng)用編程接口API,。嵌入式系統(tǒng)中,,軟件和硬件緊密配合,協(xié)調(diào)工作,,共同完成系統(tǒng)預(yù)定的功能,。自動(dòng)報(bào)站的硬件原理圖如圖3所示,。

    系統(tǒng)軟件部分在Linux操作系統(tǒng)中用C語(yǔ)言編程實(shí)現(xiàn),,將各模塊的程序整合到一起,配置好開(kāi)發(fā)環(huán)境,,進(jìn)入GPS的目錄,,用vi命令將代碼進(jìn)行編輯,然后編譯,、在minicom下運(yùn)行,,就可以看到結(jié)果是否正確。
4.2 系統(tǒng)調(diào)試
    檢查跳線:確定試驗(yàn)平臺(tái)擴(kuò)展槽上方JP1102/JP1103跳線位于2,、3之間,,跳線位為EXPORT;確定GPS/GPRS模塊的JP201/JP202跳線位于模塊外側(cè)GPS端,。
    接入設(shè)備:關(guān)閉2410-S平臺(tái),,將GPS天線連接到GPS/GPRS模塊上,天線接收端置放在能良好接收室外信號(hào)的地方,,將模塊插入2410-S擴(kuò)展插槽,。
    然后運(yùn)行程序,即可得到實(shí)驗(yàn)結(jié)果,。
    本研究根據(jù)公交車報(bào)站的實(shí)際需要,,設(shè)計(jì)并實(shí)現(xiàn)了基于GPS的公交車自動(dòng)報(bào)站系統(tǒng),。該系統(tǒng)利用嵌入式實(shí)驗(yàn)設(shè)備實(shí)現(xiàn)了公交車的自動(dòng)報(bào)站,具有性能高,、能耗低,、體積小、播報(bào)準(zhǔn)確的特點(diǎn),,便于在實(shí)際運(yùn)行的公交車上使用,;采用先進(jìn)的衛(wèi)星定位技術(shù)與語(yǔ)音播放技術(shù)相結(jié)合的方式,徹底改變了傳統(tǒng)公交車語(yǔ)音報(bào)站器由司機(jī)手控的方式,,進(jìn)站,、出站自動(dòng)播報(bào)站名及服務(wù)用語(yǔ),準(zhǔn)確,、及時(shí),,完全不需要人工介入。實(shí)驗(yàn)結(jié)果表明,,該系統(tǒng)可以用于GPS信號(hào)的采集和自動(dòng)報(bào)站,,但采集到的數(shù)據(jù)與真實(shí)值之間有一定的誤差,并且有時(shí)由于樹(shù)木,、高樓的遮擋會(huì)導(dǎo)致有些路段接收GPS信號(hào)效果不佳,。因此,采用數(shù)學(xué)方法(差分技術(shù))消除數(shù)據(jù)間的誤差,,利用其他輔助定位系統(tǒng)與GPS 定位相結(jié)合進(jìn)行定位來(lái)提高定位數(shù)據(jù)的精度,,將是下一步研究的主要方向。
參考文獻(xiàn)
[1] 許連華,,李學(xué)慶.基于GPS的公交車自動(dòng)報(bào)站系統(tǒng)[J].計(jì)算機(jī)工程,,2005,31(23):191-192.
[2] 張波.GPS自動(dòng)報(bào)站系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].電子元器件應(yīng)用,,2006(2):57-59.
[3] 孫弋,,汪亞?wèn)|,李培煊.基于GPS的嵌入式公交自動(dòng)報(bào)站系統(tǒng)的研究.電子技術(shù)應(yīng)用[J],,2007,,33(11):34-36.
[4] 文科,張永生.基于GPS技術(shù)的公交車控制器[J].自動(dòng)化與儀表,,2009(6):19-21.

此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載。