<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 測試測量 > 設計應用 > 非接觸ID卡在自動識別系統(tǒng)中的應用

          非接觸ID卡在自動識別系統(tǒng)中的應用

          作者: 時間:2006-05-07 來源:網絡 收藏

          摘要:非接觸ID卡具有數(shù)據(jù)讀數(shù)速度快、抗干擾能力強、價格低等特點,在自動識別系統(tǒng)中有良好的應用前景。本文分析非接觸ID卡的數(shù)據(jù)讀取及數(shù)據(jù)校驗的操作,并給出相應的源程序。

          本文引用地址:http://www.ex-cimer.com/article/255629.htm

          關鍵詞:非接觸ID卡 自動識別 數(shù)據(jù)讀取及校驗

          隨著半導體芯片技術的不斷發(fā)展,自動識別系統(tǒng)(如巡更系統(tǒng)、門禁系統(tǒng)、考勤系統(tǒng)、倉儲管理系統(tǒng)、流水線生產自動化管理系統(tǒng)等)所采用的ID標識也在不斷地更新,從條形碼、磁卡到智能IC卡、非接觸ID卡,都有各自的特點及適用場合,表1列出了幾種ID標識的特性與區(qū)別。在實踐應用過程中,用戶可根據(jù)不同的使用環(huán)境及功能要求選擇不同的ID標識。

          非接觸ID卡的數(shù)據(jù)讀取具有非常接觸的特性,即根據(jù)不同的硬件電路設計,可以在距離非接觸ID卡4~10cm處讀取其數(shù)據(jù)。因此,讀取非接觸ID卡數(shù)據(jù)無需機械接觸即可完成,避免了接觸式數(shù)據(jù)讀取而產生的卡損傷,從而大大提高了卡的使用壽命。此外,非接觸ID卡還可以按不同的應用采用異型封裝,如硬幣型、柱型等,并可將其預埋于設備的混凝土基礎中,使其不容易受到外力破壞。

          1 非接觸ID卡主要特性

          目前市場上非接觸ID卡主要有臺灣凌航科技的GK4001卡和瑞士SWATCH集團的H4001卡。它們都采用125kHz的典型工作頻率,有64位激光可編程ROM,調制方式為曼徹斯特碼(Manchester)調制,位數(shù)據(jù)傳送周期為512μs,其64位數(shù)據(jù)結構如圖1所示。

          連續(xù)9位“1”作為頭數(shù)據(jù),是讀取數(shù)據(jù)時的同步標識;D00~D93位是用戶定義數(shù)據(jù)位;P0~P9是行奇校驗位,PC0~PC3是列奇校驗位,最后位“0”是結束標志。非接觸ID卡的這種數(shù)據(jù)結構非常有利于判斷讀出數(shù)據(jù)的正確性。

          由于Temic U2270B射頻基站的典型工作頻率為125kHz,因此,可采用以U2270B作為射頻基站模塊構成的電路(參見本刊2001年第3期《Temic RF卡讀寫器的設計》)來實現(xiàn)對非接觸ID卡的數(shù)據(jù)讀取。在工作狀態(tài)下,只要射頻基站電路不斷電,非接觸ID卡循環(huán)發(fā)送64位數(shù)據(jù)。

          2 非接觸ID卡數(shù)據(jù)讀取及校驗

          根據(jù)曼徹斯特碼的編碼原則(參見本刊2001年第一期《一種采用曼碼調制的非接觸IC卡讀寫程序編制》),非接觸ID卡采用上升沿對應著位數(shù)據(jù)“0”,下降沿對應著位數(shù)據(jù)“1”,微控制器通過檢測U2270B輸出數(shù)據(jù)位的跳變來實現(xiàn)對曼徹斯特碼的譯碼。在現(xiàn)實工作中,數(shù)據(jù)信號會受到調制、解調、噪聲各種效應的影響,其上升沿和下降沿存在抖動,可采用鍵盤消抖的辦法來消除抖動的影響。根據(jù)非接觸ID卡64位數(shù)據(jù)循環(huán)發(fā)送以及其數(shù)據(jù)緒構特點,即數(shù)據(jù)流中第64位為“0”,第1位至第9位為“1”。據(jù)此,將“0111111111”作為讀數(shù)據(jù)的起始標識,如圖2所示。在確定了數(shù)據(jù)起始標識后,采用延時大于0.5T采樣數(shù)據(jù)位的方法,如圖3所示,來避開曼徹斯特碼編碼中的空跳對數(shù)據(jù)譯碼造成的影響,簡化了譯碼程序。

          通過實驗得到:480μs≤1T≤520μs,220μs≤0.5T≤280μs,由此取Tnext=300μs。為了便于對讀出數(shù)據(jù)進行奇校驗,讀出數(shù)據(jù)每5位作為一個字節(jié)。因此確定起始標識和讀取數(shù)據(jù)對時鐘有嚴格要求,所以尋找起始標識和讀取數(shù)據(jù)部分程序采用匯編語言編寫。數(shù)據(jù)讀以后,根據(jù)前面所提到的非接觸ID卡的數(shù)據(jù)結構,通過比較奇校驗算法與讀出數(shù)據(jù)中的奇校驗位來驗證出數(shù)據(jù)的正確性。非接觸ID卡的數(shù)據(jù)讀取程序如下:

          ;------------------------------------------

          ;讀出數(shù)據(jù)程序

          ;晶振11.059 2MHz

          ;Lable define

          ;-----------------------------------------

          TLL EQU 2DH

          TLH EQU 42H

          THL EQU 62H

          THH EQU 81H

          TDL EQU 88H

          TDL1 EQU 2AH

          BLK1 EQU 70H ;讀出數(shù)據(jù)緩存

          OK BIT 79H

          OUT BIT P1.1

          CFE BIT P1.2

          ;-------------------------------------------

          ORG 0000H

          LJMP RD_D

          ORG 0050H

          ;------------------------------

          ;READ RF CARD

          ;-------------------------------

          RD_D:MOV A,R6

          PUSH ACC

          MOV A,R7

          PUSH ACC

          LCALL EDGEM

          JB OK,RD_OK

          RD_D0:CLR OK

          LJMP RD_D

          RD_OK:NOP

          RD_D1:MOV R0,#BLK1 ;讀到BLK1

          RD_DL0:MOV R6,#0BH ;位計數(shù)---R6*R5

          RB_L:CLR A

          MOV @R0,A

          RD_DL1:MOV R5,#05H

          RD_DL2:JB OUT,RD_DL5

          MOV A,#00H

          RD_DL3:CJNE A,#TDL1,RD_DL4

          LJMP RD_D0

          RD_DL4:JB OUT,RD_DLK

          INC A

          SJMP RD_DL3

          RD_DL5:MOV A,#00H

          RDDL5:CJNE A,#TDL1,RD_DL6

          LJMP RD_D0

          RD_DL6:JNB OUT,RD_DLK

          INC A

          SJMP RDDL5

          RD_DLK:MOV C,OUT

          CPL C

          MOV A,@R0

          RLC A

          MOV @R0,A

          MOV R1,#TDL ;延時TNEXT

          DJNZ R1,$

          DJNZ R5,RD_DL2

          INC R0

          DJNZ R6,RB_L

          SETB OK

          RDRET:POP ACC

          MOV R7,A

          POP ACC

          MOV R6,A

          SJMP $

          ;---------------------------------------------

          ;確定數(shù)據(jù)流起始標識

          ;---------------------------------------------

          EDGEM:MOV R7,#00H

          EDGE0:MOV R1,#08H

          NOP

          DJNZ R7,EDGE1

          EDGER:CLR OK

          RET

          ;--------------------

          EDGE1:JNB OUT,$

          MOV DPTR,#0000H

          EDGE2:INC DPTR

          JB OUT,EDGE2

          MOV A,DPH

          JNZ EDGER

          MOV A,DPL

          CLR C

          SUBB A,#THL

          JC EDGE0

          MOV A,DPL

          CLR C

          SUBB A,#THH

          JNC EDGER

          ;--------------------

          EDGE3:JNB OUT,$

          MOV DPTR,#0000H

          EDGE4:INC DPTR

          JB OUT,EDGE4

          MOV A,DPL

          CLR C

          SUBB A,#TLH

          JNC EDGE0

          MOV A,DPH

          JNZ EDGER

          MOV A,DPL

          CLR C

          SUBB A,#TLL

          JC EDGER

          MOV A,DPL

          CLR C

          SUBB A,#TLH

          JNC EDGE0

          DJNZ R1,EDGE3

          MOV R1,#TDL

          DJNZ R1,$

          SETB OK

          RET

          END

          結束語

          通過實驗得出,只有在正確找到數(shù)據(jù)的起始標識和通定合適的時間間隔常數(shù)后,才能正確讀出非接觸ID卡的數(shù)據(jù)。經過一段實踐,以上兩點并不難解決。

          linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)


          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();