• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

    EEPW首頁(yè) > 測(cè)試測(cè)量 > 設(shè)計(jì)應(yīng)用 > 非接觸ID卡在自動(dòng)識(shí)別系統(tǒng)中的應(yīng)用

    非接觸ID卡在自動(dòng)識(shí)別系統(tǒng)中的應(yīng)用

    作者: 時(shí)間:2006-05-07 來源:網(wǎng)絡(luò) 收藏

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

    本文引用地址:http://www.czjhyjcfj.com/article/255629.htm

    關(guān)鍵詞:非接觸ID卡 自動(dòng)識(shí)別 數(shù)據(jù)讀取及校驗(yàn)

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

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

    1 非接觸ID卡主要特性

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

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

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

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

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

    通過實(shí)驗(yàn)得到:480μs≤1T≤520μs,220μs≤0.5T≤280μs,由此取Tnext=300μs。為了便于對(duì)讀出數(shù)據(jù)進(jìn)行奇校驗(yàn),讀出數(shù)據(jù)每5位作為一個(gè)字節(jié)。因此確定起始標(biāo)識(shí)和讀取數(shù)據(jù)對(duì)時(shí)鐘有嚴(yán)格要求,所以尋找起始標(biāo)識(shí)和讀取數(shù)據(jù)部分程序采用匯編語(yǔ)言編寫。數(shù)據(jù)讀以后,根據(jù)前面所提到的非接觸ID卡的數(shù)據(jù)結(jié)構(gòu),通過比較奇校驗(yàn)算法與讀出數(shù)據(jù)中的奇校驗(yàn)位來驗(yàn)證出數(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 ;位計(jì)數(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 ;延時(shí)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ù)流起始標(biāo)識(shí)

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

    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

    結(jié)束語(yǔ)

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

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


    評(píng)論


    相關(guān)推薦

    技術(shù)專區(qū)

    關(guān)閉
    主站蜘蛛池模板: 荔浦县| 宁南县| 项城市| 盐池县| 营山县| 贵州省| 浮梁县| 前郭尔| 云和县| 新闻| 嵊州市| 上思县| 文山县| 汉源县| 长沙县| 尖扎县| 田阳县| 瑞安市| 云南省| 绥化市| 乐至县| 兰考县| 丹棱县| 肃北| 商都县| 繁峙县| 玉林市| 留坝县| 芜湖县| 曲水县| 云南省| 鸡西市| 湟源县| 连平县| 马鞍山市| 宿松县| 社会| 阜城县| 原阳县| 祁阳县| 曲麻莱县|