基于CAN和2.4G的RFID收費系統(tǒng)
本文引用地址:http://m.butianyuan.cn/article/153827.htm
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 管腳懸空,不使用中斷功能。
3 軟件系統(tǒng)設計
在初始化單片機程序中,子系統(tǒng)A 外部中斷設置為低電平觸發(fā),子系統(tǒng)A 的中斷信號源由nRF24L01提供,當nRF24L01 收到數據后產生中斷信號,通知MCU 來讀取數據。子系統(tǒng)B 不使用中斷功能。
在初始化nRF24L01 程序中,子系統(tǒng)B 配置為發(fā)送模式,使用16 位CRC 校驗。使用自動應答功能,數據通道0 被設置為接收應答信號,其數據通道0 的接收地址必須與發(fā)送端的地址相等,以此來保證能正確的收到應答信號。一個系統(tǒng)最多可以有六個子系統(tǒng)A 組成,這6 個子系統(tǒng)的發(fā)送地址不能重復。子系統(tǒng)A 配置為接收模式,使用16 位CRC 校驗,最多接收6 個通道的數據。這6 個接收地址和各子系統(tǒng)B 中的發(fā)送地址相等。
在初試化SJA1000 中,使用PliCAN 模式,波特率125Kbps,禁止接受和發(fā)送中斷;輸出控制寄存器配置如下:正常模式,TX 下拉,輸出控制極性。此外,需正確配置驗收代碼寄存器和驗收屏蔽寄存器,此配置用于CAN 總線仲裁功能的實現。
在初始化MF RC500 中,其主要設置如下:TX1和TX2 的輸出配置為13.56MHz 能量載波;解碼器的輸入源為內部解調器;使用Q 時鐘作為接收器時鐘;禁止發(fā)送和接收中斷;設置RxThreshold 寄存器值為0xFF,BitPhase 寄存器值為0xAD 等。
復位請求函數將在天線的有效范圍內搜索Mifare1 卡,如果有卡存在,將建立通信連接并讀取卡上的卡片類型號TAGTYPE.防碰撞函數使MF RC500 在多張Mifare 1 卡選擇其中的一張。卡選擇函數能夠和已知序列號的卡進行通信。認證函數將Mifare 1 卡上的密碼和MF RC500 的EEPROM 中的密鑰進行匹配。
只有匹配正確后,才能進行對卡的讀寫操作。發(fā)送停機指令設置Mifare 1 卡為HALT MODE.
CAN 函數用于將有關數據發(fā)送至PC 機。本次設計采用查詢方式以確保數據已經發(fā)送。通過查詢狀態(tài)寄存器中的標志位TBS、TCS 和TS 即可確認是否數據發(fā)送完畢。類似的,在無線函數中為確保數據已經發(fā)送,通過查詢狀態(tài)寄存器中的TX_DS 即可。
4 系統(tǒng)測試
首先,對RFID 模塊進行了測試。將MIFARE 1卡放入天線有效范圍內,對該卡進行讀寫操作,并將相關數據顯示在液晶屏上。經過該測試,RFID 模塊讀寫正常。 隨后,測試該系統(tǒng)傳輸網絡的實時性,本文以溫度數據的無線傳輸進行測試。測量溫度的裝置為DS18B20 單線溫度傳感器。將該溫度傳感器連接至子系統(tǒng)B 中,溫度傳感器每隔一秒對室內溫度采樣一次,微控制器讀取溫度數據并通過無線網絡發(fā)送給A 子系統(tǒng),A 子系統(tǒng)接收數據并通過CAN 總線發(fā)送至PC 端。
PC 端使用Visual Basic 6.0 編寫上位機程序,上位機將溫度數據繪制成曲線并寫入文本。溫度曲線如圖8 所示,其中溫度值的精度為1 攝氏度。通過對溫度曲線圖和文本數據的對比觀察,發(fā)現溫度數據無異常, 數據沒有出現丟失情況。
5 結語
本文利用了CAN 總線取代RS-485 總線,克服了后者存在的缺點。同時還使用了無線技術,在減少大量布線工作的同時,充分利用了nRF24L01 多點通訊的功能。在系統(tǒng)搭建完成后,筆者對系統(tǒng)進行了長時間測試。測試結果表明:數據傳輸穩(wěn)定,可靠,實時性高,克服了傳統(tǒng)基于RS485 總線設計的RFID 收費系統(tǒng)的缺陷,具有較強的使用價值。
電磁爐相關文章:電磁爐原理
評論