《RFID開發(fā)技術(shù)及實踐》課件第4章_第1頁
《RFID開發(fā)技術(shù)及實踐》課件第4章_第2頁
《RFID開發(fā)技術(shù)及實踐》課件第4章_第3頁
《RFID開發(fā)技術(shù)及實踐》課件第4章_第4頁
《RFID開發(fā)技術(shù)及實踐》課件第4章_第5頁
已閱讀5頁,還剩41頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

第4章低頻RFID閱讀器設(shè)計

4.1低頻ID卡4.2EM40954.3低頻RFID閱讀器程序設(shè)計

4.1低頻ID卡

低頻RFID由于頻率較低,帶寬有限,所以不適合傳輸大量數(shù)據(jù)以及數(shù)據(jù)寫入。因此低頻RFID標簽通常是以ID卡的形式出現(xiàn),即在標簽中固化一串ID號,閱讀器僅可以閱讀,不能寫入和更改。

ID卡僅提供一個ID卡號,通常用作身份識別,更多的功能需要依賴于閱讀器。閱讀器讀取ID號進行比對后,執(zhí)行相關(guān)處理或者傳入上位機或網(wǎng)絡(luò)進行處理。4.1.1常見低頻ID卡

低頻ID卡通常采用無源設(shè)計,將ID芯片和天線封裝在一起,做成卡片或標簽的樣式,其結(jié)構(gòu)如圖4-1所示。

常見的ID芯片有EM公司的EM4100及其兼容的TK4001系列、HID系列和摩托羅拉的產(chǎn)品等。目前,市場上使用較多的為前兩種,其讀取方法不盡相同:

EM4100系列ID卡芯片可使用同一個公司配套的EM4095讀卡芯片,方便讀取其ID號。

HID系列卡有自己的加密協(xié)議和讀取方法,并且不公開,所以EM4095讀卡芯片無法讀取其ID號,只能使用專用HID類讀卡器。因此本書中不詳細講解此系列卡。圖4-1ID卡結(jié)構(gòu)4.1.2EM4100

EM4100是EM公司生產(chǎn)的只讀型非接觸ID卡芯片,典型頻率為125kHz,內(nèi)部固化64bit數(shù)據(jù),一旦進入閱讀器范圍內(nèi),并與閱讀器天線發(fā)出的載波耦合后,將64?bit的數(shù)據(jù)不斷發(fā)回閱讀器。EM4100內(nèi)部64?bit相關(guān)定義如圖4-2所示。圖4-2EM4100內(nèi)部64bit相關(guān)定義

64bit數(shù)據(jù)共分為五部分,其含義如下:

同步頭:共由9個1組成,用于識別數(shù)據(jù)開始傳送。

版本信息和客戶ID:共由D00~D13中的8bit組成,分別記錄版本信息和客戶ID號。

數(shù)據(jù):共由D20~D93中的32bit組成,用于存儲ID卡號。

校驗位。P為每一行數(shù)據(jù)的偶校驗,例如,P0為0行校驗,即D00~D034?bit的偶校驗。PC為每一列數(shù)據(jù)的偶校驗,例如,PC0為D00~D9010bit的偶校驗。

停止位。S0為停止位,即單bit0。4.1.3EM4100解碼

對EM4100進行解碼時,判斷一幀完整數(shù)據(jù)的開始,需要判斷同步頭,因為數(shù)據(jù)中的行列校驗會保證數(shù)據(jù)中不會連續(xù)出現(xiàn)9個1。由于只要在閱讀器范圍內(nèi),EM4100就會循環(huán)送出內(nèi)部的64bit數(shù)據(jù),并且最后一個停止位為數(shù)據(jù)0。因此判斷同步頭的方法是當?shù)谝淮巫x取數(shù)據(jù)時,遇到0至1的跳變開始計數(shù),如果讀到連續(xù)9個1,則為同步頭,從同步頭往后可依次讀取剩余的bit位。

EM4100內(nèi)部的64bit數(shù)據(jù)采用時鐘(典型頻率為125kHz)64分頻的速率進行發(fā)送,每位bit的傳送時間為:

(1s/125000)?×?64?=?512μs

數(shù)據(jù)采用曼徹斯特碼編碼,即每個bit被分為兩位傳輸,每兩個曼徹斯特碼寬度為512μs,如表4-1所示。表4-1曼徹斯特碼

4.2EM4095

EM4095是EM微電子公司生產(chǎn)的一款低頻AM調(diào)制解調(diào)芯片,常用作低頻RFID閱讀器的模擬前端。

4.2.1功能概述

EM4095是一款CMOS芯片,與MCU的接口簡單,在RFID閱讀器中可用于天線驅(qū)動和調(diào)制解調(diào)。除此之外,還有如下其他特性:

內(nèi)置的PLL鎖相環(huán)可自適應(yīng)天線諧振載波。

無需外部振蕩器。

100~150kHz載波頻率范圍。數(shù)據(jù)發(fā)送采用OOK(100%AM調(diào)幅)方式,使用橋路激勵器。

數(shù)據(jù)發(fā)送通過調(diào)幅方式,可使用單芯片通過外部調(diào)節(jié)。

睡眠模式電流1μA。

兼容USB供電范圍。

40℃~85℃溫度范圍。

SO16封裝。

EM4095共有16個引腳,其芯片引腳圖如圖4-3所示。

EM4095芯片的引腳定義如表4-2所示。圖4-3EM4095引腳圖表4-2EM4095芯片的引腳定義

4.2.2原理圖

EM4095內(nèi)部結(jié)構(gòu)比較簡單,其原理圖如圖4-4所示。

1.?SHD

EM4095的引腳SHD和MOD用來操作設(shè)備,SHD的功能如下:

當SHD為高電平時,EM4095為睡眠模式,電流消耗最小。在上電時,SHD輸入必須是高電平,用來使能正確的初始化操作。

當SHD為低電平時,回路允許發(fā)射射頻信號,并開始對天線上的振幅調(diào)制信號進行解調(diào)。圖4-4原理圖

2.?MOD

引腳MOD是用來對125kHz射頻信號進行調(diào)制的,其功能如下:

在MOD引腳上施加高電平時,會阻塞天線驅(qū)動,并關(guān)掉電磁場。

在MOD引腳上施加低電平時,會使片上VCO進入自由運行模式,天線上將出現(xiàn)沒有經(jīng)過調(diào)制的125kHz的載波。

EM4095用作只讀模式,引腳MOD沒有使用,推薦將它連接至VSS。

3.鎖相環(huán)

鎖相環(huán)由環(huán)路濾波、采樣器和比較模塊等組成。通過使用外部電容分壓,DEMOD_IN引腳上得到天線上真實的高電壓。這個信號的相位和驅(qū)動天線驅(qū)動器信號的相位進行比較。所以鎖相環(huán)可以將載波頻率鎖定在天線的諧振頻率上。

根據(jù)天線種類的不同,系統(tǒng)的諧振頻率可以在100~150kHz的范圍內(nèi)。當諧振頻率在這一范圍內(nèi)的時候,它就會被鎖相環(huán)鎖定。

4.?DEMOD_IN

DEMOD_IN引腳作接收鏈路的輸入信號。接收模塊解調(diào)的輸入信號是天線上的電壓信號。DEMOD_IN輸入信號的級別應(yīng)該低于VDD-0.5V,高于VSS?+?0.5?V。通過外部電容分壓可以調(diào)節(jié)輸入信號的級別。分壓器增加的電容必須通過相對較小的諧振電容來補償。

5.?RDY/CLK

RDY/CLK為外部微處理器提供ANT1上信號的同步時鐘以及EM4095內(nèi)部狀態(tài)的信息。ANT1上的同步時鐘表示PLL被鎖定并且接收鏈路操作點被設(shè)置,其狀態(tài)受到SHD和MOD的影響如下:

當SHD為高電平時,RDY/CLK引腳被強制為低電平。

當SHD上的電平由高轉(zhuǎn)低時,PLL為鎖定狀態(tài),接收鏈路工作。經(jīng)過時間Tset后,PLL被鎖定,接收鏈路操作點已經(jīng)建立。這時候,傳送到ANT1上的信號同時也傳送至RDY/CLK,提示微處理器可以開始觀察DEMOD_OUT上的信號和與此同時的時鐘信號。

當MOD為高電平時,ANT驅(qū)動器關(guān)閉,但此時RDY/CLK引腳上的時鐘信號仍然在繼續(xù)。

當SHD引腳上的電平從高到低,經(jīng)過時間Tset后,RDY/CLK引腳上的信號被100kΩ的下拉電阻拉低。這樣做是為了能在標簽的AM調(diào)制低于100%情況下,從RDY/CLK引腳提供一個指示信號。

6.?DVDD和DVSS

DVDD和DVSS管腳應(yīng)該分別與VDD以及VSS連接。為了使通過管腳DVDD和DVSS的驅(qū)動器電流所造成的電壓降不會引起VDD和VSS上的電壓降,在DVSS和DVDD管腳之間應(yīng)該加一個100nF的電容,并使其盡量靠近芯片。這將防止由于天線驅(qū)動器引起的電源尖峰。此外,對管腳VSS和VDD進行隔離也是有用的。

所有和管腳DC2/AGND/DMOD_IN相關(guān)的電容都應(yīng)該連接到相同的VSS線上。這條線應(yīng)該直接和芯片上的管腳VSS相連。該線不能再連接其他元件或者成為DVSS供電線路的一部分。

AGND管腳上的電容值可以從220nF上升到1μF。電容越大,接收噪聲越小。AGND的電壓可以通過外部電容和內(nèi)部的2kΩ電阻進行濾波。

7.?ANT

EM4095不限制ANT驅(qū)動器發(fā)出的電流值。這兩個輸出的最大絕對值是300mA。對天線諧振回路的設(shè)計應(yīng)該使最大的尖峰電流不超過250mA。如果天線的品質(zhì)因數(shù)很高,這個值就可能超過,因此必須通過串聯(lián)電阻加以限制。

增加Cdc2電容值,將增加接收帶寬,進而增加斜坡信號的接收增益。Cdc2的推薦范圍是6.8~22nF;Cdec的推薦范圍為33~220nF。電容值越高,開始上升時間越長。

8.?FCAP

FCAP引腳上的為偏置電壓,它補償了外部天線驅(qū)動器引起的相位偏移。4.2.3與MCU接口

EM4095管腳較少,結(jié)構(gòu)簡單,與MCU的接口如圖4-5所示。

EM4095通過跳線分別與ATmega16A的相關(guān)引腳相連,其跳線如圖4-6所示。

ATmega16A的相關(guān)引腳如圖4-7所示。

分析電路圖可知,EM4095管腳與ATmega16A管腳的對應(yīng)關(guān)系如表4-3所示。圖4-5EM4095與MCU接口圖4-6跳線圖4-7ATmega16A的相關(guān)引腳表4-3EM4095管腳與Atmega16A管腳的對應(yīng)關(guān)系

4.3低頻RFID閱讀器程序設(shè)計

低頻RFID閱讀器程序的主要工作是正確地讀取標簽的ID號碼,一般分為三部分:初始化程序、驅(qū)動程序和主程序。

下述內(nèi)容用于實現(xiàn)任務(wù)描述4.D.1,即使用AVR通過EM4095讀取一個EM4100卡的卡號,并通過串口輸出。

4.3.1初始化程序

初始化程序用于各種管腳和器件的初始化,以便能夠正常進行解碼。

基于模塊化和移植的考慮,可將本例中GPIO設(shè)置子程序單獨封裝成子函數(shù)gpio_?config(),具體源碼如下:

【描述4.D.1】gpio_config()

//gpio配置

voidgpio_config(void)

{

//PD7、PC7和PD2管腳配置

DDRD|=(1<<PD7);

PORTD|=(1<<PD7);

DDRC|=(1<<PC7);

PORTC|=(1<<PC7);

DDRD&=~(1<<PD2);

}

EM4095相關(guān)管腳設(shè)置子程序單獨封裝成子函數(shù)EM_config(),具體源碼如下:

【描述4.D.1】EM_config()

//em4095配置

voidEM_config(void)

{

//em4095相關(guān)管腳配置

DDRB|=EM_SHD|EM_MOD;

DDRB&=~EM_DM_OUT;

EM_PORT|=EM_SHD;

//定時器1配置,實現(xiàn)精確定時

TCCR1B&=~((1<<CS10)|(1<<CS12));

TCCR1B|=(1<<CS11);

//TCNT1=600;

OCR1A=64600;

TCCR1A&=~((1<<WGM11)|(1<<WGM10));

TCCR1B&=~(1<<WGM13);

TCCR1B|=(1<<WGM12);

TIMSK|=(1<<OCIE1A);

SREG|=(1<<7);

}串口設(shè)置子程序單獨封裝成子函數(shù)uart_config(),具體源碼如下:

【描述4.D.1】uart_config()

//串口設(shè)置

voiduart_config(void)

{

//串口相關(guān)寄存器配置

UCSRA|=(1<<U2X);

UCSRB|=(1<<RXCIE);

UCSRC|=((1<<URSEL)|(1<<UCSZ1)|(1<<UCSZ0));

UCSRC&=~((1<<UMSEL)|(1<<UPM1)|(1<<UPM0)|(1<<USBS));

UBRRH&=~(1<<URSEL);

//波特率115200

UBRRH=0;

UBRRL=7;

UCSRB|=((1<<RXEN)|(1<<TXEN));

}4.3.2驅(qū)動程序

驅(qū)動程序是EM4095能夠正確解碼的相關(guān)演示程序和解碼子程序。因本例中曼徹斯特碼有嚴格的碼元間隙,所以需要512μs的延時子函數(shù)。該函數(shù)單獨封裝成子函數(shù)delay_512μs(),具體源碼如下:

【描述4.D.1】delay_512μs()

//512μs延時子函數(shù)

voiddelay_512μs(intx)

{

//使用定時器實現(xiàn)定時

TIFR|=(1<<OCF1A);

TCNT1=0;

while(TCNT1<x);

}讀取ID卡號需要曼徹斯特碼解碼,其解碼首先需要判斷同步頭,此部分功能單獨封裝成子函數(shù)read_id_start(),具體源碼如下:

【描述4.D.1】read_id_start()

//判斷同步頭

charread_id_start(void)

{

charcode_st=1;

chari;

charc_l; while(!(PINB&EM_DM_OUT));

TCNT1=0;

while(PINB&EM_DM_OUT);

//512μs存在誤差,505~520毫秒范圍內(nèi)即可

if(TCNT1>505&&TCNT1<520)

{

//判斷隨后是否連續(xù)8個1

for(i=0;i<8;i++)

{

//以512μs四分之三的位置判斷邏輯電平

delay_512μs(380);

c_l=PINB&EM_DM_OUT;

if(c_l!=0)

{

code[i]=1;

}

else

{

code[i]=0;

code_st=0;

}

while(PINB&EM_DM_OUT);

}

} else

code_st=0;

//返回判斷同步頭情況

if(code_st==1)

return1;

else

return0;

}本例中,曼徹斯特解碼功能單獨封裝成子函數(shù)read_id(),具體源碼如下:

【描述4.D.1】read_id()

//曼徹斯特解碼

charread_id(void)

{

charst=0;

chari=0;

charc_L;

EM_PORT&=~EM_SHD; st=read_id_start();

//如果讀到同步頭

if(st==1)

{

//順序讀取剩余bit

for(i=8;i<63;i++)

{

//以512μs四分之三的位置判斷邏輯電平

delay_512μs(384);

if(PINB&EM_DM_OUT)

{

code[i]=1;

while(PINB&EM_DM_OUT);

} else

{

code[i]=0;

while(!(PINB&EM_DM_OUT));

}

}

return1;

}

else

return0;

}4.3.3主程序

主函數(shù)main()存放在main.c文件中,除了相關(guān)初始化函數(shù)和主循環(huán)外,還要定義一些必需的宏定義和頭文件等,詳細代碼清單如下:

【描述4.D.1】main.c

/********************宏定義********************/

//開啟比特定義

#defineENABLE_BIT_DEFINITIONS1

#defineEM_SHD(1<<PB5)

#defineEM_DM_OUT(1<<PB6)

#defineEM_MOD(1<<PB3)

#defineEM_PORTPORTBcharcode[64]={0};

c

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論