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