《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 通信與網(wǎng)絡(luò) > 設(shè)計應(yīng)用 > 基于Xbee Pro和網(wǎng)絡(luò)技術(shù)的智能公交系統(tǒng)設(shè)計
基于Xbee Pro和網(wǎng)絡(luò)技術(shù)的智能公交系統(tǒng)設(shè)計
OFweek電子工程網(wǎng)
摘要: 針對西安城市公交站牌間距較短的特點(diǎn),在國內(nèi)現(xiàn)有智能公交系統(tǒng)方案中成功引入ZigBee短距離無線通信技術(shù)。文中給出了以WinCE操作系統(tǒng)和ARM硬件平臺為核心,并利用ZigBee、GPS、GPRS等技術(shù)來對智能公交系統(tǒng)方案進(jìn)行改進(jìn)設(shè)計的具體方法。
Abstract:
Key words :

  摘要: 針對西安城市公交站牌間距較短的特點(diǎn), 在國內(nèi)現(xiàn)有智能公交系統(tǒng)方案中成功引入ZigBee短距離無線通信技術(shù)。文中給出了以WinCE操作系統(tǒng)和ARM硬件平臺為核心, 并利用ZigBee、GPS、GPRS等技術(shù)來對智能公交系統(tǒng)方案進(jìn)行改進(jìn)設(shè)計的具體方法。

  0 引言

  公共交通具有個體交通無法比擬的強(qiáng)大優(yōu)勢,優(yōu)先發(fā)展城市公共交通系統(tǒng)是解決大、中城市交通問題的最佳途徑。近年來, 城市公交系統(tǒng)的智能化已成為公共交通研究領(lǐng)域的主要方向。國內(nèi)現(xiàn)有試運(yùn)行的智能公交系統(tǒng)大部分都采用GPS全球定位系統(tǒng)進(jìn)行定位, 同時采用GPRS網(wǎng)絡(luò)進(jìn)行數(shù)據(jù)傳輸。車載GPS模塊可以實(shí)時獲取位置、方向、時間等導(dǎo)航定位數(shù)據(jù), 然后通過車載GPRS模塊將數(shù)據(jù)傳至監(jiān)控中心, 從而實(shí)現(xiàn)車輛的定位和監(jiān)控。監(jiān)控中心則可將車輛的實(shí)時信息或公告信息通過電子站牌的GPRS模塊發(fā)送給電子站牌,以估算到站時間和距離, 然后顯示在電子站牌上。盡管現(xiàn)有試運(yùn)行的智能公交系統(tǒng)定位覆蓋面廣、精度高, 可以實(shí)現(xiàn)車輛的全范圍定位和監(jiān)控。但在實(shí)際運(yùn)行過程中, 仍然存在以下不足:

  ◇ GPS信號在隧道和高架橋等環(huán)境下會存在盲點(diǎn);

  ◇ 運(yùn)行中需將GPS信息通過GPRS發(fā)到監(jiān)控中心, 再由監(jiān)控中心通過GPRS發(fā)送顯示信息給電子站牌, 因此運(yùn)營費(fèi)用較高;

  ◇ GPRS模塊價格昂貴, 公交車數(shù)量眾多且都必須安裝GPRS模塊, 硬件成本高;

  ◇ 不能實(shí)現(xiàn)公交車與站牌的通信, 也不能實(shí)現(xiàn)提前報站等服務(wù)。

 

  1 系統(tǒng)總體方案

  由于西安城市面積較小, 道路集中, 公交線路密集, 電子站牌間距大多在500米左右, 因此,監(jiān)控中心沒有必要對公交車進(jìn)行實(shí)時全范圍的監(jiān)控, 而只需知道公交車的站牌區(qū)間范圍便可大致定位。

  為吸取現(xiàn)有智能公交系統(tǒng)方案的優(yōu)點(diǎn), 克服其缺點(diǎn), 并結(jié)合西安城市自身特點(diǎn), 本文把ZigBee短距離無線通信技術(shù)引入到智能公交系統(tǒng)中, 對國內(nèi)現(xiàn)有試運(yùn)行的智能公交系統(tǒng)普遍采用的GPS定位、GPRS信息傳輸?shù)姆桨高M(jìn)行了數(shù)據(jù)傳輸方式的改進(jìn), 改進(jìn)后的智能公交系統(tǒng)方案的整體架構(gòu)如圖1所示。

  圖1 智能公交系統(tǒng)的總體方案

  圖1 智能公交系統(tǒng)的總體方案

  本系統(tǒng)主要由公交車終端、電子站牌終端和管理監(jiān)控中心服務(wù)器三部分組成。

  公交車終端可根據(jù)車載GPS模塊實(shí)時定位公交車的位置信息, 并與各個站牌的位置信息進(jìn)行對比, 當(dāng)其到達(dá)某個站牌時, 公交車自動語音報站, 同時用LCD屏顯示到站信息。

  電子站牌終端和公交車終端可通過ZigBee短距離無線通信網(wǎng)絡(luò)進(jìn)行通信。公交車可實(shí)現(xiàn)提前報站。當(dāng)公交車到達(dá)某個站牌后, 便把自己的車輛信息、狀態(tài)信息等打包發(fā)送給站牌。電子站牌收到管理中心的信息后, 便將公交車的位置信息顯示在站牌的電子地圖上。

  管理中心服務(wù)器和電子站牌終端可通過GPRS無線通信網(wǎng)絡(luò)進(jìn)行通信。電子站牌終端通過GPRS模塊的無線聯(lián)網(wǎng), 以對收到的公交車信息進(jìn)行處理并重新封裝, 然后發(fā)送到無線網(wǎng)絡(luò)中。服務(wù)器端一般是連接Internet的PC機(jī), 可通過TCP/IP協(xié)議接收互聯(lián)網(wǎng)上的信息, 同時可向電子站牌終端發(fā)送運(yùn)行線路上公交車的實(shí)時位置信息和公告信息。服務(wù)器可通過數(shù)據(jù)庫進(jìn)行信息的管理和查詢, 以方便公交公司的管理和調(diào)度。

  2 系統(tǒng)硬件設(shè)計

  2.1 車載終端的硬件組成

  本系統(tǒng)中的車載終端硬件主要包括電源模塊或電源接入模塊、ARM處理器、RAM、FLASH、GPS定位模塊、ZigBee射頻傳輸模塊、視頻監(jiān)控模塊、LCD顯示模塊、串口和調(diào)試模塊、車內(nèi)人數(shù)統(tǒng)計模塊和語音模塊等。圖2所示是系統(tǒng)中車載終端的硬件組成框圖。

  圖2 車載終端硬件組成框圖

  圖2 車載終端硬件組成框圖

  ARM嵌入式處理器是整個車載終端的核心,可通過各種接口與各功能模塊相連接。本車載終端選用韓國三星公司的一款基于ARM920T內(nèi)核的16/32位RISC嵌入式微處理器S3C2410.S3C2410的運(yùn)行頻率可以達(dá)到203 MHz, 主要面向手持設(shè)備等高性價比、低功耗的應(yīng)用。

  在智能公交系統(tǒng)中, 系統(tǒng)定位模塊一般采用GPS-OEM ( Original Equipment Manufacture) 板。

  在嵌入式車載終端系統(tǒng)中, 選用GPS模塊時, 通常應(yīng)考慮定位精度、價格、功耗、體積、抗干擾能力等幾個因素。根據(jù)以上原則, 本設(shè)計選用LEADTEK公司的GPS三代SiRF star III7855模塊來實(shí)現(xiàn)定位。該模塊的主要性能指標(biāo)如下:

  ◇ 有20個并行通道, 可同時接收20顆衛(wèi)星;

  ◇ 定位時間: 重捕時間為0.1 s, 熱啟動《1s, 冷啟動《42 s, 自動搜索少于30 s;

  ◇ 輸出差分精度可達(dá)10米, 功耗小于1 W;

  ◇ 可通過RS232接口輸出NEMA-0183協(xié)議的ASCII碼語句, 包括GPGGA、GPGSA、GPGSV、GPRMC、GPVTG、GPGLL等;

  ◇ 采用5 V電源, 可通過TX、RX引腳連接一個DB9的接口來與嵌入式微處理器的串口進(jìn)行通信。

  2.2 ZigBee射頻模塊

  在智能公交系統(tǒng)中, GPS模塊只完成信息采集功能, 而在公交車到站時, 還需要通過ZigBee模塊信息發(fā)送給站牌。

  經(jīng)過市場調(diào)研發(fā)現(xiàn), Freescale的MC1319x平臺功耗低、價格低廉、硬件集成度高, 而且方便二次開發(fā), 射頻通信系統(tǒng)的穩(wěn)定性也比較高。所以, 本設(shè)計選用了MaxStream公司與ZigBee兼容的、以Freescale MC1319x芯片組為核心的XBeePro RF模塊。XBee Pro模塊設(shè)計滿足IEEE802.15.4標(biāo)準(zhǔn), 工作頻率為2.4 GHz, 其基本性能參數(shù)如下:

  ◇ 發(fā)送功率l00 mW;

  ◇ 室內(nèi)傳輸距離為300 m, 室外傳輸距離為1500 m;

  ◇ RF數(shù)據(jù)傳輸速率為250 kbps;

  ◇ 在3.3 V電源下, 發(fā)送電流為215 mA, 接收電流為55 mA.

  圖3所示是XBee Pro模塊的引腳排列圖, 該模塊有20個引腳。RS232接口電路板的引腳可連接到VCC、GND、DOUT和DIN引腳。其中VCC是電源引腳(2.8~3.4 V); GND接地; DIN是信號輸入引腳, 可作為UART數(shù)據(jù)輸入, 通常與處理器的UART接收端TX相連; DOUT為信號輸出引腳,可作為UART數(shù)據(jù)輸出, 通常與處理器的UART接收端RX相連。此外, 在XBee/XBee Pro模塊中還集成了一個UART接口, 該接口的內(nèi)部數(shù)據(jù)控制流程如圖4所示。

  圖3 XBee Pro模塊的引腳排列圖

  圖3 XBee Pro模塊的引腳排列圖

  圖4 XBee Pro模塊的UART內(nèi)部數(shù)據(jù)控制流程

  圖4 XBee Pro模塊的UART內(nèi)部數(shù)據(jù)控制流程

  當(dāng)串行數(shù)據(jù)通過DIN引腳進(jìn)入XBee Pro 模塊后, 數(shù)據(jù)會存儲在DI緩沖器中, 直到被發(fā)送器通過天線發(fā)送出去; 當(dāng)RF數(shù)據(jù)由天線接收后, 接收數(shù)據(jù)進(jìn)人DO緩沖器, 直到被處理。在一定條件下, 模塊可能無法立即處理在串位接收緩沖中的數(shù)據(jù)。如果大量的串行數(shù)據(jù)發(fā)送到模塊, 可能需要使用CTS流控以避免串行接收緩沖溢出。XBeePro 模塊可以通過UART 接口直接與控制器的UART接口相連, 硬件接口簡單實(shí)用。

  2.3 電子站牌終端的硬件組成

  電子站牌終端的硬件組成與公交車車載終端相比, 主要是把公交車上的GPS定位模塊替換成了GPRS -DTU 數(shù)據(jù)傳輸單元。GF -2008AWGPRS-DTU是北京嘉復(fù)欣科技有限公司研制生產(chǎn)的GPRS無線數(shù)據(jù)通信產(chǎn)品, 該產(chǎn)品內(nèi)置西門子MC39i GPRS模塊, 具有準(zhǔn)確性高、環(huán)境適應(yīng)性好、易于安裝和維護(hù)等特點(diǎn), 能夠為用戶提供高速、可靠、永遠(yuǎn)在線的數(shù)據(jù)傳輸服務(wù)和虛擬專用數(shù)據(jù)通信網(wǎng)絡(luò)服務(wù), 可廣泛用于遠(yuǎn)程抄表、環(huán)保數(shù)據(jù)采集、交通信息發(fā)布等方面。以下是GF-2008AW GPRS-DTU的主要特點(diǎn):

  ◇ 可實(shí)現(xiàn)串口透明的無線數(shù)據(jù)傳輸, 而且穩(wěn)定可靠;

  ◇ 高度集成GPRS和TCP/IP 技術(shù), 可將互連網(wǎng)和無線網(wǎng)絡(luò)有機(jī)的結(jié)合起來;

  ◇ 支持多種TCP/IP 協(xié)議, 如TCP、UDP、DNS、PPP、RAS 等;

  ◇ 按流量計費(fèi), 沒有流量不計費(fèi);

  ◇ 在標(biāo)準(zhǔn)RS232接口產(chǎn)品中體積最小, 適合嵌入式集成;

  ◇ 支持點(diǎn)對點(diǎn)、點(diǎn)對多點(diǎn)、中心對多點(diǎn)的對等數(shù)據(jù)傳輸;

  ◇ 基于串口通訊的AT+i指令接口, 可節(jié)省開發(fā)時間和開發(fā)成本;

  ◇ 支持ALWAYS ONLINE (永遠(yuǎn)在線) 模式,斷線可自動重?fù)埽?/p>

  ◇ 采用5~24 V / 1 A供電, 并具有節(jié)能模式。

  3 ZigBee通信程序設(shè)計

  3.1 ZigBee組網(wǎng)方案

  由于站牌處通常會有多輛公交車同時到達(dá),一個站牌對應(yīng)多輛公交車。鑒于網(wǎng)絡(luò)節(jié)點(diǎn)較少、網(wǎng)絡(luò)結(jié)構(gòu)比較簡單, 本系統(tǒng)采用星形模型組網(wǎng)。

  即把分布在公交線路上的電子站牌配置為ZigBee協(xié)調(diào)器, 而將到達(dá)的公交車配置為ZigBee終端設(shè)備。圖5所示是公交車與站牌的組網(wǎng)方式。當(dāng)站牌上ZigBee網(wǎng)絡(luò)協(xié)調(diào)器選擇一個信道和PAN ID并啟動時, 便建立了一個ZigBee個人局網(wǎng)(PAN)。

  而一旦協(xié)調(diào)器啟動PAN, 便允許路由器和終端設(shè)備結(jié)點(diǎn)加入PAN.作為ZigBee終端設(shè)備的車載終端加入PAN時, 系統(tǒng)將收到一個16位的網(wǎng)絡(luò)地址, 同時發(fā)送和接收來自作為ZigBee協(xié)調(diào)器的電子站牌終端的數(shù)據(jù)。PAN協(xié)調(diào)器的網(wǎng)絡(luò)地址總是0.由于站牌上ZigBee模塊的網(wǎng)絡(luò)物理地址是唯一的, 故可通過物理地址向站牌發(fā)送信息。

  圖5 公交車與站牌組網(wǎng)方式

  圖5 公交車與站牌組網(wǎng)方式

  3.2 ZigBee模塊的API操作

  XBee Pro具有空模式、接收模式、發(fā)送模式、睡眠模式和命令模式等5種操作模式。對于每一種操作模式, 還有透明方式和應(yīng)用程序接口(API) 方式兩種操作方式。當(dāng)工作在透明方式時,模塊可替代串口線的作用, 并以字節(jié)為單位操作各種信息; 而當(dāng)工作在API 方式時, 所有進(jìn)出模塊的數(shù)據(jù)均被包含在定義模塊的操作和事件的幀結(jié)構(gòu)中。本文采用API操作方式。

  API操作要求模塊之間通過一種結(jié)構(gòu)化的接口進(jìn)行通信(數(shù)據(jù)通過一種定義好序列的幀來交互通信)。API對通過串口數(shù)據(jù)幀進(jìn)行命令發(fā)送、命令響應(yīng), 以及模塊狀態(tài)信息的傳送與接收作了規(guī)定。

  (1) ZigBee發(fā)送請求

  公交車到達(dá)站牌后, 應(yīng)根據(jù)站牌的MAC地址將日期、時間、車號、公交線路、車內(nèi)人數(shù)、行駛方向等信息發(fā)送到電子站牌。公交車ZigBee模塊發(fā)送模式的API幀結(jié)構(gòu)定義如圖6所示。其中的Bytes6-13為站牌的MAC地址?! ?img alt="圖6 公交車TX請求API幀結(jié)構(gòu)圖" border="0" height="181" src="http://files.chinaaet.com/images/20111115/7c939f7f-c9bd-45f3-9086-a063a7863062.jpg" width="550" />

  圖6 公交車TX請求API幀結(jié)構(gòu)圖

 ?。?) ZigBee發(fā)送狀態(tài)。

  為實(shí)現(xiàn)可靠傳輸, 當(dāng)公交車傳送信息給電子站牌的請求完成后, 必須得到電子站牌的確認(rèn)信息, 因此還必須得到電子站牌回饋給公交車的發(fā)送狀態(tài)信息。這個信息將指出數(shù)據(jù)包是否被成功發(fā)送, 或者發(fā)送失敗。如果發(fā)送失敗必須重新發(fā)送公交車的信息, 直至發(fā)送成功。

  電子站牌根據(jù)公交車的MAC地址, 不斷的向PAN內(nèi)發(fā)送信息, 并通過回讀發(fā)送狀態(tài)來確定是否有公交車加入網(wǎng)絡(luò), 如果有, 則根據(jù)網(wǎng)絡(luò)地址識別公交車, 并將公交車的定位信息發(fā)送到監(jiān)控中心, 從而實(shí)現(xiàn)對GPS定位方式的補(bǔ)充?! ?img alt="圖7為公交車ZigBee模塊的TX狀態(tài)幀結(jié)構(gòu)" border="0" height="201" src="http://files.chinaaet.com/images/20111115/fc1c8a52-154a-4bbb-82cb-110d24b50986.jpg" width="550" />

  圖7為公交車ZigBee模塊的TX狀態(tài)幀結(jié)構(gòu)

  其中的Bytes 9為傳送狀態(tài)信息, Bytes6、7為接收模塊的16位網(wǎng)絡(luò)地址。

 ?。?) ZigBee接收包。

  電子站牌收到公交車發(fā)來的狀態(tài)信息數(shù)據(jù)包后便進(jìn)行解析, 并通過站牌的GPRS模塊發(fā)送到監(jiān)控中心。電子站牌ZigBee模塊接收模式的API幀結(jié)構(gòu)定義如圖8所示。圖中的Bytes5-12為公交車的MAC地址。

  圖8 電子站牌RX的API幀結(jié)構(gòu)圖

  圖8 電子站牌RX的API幀結(jié)構(gòu)圖

  3.3 GPRS網(wǎng)絡(luò)通信設(shè)計

  電子站牌收到公交車發(fā)來的信息后, 將通過GPRS-DTU發(fā)送到監(jiān)控中心, 然后由監(jiān)控中心將所有公交車發(fā)來的信息通過Internet發(fā)送給站牌。

  GPRS DTU有透傳模式、AT+i命令模式、自動IP注冊模式、遠(yuǎn)程維護(hù)和流控五種模式。在系統(tǒng)的電子站牌終端中, DTU將使用透傳模式與服務(wù)器進(jìn)行信息的交互。通過透傳模式可將電子站牌異步串口通信轉(zhuǎn)換成基于TCP/UDP協(xié)議的網(wǎng)絡(luò)通信。其主要目的是通過串行通信的簡單設(shè)備實(shí)現(xiàn)在IP網(wǎng)絡(luò)上的通信, 而數(shù)據(jù)格式不發(fā)生任何改變。這一點(diǎn)非常重要, 由于數(shù)據(jù)格式在經(jīng)過DTU前后均不發(fā)生任何變化, 由此, 電子站牌原有的設(shè)備及軟件不用作任何升級, 就可直接應(yīng)用。

  DTU的透傳模式可使電子站牌客戶端在發(fā)起通信請求時, 使DTU必須與服務(wù)器建立網(wǎng)絡(luò)連接。也就是說, 電子站牌下位機(jī)與服務(wù)器進(jìn)行數(shù)據(jù)傳輸時, 首先是電子站牌下位機(jī)要與DTU設(shè)備的串口相連, 在DTU進(jìn)入透傳模式后自動被調(diào)用, 并與服務(wù)器建立網(wǎng)絡(luò)連接, 當(dāng)網(wǎng)絡(luò)連接建立后, DTU將自動完成串口到網(wǎng)絡(luò)通信的轉(zhuǎn)換, 以便所有數(shù)據(jù)可透明地在服務(wù)器軟件與電子站牌下位機(jī)之間雙向傳輸。

  服務(wù)器與電子站牌終端通信可通過套接字socket 來實(shí)現(xiàn)。首先在服務(wù)器上建立一個監(jiān)聽Socket對象, 并綁定在一個固定端口上, 然后,每當(dāng)電子站牌客戶端發(fā)送一個SOCKET連接請求,服務(wù)器端就會新開啟一個線程, 并在其中創(chuàng)建一個socket與電子站牌客戶端的socket通訊, 直到電子站牌客戶端程序關(guān)閉, 該線程結(jié)束, 然后服務(wù)器主線程的socket在應(yīng)用程序退出時關(guān)閉。通過多線程的Socket程序設(shè)計, 可以實(shí)現(xiàn)一個服務(wù)器與多個電子站牌客戶端的通信。

  以下是服務(wù)器基于socket多線程的具體實(shí)現(xiàn)程序代碼:

  DWORD WINAPI AnswerThread ( LPVOIDlparam) //收發(fā)線程入口

  {//創(chuàng)建線程時把服務(wù)器建立的新套接字傳給lparam

  SOCKET ClientSocket = ( SOCKET) ( LPVOID)lparam;

  int bytesRecv;char sendbuf [ 32] = “ ” ;char

  recvbuf [32] =“” ;

  while (1)

  {bytesRecv=SOCKET_ERROR;

  for ( int i =0;i 《 ( int) strlen ( recvbuf) ;i ++ )

  {recvbuf [i] =‘\0’;}

  while (bytesRecv==SOCKET_ERROR)

  { bytesRecv =recv ( ClientSocket,recvbuf,32,0) ;} //⑤接收電子站牌客戶端的數(shù)據(jù)

  …

  send ( ClientSocket,recvbuf,strlen ( recvbuf) ,0) ; //⑥向電子站牌客戶端發(fā)送數(shù)據(jù)

  }

  }

  …

  WSAStartup (MAKEWORD (2,2) ,&wsaData) ;//初始化Winsock

  socket ( AF_INET,SOCK_STREAM,IPPROTO_TCP) ;//①創(chuàng)建一個監(jiān)聽socket

  bind ( m_socket, ( SOCKADDR*) &service,sizeof(service)) //②綁定套接字

  listen (m_socket,20) //③監(jiān)聽套接字

  SOCKET AcceptSocket;

  while (1) //一直等待客戶端的請求, 請求到來后,建立新的連接套接字

  { AcceptSocket=SOCKET_ERROR;

  while (AcceptSocket==SOCKET_ERROR)

  { AcceptSocket =accept ( m_socket,NULL,NULL) ;} /*④等待客戶請求到來,請求到來后,接受連接請求, 返回一個新的對應(yīng)此次連接的socket*/

  hThread =CreateThread ( NULL,NULL,AnswerThread, ( LPVOID) AcceptSocket,0,&dwThreadId) ;} /*創(chuàng)建新線程, 將新的連接套接字傳給AnswerThread入口函數(shù)*/

  }

  4 結(jié)束語

  本系統(tǒng)中, 公交車與電子站牌通過ZigBee網(wǎng)絡(luò)實(shí)現(xiàn)信息交互, 電子站牌與監(jiān)控中心通過GPRS網(wǎng)絡(luò)實(shí)現(xiàn)信息交互。公交車上用價格低廉的ZigBee模塊取代現(xiàn)有智能公交系統(tǒng)中的車載GPRS模塊, 可節(jié)約硬件成本, 而公交車與電子站牌之間的ZigBee網(wǎng)絡(luò)通信則可實(shí)現(xiàn)公交車的定位, 以作為GPS定位的補(bǔ)充, 從而增加了系統(tǒng)的可靠性。

  今后, 隨著3G、WiMAX、Wi-Fi等無線通信技術(shù)的成熟以及更加優(yōu)化的衛(wèi)星定位技術(shù)的出現(xiàn), 定會出現(xiàn)越來越多的智能公交系統(tǒng)方案, 從而在更大程度上推動智能公交系統(tǒng)的發(fā)展。

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