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