針對傳統(tǒng)基于RS-485 總線的射頻識別技術(shù)(RFID)收費系統(tǒng)具有實時性差和通訊效率低的缺點,提出了一種基于CAN 總線和2.4G 無線網(wǎng)絡(luò)的新型RFID 收費系統(tǒng)。該系統(tǒng)采用2.4G 無線網(wǎng)絡(luò)環(huán)境,使一個CAN 節(jié)點能夠控制六個RFID 收費終端的數(shù)據(jù)傳輸。應(yīng)用溫度模塊獲取的數(shù)據(jù)的無線傳輸對該系統(tǒng)進(jìn)行測試,測試結(jié)果表明該方案設(shè)計的正確性。
1 引言
RFID(Radio Frequency IDentification)技術(shù),即射頻識別技術(shù),是一種通信技術(shù),目前廣泛應(yīng)用于各種收費場合,例如:公共交通收費系統(tǒng),停車場收費系統(tǒng)等等。目前使用RFID 技術(shù)的系統(tǒng)通常使用RS-485 和PC 端進(jìn)行數(shù)據(jù)交互,但是RS-485 使用單主節(jié)點,采用輪詢方式,因此存在實時性較低和通訊效率低的問題。
隨著計算機(jī)科學(xué)水平的不斷飛躍和工業(yè)發(fā)展的需要,工業(yè)控制系統(tǒng)經(jīng)歷了基地式儀表控制系統(tǒng)、集中式數(shù)字控制系統(tǒng)、集散控制系統(tǒng)到現(xiàn)在廣泛使用的現(xiàn)場總線控制系統(tǒng)的轉(zhuǎn)變。CAN(Controller Area Net)總線是一種基于串行通信網(wǎng)絡(luò)的現(xiàn)場總線。CAN 總線采用多主工作方式,網(wǎng)絡(luò)上的任意節(jié)點可以在任意時刻向網(wǎng)絡(luò)上的其他節(jié)點發(fā)送信息。同時,CAN 總線采用非破壞性仲裁技術(shù),當(dāng)兩個或者更多的節(jié)點同時向網(wǎng)絡(luò)上傳送數(shù)據(jù),優(yōu)先級低的節(jié)點將停止發(fā)送,直到優(yōu)先級高的節(jié)點發(fā)送完數(shù)據(jù)后再發(fā)送,這樣有效地避免了總線競爭。CAN 通信距離最遠(yuǎn)可達(dá)10km/5kbps,通信速率最高可大1Mbps.CAN 的每幀數(shù)據(jù)都有CRC校驗或者其它檢測方式,保證了數(shù)據(jù)通信的可靠性。
當(dāng)一個CAN 節(jié)點發(fā)生嚴(yán)重錯誤時,該節(jié)點會自動關(guān)閉,從而不影響其它節(jié)點的正常工作。因此,CAN 總線具有可靠性強(qiáng),實時性高和效率高等優(yōu)勢,完全能夠取代RS 485 總線。
考慮到在實際應(yīng)用環(huán)境中,為了減少大量的布線工作,使用2.4G 無線網(wǎng)絡(luò)作為數(shù)據(jù)從RFID 到CAN總線之間傳輸?shù)闹修D(zhuǎn)站。無線技術(shù)具有成本低、靈活性高、可靠性高和安裝時間短等特點。本次設(shè)計使用選用nRF24L01 組建無線通信網(wǎng)絡(luò),該芯片支持多點通信,在接受模式下可以接收6 路不同通道的數(shù)據(jù)。也就是無線網(wǎng)絡(luò)的接收端可以接收6 個不同發(fā)送端的數(shù)據(jù),發(fā)送端的數(shù)據(jù)是通過RFID 模塊獲得。
基于以上的討論,本文將給出一種基于CAN 總線和2.4G 無線網(wǎng)絡(luò)的新型RFID 收費系統(tǒng)。
2 硬件系統(tǒng)設(shè)計
2.1 系統(tǒng)拓?fù)浣Y(jié)構(gòu)和系統(tǒng)組成
2.1.1 系統(tǒng)拓?fù)浣Y(jié)構(gòu)
如圖1 所示,RFID設(shè)備的相關(guān)數(shù)據(jù)將通過無線網(wǎng)絡(luò)傳送至CAN收發(fā)器,后者再將數(shù)據(jù)通過CAN總線傳送至PC機(jī),PC 機(jī)采用帶有CAN接口的PCI-E擴(kuò)展卡。此外,無線通訊芯片nRF24L01在接受模式下可以接收6路不同通道的數(shù)據(jù),以此來實現(xiàn)一個CAN節(jié)點最多控制6 個RFID終端設(shè)備的數(shù)據(jù)傳送。在6個RFID收費終端不能滿足需求的情況下,可以添加更多的節(jié)點,所有節(jié)點掛載在CAN總線上,通過CAN總線,每個節(jié)點將數(shù)據(jù)傳送至PC端。
![圖1 系統(tǒng)拓?fù)浣Y(jié)構(gòu)圖](/editorfiles/20130730102317_8941.jpg)
圖1:系統(tǒng)拓?fù)浣Y(jié)構(gòu)圖
本系統(tǒng)(CAN 節(jié)點)有兩個子系統(tǒng)組成。B 子系統(tǒng)由單片機(jī)、RFID 模塊、無線模塊、看門狗、液晶屏、時鐘模塊、按鍵和EEPROM 組成。微控制器(MCU)控制RFID 模塊對Mifare 1 卡進(jìn)行讀寫操作,無線模塊將有關(guān)的數(shù)據(jù)發(fā)送給A 子系統(tǒng)。A 子系統(tǒng)由單片機(jī)、無線模塊、看門狗和CAN 模塊組成。MCU 將經(jīng)由無線模塊接收到的數(shù)據(jù)通過CAN 模塊發(fā)送至PC 端。由于一個節(jié)點最多可以控制6 個RFID 設(shè)備終端,因此在一個完整的系統(tǒng)里,A 子系統(tǒng)只有1 個,而B 子系統(tǒng)最多可以有6 個。
![圖2:子系統(tǒng)A 組成框圖](/editorfiles/20130730102352_3622.jpg)
圖2:子系統(tǒng)A 組成框圖
![圖3 子系統(tǒng)B 組成框圖](/editorfiles/20130730102425_8958.jpg)
圖3:子系統(tǒng)B 組成框圖。
微控制器選用STC89LE58RD+,它具有4 個8 位并行I/O 端口P0~P3,1 個4 位并行端口P4,32KB FLASHROM,1280 字節(jié)RAM,3 個定時器,8 個中斷源和4個中斷優(yōu)先級的中斷系統(tǒng)。其性能完全滿足設(shè)計所需。
[page]
2.3 CAN 模塊
CAN 總線的硬件實現(xiàn)選用飛利浦公司的SJA1000和PCA82C250。
2.3.1 SJA1000 芯片介紹
SJA1000 是一個獨立的 CAN 控制器。它支持PeliCAN 模式擴(kuò)展功能(采用CAN2.0B 協(xié)議),具有11 位或 29 位標(biāo)識符,64 字節(jié)的接收FIFO,具有仲裁機(jī)制和強(qiáng)大的檢錯能力等。
2.3.2 PCA82C250 芯片介紹
PCA82C250 是CAN 總線收發(fā)器,它主要是為汽車中高速通訊(高達(dá) 1Mbps)應(yīng)用而設(shè)計。它可以抗寬范圍的工模干擾和電磁干擾(EMI),降低射頻干擾(RFI),具有熱保護(hù)功能。最多可以連接110 個節(jié)點。
2.3.3 硬件接口連接
如圖4,P1口作為復(fù)用的地址/數(shù)據(jù)總線連接SJA1000的AD口,P2.0和SJA1000的片選段CS相連,使得SJA1000作為單片機(jī)外圍存儲器映射的I/O器件。此外,SJA1000的RX0、TX0和PCA82C250的RXD、TXD相連。
![圖4 SJA1000 和PCA82C250 接口連接示意圖](/editorfiles/20130730102452_2019.jpg)
圖4:SJA1000 和PCA82C250 接口連接示意圖
2.4.1 nRF24L01 芯片介紹
無線芯片選用nRF24L01.它是2.4GHz 無線射頻收發(fā)芯片,傳送速率高達(dá)2Mbps,支持125 個可選工作頻率,具有地址和CRC 校驗功能,提供SPI 接口。
有專用的中斷管腳,支持3 個中斷源,可向MCU 發(fā)出中斷信號。具有自動應(yīng)答功能,在確認(rèn)收到數(shù)據(jù)后記錄地址,并以此地址為目標(biāo)地址發(fā)送應(yīng)答信號。支持ShockBurstTM 模式,在此模式下,nRF24L01 可以與低速MCU 相連。nRF24L01 在接收模式下可以接收6 路不同通道的數(shù)據(jù)。
2.4.2 nRF24L01 硬件接口連接
如圖5 所示,單片機(jī)通過模擬SPI 總線時序和nRF24L01 進(jìn)行通信。其外部中斷管腳IRQ 和單片機(jī)的P3.2(外部中斷0)相連。
![圖5 nRF24L01 接口連接示意圖](/editorfiles/20130730102517_4150.jpg)
圖5:nRF24L01 接口連接示意圖
2.5 RFID 模塊
2.5.1 MF RC500 芯片介紹。
2.5.2 MF RC500 硬件接口連接。
由圖6 所示, MCU 將MF RC500 中的寄存器作為外部RAM進(jìn)行訪問。INT 管腳懸空,不使用中斷功能。
![圖6 MF RC500 接口連接示意圖](/editorfiles/20130730102559_8570.jpg)
圖6:MF RC500 接口連接示意圖
3 軟件系統(tǒng)設(shè)計
在初始化單片機(jī)程序中,子系統(tǒng)A 外部中斷設(shè)置為低電平觸發(fā),子系統(tǒng)A 的中斷信號源由nRF24L01提供,當(dāng)nRF24L01 收到數(shù)據(jù)后產(chǎn)生中斷信號,通知MCU 來讀取數(shù)據(jù)。子系統(tǒng)B 不使用中斷功能。
[page]
在初始化nRF24L01 程序中,子系統(tǒng)B 配置為發(fā)送模式,使用16 位CRC 校驗。使用自動應(yīng)答功能,數(shù)據(jù)通道0 被設(shè)置為接收應(yīng)答信號,其數(shù)據(jù)通道0 的接收地址必須與發(fā)送端的地址相等,以此來保證能正確的收到應(yīng)答信號。一個系統(tǒng)最多可以有六個子系統(tǒng)A 組成,這6 個子系統(tǒng)的發(fā)送地址不能重復(fù)。子系統(tǒng)A 配置為接收模式,使用16 位CRC 校驗,最多接收6 個通道的數(shù)據(jù)。這6 個接收地址和各子系統(tǒng)B 中的發(fā)送地址相等。
在初試化SJA1000 中,使用PliCAN 模式,波特率125Kbps,禁止接受和發(fā)送中斷;輸出控制寄存器配置如下:正常模式,TX 下拉,輸出控制極性。此外,需正確配置驗收代碼寄存器和驗收屏蔽寄存器,此配置用于CAN 總線仲裁功能的實現(xiàn)。
在初始化MF RC500 中,其主要設(shè)置如下:TX1和TX2 的輸出配置為13.56MHz 能量載波;解碼器的輸入源為內(nèi)部解調(diào)器;使用Q 時鐘作為接收器時鐘;禁止發(fā)送和接收中斷;設(shè)置RxThreshold 寄存器值為0xFF,BitPhase 寄存器值為0xAD 等。
復(fù)位請求函數(shù)將在天線的有效范圍內(nèi)搜索Mifare1 卡,如果有卡存在,將建立通信連接并讀取卡上的卡片類型號TAGTYPE.防碰撞函數(shù)使MF RC500 在多張Mifare 1 卡選擇其中的一張??ㄟx擇函數(shù)能夠和已知序列號的卡進(jìn)行通信。認(rèn)證函數(shù)將Mifare 1 卡上的密碼和MF RC500 的EEPROM 中的密鑰進(jìn)行匹配。
只有匹配正確后,才能進(jìn)行對卡的讀寫操作。發(fā)送停機(jī)指令設(shè)置Mifare 1 卡為HALT MODE.CAN 函數(shù)用于將有關(guān)數(shù)據(jù)發(fā)送至PC 機(jī)。本次設(shè)計采用查詢方式以確保數(shù)據(jù)已經(jīng)發(fā)送。通過查詢狀態(tài)寄存器中的標(biāo)志位TBS、TCS 和TS 即可確認(rèn)是否數(shù)據(jù)發(fā)送完畢。類似的,在無線函數(shù)中為確保數(shù)據(jù)已經(jīng)發(fā)送,通過查詢狀態(tài)寄存器中的TX_DS 即可。
![圖7 子系統(tǒng)A 軟件流程](/editorfiles/20130730102628_3580.jpg)
圖7:子系統(tǒng)A 軟件流程
![圖8 子系統(tǒng)B 軟件流程圖](/editorfiles/20130730102759_4934.jpg)
圖8:子系統(tǒng)B 軟件流程圖
首先,對RFID 模塊進(jìn)行了測試。將MIFARE 1卡放入天線有效范圍內(nèi),對該卡進(jìn)行讀寫操作,并將相關(guān)數(shù)據(jù)顯示在液晶屏上。經(jīng)過該測試,RFID 模塊讀寫正常。 隨后,測試該系統(tǒng)傳輸網(wǎng)絡(luò)的實時性,本文以溫度數(shù)據(jù)的無線傳輸進(jìn)行測試。測量溫度的裝置為DS18B20 單線溫度傳感器。將該溫度傳感器連接至子系統(tǒng)B 中,溫度傳感器每隔一秒對室內(nèi)溫度采樣一次,微控制器讀取溫度數(shù)據(jù)并通過無線網(wǎng)絡(luò)發(fā)送給A 子系統(tǒng),A 子系統(tǒng)接收數(shù)據(jù)并通過CAN 總線發(fā)送至PC 端。
PC 端使用Visual Basic 6.0 編寫上位機(jī)程序,上位機(jī)將溫度數(shù)據(jù)繪制成曲線并寫入文本。溫度曲線如圖8 所示,其中溫度值的精度為1 攝氏度。通過對溫度曲線圖和文本數(shù)據(jù)的對比觀察,發(fā)現(xiàn)溫度數(shù)據(jù)無異常, 數(shù)據(jù)沒有出現(xiàn)丟失情況。
![圖9 溫度曲線圖](/editorfiles/20130730102834_8885.jpg)
圖9:溫度曲線圖
本文利用了CAN 總線取代RS-485 總線,克服了后者存在的缺點。同時還使用了無線技術(shù),在減少大量布線工作的同時,充分利用了nRF24L01 多點通訊的功能。在系統(tǒng)搭建完成后,筆者對系統(tǒng)進(jìn)行了長時間測試。測試結(jié)果表明:數(shù)據(jù)傳輸穩(wěn)定,可靠,實時性高,克服了傳統(tǒng)基于RS485 總線設(shè)計的RFID 收費系統(tǒng)的缺陷,具有較強(qiáng)的使用價值。
相關(guān)閱讀:
RFID技術(shù)原理及其射頻天線設(shè)計
http://anotherwordforlearning.com/rf-art/80005888
設(shè)計RFID系統(tǒng)需選擇合適的頻率
http://anotherwordforlearning.com/emc-art/80019199
射頻識別技術(shù)原理分析
http://anotherwordforlearning.com/rf-art/80013359