王穎 李翀
【摘 要】RFID技術作為一項先進的自動識別和數據采集技術,通過無線射頻方式進行非接觸雙向數據通信,對目標加以識別并獲取相關數據。被公認為21世紀十大重要技術之一。本文以實驗為基礎,研究了RFID的識讀過程。
【關鍵詞】北京大學生;智慧校園;卡通系統
2008年IBM 公司在全球提出“智慧地球”概念后,美國、歐盟、日本和韓國等相繼推出本國的物聯、云計算相關發(fā)展戰(zhàn)略。2009年,溫家寶總理在中科院無錫傳感網工程技術研發(fā)中心,指示建設“感知中國”中心,拉開了中國智慧城市建設的序幕“智慧校園”作為“智慧城市”的重要組成部分,是繼數字校園后關于院校信息化建設的又一全新概念,是由浙江大學于信息化“十二五”規(guī)劃中首次提出的,并由此引發(fā)了“智慧校園”的建設潮。近年來,國內不少高校對智慧校園進入了探索或建設階段。
基于物聯網的校園一卡通系統是以學校校園網為架構,以射頻標簽作為信息載體,利用RFID、標簽傳感器、無線通信網絡等實時采集物品的各種信息,并將這些采集到的信息通過高速互聯網或無線網絡傳輸到數據處理中心,這些信息在數據處理中心經過計算技術提供的海量信息處理功能對其進行智能化處理之后就可以實現人與人、物與物、人與物之間的有效溝通。
一卡通系統平臺構成包括軟件系統和硬件系統,二者共同完成校園一卡通系統平臺整個系統的管理、數據處理、傳輸與交換和調度控制、應用支撐操作等功能。整個系統的識別過程需要完成4個步驟:尋卡→防沖突→選卡→讀/寫卡。
1 RFID系統組成
RFID 技術利用無線射頻方式在閱讀器和射頻卡之間進行非接觸雙向數據傳輸,以達到目標識別和數據交換的目的。最基本的 RFID 系統由三部分組成:
1.標簽(Tag,即射頻卡):由耦合元件及芯片組成,標簽含有內置天線,用于和射頻天線間進行通信;
2.閱讀器:讀?。ㄔ谧x寫卡中還可以寫入)標簽信息的設備;
3.天線:在標簽和讀取器間傳遞射頻信號。
2 工作原理
MCU通過對讀卡器芯片內寄存器的讀寫來控制讀卡器芯片,讀卡器芯片收到MCU發(fā)來的命令后,按照非接觸式射頻卡協議格式,通過天線及其匹配電路向附近發(fā)出一組固定頻率的調制信號(13.56 MHz)進行尋卡,若此范圍內有卡片存在,卡片內部的LC諧振電路(諧振頻率與讀卡器發(fā)送的電磁波頻率相同)在電磁波的激勵下,產生共振,在卡片內部電壓泵的作用下不斷為其另一端的電容充電,獲得能量,當該電容電壓達到2 V時,即可作為電源為卡片的其他電路提供工作電壓。當有卡片處在讀卡器的有效工作范圍內時,MCU向卡片發(fā)出尋卡命令,卡片將回復卡片類型,建立卡片與讀卡器的第一步聯系,若同時有多張卡片在天線的工作范圍內,讀卡器通過啟動防沖撞機制,根據卡片序列號來選定一張卡片,被選中的卡片再與讀卡器進行密碼校驗,確保讀卡器對卡片有操作權限以及卡片的合法性,而未被選中的則仍然處在閑置狀態(tài),等待下一次尋卡命令。密碼驗證通過之后,就可以對卡片進行讀寫等應用操作。
3 實現步驟
1.從串口打印IC卡的類型和序列號。
2.實現顯示IC卡的類型,并記錄。
3.實現以十六進制顯示IC卡的序列號,并記錄。
4.測試最大的識別距離。
RC522模塊采用了高達10 Mb/s的SPI、I2C總線模式——四線制SPI,通信中的時鐘信號由 Arduino 產生,MF RC522芯片設置為從機模式,接收來自 Arduino 的數據以設置寄存器,并負責射頻接口通信中相關數據的收發(fā)。
數據的傳輸路徑為:Arduino 通過 MOSI 線將數據發(fā)到 MF RC522,MF RC522 通過 MISO 線發(fā)回至 Arduino。連接電路如圖1所示。
圖1 Arduino與MF RC522的連接電路
4 部分功能代碼
1.尋卡
#include
#include
#define SS_PIN 10
#define RST_PIN 9
MFRC522 mfrc522(SS_PIN, RST_PIN); // 新建MFRC522端口
void setup() {
Serial.begin(9600); // 初始化和計算機的連續(xù)交流
SPI.begin(); // Init SPI bus
mfrc522.PCD_Init(); // Init MFRC522 card
//Serial.println("Scan a MIFARE Classic PICC to demonstrate Value Blocks.");
}
2.防沖突
void loop() {
//讀卡
// Prepare key - all keys are set to FFFFFFFFFFFFh at chip delivery from the factory.
MFRC522::MIFARE_Key key;
for (byte i = 0; i < 6; i++) {
key.keyByte[i] = 0xFF;
}
// Look for new cards
if ( ! mfrc522.PICC_IsNewCardPresent()) {
return;
}
// Select one of the cards
if ( ! mfrc522.PICC_ReadCardSerial()) {
return;
}
// Now a card is selected. The UID and SAK is in mfrc522.uid.
// Dump UID 打印卡號
……
3.讀/寫卡
Serial.println("Read block A(4) : the first of the sector TWO");
byte buffer[18];
byte size = sizeof(buffer);
// change this: valueBlockA , for read anather block
status = mfrc522.MIFARE_Read(valueBlockA, buffer, &size);
Serial.print("Sector : 0 Value :");
Serial.println(buffer[0]);
Serial.print("Sector : 1 Value :");
Serial.println(buffer[1]);
Serial.print("Sector : 2 Value :");
Serial.println(buffer[2]);
Serial.print("Sector : 3 Value :");
Serial.println(buffer[3]);
Serial.print("Sector : 4 Value :");
Serial.println(buffer[4]);
……
4.擴展部分
對已經讀寫出來的復旦卡的卡號進行反饋,于是繼續(xù)擴充電路,在D2端口和D3端口分別連接發(fā)光二極管,防止電壓會燒毀LED燈,在每個LED燈串聯一個220Ω的電阻,D4端口上連接開源蜂鳴器。
5.結論
定義一個二維數組,可以保存十張學生的一卡通卡號,對已經保存起來的卡號運行通過,對不記錄在案的卡號運行失敗,蜂鳴器報警。實驗結果如圖2、圖3所示。
圖2 登記過的卡片,成功識別,綠色LED等閃爍一秒后熄滅
圖3 未登記的卡片,認定為非法,紅色LED燈閃爍一秒后熄滅,
同時,蜂鳴器產生頻率一定的聲響。
【參考文獻】
[1]譚民,劉禹.RFID技術系統工程及應用指南[M].北京:機械工業(yè)出版社,2007,4.
[2]陳大才.射頻識別(RFID)技術[M].2版.北京:電子工業(yè)出版社,2006.
[3]劉騰紅,屈振新,任偉,劉勘.Windows程序設計技術[M].北京:清華大學出版社,2004,10.
[責任編輯:楊玉潔]