freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于單片機(jī)的rfid讀寫器設(shè)計(jì)_畢業(yè)論文(編輯修改稿)

2024-10-03 18:00 本頁面
 

【文章內(nèi)容簡介】 信息,天線的有效電磁場范圍就是系統(tǒng)的工作區(qū)域。 聲音提示及顯示部分 非接觸式 IC 卡讀寫器進(jìn)行讀寫 操作時發(fā)出提示音,發(fā)聲的器件選用蜂鳴器,該器件使用方便、價(jià)格便宜。單片機(jī)的 IO 口驅(qū)動能力有限,不能直接驅(qū)動蜂鳴器發(fā)聲,通過三極管來驅(qū)動蜂鳴器。顯示部分采用 LCD12864 液晶顯示模塊。 第五章 讀卡器系統(tǒng)軟件 驅(qū)動程序 設(shè)計(jì) 讀卡器硬件必須在軟件的控制下進(jìn)行工作, 第四章 主要描述讀卡器系統(tǒng)軟件設(shè)計(jì)的原理, 讀卡器和 Mifare1 卡的通信的流程,系統(tǒng)的初始化、防碰撞、身份驗(yàn)證和讀寫操作等模塊。 所有驅(qū)動程序是在 Philips 公司的基準(zhǔn)程序基礎(chǔ)上進(jìn)行 的開發(fā),開發(fā)環(huán)境采用 Keil ,單獨(dú)調(diào)試通過后,再在 Keil C51 環(huán)境下加入到工程文件中會變成 HEX 文件,寫入STC11F32 單片機(jī)芯片中進(jìn)行調(diào)試運(yùn)行。 相對于 Philips公司生產(chǎn)的其他 14443基站芯片 (如 RC500、 RC530等 ), RC522簡化了內(nèi)部系統(tǒng)結(jié)構(gòu),去掉了片內(nèi) E2PROM。從而大大縮減了芯片命令集。另外,對載波調(diào)制電路,發(fā)送電路和解調(diào)、解碼電路的控制也相應(yīng)簡化,去掉了 校準(zhǔn)接收電路 I時鐘、 Q時鐘、校準(zhǔn)發(fā)送與接收時鐘相位等繁瑣的操作。一般而言,單片機(jī)與 RC522 的通信流程如圖 41 所示。 圖 41 根據(jù) RC522 和 MIFARE 卡問傳送的控制流數(shù)據(jù)的不同,通信過程中可能會出現(xiàn)不同的狀態(tài)。對各種狀態(tài)須作不同處理,這正是軟件系統(tǒng)開發(fā)的難度所在。下面給出 RC522命令集中 2個最基本命令 (Tranceive和 MFAuthent)執(zhí)行過程中可能遇到的通信狀態(tài)及處理。這兩個命令分別實(shí)現(xiàn)向 MIFARE 卡發(fā)送 /接收數(shù)據(jù)和加密認(rèn)證功能。實(shí)際上,通過它們即可完成對 MIFARE 卡的所有操作, 包括 Request、Anticollision、 Select、 READ、 WRITE 等。 RC522 命令集的實(shí)現(xiàn) RC522 主要的狀態(tài)指示寄存器包括 ComIrqReg、 ErrorReg、 Status2Reg 和 FIFOLevelReg 等。軟件處理的思路:通過 ComIrgReg 得到 RC522 內(nèi)部中斷狀態(tài) 。由中斷判斷 RC522 與 MIFARE 卡的通信流程信息,從而決定是否進(jìn)行下一流程處理 。若中斷指示有錯誤發(fā)生,則需進(jìn)一步讀取 ErrorReg 的內(nèi)容,據(jù)此返回錯誤字。 Tranceive 命令 Tranceive 命令的具體執(zhí)行過程 。讀取 RC522 FIFO 中的所有數(shù)據(jù),經(jīng)基帶編碼和數(shù)字載波調(diào)制后通過通信接口以射頻形式發(fā)送到 MIFARE 卡 。發(fā)送完畢后通過通信接口檢測有無 MIFARE 卡發(fā)送的射頻信號回應(yīng),并將收到的信號解調(diào)、解碼后放入 FIFO 中。分析以上 Ttanceive 命令執(zhí)行過程,可以得到處理該命令的算法流程圖,如圖 42所示。 圖 42 為了處理 Mifare 卡在讀卡器產(chǎn)生的電磁場中激勵后,未完成處理義從激勵 場中拿開的情況,軟件中啟用了 RC522 芯片內(nèi)部的定時器。若超過設(shè)定的時間未得到卡片應(yīng)答,則中止與卡的通信,返回“卡無反應(yīng)”的錯誤信息。 從圖 42中可以看出 Tranceive 命令的核心處理方法:根據(jù)相關(guān)通信狀態(tài)指示寄存器的內(nèi)容返回各種錯誤狀態(tài)字,若有位沖突錯誤,則進(jìn)一步返回位沖突位置。 Tranceive 命令不處理面向比特的幀,這種幀只可能在 MIFARE 卡防沖突循環(huán)中出 現(xiàn)。為了保持 Tranceive 命令對各種 MIFARE 卡命令的普適性,該命令只完成幀的發(fā)送和接收,不對幀信息作處理,所有位沖突處理留在函數(shù)外進(jìn)行。 需要注意的是, Tranceive 命令不能自動中止,在任何情況下從該命令返回時必須先執(zhí)行 IDLE 指令使 RC522 轉(zhuǎn)入空閑態(tài)。 MFAuthent 命令 RC522 簡化了與 MIFARE 卡的加密認(rèn)證操作,用一個 MFAuthent 命令代替了原來 RC500 需要的 Authentl 和 Authent2 兩條命令。 MFAuthent 命令執(zhí)行的最終目的在于開啟 RC522 的 加密認(rèn)證單元。該指令執(zhí)行成功后, RC522 芯片與 MIFARE卡間的通信信息將首先加密,然后再通過射頻接口發(fā)送。從本質(zhì)上講, MFAuthent是一條變相的 Tranceive 命令,其算法流程圖與圖 4一致。但 RC522 芯片內(nèi)部已經(jīng)對通信過程中的各種通信狀態(tài)作了相應(yīng)處理,且該命令執(zhí)行完后自動中止,因此用戶只須檢測定時器狀態(tài)和錯誤寄存器狀態(tài)來判斷執(zhí)行情況。實(shí)際上,MFAuthent 只可能有一種錯誤狀態(tài) (RC522 與 MIFARE 卡通信幀格式錯誤 ),此時該命令不能打開加密認(rèn)證單元,用戶必須重新執(zhí)行認(rèn)證操作。 MFAuthent 執(zhí)行過程中 RC522 將依次從 FIFO 中讀取 1 字節(jié)認(rèn)證模式、 l字節(jié)要認(rèn)證的 E2PROM 塊號、 6 字節(jié)密鑰和 4 字節(jié)射頻卡 UID 號等信息,在命令執(zhí)行前必須保證這 12 字節(jié)數(shù)據(jù)完整地保存在 FIFO 中。認(rèn)證模式有 A 密鑰認(rèn)證和 B密鑰認(rèn)證兩種,一般選用 A密鑰認(rèn)證。 一次 MFAutllent 認(rèn)證只能保證對 MIFARE 卡的一個扇區(qū)中的 4 個數(shù)據(jù)塊解密,若要操作其他扇區(qū)的數(shù)據(jù)用戶還須另外啟動對該扇區(qū)的認(rèn)證操作。 Mifare 卡操作程序設(shè)計(jì) 對 Mifare 卡的操作分為請求、反碰撞、選擇、認(rèn)證、讀、寫、增值、減值、存取 和傳輸,對 Mifare 卡的操作流程圖如圖所示,具體描述如下: 1 請求操作 當(dāng)有 Mifare 卡進(jìn)入讀寫器天線作用范圍內(nèi),讀寫器發(fā)出 Request 命令。卡上的 ATR 將啟動,將卡上的第 0 扇區(qū)的第 0 塊上得卡片類型號( TagType)共 2個字節(jié)數(shù)據(jù)發(fā)給讀寫 器,建立卡與讀寫器的第一步通信聯(lián)絡(luò)。如果不進(jìn)行請求操作,接下去的操作無法進(jìn)行。 請求函數(shù)如下: char PcdRequest(unsigned char data req_code,unsigned char *pTagType) req_mode 是輸入?yún)?shù), Request All 時輸入命令代碼 52H, Request Idle時輸入?yún)?shù) 26H. pTagType 是輸出,返回 2個字節(jié)的卡類型號。 操作成功返回值為 0 。 2 反碰撞操作 在請求操作之后,要進(jìn)行的是反碰撞操作,得到一張卡的序列號。當(dāng)多張Mifare 卡同時處于讀寫器天線作用范圍內(nèi),讀寫器與一張 Mifare 卡進(jìn)行通信,取得徐序列號。由于 Mifare 卡的序列號全球唯一,不可能重復(fù),保證下一步只對一張 Mifare 卡操作。 反碰撞函數(shù)如下: char PcdAnticoll(unsigned char *pSnr) pSnr 是輸入,存放序列號( 4byte)的內(nèi)存單元首地址。 操作成功時函數(shù)返回值為 0. 3 卡選擇操作 在 Mifare 卡成功完成請求,反碰撞操作后,進(jìn)行的操作是卡選擇。對指定序列號的卡進(jìn)行選擇操作,選中的卡可以進(jìn)一步同 RC522 進(jìn)行通信,其余的卡 恢復(fù)到初始狀態(tài)。 卡選擇操作函數(shù): char PcdSelect(unsigned char *pSnr) pSnr 是輸入, Mifare 卡的序列號。 操作成功時函數(shù)返回值為 0. 4 認(rèn)證操作 為了訪問 Mifare 卡的 EEPROM 存儲器中存放的數(shù)據(jù),必須進(jìn)行認(rèn)證操作。認(rèn)證的過程從 RC522 內(nèi)部開始。用戶首先要將正確的密鑰放入 RC522 的密鑰緩沖區(qū)中,然后比較 RC522 的密鑰緩沖區(qū)中存放的密鑰與 Mifare 卡尾塊中存放的密鑰是否相同,相同可以對 Mifare 卡進(jìn)行下一步操作,不相同不允許對 Mifare 進(jìn)行下一步操 作。 認(rèn)證的程序流程一般分為三步:( 1)為了進(jìn)行認(rèn)證操作,密鑰必須轉(zhuǎn)化為標(biāo)準(zhǔn)的格式,然后存入 RC522 的內(nèi)部密鑰緩沖區(qū)中,將 6 字節(jié)的未編碼的密鑰轉(zhuǎn)化成 12 字節(jié)的編碼密鑰,有米要編碼函數(shù) char ChangeCodeKey( )實(shí)現(xiàn);( 2)講已轉(zhuǎn)換格式后的密鑰送到 RC522 的 FIFO 中,有函數(shù) char PcdAuthKey( )實(shí)現(xiàn);( 3)用存放 RC522 的 FIFO 中得密鑰和卡上的密鑰進(jìn)行驗(yàn)證,由函數(shù) char PcdAuthState( )完成。 相關(guān)函數(shù)如下: Char ChangeCodeKey(unsigned char *pUncode,unsigned char *pCoded ) pUncode 輸入函數(shù), 6字節(jié)未轉(zhuǎn)換的密鑰。 pCoded 輸出函數(shù), 12 字節(jié)轉(zhuǎn)換后的密鑰。 Char PcdAuthKey(unsigned char *pKeys) pKeys 輸入函數(shù) ,轉(zhuǎn)換后的密鑰。 char PcdAuthState(unsigned char data auth_mode,unsigned char data addr,unsigned char *pKey,unsigned char *pSnr) auth_mode 輸入函數(shù), 0x60:驗(yàn)證 A密鑰, 0x61:驗(yàn)證 B密鑰。 以上函數(shù)返回值類型均為 char。操作正確時返回 0. 經(jīng)過認(rèn)證操作, Mifare 卡的訪問控制條件為允許讀時,可以從 Mifare 卡中讀出其 EEPROM 的值。每次讀出 16 字節(jié)一塊的數(shù)據(jù)。 讀操作函數(shù): char PcdRead(unsigned char data addr,unsigned char *pData) 該函數(shù)從指定的塊中讀取 16字節(jié)的數(shù)據(jù)。 addr 輸入塊號,取值范圍 0— 63. pData 輸出 16 字 節(jié)來自 Mifare 卡的數(shù)據(jù)。 操作成功返回 0. 6 寫操作 經(jīng)過認(rèn)證, Mifare 卡的訪問控制條件為允許寫時,可以通過寫操作將數(shù)據(jù)寫入到 Mifare 卡的 EEPROM 中。每次寫入 16 字節(jié)一整塊數(shù)據(jù)。 寫操作函數(shù) : char PcdWrite(unsigned char data addr,unsigned char *pData) 該函數(shù)可以將 16 字節(jié)的數(shù)據(jù)寫入到指定的塊中。發(fā)送完該命令后等待卡的響應(yīng)信號,收到響應(yīng)信號后, MFRC522 發(fā)送 16字節(jié)的數(shù)據(jù),再次等待響應(yīng)信號。 addr 輸入塊號,取值范圍 0— 63. pData 輸入 16 字節(jié)的數(shù)據(jù)。 操作成功返回 0. 7 值操作 當(dāng) Mifare 的塊的屬性設(shè)定為值塊時,可以進(jìn)行值操作,值操作包括增加、減少取值、傳輸。 增加操作:讀取 Mifare 卡指定塊的值,檢查值的合法性,增加指定的值,將結(jié)果存放到 Mifare 卡的內(nèi)部中間寄存器中。 減少操作:讀取 Mifare 卡指定塊的值,檢查值的合法性,減少指定的值,將結(jié)果存放到 Mifare 卡的內(nèi)部中間寄存器中。 取值操作:讀取 Mifare 卡指定塊的值,檢查值的合法性,將值存放到 Mifare卡的內(nèi)部中間寄存器中。 傳輸操作:將 Mifare 卡內(nèi)部中間寄存器的內(nèi)容傳送到 Mifare 卡的 EEPROM中。該函數(shù)是在增值操作、簡直操作或取值操作后調(diào)用的。 值 操 作 函 數(shù) : char PcdValue(unsigned dd_mode,usigned char addr,unsigned char *pValue) dd_mode 輸入選擇操作,即 PICC_INC 事增值操作, PICC_DEC 是簡直操作,PICC_REST 是去值操作。 addr 是錢包的絕對值塊號,取值范圍 063. Value 輸入 4字節(jié)增(減)值首地址, 16 進(jìn)制數(shù),低位在前。函數(shù)操作成功返回 0. 軟硬件的聯(lián)合測試運(yùn)行 所有函數(shù)均在一個工程文件中,工程中包含了 3 個主要 C51 文件,分別是、 rc522 和 。分別包含了主函數(shù)、 MF RC522 處理函數(shù)和顯示程序。每個 C文件都對應(yīng)的有一個頭文件,頭文件里定義了各個 C 文件中用到的相關(guān)參數(shù)。整個工程編譯成一個 HEX 二進(jìn)制代碼文件,利用單片機(jī)的燒錄軟件把HEX文件送入 STC11F32 單片機(jī)內(nèi)部 ROM。然后把單片機(jī)加電、復(fù)位,自動運(yùn)行程序,把卡靠近讀卡器天線,看系統(tǒng)是否獲得卡的序列號,如果獲得成功,說明系統(tǒng)初始化等工作正常, 如果失敗則尋找原因,再次調(diào)試。 在調(diào)試的過程中,一定要仔細(xì)分析問題,確保硬件能正常工作時,不斷調(diào)試程序,直至成功,最終實(shí)現(xiàn)了系統(tǒng)初始化、 MF RC522 初始化、讀取序列號、請求應(yīng)答握手過程、防沖突操作、選擇和認(rèn)證操作、讀寫操作的整個過程。 總結(jié) 在整個系統(tǒng)設(shè)計(jì)的過程中,通過對文獻(xiàn)資料的查閱和相關(guān)技術(shù)手冊的研讀,我比較全面的掌握了 RFID 系統(tǒng)的基本原理和實(shí)現(xiàn)方法,特別是對于非接觸式 IC卡類型的 RFID 系統(tǒng)。 RFID 識別技術(shù)作為當(dāng)前發(fā)展迅速,應(yīng)用日趨廣泛的技術(shù)形勢,正在改變著我們周圍的世界,改變 著我們的生活方式。研究 RFID 識別技術(shù)是促進(jìn)識別技術(shù)及其應(yīng)用的必然要求,作為讀卡設(shè)備為了適應(yīng)日益豐富的需求,其性能能夠以及功能也在不斷的進(jìn)步中。本文的讀卡器是具體應(yīng)用需求的一次嘗試,做了以下工作: 對 RFID
點(diǎn)擊復(fù)制文檔內(nèi)容
醫(yī)療健康相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1