基于ARM的RFID閱讀器設(shè)計
RFID是RadioFrequencyIdentification的縮寫,即射頻識別。一種非接觸式的自動識別技術(shù),它通過射頻信號自動識別目標對象并獲取相關(guān)數(shù)據(jù),識別的距離可達幾十厘米至幾米,且根據(jù)讀寫的方式,可以輸入數(shù)千字節(jié)的信息,同時,還具有極高的保密性,識別工作無須人工干預(yù),可工作于各種惡劣環(huán)境。RFID技術(shù)可識別高速運動物體并可同時識別多個標簽,操作快捷方便。其應(yīng)用范圍十分廣泛,主要有商品零售、商品防偽、交通運輸、物流倉儲、安全管理、醫(yī)療衛(wèi)生、圖書檔案和國防軍事等。
本文引用地址:http://m.butianyuan.cn/article/148992.htmRFID系統(tǒng)由三部分組成:1。標簽(Tag,即射頻卡),由耦合元件及芯片組成,標簽含有內(nèi)置天線,用于和射頻天線間進行通信;2。閱讀器,讀?。ㄔ谧x寫卡中還可以寫入)標簽信息的設(shè)備;3。天線,在標簽和讀取器間傳遞射頻信號。本文主要介紹基于ARM,工作頻率在13。56MHz的RFID閱讀器設(shè)計方案。
1系統(tǒng)硬件設(shè)計
1。1系統(tǒng)主要芯片介紹
本設(shè)計方案的兩個主要芯片是LPC2212和MFRC500。LPC2212功耗低,性能高,接口資源豐富,可以在RFID閱讀器的基礎(chǔ)上進行其它功能的擴展,實現(xiàn)一個多功能應(yīng)用系統(tǒng)。MFRC500是PHILIPS公司生產(chǎn)的應(yīng)用于13。56MHz非接觸式通信中高集成讀卡IC系列中的一員。MFRC500支持ISO14443A所有的層,內(nèi)部的發(fā)送器部分不需要增加有源電路就能夠直接驅(qū)動近操作距離的天線(可達100mm);接收器部分提供一個堅固而有效的解調(diào)和解碼電路用于ISO14443A兼容的應(yīng)答器信號;數(shù)字部分處理ISO14443A幀和錯誤檢測奇偶CRC,此外它還支持快速CRYPTO1加密算法用于驗證MIFARE系列產(chǎn)品。
1。2系統(tǒng)總體設(shè)計
系統(tǒng)從功能上主要分為4大模塊:控制模塊、發(fā)送接收數(shù)據(jù)模塊、串行通信模塊和顯示模塊。各模塊組成的系統(tǒng)總框圖如圖1所示。
控制模塊主要由微控制器LPC2212和晶振組成,負責(zé)整個系統(tǒng)的控制工作。
發(fā)送接收數(shù)據(jù)模塊主要由MFRC500、晶振和天線組成。MFRC500分為模擬部分和數(shù)字部分。模擬部分負責(zé)對射頻卡的發(fā)送接收操作,發(fā)送主要完成驅(qū)動天線,提供13。56MHz的能量載波并根據(jù)寄存器的設(shè)置對發(fā)送數(shù)據(jù)進行調(diào)制;接收主要完成對射頻卡發(fā)送的信號進行檢測和解調(diào)并根據(jù)寄存器的設(shè)定進行處理。數(shù)字部分則通過并口和中斷與微控制器LPC2212通信。MFRC500的能量載波由13。56MHz晶振提供,天線則主要由LC低通濾波器和LC諧振電路組成。
串行通信模塊主要由RS-232-C標準采用的9芯接口和電平轉(zhuǎn)換電路MAX232A組成。本模塊負責(zé)閱讀器與PC機通訊,可進行程序下載,射頻卡信息修改等。
顯示模塊主要由低復(fù)用率的通用液晶(LCD)驅(qū)動器PCF8562和LCD屏組成。PCF8562與微控制器LPC2212可以通過兩線雙向的I2C總線通信,當(dāng)這兩條線連接到器件的輸出級時必須通過上拉電阻連接到正電源。顯示模塊負責(zé)卡片信息顯示。
2系統(tǒng)軟件設(shè)計
軟件設(shè)計包括三個模塊:系統(tǒng)初始化模塊、射頻卡與讀寫器通信模塊和LCD顯示模塊。下面詳細介紹以上模塊。
2。1系統(tǒng)初始化模塊
為了使系統(tǒng)能夠正常運行,必須在系統(tǒng)復(fù)位時對系統(tǒng)進行初始化工作。其中包括中斷向量表的建立和REMAP(重映射)操作、各種模式堆棧初始化操作、時鐘初始化操作、串口初始化操作和中斷選擇初始化操作。
ARM7處理器有7種異常模式,其中斷向量位置是固定的(地址0x00000000-0x0000001C),LPC2212采用64字節(jié)存儲中斷向量表。為了實現(xiàn)LPC2212在不同操作模式下對中斷的使用,必須對LPC2212中Flash的BootBlock塊和SRAM空間的一小部分REMAP。另外,需要對各種模式的堆棧進行初始化。
LPC2212振蕩器工作在振蕩模式,外部晶體振蕩頻率為20-25MHz,通過內(nèi)部PLL電路調(diào)整時鐘,使系統(tǒng)運行速度更快。程序首先使能PLL但不連接PLL,然后設(shè)置外設(shè)時鐘與系統(tǒng)時鐘的分頻比,接著設(shè)置PLL的乘因子和除因子。設(shè)置完成后,把數(shù)據(jù)正確寫入硬件,并等待PLL跟蹤完成。最后,使能PLL并使PLL連上系統(tǒng)。
串口是讀卡器與PC機通信端口,在使用前須設(shè)置串口波特率、接收和發(fā)送數(shù)據(jù)字符格式和初始化FIFO(先進先出隊列)。
串口和RC500都是基于IRQ中斷,使用前,須對LPC2212中斷選擇寄存器進行配置,把串口和RC500的中斷請求分配為IRQ模式。
2。2射頻卡與讀寫器通信模塊
本系統(tǒng)采用M1(MIFARE1)智能卡,本卡自帶天線,內(nèi)含加密控制邏輯和通訊邏輯電路,M1分為16個扇區(qū),每個扇區(qū)為4塊,每塊16個字節(jié),以塊為存取單位,每個扇區(qū)有獨立的一組密碼及訪問控制,可一卡多用。M1射頻卡與讀寫器的通信流程圖如圖2所示。
復(fù)位應(yīng)答(Answertorequest):M1射頻卡的通訊協(xié)議和通訊波特率是定義好的,當(dāng)有卡片進入讀寫器的操作范圍時,讀寫器以特定的協(xié)議與它通訊,從而確定該卡是否為M1射頻卡,即驗證卡片的卡型。
防沖突機制(Anti-collisionLoop):當(dāng)有多張卡進入讀寫器操作范圍時,防沖突機制會從其中選擇一張進行操作,未選中的則處于空閑模式等待下一次選卡,該過程會返回被選卡的序列號。
選擇卡片(SelectTag):選擇被選中的卡的序列號,并同時返回卡的容量代碼。
三次互相驗證(ThreeAuthentication):選定要處理的卡片之后,讀寫器就確定要訪問的扇區(qū)號,并對該扇區(qū)密碼進行密碼校驗,在三次相互認證之后就可以通過加密流進行通訊。(在選擇另一扇區(qū)時,則必須進行另一扇區(qū)密碼校驗。)
對數(shù)據(jù)塊的操作:讀(Read):讀一個塊;寫(Write):寫一個塊;加(Increment):對數(shù)值塊進行加值;減(Decrement):對數(shù)值塊進行減值;存儲(Restore):將塊中的內(nèi)容存到數(shù)據(jù)寄存器中;傳輸(Transfer):將數(shù)據(jù)寄存器中的內(nèi)容寫入塊中;中止(Halt):將卡置于暫停工作狀態(tài)。
2。3LCD顯示模塊
顯示模塊完成射頻卡信息在LCD上的顯示功能。用戶可以顯示專用符號、數(shù)字、漢字和圖形。顯示模塊主要分為兩部分:第一部分是根據(jù)閱讀器從射頻卡讀入的信息確定要顯示的內(nèi)容,顯示圖形時,則要計算顯示坐標;第二部分是根據(jù)系統(tǒng)所采用的LCD建立專用符號庫、漢字庫,顯示圖形時,則要把第一部分得到的坐標轉(zhuǎn)化為LCD上的顯示坐標。
評論