125K非接觸ID卡讀卡器設(shè)計(jì)
0 引言
無線射頻識(shí)別(Radio Frequency Identification,RFID)是利用感應(yīng)、電磁場(chǎng)或電磁波為傳輸手段,完成非接觸式雙向通信、獲取相關(guān)數(shù)據(jù)的一種自動(dòng)識(shí)別技術(shù)。該技術(shù)完成識(shí)別工作時(shí)無須人工干預(yù),易于實(shí)現(xiàn)自動(dòng)化且不易損壞,可識(shí)別高速運(yùn)動(dòng)物體并可同時(shí)識(shí)別多個(gè)射頻卡,操作快捷方便,已經(jīng)得到了廣泛的應(yīng)用。
目前存在的一些讀卡器,都需要讀卡芯片作為基站,成本較高。本文介紹了一種采用分立元件構(gòu)成的125 kHz RFID閱讀器,電路結(jié)構(gòu)簡單,成本極低,用于讀取EM4100型ID卡。
1 RFID系統(tǒng)的分類
RFID系統(tǒng)的分類方法有很多,在通常應(yīng)用中都是根據(jù)頻率來分,根據(jù)不同的工作頻率,可將其分為以下四種:
?。?)低頻(120~135 kHz)。該頻段具有很強(qiáng)的場(chǎng)穿透性,使用不受限制,性能不受環(huán)境影響,價(jià)格低廉,最大識(shí)別距離一般小于60 cm,主要應(yīng)用于門禁、“一卡通”消費(fèi)管理、車輛管理等系統(tǒng);
?。?)高頻(10~15 MHz)。該頻段與低頻相比,具有防沖撞、能同時(shí)識(shí)別多個(gè)標(biāo)簽的優(yōu)點(diǎn),但其性能受環(huán)境影響,識(shí)別距離一般小于100 cm,主要應(yīng)用于圖書管理、物流等系統(tǒng);
?。?)超高頻(850~960 MHz)。該頻段較高頻相比,具有可實(shí)現(xiàn)長距離識(shí)別的的優(yōu)點(diǎn),最大識(shí)別距離可達(dá)10 m,但其性能受環(huán)境影響較大,價(jià)格也較貴,主要應(yīng)用于鐵路車輛識(shí)別、集裝箱識(shí)別等系統(tǒng);
?。?)微波(2.45~5.8 GHz)。該頻段可實(shí)現(xiàn)遠(yuǎn)距離識(shí)別,識(shí)別距離可達(dá)100 m,但其價(jià)格也最貴,主要應(yīng)用于智能交通系統(tǒng)中。
2 RFID系統(tǒng)的組成
射頻識(shí)別系統(tǒng)一般由閱讀器、電子標(biāo)簽、天線三部分組成。
?。?)閱讀器:讀取或讀/寫電子標(biāo)簽信息的設(shè)備,主要任務(wù)是控制射頻模塊向標(biāo)簽發(fā)射讀取信號(hào),并接收標(biāo)簽的應(yīng)答,對(duì)標(biāo)簽的標(biāo)識(shí)信息進(jìn)行解碼,將標(biāo)識(shí)信息連帶標(biāo)簽上其他相關(guān)信息傳輸?shù)街鳈C(jī)以供處理。一臺(tái)典型的閱讀器包含有高頻模塊(發(fā)送器和接收器)、控制單元以及與應(yīng)答器連接的耦合元件。此外,許多閱讀器還有附加的接口(RS 232,RS 485等),以便將所獲得的數(shù)據(jù)傳輸給另外的系統(tǒng)(如個(gè)人計(jì)算機(jī))。
?。?)電子標(biāo)簽(應(yīng)答器):由芯片及內(nèi)置天線組成,芯片內(nèi)保存有一定格式的電子數(shù)據(jù),放在被識(shí)別物體上,作為待識(shí)別物品的標(biāo)識(shí)性信息,它是射頻識(shí)別系統(tǒng)真正的數(shù)據(jù)載體,內(nèi)置天線用于和射頻天線間進(jìn)行通信。通常,應(yīng)答器沒有自己的供電電源,只有在閱讀器的響應(yīng)范圍以內(nèi),應(yīng)答器才是有源的。應(yīng)答器工作所需的能量,是通過耦合單元(非接觸的)傳輸給應(yīng)答器的。
?。?)天線:標(biāo)簽與閱讀器之間數(shù)據(jù)傳輸?shù)妮d體。
3 硬件電路設(shè)計(jì)
本設(shè)計(jì)以AVR系列單片機(jī)ATmega8作為微控制器。Atmel公司的AVR是8位單片機(jī)中第一個(gè)真正采用RSIC結(jié)構(gòu)的單片機(jī),它采用了大型快速存取寄存器組、快速單周期指令系統(tǒng)以及單級(jí)流水線等先進(jìn)技術(shù),使得AVR單片機(jī)具有高達(dá)1 MLPS/MHz的高速運(yùn)行處理能力。
硬件電路為載波產(chǎn)生及功率放大電路,由單片機(jī)的T/C2工作于CTC模式,產(chǎn)生標(biāo)準(zhǔn)125 kHz載波信號(hào),經(jīng)過限流電阻R1后送入推挽式連接的三極管功率放大電路,放大后的載波信號(hào)通過天線發(fā)射出去。天線L1與電容C1構(gòu)成串聯(lián)諧振電路,諧振頻率為125 kHz,諧振電路的作用是使天線上獲得最大的電流,從而產(chǎn)生最大的磁通量,獲得更大的讀卡距離。②為檢波電路,檢波電路用來去除125 kHz載波信號(hào),還原出有用數(shù)據(jù)信號(hào)。R2,D1,R3,C2構(gòu)成基本包絡(luò)檢波電路,C3為耦合電容,R4,C4為低通濾波電路,D2,D3為保護(hù)二極管,輸出接到濾波放大電路。③為濾波放大電路,濾波放大電路采用集成運(yùn)放LM358對(duì)檢波后的信號(hào)進(jìn)行濾波整形放大,放大后的信號(hào)送入單片機(jī)的定時(shí)/計(jì)數(shù)器T1的輸入捕捉引腳ICPl,由單片機(jī)對(duì)接收到的信號(hào)進(jìn)行解碼,從而得到ID卡的卡號(hào)。
4 軟件設(shè)計(jì)
本系統(tǒng)的軟件設(shè)計(jì)包括兩部分:125 kHz載波的產(chǎn)生和ID卡解碼。載波信號(hào)產(chǎn)生相對(duì)簡單,可利用單片機(jī)的T/C2,使其工作于CTC模式,比較匹配時(shí)使輸出OC2取反便可得到125 kHz的方波。解碼軟件設(shè)計(jì)相對(duì)較復(fù)雜,要對(duì)ID卡進(jìn)行解碼,首先應(yīng)掌握ID卡的存儲(chǔ)格式和數(shù)據(jù)編碼方式。
4.1 EM4100數(shù)據(jù)存儲(chǔ)格式
EM4100的64位數(shù)據(jù)信息,它由5個(gè)區(qū)組成:9個(gè)引導(dǎo)位、10個(gè)行偶校驗(yàn)位“PO~P9'‘、4個(gè)列偶校驗(yàn)位”PC0~PC3“、40個(gè)數(shù)據(jù)位”D00~D93“和1個(gè)停止位S0。9個(gè)引導(dǎo)位是出廠時(shí)就已掩膜在芯片內(nèi)的,其值為”111111111“,當(dāng)它輸出數(shù)據(jù)時(shí),首先輸出9個(gè)引導(dǎo)位,然后是10組由4個(gè)數(shù)據(jù)位和1個(gè)行偶校驗(yàn)位組成的數(shù)據(jù)串,其次是4個(gè)列偶校驗(yàn)位,最后是停止位”0“。”D00~D13“是一個(gè)8位的晶體版本號(hào)或ID識(shí)別碼。”D20~D93“是8組32位的芯片信息,即卡號(hào)。
每當(dāng)EM4100將64個(gè)信息位傳輸完畢后,只要ID卡仍處于讀卡器的工作區(qū)域內(nèi),它將再次按照順序發(fā)送64位信息,如此重復(fù),直至ID卡退出讀卡器的有效工作區(qū)域。
4.2 EM4100數(shù)據(jù)編碼方式
EM4100采用曼徹斯特編碼,位數(shù)據(jù)”1“對(duì)應(yīng)著電平下跳,位數(shù)據(jù)”0“對(duì)應(yīng)著電平上跳。在一串?dāng)?shù)據(jù)傳送的數(shù)據(jù)序列中,兩個(gè)相鄰的位數(shù)據(jù)傳送跳變時(shí)間間隔應(yīng)為1P。若相鄰的位數(shù)據(jù)極性相同(相鄰兩位均為”O“或”1“),則在兩次位數(shù)據(jù)傳送的電平跳變之間,有一次非數(shù)據(jù)傳送的、預(yù)備性的(電平)”空跳“。電平的上跳、下跳和空跳是確定位數(shù)據(jù)傳送特征的判據(jù)。在曼徹斯特碼調(diào)制方式下,M4100每傳送一位數(shù)據(jù)的時(shí)間是64個(gè)振蕩周期,其值由RF/n決定。若載波頻率為125 kHz,則每傳送一位的時(shí)間為振蕩周期的64分頻,即位傳送時(shí)間為:1P=64/125 kHz=512μs,則半個(gè)周期的時(shí)間為256μs。
4.3 解碼軟件設(shè)計(jì)
ATmega8單片機(jī)T/C1的輸入捕捉功能是AVR定時(shí)/計(jì)數(shù)器的一個(gè)非常有特點(diǎn)的功能,T/C1的輸入捕捉單元可用于精確捕捉一個(gè)外部事件的發(fā)生,記錄事件發(fā)生的時(shí)間印記。當(dāng)一個(gè)輸入捕捉事件發(fā)生時(shí),T/C1的計(jì)數(shù)器TCNTl中的計(jì)數(shù)值被寫入輸入捕捉寄存器ICRl中,并置位輸入捕獲標(biāo)志位ICFl,產(chǎn)生中斷申請(qǐng)??赏ㄟ^設(shè)置寄存器TCCRlB的第6位ICESl來設(shè)定輸入捕捉信號(hào)觸發(fā)方式。本系統(tǒng)利用單片機(jī)的輸入捕捉功能進(jìn)行解碼。
由曼徹斯特編碼特點(diǎn)可知,每位數(shù)據(jù)都由半個(gè)周期的高電平和半個(gè)周期的低電平組成,因此可將一個(gè)位數(shù)據(jù)拆分為兩位,即位數(shù)據(jù)”1“可視為”10“,位數(shù)據(jù)”O“可視為”01“,則64位數(shù)據(jù)可視為由128位組成。為了獲得完整且連續(xù)存放的64位ID信息,在此接收兩輪完整的64位數(shù)據(jù),即接收256位。則上一輪接收到的停止位后緊跟著的必然是本輪接收到的起始位,據(jù)此找出起始同步頭。再根據(jù)曼碼特點(diǎn)獲得ID卡的有效數(shù)據(jù)(”10“解碼為”1“;”01“解碼為”O“)并進(jìn)行LCR校驗(yàn),若校驗(yàn)無誤,則將ID卡號(hào)輸出至PC機(jī),并準(zhǔn)備下一次的解碼;否則,直接準(zhǔn)備下一次解碼。
另外,在程序中首先定義一個(gè)數(shù)組bit[256]用來存放接收到的數(shù)據(jù);定義一個(gè)變量flag用來標(biāo)記256位數(shù)據(jù)接收完成;定義一個(gè)變量error用來標(biāo)記校驗(yàn)有錯(cuò)誤產(chǎn)生。由于無ID卡靠近讀卡器的有效工作區(qū)時(shí),單片機(jī)輸入捕捉引腳輸入的是高電平,因此在主程序中先設(shè)定為下降沿觸發(fā),清零計(jì)數(shù)器TCNTl,打開T/C1的輸入捕捉功能。
在輸入捕捉中斷程序中定義一個(gè)觸發(fā)沿標(biāo)志tr=1(用于表示由下降沿引起的觸發(fā)),同時(shí)定義一個(gè)無符號(hào)字符型變量i用來對(duì)接收到的數(shù)據(jù)個(gè)數(shù)進(jìn)行計(jì)數(shù),由于無符號(hào)字符型數(shù)據(jù)的取值范圍為O~255,所以當(dāng)接收完256位時(shí),i的值再次變?yōu)?。接著判斷是否為合法跳變,由以上分析可知,電平跳變的時(shí)間為256μs或512μs為合法跳變。本系統(tǒng)使用8 MHz時(shí)鐘,T/C1設(shè)置為無預(yù)分頻,則系統(tǒng)周期為O.125μs,則256μs對(duì)應(yīng)計(jì)數(shù)值應(yīng)為2 048,512μs對(duì)應(yīng)計(jì)數(shù)值應(yīng)為4 096。取計(jì)數(shù)值TCNTl小于5 000為合法跳變依據(jù),若TC-NTl大于5 000,則認(rèn)為是由干擾信號(hào)產(chǎn)生的非法跳變,并將其忽略,取TCNTl介于3 000~5 000之間為512μs跳變依據(jù)。若為合法跳變,由于是下降沿觸發(fā)的中斷,則認(rèn)為接收到一位數(shù)據(jù)”1“;若為合法跳變且3 000
再將輸入捕捉觸發(fā)方式改為上升沿觸發(fā),設(shè)定觸發(fā)沿標(biāo)志tr=0(用于表示由上升沿引起的觸發(fā))。當(dāng)中斷是由上升沿觸發(fā)時(shí),執(zhí)行類似操作。
5 結(jié)語
本設(shè)計(jì)硬件電路中功放和檢波部分采用分立元件構(gòu)成,無需讀卡基站芯片,電路結(jié)構(gòu)簡單,成本極低;軟件部分采用C語言進(jìn)行編寫,提出了一種曼徹斯特編碼的解碼方法。由于RS 232的傳輸距離最大只有15 m,因此對(duì)于需要遠(yuǎn)距離數(shù)據(jù)傳送的場(chǎng)合,可以通過加入RS 485電路以提高傳輸距離,從而實(shí)現(xiàn)遠(yuǎn)距離數(shù)據(jù)采集以及實(shí)行有關(guān)控制。在一些需要較遠(yuǎn)讀卡距離的應(yīng)用中,可通過改進(jìn)功率放大電路(例如采用D類功率放大電路)來提高功放的效率,從而增大發(fā)射功率,增大讀卡距離。通測(cè)試,系統(tǒng)可成功實(shí)現(xiàn)對(duì)EM4100 ID卡的讀取,經(jīng)過微調(diào)天線,最大讀取距離可達(dá)15 cm,且讀卡穩(wěn)定、成功率高,可將其應(yīng)用于門禁、公交等系統(tǒng)。