MFRC522射頻模塊在門禁系統中的應用
卡操作完畢后,可以使卡進入Halt狀態,此時只有使用Request All指令才能喚醒該卡。Mifarel卡基本功能的具體實現流程如圖5所示。本文引用地址:http://www.104case.com/article/153621.htm
2.3 接口函數
為方便用戶使用該模塊,系統提供了多種類型接口,即可并不需要直接去了解ISO14443A協議中的細節,或通過簡單的接口調用方式對ISO14443A型卡進行所有操作。模塊提供UART和I2C兩種用戶接口,兩種接口的上層軟件接口函數均有統一方式,用戶在使用時,只需要對底層接口進行修改,就可以操作ISO14443A塑卡的所有操作。UART和I2C總線兩種用戶接口使用同一種數據幀傳輸格式,一幀的數據格式如下所示。
接口函數中提供操作MFRCA22的基本命令,如配置讀卡芯片、讀寫寄存器和裝載密鑰,也提供ISO14443A協議的基本操作,如常規操作中的尋卡、防碰撞、選卡和讀寫卡操作。同時,提供集成接口函數,通過調用集成接口函數就可以實現對卡識別,還可對某塊數據進行讀操作,如調用PiccAutoDetect接口函數就能實現上述操作。同時可以選擇數據主動輸出還是以提供中斷信號提示方式輸出數據,下面對自動識別卡操作接口函數進行簡單介紹。
自動識別卡操作接口函數如下:
int PiccAutoDecect(char ADMode,char TxMode,char Req,char Auth,char KeyAB,char*Key,int Block)
在參數ADMode中,定義了最后執行Halt操作、繼續檢測卡、中斷輸出和主動發送數據等模式選擇。參數TxMode中定義了天線驅動類型,參數Req中定義尋卡模式,參數Auth中定義校驗密鑰A或校驗密鑰B,參數Key為密鑰數據,而參數Block定義操作的塊號。讀卡成功后,若在UART接口下參數ADMode中有設置主動發送數據,則可以調用下面接口接收數據:
int PiccADRcv(char*Tx,char* Tag,char*Sak,char*Snr,char*Dat)
其中參數*Tx為天線參數,*Tag為尋卡請求應答,*Sak為選卡應答,*Snr為選卡卡號,*Dat為塊內數據。
若沒有設置主動發送數據,則可以通過調用ReadAutoDetect接口函數獲取自動識別卡操作的數據,返回數據的格式跟上面描述相同。
3 產品應用實例
在為某用戶進行電梯監控系統設計中,使用了門禁系統,采用本文設計的模塊作為射頻讀寫模塊。模塊在兩處使用,一處位于電梯轎廂內部的電梯內呼控制系統中,作為電梯乘坐人員啟動電梯到達固定樓層的工具;另一處位于系統監控中心的發卡系統內,為電梯乘坐人員進行發卡、充值和銷卡。
在電梯內呼控制系統中,控制系統與射頻模塊采用UART接口方式進行通信,讀取用戶卡中的信息并傳遞到監控中心。對有效用戶將開啟對應樓層,如有消費需求,則可以進行讀寫卡操作。在電梯內呼控制系統中,采用NXP公司設計的LPC2364 MCU作為主控制器,嵌入本文設計的射囊模塊,實現智能呼叫電梯和人員管理,電梯內呼控制系統中的硬件框圖如圖6所示。
由于對無源射頻卡操作時,卡與讀卡器之間的數據交換時的能量由天線提供,當卡位于天線信號較弱區域時,天線輻射的能量不足以支持數據交換,則導致數據交換失敗。所以,在天線識別的臨界區域時,如果快速移動射頻卡,可能會出現數據交換失敗情況,但此時卡內的數據可能已經改變,而返回到讀卡器中的操作狀態是不成功的。特別是在使用射頻卡作為消費卡使用的情況時,容易出現無刷卡和錯誤刷卡的情況。此時,需要對數據卡操作進行軟件上的優化,一方面在后臺做好數據備份的工作,二是在卡內劃分出一個數據塊用于存儲備份數據。
結語
基于射頻芯片MFRC522和單片機LPC931,設計了一種遵循ISO14443A協議的射頻模塊,從硬件設計和軟件開發兩方面對開發過程進行詳細說明。實驗結果表明該模塊具有設計靈活和使用方便等特點,具有良好的推廣價值。
評論