基于射頻識(shí)別技術(shù)的車輛路口
掃描二維碼
隨時(shí)隨地手機(jī)看文章
0. 引言
日常生活中經(jīng)常可以看見某些特殊用途的車輛,這些車輛通過交叉路口時(shí),往往是通過交警臨時(shí)操作交通信號(hào)控制機(jī)改變信號(hào)燈的顏色或是通過相關(guān)人員直接上路指揮等方式以獲得在交叉路口的優(yōu)先通行權(quán)。這樣的做法實(shí)時(shí)性和安全性都不是很好。射頻識(shí)別是一種非接觸式的自動(dòng)識(shí)別技術(shù),它通過射頻信號(hào)自動(dòng)識(shí)別目標(biāo)對(duì)象并獲取相關(guān)數(shù)據(jù),在無須人工干預(yù)的前提下工作,并可識(shí)別高速運(yùn)動(dòng)物體且操作快捷方便,同時(shí)可工作于各種惡劣環(huán)境。本系統(tǒng)可以針對(duì)特種車輛發(fā)出的申請(qǐng),對(duì)其進(jìn)行有效地識(shí)別,通過位于路口的交通信號(hào)控制機(jī)或遠(yuǎn)程監(jiān)控中心的控制,決定其是否獲得路口的優(yōu)先通行權(quán)。監(jiān)控中心也可以根據(jù)車輛反饋的信息獲得特定路口及其周邊一定范圍內(nèi)的道路交通通行狀況,從而為道路交通的區(qū)域協(xié)調(diào)控制和決策提供有力依據(jù)。
1. 系統(tǒng)設(shè)計(jì)要求及總體設(shè)計(jì)
圖1 系統(tǒng)示意圖
本系統(tǒng)的硬件平臺(tái)主體主要包括射頻識(shí)別(RFID)電子標(biāo)簽?zāi)K和射頻識(shí)別讀卡器模塊兩部分。電子標(biāo)簽?zāi)K安裝于車輛上,一般位于方便駕駛員操作的適當(dāng)位置。考慮到性價(jià)比和開發(fā)周期的因素,電子標(biāo)簽部分的微控制器采用美國(guó)ATMEL公司的基于51核的單片機(jī)AT89C51[1]。RFID標(biāo)簽按供電方式可以分為有源和無源兩種,有源是指標(biāo)簽內(nèi)有電池提供電源,其作用距離較遠(yuǎn),但壽命有限、體積較大、成本高,且不適合在惡劣環(huán)境下工作;無源標(biāo)簽內(nèi)無電池,利用波束供電技術(shù)將接收到的射頻能量轉(zhuǎn)化為直流電源為卡內(nèi)電路供電,其作用距離相對(duì)有源卡短,但壽命長(zhǎng)且對(duì)工作環(huán)境要求不高[2]??紤]到標(biāo)簽的工作環(huán)境為車內(nèi),且為了提高信號(hào)質(zhì)量和作用距離,本系統(tǒng)的電子標(biāo)簽?zāi)K采用有源標(biāo)簽。電子標(biāo)簽?zāi)K由車載電源供電。讀卡器模塊位于路口,采用韓國(guó)SAMSUNG公司的基于ARM7TDMI-S核的32位微處理器S3C44B0X,將識(shí)別的信息通過RS-485總線傳給位于路口的交通信號(hào)控制機(jī),或是通過網(wǎng)口將信息直接傳給監(jiān)控中心的上位計(jì)算機(jī),再由交通信號(hào)控制機(jī)或監(jiān)控中心決定是否改變信號(hào)燈的狀態(tài)。每一個(gè)十字路口安裝四臺(tái)讀卡器,均位于道路右側(cè),為了防止出現(xiàn)讀卡器誤讀,將四臺(tái)讀卡器放置于彼此距離較遠(yuǎn)的安全位置上。
2. 硬件設(shè)計(jì)
圖2 電子標(biāo)簽結(jié)構(gòu)框圖
電子標(biāo)簽采用nrf2401+AT89C51架構(gòu)。nrf2401是NORDIC semiconductor的RFID芯片,采用全球開放的2.4GHz頻段,有125個(gè)頻道,可滿足多頻及跳頻需要,具有較高的數(shù)據(jù)吞吐量,速率可達(dá)1Mbps,外圍元件較少,只需一個(gè)晶振和一個(gè)電阻即可設(shè)計(jì)射頻電路,發(fā)射功率和工作頻率等所有工作參數(shù)可全部通過軟件設(shè)置,電源電壓范圍為1.9V~3.6V,功耗很低,電流消耗很小,-5dBm輸出功率時(shí)典型峰值電流為10.5mA,芯片內(nèi)部設(shè)置有專門的穩(wěn)壓電路,因此,使用任何電源(包括DC/DC開關(guān)電源)均有良好的通信效果,每個(gè)芯片均可以通過軟件設(shè)置最多40bit地址,而且只有收到本機(jī)地址時(shí)才會(huì)輸出數(shù)據(jù),內(nèi)置CRC糾檢錯(cuò)硬件電路和協(xié)議。AT89C51是一種低功耗高性能的8位單片機(jī),片內(nèi)帶有一個(gè)4K字節(jié)的Flash可編擦除只讀存儲(chǔ)器,它采用了CMOS工蟻和高密度非易失性存儲(chǔ)器技術(shù),其中央處理器由ALU,專用寄存器組,定時(shí)控制部件等組成,具有較強(qiáng)的調(diào)用、跳轉(zhuǎn)、判斷、豐富的數(shù)據(jù)傳輸功能,以及提供存放中間結(jié)果、常用參數(shù)寄存器等功能。電子標(biāo)簽安裝于車輛上,操作面板由5個(gè)按鍵組成,分別是開關(guān),復(fù)位,左轉(zhuǎn)請(qǐng)求,右轉(zhuǎn)請(qǐng)求和直行請(qǐng)求。其中請(qǐng)求鍵采用中斷方式,用于在車輛接近路口需要優(yōu)先通過時(shí)向讀卡器發(fā)送優(yōu)先通行請(qǐng)求。標(biāo)簽中還存儲(chǔ)有關(guān)于該車輛的信息數(shù)據(jù),如車種,車牌,型號(hào)和用途等。
圖3 讀卡器系統(tǒng)框圖
讀卡器系統(tǒng)仍然采用nrf2401作為接收節(jié)點(diǎn)。讀卡器部分主要實(shí)現(xiàn)信息識(shí)別和通信功能。采用SAMSUNG公司的基于ARM7TDMI-S核的高性能32位微處理器S3C44B0X[3]。它的工作電壓僅為2.5V,大大降低了芯片的功耗,可以外擴(kuò)SDRAM,F(xiàn)LASH,內(nèi)置的LCD控制器最大可以支持256色STN的LCD[4],71個(gè)通用I/O,包括8個(gè)外部中斷源。本系統(tǒng)中擴(kuò)展了10Mbps以太網(wǎng)接口芯片Realtek公司的RTL8019,該芯片具有16位數(shù)據(jù)線接口和20位的地址線接口,可以在發(fā)送的物理幀上自動(dòng)添加幀頭,幀起始定界符和校驗(yàn)和。讀卡器將接收到的信息通過RS-485總線傳輸?shù)浆F(xiàn)場(chǎng)的交通信號(hào)控制機(jī)上,直接改變交通燈狀態(tài),如果路口中有相同或更高的申請(qǐng)級(jí)別,則將請(qǐng)求信息通過網(wǎng)口送到監(jiān)控中心仲裁,然后由監(jiān)控中心直接向信號(hào)機(jī)發(fā)送指令[5]。
3. 軟件設(shè)計(jì)
為了實(shí)現(xiàn)TCP/IP通信,同時(shí)使系統(tǒng)盡可能地輕量和簡(jiǎn)潔,本系統(tǒng)通過在uC/OS-II操作系統(tǒng)上移植LwIP協(xié)議棧加以實(shí)現(xiàn)。lwIP是瑞士計(jì)算機(jī)科學(xué)院的一個(gè)開源的TCP/IP協(xié)議棧實(shí)現(xiàn),它是一套專門為嵌入式系統(tǒng)設(shè)計(jì)的源碼開放的輕型協(xié)議棧。LwIP在保持TCP/IP協(xié)議基本要求的前提下,通過層與層之間共享內(nèi)存,避免了許多繁瑣的復(fù)制處理,這樣做大幅度地節(jié)省了代碼和數(shù)據(jù)存儲(chǔ)空間,因此非常適合嵌入式應(yīng)用。與其他輕型協(xié)議棧不同的是,LwIP不僅支持一般的網(wǎng)絡(luò)協(xié)議,比如UDP協(xié)議、DHCP協(xié)議、PPP協(xié)議等,而且還支持多網(wǎng)絡(luò)接口、IPv6和標(biāo)準(zhǔn)API。
3.1 LwIP在uC/OS-II上的移植
針對(duì)uC/OS-II[6]和ARM的ADS編譯器,LwIP的移植只需要編寫arch文件夾下的3個(gè)文件——cc.h、sys_arch.h和sys_arch.c。其中cc.h中有與CPU和編譯器有關(guān)的定義,包括數(shù)據(jù)結(jié)構(gòu)和大小端存儲(chǔ)方式等。為了增強(qiáng)移植性,LwIP專門把和操作系統(tǒng)有關(guān)的數(shù)據(jù)結(jié)構(gòu)和函數(shù)放在一起組成操作系統(tǒng)封裝層,為諸如定時(shí)、進(jìn)程同步和消息傳遞等操作系統(tǒng)服務(wù)提供統(tǒng)一的接口,移植時(shí)需針對(duì)不同的操作系統(tǒng)來實(shí)現(xiàn)特定的操作系統(tǒng)封裝層,這些是由sys_arch.h和sys_arch.c實(shí)現(xiàn)的。其中sys_arch.h主要定義與操作系統(tǒng)相關(guān)的數(shù)據(jù)結(jié)構(gòu)——信號(hào)量、郵箱和進(jìn)程號(hào),這些在uC/OS-II中都有對(duì)應(yīng)的實(shí)體,LwIP中的郵箱對(duì)應(yīng)于uC/OS-II中的消息隊(duì)列。sys_arch.c中要實(shí)現(xiàn)和操作系統(tǒng)有關(guān)函數(shù)的定義,包括系統(tǒng)的初始化以及信號(hào)和郵箱的操作——創(chuàng)建、刪除、投遞和等待,這些功能需要用uC/OS-II中相應(yīng)的函數(shù)進(jìn)行重新封裝。另外,TCP/IP協(xié)議棧中需要許多定時(shí)器的功能,在LwIP中是用sys_timeout結(jié)構(gòu)體隊(duì)列和相應(yīng)的函數(shù)實(shí)現(xiàn)的。每個(gè)sys_timeout結(jié)構(gòu)體包括本線程的timeout時(shí)間長(zhǎng)度,以及超時(shí)后的回調(diào)處理函數(shù)sys_arch.c中sys_arch_timeouts()函數(shù)的功能就是返回當(dāng)前進(jìn)程所對(duì)應(yīng)的sys_timeout結(jié)構(gòu)體隊(duì)列的頭指針。本系統(tǒng)用的方法是在系統(tǒng)初始化的時(shí)候根據(jù)最大的LwIP進(jìn)程數(shù)創(chuàng)建一個(gè)sys_timeout結(jié)構(gòu)體指針的數(shù)組,以后每創(chuàng)建一個(gè)LwIP進(jìn)程其優(yōu)先級(jí)都從一個(gè)連續(xù)的已知區(qū)間進(jìn)行分配,sys_arch_timeouts()函數(shù)通過調(diào)用OSTaskQuery()函數(shù)獲得進(jìn)程的優(yōu)先級(jí)進(jìn)而獲得對(duì)應(yīng)的sys_timeout結(jié)構(gòu)體隊(duì)列的頭指針。[!--empirenews.page--]
3.2 RTL8019驅(qū)動(dòng)程序的編寫
RTL8019驅(qū)動(dòng)程序做的工作主要是8019的初始化、發(fā)送和接收以太網(wǎng)數(shù)據(jù)包。初始化函數(shù)rtl8019_init()是在添加以太網(wǎng)絡(luò)接口時(shí)由netif_add()函數(shù)調(diào)用,調(diào)用過程中首先初始化此接口對(duì)應(yīng)的全局網(wǎng)絡(luò)接口結(jié)構(gòu)體,然后設(shè)置8019的各功能寄存器。初始化完8019之后調(diào)用arp_init()函數(shù)啟動(dòng)ARP功能,然后用sys_timeout()函數(shù)啟動(dòng)ARP緩沖列表生命周期的定時(shí)器。數(shù)據(jù)包的發(fā)送首先從ARP緩沖隊(duì)列中查找目的MAC地址,然后構(gòu)造以太網(wǎng)數(shù)據(jù)幀的頭部,最后調(diào)用底層的發(fā)送函數(shù)low_level_output()將數(shù)據(jù)幀發(fā)送出去。如果找不到對(duì)應(yīng)的IP/MAC項(xiàng),發(fā)送ARP請(qǐng)求數(shù)據(jù)幀。數(shù)據(jù)包的接收由中斷[7]處理函數(shù)rtl8019_ISR()調(diào)用,它的執(zhí)行過程是先調(diào)用最底層的接收函數(shù)low_level_input()從8019中接收數(shù)據(jù)幀,如果接收的是IP數(shù)據(jù)包,則更新ARP緩沖隊(duì)列并把數(shù)據(jù)包傳給網(wǎng)絡(luò)接口結(jié)構(gòu)指定的函數(shù)進(jìn)行處理。如果接收的是ARP數(shù)據(jù)包,則調(diào)用etharp_arp_input()函數(shù)處理。最底層的接收發(fā)送函數(shù)采用的都是8019的遠(yuǎn)程DMA工作方式以提高性能[8]。
3.3 軟件框圖
圖4 讀卡器系統(tǒng)軟件框圖
信號(hào)機(jī)的響應(yīng)級(jí)由監(jiān)控中心的上位機(jī)設(shè)定,信號(hào)機(jī)可以在事先獲得授權(quán)的情況下自主改變燈色,如果事先未獲授權(quán),或是同時(shí)收到多個(gè)不同標(biāo)簽的請(qǐng)求,則信息必須送到監(jiān)控中心處理,由監(jiān)控中心的上位機(jī)判定優(yōu)先級(jí)后發(fā)指令控制信號(hào)機(jī)的動(dòng)作。監(jiān)控中心還可以隨時(shí)獲得特定車輛的位置以及所在區(qū)域的路況等信息,通過合理改變區(qū)域內(nèi)信號(hào)機(jī)的綠信比,達(dá)到區(qū)域協(xié)調(diào)控制的目的。
4. 實(shí)驗(yàn)結(jié)果
監(jiān)控中心的上位機(jī)軟件由Mircosoft Visual C++.NET 2003開發(fā)。
該系統(tǒng)應(yīng)用于某市政務(wù)區(qū)的繁華大道與錦繡大道的交口。由于事先設(shè)定由監(jiān)控中心控制,所以當(dāng)標(biāo)簽發(fā)送通行請(qǐng)求時(shí),讀卡器將向監(jiān)控中心發(fā)送請(qǐng)求,監(jiān)控中心的上位機(jī)彈出圖5所示的對(duì)話框,該對(duì)話框顯示了車輛所在的路口,車號(hào),車型,車種,請(qǐng)求通行的類型以及請(qǐng)求時(shí)間等相關(guān)信息,由監(jiān)控中心決定是否處理其請(qǐng)求,監(jiān)控中心操作人員可以點(diǎn)擊“忽略”以不響應(yīng)該車輛本次的申請(qǐng)。
圖6 上位機(jī)軟件控制界面
在圖5對(duì)話框中點(diǎn)擊“同意受控”后,將會(huì)出現(xiàn)圖6所示的設(shè)置窗口,左上角的為科學(xué)城區(qū)域內(nèi)的主要道路列表,左下角顯示了與道路相應(yīng)的各交口信號(hào)機(jī)的當(dāng)前狀態(tài),未聯(lián)機(jī)的信號(hào)機(jī)不顯示。右上角為當(dāng)前發(fā)送申請(qǐng)的車輛所在的繁華大道與錦繡大道交口的示意圖,通過右下角的列表設(shè)定當(dāng)前路口信號(hào)機(jī)的執(zhí)行方案。當(dāng)前的執(zhí)行方案如列表中所示,該路口信號(hào)機(jī)當(dāng)前執(zhí)行四個(gè)相位的方案,每個(gè)相位的燈組號(hào)如圖示。當(dāng)前執(zhí)行的為1號(hào)時(shí)段方案,對(duì)應(yīng)到本信號(hào)機(jī),1號(hào)方案表明將一天分為7:00~21:00,22:00~6:00兩個(gè)時(shí)段,每個(gè)時(shí)段的相位配時(shí)不同。后面的時(shí)間即為當(dāng)前時(shí)段每個(gè)相位的時(shí)間長(zhǎng)度。通過改變時(shí)間長(zhǎng)度可以設(shè)定放行的時(shí)間。
5. 總結(jié)
本系統(tǒng)應(yīng)用于實(shí)際的路口,使得特種車輛的通行更加迅速便捷,同時(shí)極大降低了人力消耗。作為智能交通系統(tǒng)的一部分,本系統(tǒng)對(duì)實(shí)現(xiàn)區(qū)域協(xié)調(diào)控制也具有一定的現(xiàn)實(shí)意義。
參考文獻(xiàn):
[1] 宋廷強(qiáng),沈劍良,曲英杰. 一種RFID電子標(biāo)簽的數(shù)字部分設(shè)計(jì)[J].青島科技大學(xué)學(xué)報(bào),2008,29(1):72-76.
[2] FINKENZELLER K. 射頻識(shí)別技術(shù)[M].吳曉峰,陳大才,譯.北京:電子工業(yè)出版社,2006.36-125.
[3] 李巖,榮盤祥. 基于S3C44B0X嵌入式uClinux系統(tǒng)原理及應(yīng)用[M].北京:清華大學(xué)出版社,2005:69-254.
[4] 陳鼐,于盛林. 基于ARM 的LCD 模塊接口設(shè)計(jì)及MiniGUI 實(shí)現(xiàn)[J].儀器儀表學(xué)報(bào),2007,28(Z4):277-281.
[5] 馬連博,蘇衛(wèi)星,胡琨元,等. 基于嵌入式Linux和RFID技術(shù)的電子看板設(shè)計(jì)[J].計(jì)算機(jī)應(yīng)用,2007,27(12):283-285.
[6] 那加. 嵌入式實(shí)時(shí)操作系統(tǒng)uC/OS-Ⅱ在Sharp LH79520處理器上的移植[J].測(cè)控技術(shù),2007,26(10):53-56.
[7] 馮瑋,喻曉峰.基于ARM系統(tǒng)下映像文件的執(zhí)行與中斷運(yùn)行機(jī)制的實(shí)現(xiàn)[J].計(jì)算機(jī)應(yīng)用,2006,26(Z1):255—257.
[8] 張蓬鶴,王群,張東輝. RTL8019型控制器與高速數(shù)字信號(hào)處理器的接口設(shè)計(jì)及編程技巧[J].國(guó)外電子元器件,2006 ,10(8). 47-49.