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