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