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

正文內(nèi)容

畢業(yè)設(shè)計(jì)--基于stc單片機(jī)的非接觸式ic卡讀寫系統(tǒng)-資料下載頁

2024-12-03 18:09本頁面

【導(dǎo)讀】所無法比擬的優(yōu)越性,具有廣闊的市場(chǎng)前景。作、密碼操作以及各塊存儲(chǔ)方式的控制。1.系統(tǒng)符合國(guó)際標(biāo)準(zhǔn)ISO/IECl4443A協(xié)議。2.采用RS232串行口與上位機(jī)通信。3.獨(dú)立完成系統(tǒng)硬件設(shè)計(jì),并搭電路驗(yàn)證。4.采用KeilC51和VisualBasic語言完成系統(tǒng)軟件的編寫。1.《智能卡技術(shù)-IC卡與RFID標(biāo)簽》,王愛英主編,清華大學(xué)出版社。2.《射頻識(shí)別RFID原理與應(yīng)用》,單承贛等編著,電子工業(yè)出版社。4.芯片MFRC500相關(guān)技術(shù)資料。由于非接觸式IC卡具有操作快捷、抗干擾性強(qiáng)、觸式IC卡讀卡器是非接觸式IC卡應(yīng)用系統(tǒng)的關(guān)鍵設(shè)備之一。的需要,本課題開發(fā)了一種讀寫距離在10em左右的非接觸式IC卡讀卡器,它可以應(yīng)用于電子消費(fèi)場(chǎng)合,如公交和地鐵電子售票,食堂售飯等場(chǎng)合。的研究,說明了射頻IC卡系統(tǒng)的工作狀態(tài)。介紹了系統(tǒng)設(shè)計(jì)的軟件部分,重點(diǎn)介紹了RC500的主要特性、頻模塊的實(shí)現(xiàn)方案和具體電路。專用射頻讀卡集成芯片RC500),并詳細(xì)闡述了系統(tǒng)各個(gè)模塊的組成和原理,

  

【正文】 tartUp 命令除外 )都可被微處理器通過寫入新命令所中斷。例如 , Idle 命令將取消當(dāng)前執(zhí)的任何命令。對(duì)于需要數(shù)據(jù)流 (或數(shù)據(jù)字節(jié)流 )作為輸入的命令 , 會(huì)立即處理它在 FIFO 緩沖區(qū)中發(fā)現(xiàn)的數(shù)據(jù)。對(duì)于需要一定數(shù)目變量的命令 , 只有當(dāng)它從 FIFO 緩沖區(qū)接收到正確數(shù)目的變量時(shí) , 才會(huì)啟動(dòng)命令處理。 FIFO 緩沖區(qū)在命令啟動(dòng)時(shí)不會(huì)自動(dòng)清零 , 可先將命令變量和數(shù)據(jù)字節(jié)寫入 FIFO 緩沖區(qū) ,然后再啟動(dòng)相應(yīng)命令。 按照讀卡的整個(gè)過程來看應(yīng)該把單片機(jī)的整體程序分解成各個(gè)子程序模塊來進(jìn)行編寫,一方面減少編寫程序的難度,另一方面也使得程序變得簡(jiǎn)單易懂,以及適合后期調(diào)整以及維護(hù)。 對(duì)于卡的讀寫需要很顯而易見的分為初始化 子程序 模塊、卡檢測(cè) 子程序 模塊、卡校 子程序 驗(yàn)?zāi)K和讀寫 子程序 模塊 ??傮w軟件設(shè)計(jì)框圖如下: 燕山大學(xué)本科生畢業(yè)設(shè)計(jì) (論文 ) 20 圖 31 軟件總體設(shè)計(jì)框圖 初始化 子程序 設(shè)計(jì) 在進(jìn)行讀卡之前需要對(duì) MF RC500 進(jìn)行初始化操作。 初始化就是對(duì) MF RC500 的 32 個(gè)寄存器進(jìn)行設(shè)置。 MF RC500 在復(fù)位引腳 RSTPD 腳由高變低的時(shí)候復(fù)位,延時(shí)的長(zhǎng)度由系統(tǒng)晶振頻率決定,本系統(tǒng)的晶振頻率是 MHz。 在 MFRC500 進(jìn)行上電復(fù)位完成以后 ,我們要對(duì) RC500 進(jìn)行各個(gè)設(shè)置寄存器進(jìn)行賦值,來調(diào)整 RC500 的工作狀態(tài)。 RC500 的控制寄存器由 8 個(gè)地址組 成一頁,這樣很方便的單片機(jī)對(duì)其進(jìn)行快速賦值。這些寄存器中絕大部分都是可讀寫的,有一部分的寄存器限度讀寫的功能并相應(yīng)的起到特殊的目的。其中需要通過初始化來進(jìn)行調(diào)節(jié) RC500 的連接模式。 TX1\TX2 之間的電導(dǎo)率來對(duì)天線的輸出功率進(jìn)行調(diào)整。 TX1\TX2 邏輯狀態(tài)的調(diào)整,輸出脈沖的寬度,發(fā)送器和接收器時(shí)鐘之間的相位關(guān)系;解碼器的閥值, RF 信道上數(shù)據(jù)完整性檢測(cè)的類型以及 模式 。內(nèi)部時(shí)鐘定時(shí)器的設(shè)置控制 。以及發(fā)送器和接收器的編碼發(fā)送。初始化子程序的結(jié)構(gòu)框圖如下: 開始 初始化模塊 卡檢測(cè)模塊 卡校驗(yàn)?zāi)K 讀寫模塊 返回 第 3章 軟件系統(tǒng)設(shè)計(jì) 21 圖 32 初始化模塊設(shè)計(jì)圖 卡 片 檢測(cè) 子程序設(shè)計(jì) 在初始化進(jìn)行完成后就可以在上位機(jī)的程序控制下對(duì)射頻 IC 進(jìn)行讀寫操作了,在整個(gè)讀寫過程中必不可少的需要進(jìn)行卡片檢測(cè),來確定卡片存在以及在多卡并存的情況下進(jìn)行卡片的選擇。首先進(jìn)行卡片的檢測(cè),發(fā)送一個(gè)請(qǐng)求命令等待感應(yīng)區(qū)內(nèi)的卡的信息回饋。 發(fā)送請(qǐng)求命令過程為 ISO/IEC 14443 TYPE A 通信協(xié)議中的 REQA 命令。借助 RC500 的 TRANSCEIVE 命令將 REQA 命令發(fā)送至 IC 卡,并接收返回的數(shù)據(jù)。發(fā)送請(qǐng)求命令的作用就是搜尋有無 IC 卡靠近,跟據(jù)返回得數(shù)據(jù)判斷有無需要與之通信的 IC 卡。請(qǐng)求模式有 Request all 和 Request std 兩種。 Request all 指令是非連續(xù)性的讀卡指令,只讀一次。但有個(gè)例外,當(dāng)某一次 Request all 指令讀卡片失敗時(shí),例如,卡片沒能通過密碼認(rèn)證或其它原因而出錯(cuò)時(shí), Request all 指令將連續(xù)地讀卡,直到讀卡成功才進(jìn)入非連續(xù)性的讀卡模式。 Request std 指令的使用和 Request all 指令剛巧相反。 Request std 指令是連續(xù)性的讀卡指令。當(dāng)某一張卡片在天線的有效的工作范圍 (距離 )內(nèi), Request std 指令在成功地讀取這開始 RC500 片選引腳初始化 結(jié)束 給 RC500 復(fù)位引腳低電平 延時(shí) 給 RC500 復(fù)位引腳高電平 延時(shí) 給 RC500 復(fù)位引腳高電平 RC500 寄存器初始化 燕山大學(xué)本科生畢業(yè)設(shè)計(jì) (論文 ) 22 一張卡片之后,進(jìn)入對(duì)卡片的其它操作。如果其它操作完成之后,程序員又將程序進(jìn)入 Request std 指令操作,則 Request std 指令將連續(xù)地再次進(jìn)行讀卡操作,而不管這些片卡是否被拿卡。只要有一張卡片進(jìn)入天線的有效的工作范圍內(nèi), Request std 指令將始終連續(xù)地再次進(jìn)行讀卡操作。對(duì)于 Mifare 1卡,該函數(shù)反回值為 0004H。 MFRC500 的某一指 令操作不是簡(jiǎn)單的一條指令所能完成的,必須有一個(gè)程序的序列來完成,其中有對(duì) MFRC500 硬件內(nèi)核寄存器的讀 /寫以及根據(jù)讀出的硬件內(nèi)核寄存器的內(nèi)容進(jìn)行語言軟件上的判斷和設(shè)置。不同的指令將設(shè)置不同的 MFRC500 內(nèi)部寄存器以及應(yīng)有不同的編程語言程序序列。 如果在卡的選擇階段,在天線磁場(chǎng)的有效范圍內(nèi)卡的數(shù)量超過 1 張,就將產(chǎn)生卡辨識(shí)的沖突問題。在曼徹斯特編碼中數(shù)位 1 可表示為 10,數(shù)位 0 可表示為 01,數(shù)位 1 和數(shù)位 0 沖突的結(jié)果可表示為 11, 11 是非法編碼,故極易判斷位沖突的出現(xiàn)位置。 ISO/IEC 14443 協(xié) 議規(guī)定了 Type A 的防沖突過程,采用位結(jié)構(gòu)防沖突循環(huán),并有專門的防沖突指令讀卡器發(fā)出選卡命令,所有有效卡同時(shí)返回各自完整的卡序列號(hào)。如果沖突出現(xiàn),讀卡器確定發(fā)生沖突的第一位位置,然后得出沖突時(shí)有效位位數(shù)。沖突位置必然有一個(gè)卡對(duì)應(yīng)位為“ 1” ,然后讀卡器改變發(fā)送的有效位位數(shù),重新發(fā)出選卡命令。則原來沖突位的值為“ 0”的卡將不予響應(yīng),只有原來沖突位的值為“ 1”的卡發(fā)出響應(yīng),并返回卡序列號(hào)的剩余部分。如果仍有沖突出現(xiàn),重復(fù)以上步驟,直到?jīng)]有沖突出現(xiàn) (最大循環(huán)次數(shù)為 32)。然后讀卡器發(fā)送有效位個(gè)數(shù)的代碼“ 70H” ,同這序列號(hào)匹配的卡返回認(rèn)可命令,同時(shí)進(jìn)入激活狀態(tài),之后讀卡器就可以對(duì)卡進(jìn)行讀寫操作。 在讀卡器接收到 IC 卡返回?cái)?shù)據(jù)以后對(duì)卡進(jìn)行選取,在多卡的情況下,其過程為 ISO/IEC14443 TYPE A 協(xié)議中的 ANTICOLLION 命令。 MF RC500將 ANTICOLLION 命令發(fā)送給 IC 卡后,將自動(dòng)完成防沖突過程。此段程序執(zhí)行完畢后,讀卡器即可正確的接收到一張 IC 卡的 UID(唯一序列號(hào) )。 選擇卡的過程即為 ISO/IEC14443 TYPE A 協(xié)議中的 SELECT 命令。作用是選擇一張卡 。 結(jié)構(gòu)框圖如下: 第 3章 軟件系統(tǒng)設(shè)計(jì) 23 圖 33 卡片檢測(cè)子程序流程圖 卡 片 校驗(yàn) 子程序設(shè)計(jì) 在完成卡片識(shí)別與選擇的任務(wù)之后便可對(duì)卡的區(qū)域進(jìn)行解密,對(duì)于Mifare 1 卡來說要對(duì)某扇區(qū)進(jìn)行操作首先要進(jìn)行卡的三重認(rèn)證 。 三重認(rèn)證就是讀卡器對(duì) IC 卡的密碼認(rèn)證。認(rèn)證步驟: 由 IC 卡向讀卡器發(fā)送一個(gè)隨機(jī)數(shù)據(jù) RB。讀卡器收到 RB 后,向 IC 卡發(fā)送一個(gè)令牌數(shù)據(jù) TOKEN AB,其中包含了讀卡器發(fā)出的一個(gè)隨機(jī)數(shù)據(jù) RA。IC 卡收到 TOKEN AB 后,對(duì) TOKEN AB 的加密部分進(jìn)行解密,并校驗(yàn)第一次由步驟 1 中 IC 卡發(fā)出的隨 機(jī)數(shù) RB 是否與 上一個(gè)步驟 中接收到的開始 置待發(fā)送請(qǐng)求命令 發(fā)送 TRANSCEIVE命令 接收 IC 卡的返回?cái)?shù)據(jù) 置待發(fā)送的 ANTICOLLISON命令 發(fā)送 TRANSCEIVE命令 結(jié)束 發(fā)送 TRANSCEIVE命令 接收 IC 卡的返回 SAK 和 UID 置待發(fā)送的選擇命令 接收 IC 卡的返回 SAK 燕山大學(xué)本科生畢業(yè)設(shè)計(jì) (論文 ) 24 TOKEN AB 中的 RB 相一致。如果 上一步驟 中校驗(yàn)結(jié)果正確,則 IC 卡向讀卡器發(fā)送令牌 TOKEN BA 給讀卡器。讀卡器收到令牌 TOKEN BA 后,將對(duì)令牌 TOKEN BA 中的 RB 進(jìn)行解密;并校驗(yàn)由 開始 步驟中讀卡器發(fā)出的隨機(jī)數(shù) RA 是否與 上一個(gè) 步驟中接收到的 TOKEN BA 中的 RA 相一致。如果上述的每一個(gè)步驟都能正確通過驗(yàn)證,則整個(gè)認(rèn)證過程將成功,讀寫器將能對(duì)剛通過認(rèn)證的這一分區(qū)進(jìn)行下一步的操作。反之,如果認(rèn)證過程中的任何一個(gè)環(huán)節(jié)出錯(cuò),則整個(gè)認(rèn)證過程終止,認(rèn)證過程必須重新開始。 MF RC500 認(rèn)證程序步驟是固定的, 即采用 LoadKeyE2 或 LoadKey 命令將密鑰裝入密鑰緩沖區(qū);采用 Authent1 命令,結(jié)束時(shí)檢測(cè)錯(cuò)誤標(biāo)志以獲得該命令執(zhí)行的狀態(tài),若所接收數(shù)據(jù)的最后一位為 000B,表示由 IC 卡讀入的該字節(jié)是正確的; 啟動(dòng) Authent2 命令, 結(jié)束時(shí)檢測(cè)錯(cuò)誤標(biāo)志和 CryptolOn 標(biāo)志位,若 CryptolOn 標(biāo)志位為 1,說明認(rèn)證成功;若為 0 則認(rèn)證失敗。 如果上述的每一個(gè)步驟都能正確通過驗(yàn)證,則整個(gè)認(rèn)證過程將成功,讀寫器將能對(duì)剛通過認(rèn)證的這一分區(qū)進(jìn)行下一步的 操作。反之,如果認(rèn)證過程中的任何一個(gè)環(huán)節(jié)出錯(cuò),則整個(gè)認(rèn)證過程終止,認(rèn)證過程必須重新開始。MF RC500 認(rèn)證程序步驟是固定的, 即采用 LoadKeyE2 或 LoadKey 命令將密鑰裝入密鑰緩沖區(qū);采用 Authent1 命令,結(jié)束時(shí)檢測(cè)錯(cuò)誤標(biāo)志以獲得該命令執(zhí)行的狀態(tài),若所接收數(shù)據(jù)的最后一位為 000B,表示由 IC 卡讀入的該字節(jié)是正確的; 啟動(dòng) Authent2 命令, 結(jié)束時(shí)檢測(cè)錯(cuò)誤標(biāo)志和 CryptolOn標(biāo)志位,若 CryptolOn 標(biāo)志位為 1,說明認(rèn)證成功;若為 0 則認(rèn)證失敗。 由上面的流程可以 看出,在讀卡器對(duì)射頻卡進(jìn)行認(rèn)證的同時(shí), IC 卡也對(duì)讀卡器進(jìn)行認(rèn)證,這樣大大的加深了整個(gè)讀寫卡系統(tǒng)對(duì)信息的保密程度,一方面對(duì)卡的認(rèn)證保證卡內(nèi)讀卡器不會(huì)被未授權(quán)的讀卡器讀取卡上的內(nèi)容,另一方面卡一對(duì)讀卡器進(jìn)行認(rèn)證,以免不同的發(fā)卡機(jī)構(gòu)之間的發(fā)卡沖突,讀取非自己機(jī)構(gòu)的卡片信息,對(duì)自己的信息庫造成影響。同時(shí)對(duì)于假卡與一些非法操作的讀卡器對(duì)卡的影響。 在智能卡讀寫器系統(tǒng)的設(shè)計(jì)中必需考慮利用特殊的算法來實(shí)現(xiàn)對(duì)所設(shè)計(jì)系統(tǒng)的相關(guān)數(shù)據(jù)進(jìn)行加密。以盡可能地保證系統(tǒng)的安全性,這就需要把相應(yīng)的加密方式或算法引入系統(tǒng)設(shè)計(jì)中,卡的認(rèn)證主第 3章 軟件系統(tǒng)設(shè)計(jì) 25 要為 了防范惡意的數(shù)據(jù)操作。比如:復(fù)制或改變數(shù)據(jù),未經(jīng)授權(quán)地讀出數(shù)據(jù)載體。將外來的數(shù)據(jù)載體置入某個(gè)閱讀器的詢問范圍內(nèi),企圖得到非授權(quán)的出入建筑物或不付費(fèi)的服務(wù)。了假冒真正的數(shù)據(jù)載體,竊聽無線電通信并重放數(shù)據(jù) (重放和欺詐 )。 卡認(rèn)證的子程序流程圖如下: 圖 34 卡片認(rèn)證子程序流程圖 卡片讀寫 卡 子程序設(shè)計(jì) IC 卡的存儲(chǔ)結(jié)構(gòu)如下:共有 64 塊,按塊號(hào)編碼地址為 0~63。第 0 個(gè)扇區(qū)的塊 0(即絕對(duì)地址 0 塊 )用于存放廠商代碼,已經(jīng)固化,不可更改。其他各扇區(qū)的塊 0、塊 塊 2 為數(shù)據(jù) 塊,用于存儲(chǔ)數(shù)據(jù); 而 塊 3 為控制塊,存Y N N Y 開始 密鑰預(yù)處理 置代發(fā)的 LOADKEY 命令 發(fā)送 TRANSCIEVE 命令 置 AUTHENT1 命令 置 AUTHENT2 命令 發(fā)送 TRANSCIEVE 命令 認(rèn)證成功 結(jié)束 認(rèn)證失敗 接收數(shù)據(jù)后一位是否為 000B 標(biāo)志位是否為 1 燕山大學(xué)本科生畢業(yè)設(shè)計(jì) (論文 ) 26 放密碼 A、存取控制、密碼 B、其結(jié)構(gòu)如下。 A0A1A2A3A4A5 FF078069 B0B1B2B3B4B5:密碼 A(6 字節(jié) )存取控制 (4 字節(jié) )密碼 B(6 字節(jié) )。 讀數(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)在完成一張卡的操作 后,應(yīng)該中止 (Halt)掉該卡 如果在工作范圍區(qū)內(nèi)有多張卡,按照上面卡操作的流程,操作完一號(hào)卡后,中止 (Halt)掉該卡,然后再復(fù)位應(yīng)答 (Request)就可以獲得工作范圍內(nèi)二號(hào)卡的響應(yīng),操作完二號(hào)卡后,在中止 (Halt)掉依次循環(huán)直到所有工作范圍內(nèi)的卡均操作完成,復(fù)位應(yīng)答 (Request)后 繼續(xù) 沒有獲得卡的響應(yīng) 。 圖 35 卡片讀寫子程序 上位機(jī)程序 上位機(jī)利用 進(jìn)行編程,用 開發(fā)串行通訊程序普遍采用兩種方法:一種是利用 windows 的 API 函數(shù);另一種是采用 VB 的通訊控件MSComm。利用 API 函數(shù)編寫串行
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1