摘要:隨著車輛的增多,城市交通擁堵越來越嚴重,影響了市民日常出行。實行車輛限行是緩解交通擁堵的有效方法。利用Chipcon AS公司的射頻芯片CC2430進行車輛無線識別,結合單片機與以太網實現遠程通信,設計了一套根據車輛出行天數進行城市車輛限行的系統。為了獲得車輛出行天數,對根據出行天數進行車輛限行的方法進行了論述,重點是系統的硬件設計,并對軟件設計中的難點給出了說明。
關鍵詞:車輛限行;CC2430;射頻識別;8051單片機
0 引言
隨著經濟快速發展,各個城市都面臨著不同程度的交通擁堵問題。交通擁堵之所以成為城市公害,是因為它嚴重影響社會正常秩序,而且還引發城市環境的持續惡化。交通擁堵對社會生活的影響,首先是出行時間和出行費用的消耗增加;其次,隨著出行成本的增大,可能會抑制出行,致使城市人口生活質量下降;就能源消耗以及城市道路交通實施的有效利用而言,交通擁堵無疑又會導致資源的嚴重浪費;交通擁堵對公共交通的影響也十分嚴重,交通擁堵極大降低公共交通的運行效率;交通擁堵對城市環境質量的危害是另一個不可忽視的問題,交通擁堵會導致汽車尾氣污染加重,還會使噪聲污染變得更加嚴重。
車輛限行作為一種卓有成效的解決城市交通擁堵措施,經過了實踐的證實,其效果也得到了社會的肯定。大多數城市進行車輛限行采用的是根據車牌尾號限行的方案,如單雙號限行措施。根據車牌號進行限行有一系列缺點:限行號碼、時間和路段過于混亂,難于記憶掌握;另一方面,限制了一些確實需要出行的車輛,對一些市民日常生活秩序造成一定程度的影響;甚至有一些家庭通過購買第二輛車來逃避車輛限行,使得與限行的初衷南轅北轍。
針對以上情況,本文將單片機技術和射頻識別技術結合起來,設計了一套統計車輛出行天數的裝置。車輛加裝電子標簽與道路上采集單元實現信息交互,道路采集單元識別并記錄車輛信息。將車牌信息發送至交控中心服務器,由出行天數計算系統,計算出車輛的出行天數,作為收取擁堵費依據,從而實現車輛限行目的。
1 城市車輛限行方法
目前城市車輛限行主要是根據車輛車牌尾號進行限行。如北京,根據車牌尾號將車輛分為不同的幾組,一周內每天分別指定一組或幾組尾號的車輛限行。此方法采用行政手段,強制性限制車輛出行,不夠人性化。
本文提出,根據車輛出行天數收取擁堵費,實現車輛限行的目的。系統模擬圖如圖1所示,該系統主要由車輛電子標簽、采集單元和交控中心擁堵費計算系統組成。當車輛經過橫跨車道上空的龍門架時,龍門架上安裝識別單元,激活電子標簽工作電路,車輛電子標簽和識別單元進行信息交互,將車牌信息發送至識別單元。采集單元接收車牌信息,存儲于內部芯片,并定時發送所存儲數據至交控中心服務器。車輛電子標簽由射頻芯片和微處理器組成。道路上方采集單元包括射頻信號接收模塊,控制模塊和數據發送模塊。其中射頻信號接收模塊由接收天線和閱讀器組成。控制模塊控制數據的接收、存儲和發送。
交控中心擁堵費計算系統主要功能是車輛出行天數統計和擁堵費計算。本文主要研究車輛出行天數的獲得,對于擁堵費計算部分,各城市可根據自身實際情況,依據車輛的出行天數,制定擁堵費收取方案。
系統功能框圖見圖2,主要工作分為三個階段。
1.1 無線射頻信號收發階段
當車輛通過安裝了采集單元的龍門架前方附近時,處于采集單元內部閱讀器天線的輻射區,電子標簽開始發送加密載波信號至閱讀器。二者之間屬于微波通信,通信工作頻率達2.4 GHz。對已接收車輛電子標簽采用休眠-喚醒-休眠方式控制數據發送,避免車輛信息重復發送,降低功耗。
采用ALHOLA時分算法進行多個車輛的識別,防止多個標簽信息發送發生碰撞。電子標簽和閱讀器之間的數據傳送采用驗證和加密方式保證數據傳送安全。
閱讀器解調接收信息后,將數據送至控制模塊。
1.2 控制模塊信息處理及數據發送
控制模塊首先根據車牌前兩位判斷是否為本市車輛(只記錄本地車輛出行數據)。若為本市車輛,則存入,否則繼續判讀下一條信息。將車牌信息結合當天日期進行編碼,存入存儲器。
控制模塊選用微處理器作為控制芯片,外接存儲芯片保存數據。選用以太網控制器芯片通過RJ45接口,連接外部以太網絡。傳輸協議遵守標準TCP/IP協議,將數據發送至交控中心服務器。
1.3 擁堵費計算系統
采集單元將當天車輛出行信息發送至交控中心服務器。對各個單元內車輛出行信息進行篩選,去除重復數據,得出車輛當天的出行信息。
月底或年終,對車輛出行信息進行統計,得出車輛每月或每年總的出行天數,然后可根據車輛出行天數進行擁堵費收取。
交控中心應對安裝采集單元的路段以及擁堵費收取費率作必要公示。每月以短信方式通告車主當月出行天數以及應繳擁堵費數額。年底,交控中心匯總計算車輛當年應繳擁堵費,并通知車主擁堵費繳納時間。對于逾期不交、拖欠等行為,交管中心可對車輛進行適當罰款,以作必要警示。對于故意人為破壞電子標簽等逃避車輛識別行為,采取教育、罰款等方式,確保車輛識別率,提高城市車輛限行效果。
2 硬件設計
系統硬件結構中主要包括射頻收發芯片CC2430、以太網控制器RTL8019AS、存儲芯片、網絡隔離變壓器。CC2430芯片在發送端自動完成對數據信號的打包、編碼、調制,轉換為RP、信號后通過后端輸入/輸出匹配電路送入天線,完成信號發送。接收端將從天線接收到的有用信號通過CC2430解調、拆包,并進行CRC校驗,最終存儲數據。CC2430芯片內部的8051單片機,控制以太網控制器RTL8019AS進行數據的發送,用到的主要芯片有RTL8019AS,CSl93C46(64×16 b的E2PROM),74HC573(8位鎖存),62256(32KBRAM)。為分配好地址空間,采用CSI93C46進行讀(或寫)操作來設置RTL8019AS端口的I/O基地址和以太網物理地址。8051作為中央處理器,可控制射頻芯片休眠或者將其喚醒,進行數據的收發。8051的兩個外部中斷輸入端分別接開關K1和K2。開關K1的功能在于使用外部中斷退出單片機的掉電模式,開關K2的功能在于實現單片機內部的數據發送控制。8051單片機作為中央處理器不僅需要控制無線信號收發,同時還要對以太網控制器進行控制,在軟件設計中需要判別車牌信息是否為本市車輛,對數據進行存儲,按照時鐘定時發送或者接收交控中心發出的控制信號進行數據發送操作;射頻收發芯片主要作為該系統的發送、接收設備,它用來實現車輛信息的給定,主要作用在于它可以實現電子標簽和采集單元的數據交互;RTIL8019AS芯片,主要作用是實現單片機和遠程PC通過以太網實現相互通信,將8051的串行口改為能介入以太網的RJ 45接口,數據傳輸遵循標準TCP/IP協議。
2.1 電子標簽&閱讀器
CC2430是真正的系統芯片(SoC)CMOS解決方案,能夠提高性能并滿足以ZigBee為基礎的2.4 GHzISM波段應用對低成本、低功耗的要求。它結合了高性能的2.4 GHz DSSS(直接序列擴頻)射頻收發器核心和1顆工業級小巧高效的8051控制器。CC2430在單個片上集成了ZigBee射頻(RF)前端、內存和微控制器,使用1個8位MCU(8051),具有32 KB/64 KB/128 KB的編程閃存和8 KB的RAM,還包含模/數轉換器(ADC)、定時器(Timer)、AES-128安全協處理器、看門狗定時器(Watchdog Timer)、32 kHz晶振的休眠模式定時器、上電復位電路、掉電檢測電路以及21個可編程I/O引腳。CC2430的8051內核的目標代碼兼容標準8051微處理器,可以使用標準8051的匯編器和編譯器進行軟件開發。其21個可編程I/O引腳均可以通過軟件設定1組SFR寄存器的位和字節,使這些引腳作為通常的I/O口或者作為接ADC、定時器或USART部件的外圍設備I/O口使用。
CC2430電路連接圖如圖3所示。電路選用CC2430芯片作為電子標簽以及采集單元內閱讀器的核心部件。選用1個32.768 kHz的石英諧振器和2個電容組成32.768 kHz的晶振電路;選用1個32 MHz的石英諧振器和2個電容組成32 MHz的晶振電路(具體晶振電路圖省略)。電壓調節器可為所有要求1.8V電壓的內部電源供電,電容是用來作為電源濾波的去耦合電容,以提高芯片工作的穩定性。電路中J2是I/O引腳JTAG仿真器接口。J1是CC2430芯片擴展輸出口,在擴展輸出口上主要預留了SPI口和整個P0 I/O口。設計了2個發光二極管指示燈,作為電路調試指示燈。使用1個非平衡天線,為了使天線性能更好,在天線與CC2430之間連接了1個非平衡變壓器。非平衡變壓器由電容和三個電感以及1個PCB微波傳輸線組成,整個結構滿足RF輸入/輸出匹配電阻(50 Ω)的要求。
在電子標簽中,由微控制芯片8051對CC2430進行控制,并通過SPI口將所要發送的數據送入CC2430,CC2430自動完成對數據信號的打包、編碼、調制,轉換為RF信號后通過后端輸入/輸出匹配電路送入天線,完成信號發送。采集單元閱讀器中數據接收將從天線接收到的有用信號通過CC2430解調、拆包,并進行CRC校驗,然后送入微控制器芯片進行處理,通過RS 232轉換芯片進行輸出。經過上述過程,進行數據的收發,RF收發器設計原理圖如圖4所示,虛線部分為閱讀器部分,通過RS 232串口送至以太網控制器。
2.2 以太網控制器
以太網數據傳輸部分,選用Realtek公司的RTL8019AD以太網控制器,性能優良、價格低廉,在市場上占有相當大的比例。其主要性能如下:
(1)符合EthernetⅡ與IEEE 802.3(10Base5,10Base2,10BaseT)標準;
(2)全雙工,收發可同時達到10 Mb/s的速率;
(3)內置16 KB的SRAM,用于收發緩沖,降低對主處理器的速度要求;
(4)支持8/16位數據總線,8個中斷申請線以及16個基地址選擇;
(5)支持UTP,AUI,BNC自動檢測,還支持對10BaseT拓撲結構的自動極性修正;
(6)允許4個診斷LED腳可編程輸出;
(7)100腳的PQFP封裝,縮小了PCB尺寸。
圖5給出了8051單片機控制RTL8019AS的接口電路,實現與以太網通信,網絡接口采用UTP RJ 45接口。用到的主要芯片有RTL8019AS,CSI93C46(64×16 b的E2PROM),74HC573(8位鎖存器),62 256(32 KB的RAM)。
為分配好地址空間,采用對CSI93C46進行讀(或寫)操作來設置RTL8019AS的端口I/O基地址和以太網物理地址。CSI93C46是采用4線SPI串行接口的Serial E2PROM,容量為1 Kb,主要保存RTL8019AS的配置信息。RTL8019AS通過控制CSI93C46的CS,SK,DI引腳,通過ESDO接收CSI-93C46的DO引腳的狀態。RTL8019AS復位后讀取CSI93C46的內容并設置內部寄存器的值,如果CSI93C46中內容不正確,就無法正常工作。先通過編程器把配置好的數據寫入CSI93C46,再焊入電路。
采用10BaseT布線標注通過雙絞線進行以太網通信,而RTL8019AS內置了10BaseT收發器,所以網絡接口的電路比較簡單。外接一個隔離LPF濾波器0132,TPIN+/-為接收線,TPOUT+/-為發送線,經隔離后分別與RJ 45接口的RX+/-,TX+/-端相連。
時鐘電路通過T1,T2接一個20 MHz晶振以及2個電容,實現全雙工方式。
LED0,LED1各接一發光二極管以反映通信狀態:LED0表示LED_COL,即通信有沖突;LED2表示LED_RX,即接收到網上的信息包。
2. 3 硬件傳輸性能及功耗
自由空間傳播距離與發射功率、接收靈敏度以及所使用的載波頻率有關,其數學表達式為:
式中:d為傳播距離;Lp為自由空間損耗;c為光速;f為載波頻率。由理論計算可知,CC2430最遠識別距離可達1 500 m。實際中,由于外接干擾、障礙物遮擋和空氣質量等因素影響,識別距離無法達理論長度。表1給出了利用CC2430實現遠距離收發數據的測試結果。設數據包大小為32 B,數據速率為1 MHz。由電子標簽到采集單元、和從采集單元到電子標簽分別發送100個數據包,記錄接收到正確數據包的數量。可見,在40 m以內的范圍內,采集單元可以實現對車輛全部的識別,不會發生丟包現象。在實際使用中可能會遇到其他種種干擾,抗干擾能力是系統需要考慮的問題之一。
系統均選用較低功耗器件,電子標簽中有源器件包括電壓轉換芯片、CC2430,它們的工作電流分別為3.5μA,27 mA(接收)/25 mA(發送)。且采用休眠-喚醒-休眠的工作方式,休眠時功耗更低。只需加裝電池,即可滿足3~5年的使用。實現低成本、低功耗、高性能的系統需求。
3 軟件設計
軟件設計分為CC2430進行無線收發部分和單片機控制以太網進行數據傳輸部分。軟件設計的難點在于射頻芯片數據的收發,下面主要介紹射頻數據收發控制以及以太網數據傳送控制,對這兩方面的操作處理做簡要分析。
3.1 射頻數據傳輸協議
電子標簽和采集單元之間的數據傳輸遵循ZigBee無線網絡傳輸協議。ZigBee協議是在IEEE 802.15.4標準基礎上建立的,工作于免授權的2.4 GHz頻段,其規定了有關組網、安全和應用軟件方面的技術標準。由一組子層構成,每層為其上層提供一組特定的服務:數據實體提供數據傳輸服務,管理實體提供全部其他服務。每個服務實體通過一個服務接入點(SAP)為上層提供服務接口,并且每個SAP提供一系列的基本服務指令來完成相應的功能,ZigBee協議棧的體系結構模型如圖6所示,IEEE 802.15.4標準定義了物理層(PHY)和介質接入控制子層(MAC);ZigBee聯盟定義了網絡層和應用層(APL)框架的設計。其中應用層框架主要包括3部分:應用支持子層(APS)、ZigBee設備對象(ZDO)和由制造商制定的應用對象。
ZigBee協議棧很好地解決了網絡組網問題,整個協議棧的安全性好,層次性強,功耗低,可以實現網狀網絡。在ZigBee 2006協議棧中已經將CC2430的底層驅動全部固化在協議棧中,可以直接調用。選用CC2430芯片作為無線通信模塊硬件核心芯片,軟件部分選用ZigBee 2006協議棧來實現無線模塊之間的通信功能。
3.2 射頻數據收發處理程序
利用軟件IAR 7.30B進行程序的開發。系統軟件基于TIChipcon公司免費提供的ZigBee 2006協議棧,以Zstack-1.4.3-1.2.1版本中GenericApp例程為基礎。下面給出串口部分和數據接收、發送部分程序。
3.2.1 串口初始化
主要是設置halUARTCfg_t結構體成員值:
通過對halUARTCfg_t賦值,可以設置波特率、字符數、數據位、停止位、奇偶校驗位等。其中callBackFunc是自定義設置串口回調函數,即一旦出口有數據傳送,OSAL會自動轉到自定義的回調函數,執行自定義的操作。
3.2.2 數據接收
當有數據通過無線發送到應用層時,應用層會發送一個AF_INCOMING_MSG_CMD消息事件。
這里表示收到AF_INCOMING_MSG_CMD消息事件,然后調用收到消息事件的信息處理函數GenericApp_MessageMSGCB(MSGpkt),開始接收數據并通過調用串口HalUARTWrite(uint8 port,uint8*buf,uintl6 len)寫函數發送、接收到的數據。
3.2.3 數據發送
當串口回調函數中有數據輸入時,應用層會發送一個GENERICAPP_SEND_MSG_EVT消息事件。
調用GenericApp_SendTheMessage()數據發送函數,具體到TI/Chipcon公司所提供的ZigBee 2006協議棧中即為AF_DataRequest()函數,具體形式如下:
3.3 以太網數據傳送控制
程序采用Franklin C51語言編制,可讀性強,移植性好,開發簡易。
3.3. 1 初始化RTL8019AS
通過C51的P3.4鏈接RTL8019AS的RESDRV來進行復位操作。RSTDRV高電平有效,只要給引腳施加一個1μs以上的高電平即可。
初始化頁0、頁1相關寄存器,頁2的寄存器是只讀的,不可以設置,頁3的寄存器不是NE2000兼容的,不用設置。
(1)CR=0x21,選擇頁0的寄存器;
(2)TPSR=0x45,發送頁的起始頁地址,初始化為指向第一個發送緩沖區的頁即0x40;
(3)PSTART=0x4c,PSTOP=0x80,構造緩沖環:0x4C~0x80;
(4)BNBY=0x4c,設置指針;
(5)RCR=0xcc,設置接收配置寄存器,使用按收緩沖區,僅接收自己地址的數據包(以及廣播地址數據包)和多點播送地址包,小于64 B的包丟棄,校驗錯的數據包不接收;
(6)TCR=0xe0,設置發送配置寄存器,啟用CRC自動生成和自動校驗,工作在正常模式;
(7)DCR=0xe8,設置數據配置寄存器,使用FIFO緩存,普通模式,8位數據DMA;
(8)IMR=0x00,設置中斷屏蔽寄存器,屏蔽所有中斷;
(9)CR=0x61,選擇頁1的寄存器;
(10)CURR=0x4d,CURR是RTL8019AS寫內存的指針,指向當前正在寫的頁的下一頁,初始化時指向0x4c+1=0x4d;
(11)設置多址寄存器MAR0~MAR5,均設置為0x00;
(12)設置網卡地址寄存器PAR0~PAR5;
(13)CR=0x22,選擇頁1的寄存器,進入正常工作狀態。
3.3.2 發送幀
將待發送的數據按幀格式封裝,通過遠程DMA通道送到RTL8019AS中的發送緩存區,然后發出傳送命令,完成幀的發送。需要設置以太網目的地址、以太網源地址、協議類型,再按所設置的協議類型來設置數據段。之后啟動遠程DMA,數據寫入RTL8019AS的RAM,再啟動本地DMA,將數據發到網上。
RTL8019AS無法將整個數據包通過DMA通道一次存入FIFO,則在構造一個新的數據包之前必須先等待前一數據包發送完成。為提高發送效率,設計將12頁的發送緩存區分為兩個6頁的發送緩存區,一個用于數據包發送,另一個用于構造新的數據包,交替使用。
通過調試,利用PC機接收一個構造的ARP請求包,接收效果比較滿意。
4 結論
利用CC2430無線收發功能,結合單片機與以太網實現遠程通信,設計了一套應用于車輛識別的城市交通限行系統,該系統利用CC2430低功耗、低成本、高性能等優點實現車輛識別。利用性能優越、價格低廉的RTL8019AS以太網控制器,實現路邊采集單元與遠程計算機的信息交互。該系統主要完成車輛識別,及車輛信息發送工作。經測試,可準確識別車輛,完成出行天數統計的要求。交管部門可利用車輛車型信息進行車輛出行天數的統計,作為收取擁堵費的依據,從而實現車輛限行。