基于RFID應(yīng)用的通用型控制器的設(shè)計(jì)方案
文章以門禁控制為例,介紹一款基于RFID應(yīng)用的通用型控制器的設(shè)計(jì)原理,并給出了利用Proteus軟件進(jìn)行仿真調(diào)試的方法。該控制器由RFID卡、天線、讀卡模塊、單片機(jī)、LCD1602顯示器等組成,采用AT89SXX系列單片機(jī)作為控制芯片,采用EEPROM保存卡號(hào),不怕掉電。采用125kHz射頻讀卡模塊,讀卡模塊工作方式為主動(dòng)方式,當(dāng)RFID卡靠近讀卡模塊時(shí),卡號(hào)連續(xù)以串行方式輸出,經(jīng)串口送入單片機(jī)或PC機(jī)進(jìn)行處理??捎糜诠矆?chǎng)所的門禁管理,具有成本低、性能可靠、通用性好、用途廣泛等優(yōu)點(diǎn),在此電路基礎(chǔ)上進(jìn)行簡(jiǎn)單應(yīng)用功能擴(kuò)展,便能滿足各種場(chǎng)合用戶的需求。
0 引言
RFID卡應(yīng)用系統(tǒng)由RFID卡、讀卡器、控制器等組成,讀卡器將載波信號(hào)經(jīng)天線向外發(fā)射,當(dāng)RFID卡進(jìn)入讀卡器的工作區(qū)域后,卡中的電感線圈和電容組成的諧振回路接收讀卡器發(fā)射的載波信號(hào),卡中芯片的射頻接口模塊由此信號(hào)產(chǎn)生出電源電壓、復(fù)位信號(hào)及系統(tǒng)時(shí)鐘,使芯片“激活”,芯片讀取存儲(chǔ)器中的數(shù)據(jù),經(jīng)過(guò)調(diào)相編碼后調(diào)制在載波上,經(jīng)卡內(nèi)天線回送給讀卡器,讀卡器對(duì)接收到的信號(hào)進(jìn)行解調(diào)、解碼后送至控制器或計(jì)算機(jī),對(duì)卡號(hào)的合法性進(jìn)行鑒別,并做出相應(yīng)的處理和控制。
1 系統(tǒng)設(shè)計(jì)
控制器由RFID卡、天線、讀卡模塊、單片機(jī)、只讀儲(chǔ)存器、液晶顯示器等組成,系統(tǒng)結(jié)構(gòu)框圖如圖1所示??刂破鞑捎酶咝詢r(jià)比的AT89S 51單片機(jī)作為控制芯片,顯示器件采用LCD1602液晶顯示器顯示相關(guān)操作信息,采用AT24WC02作為只讀儲(chǔ)存器,存儲(chǔ)容量為2kbit,通過(guò)I2C總線接口進(jìn)行操作,具有寫保護(hù)功能,用于儲(chǔ)存RFID卡號(hào),掉電不消失。
讀卡模塊采用125kHz射頻讀卡模塊(型號(hào)為M106BXN),其電源為5V±10%,讀卡電流為29mA,讀寫距離為6~16cm,適用于PC機(jī)或8位UART的單片機(jī),波特率9600、19200可選,射頻讀卡模塊可工作于主動(dòng)方式和被動(dòng)方式,在主動(dòng)方式下,當(dāng)RFID卡靠近模塊時(shí),卡號(hào)連續(xù)從串口輸出;在被動(dòng)方式下,當(dāng)有RFID卡靠近模塊,同時(shí)模塊的CLK端為下降沿時(shí),串口才輸出卡號(hào)。本設(shè)計(jì)采用11.05926MHz晶體,波特率為19200的讀卡模塊,工作方式為主動(dòng)方式,讀卡模塊引腳功能如表1所示。
串口通信采用的幀數(shù)據(jù)格式為1個(gè)起始位,8個(gè)數(shù)據(jù)位,無(wú)奇偶校驗(yàn)位,1個(gè)停止位。讀卡模塊輸出數(shù)據(jù)共有5個(gè)字節(jié)數(shù)據(jù),高位在前,低位在后,其中前面4個(gè)字節(jié)為卡號(hào),最后1個(gè)字節(jié)為效驗(yàn)碼。例如:卡號(hào)為01FAB401,則讀卡模塊輸出為0X01 0XFA0XB4 0X01 0X41,其中效驗(yàn)碼0X41由前面4個(gè)字節(jié)卡號(hào)進(jìn)行異或計(jì)算得到,即0X01^0XFA^0XB4^0X01=0X41。
2 單片機(jī)資源分配
單片機(jī)引腳功能分配如表2所示。
3 電路工作原理
控制器仿真電路原理圖,如圖2所示,工作原理如下:
當(dāng)按下K按鍵(用于記錄卡號(hào))并開(kāi)機(jī),進(jìn)入記錄狀態(tài),這時(shí)將RFID卡靠近讀卡器,卡號(hào)被讀出并送入單片機(jī),單片機(jī)將卡號(hào)寫入EEPROM,關(guān)機(jī)再開(kāi)機(jī),進(jìn)入正常工作狀態(tài)。
在正常工作狀態(tài)下,當(dāng)有RFID卡靠近讀卡模塊時(shí),RFID卡從讀卡模塊的天線獲得能量并開(kāi)始工作,卡號(hào)以串行方式發(fā)送給單片機(jī),單片機(jī)接收到卡號(hào)后,將其與預(yù)先寫入EEPROM的卡號(hào)進(jìn)行比較,如果兩個(gè)卡號(hào)相同,視為卡號(hào)有效,則輸出開(kāi)鎖信號(hào),顯示器顯示“come in please!”;如果兩個(gè)卡號(hào)不相同,視為卡號(hào)無(wú)效,顯示器顯示“error!”。
4 程序流程圖
5 調(diào)試與仿真
5.1 LCD1602仿真電路
LCD1602仿真電路原理圖如圖4所示。編寫一段LCD測(cè)試程序在1602的第1行顯示一個(gè)字符串“Hello!”用于測(cè)試LCD顯示是否正常,運(yùn)行仿真后,液晶顯示器顯示“Hello!”,說(shuō)明測(cè)試成功。
5.2 EEPROM讀寫仿真電路
EEPROM讀寫仿真電路原理圖如圖5所示。編寫一個(gè)EEPROM測(cè)試程序,用于測(cè)試EEPROM讀寫功能是否正常,運(yùn)行仿真后,液晶顯示器第1行顯示“Hello!”,第2行顯示“EEPROM test pass”說(shuō)明測(cè)試成功。
5.3 串口通信仿真程序
編寫一個(gè)串口通信仿真程序,用于測(cè)試串口通信是否正常。串口通信參數(shù)設(shè)置,如圖6所示。運(yùn)行串口通信仿真程序后,從PC機(jī)鍵盤輸入“1 2 3 4 5 67 8 9 a b c d”,在仿真終端窗口顯示相應(yīng)的字符,如圖7所示,表明串口通信成功。
6 結(jié)論
本控制器軟件、硬件均通過(guò)調(diào)試并獲得成功,達(dá)到設(shè)計(jì)要求,適用單卡單用戶的應(yīng)用場(chǎng)合,比如可用于賓館客房、住宅小區(qū)單元出入口門禁控制,也可以用作考勤、電子車票、商品電子標(biāo)簽,還可以用于超市、游泳館、健身中心、體育館等公共場(chǎng)所作為門鎖控制,本控制器具有成本低、性能可靠、通用性好、用途廣泛等優(yōu)點(diǎn),在此電路基礎(chǔ)上進(jìn)行簡(jiǎn)單的應(yīng)用功能擴(kuò)展,便能滿足各種場(chǎng)合用戶的需求,比如只要適當(dāng)選擇EEPROM的容量,簡(jiǎn)單修改程序,就可以將單卡單用戶擴(kuò)充為多卡多用戶,用戶量取決于EEPROM的存儲(chǔ)容量。