新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 1-wire系統(tǒng)中TM卡的單片機(jī)等效替換

1-wire系統(tǒng)中TM卡的單片機(jī)等效替換

作者:常州輕工職業(yè)技術(shù)學(xué)院 高羅卿 時(shí)間:2008-09-08 來源:?jiǎn)纹瑱C(jī)與嵌入式系統(tǒng)應(yīng)用 收藏

  對(duì)從機(jī)來說,則為發(fā)送64位ID處理。程序處理的難點(diǎn)在于從機(jī)必須在15 μs之前拉高或拉低總線,以供主機(jī)在15 μs處采樣總線。程序通過判斷位地址00H處的狀態(tài)來實(shí)現(xiàn)此功能。通過判斷位地址01H處的狀態(tài)來確定發(fā)送位0或發(fā)送位1。從機(jī)發(fā)送64位ID處理的中斷服務(wù)程序流程如圖8所示。

本文引用地址:http://butianyuan.cn/article/87775.htm


圖8  從機(jī)發(fā)送64位ID處理的中斷服務(wù)程序流程

  在完整地實(shí)現(xiàn)一次ROM功能的過程中,從機(jī)首先等待主機(jī)發(fā)送的復(fù)位脈沖,待檢測(cè)到后發(fā)圖9實(shí)現(xiàn)ROM功能的流程送存在脈沖應(yīng)答。隨后,從機(jī)開始接收主機(jī)發(fā)送的ROM命令,并將其保存,以判斷隨后的操作。最后,從機(jī)發(fā)送的64位標(biāo)識(shí)碼,完成一次ROM命令的執(zhí)行。實(shí)現(xiàn)ROM功能的流程如圖9 所示。

  的匯編程序如下:

    ORG0000H
    AJMPInit//跳到Init段
    ORG0003H
    AJMPJudge//跳到中斷服務(wù)程序
  Init: //初始化
    MOVDPTR,#ID//ID表地址
    MOVR5,#001H
    MOVR7,#000H
    CLR00H
    SETB01H
    SETBP3.2
    LCALLDelay10s
    CLRP3.2//拉低總線叫醒主機(jī)
    LCALLDelay100us
    SETBP3.2
    SETBEA
    SETBIT0
    SETBEX0
  MAIN:  AJMPMAIN//主循環(huán)
  Judge:CLREX0//判斷執(zhí)行動(dòng)作,關(guān)中斷
    JNB00H,SecondJ//跳到二次判斷
  ID_IN:JB01H,SEND1//從機(jī)發(fā)送64位標(biāo)識(shí)碼
    CLRP3.2//發(fā)送位0
  SEND1:SETBP3.2 //發(fā)送位1
    LCALLDelay30us
    MOVA,R5//R5循環(huán)左移
    RLA
    MOVR5,A
    MOVA,#00H
    MOVCA,@A+DPTR
    ANLA,R5
    CLR01H//設(shè)置01H狀態(tài)
    JZRelease1
    SETB01H
  Release1:SETBP3.2
    MOVA,R5
    ANLA,#080H//判斷字節(jié)發(fā)送完否
    JZINTEND
    INCDPTR
    AJMPINTEND//跳到中斷結(jié)束
  SecondJ:MOVA,R7//二次判斷
    JZWaitReply//跳到執(zhí)行應(yīng)答判斷是否命令接收結(jié)束
    ANLA,#008H
    JZWaitOrder//跳到執(zhí)行接收命令
    SETB00H
  WaitOrder: LCALLDelay15us//接收命令
    NOP
    NOP
    MOVA,P3//采樣P3.2
    ANLA,#004H
    JZSAVE_R6
    MOVA,#001H
  SAVE_R6:
    ORLA,R6 //保存命令到R6
    RRA
    MOVR6,A
  RLOOP1:
    MOVA,P3//判斷主機(jī)的發(fā)送狀態(tài),是否返回
    ANLA,#004H
    JZRLOOP1
    AJMPINTEND//跳到中斷結(jié)束
  WaitReply://執(zhí)行應(yīng)答
  RLOOP:MOVA,P3//判斷主機(jī)的復(fù)位信號(hào)
    ANLA,#004H
    JZRLOOP
    LCALLDelay30us
    CLRP3.2//從機(jī)拉低電平應(yīng)答
    LCALLDelay150us
    SETBP3.2//釋放總線
    NOP
    NOP
    NOP
    NOP
  INTEND:
    INCR7
    CLRIE0
    SETBEX0//開中斷
    RETI//中斷返回
  ID:DB001H//ID表
    DB0C3H
    DB04DH
    DB057H
    DB033H
    DB022H
    DB000H
    DB0D2H

  本文代碼在實(shí)際運(yùn)用中得到了很好的驗(yàn)證,能夠穩(wěn)定地替代SMC1990A1實(shí)現(xiàn)的ROM功能,極大地方便了權(quán)限管理人員用于丟失或損壞的TM卡的權(quán)限管理。

參考文獻(xiàn)

[1]  SMC1990A1 Datasheet. Version 0.1, June, 2004.
[2]  陳志英,李光輝. 單總線(1Wire Bus) 技術(shù)及其應(yīng)用[J]. 國(guó)外電子元器件, 2003(8) : 47.
[3]  丁明勇,李昔華. TM卡智能電子鎖與門禁系統(tǒng)研制[J]. 重慶工商大學(xué)學(xué)報(bào), 2004, 21(5) : 488  490.
[4]  徐敏,諸葛振榮,宋加仁. 基于1Wire技術(shù)的數(shù)字溫度儀[J]. 機(jī)電工程, 2007, 24(4) : 26 29.
[5]  楊振野, 韋方明, 陳坤城,等. DS1991信息紐扣的密鑰破解和等效替換[J]. 電子技術(shù), 2006(12): 61  63.

高羅卿(碩士),從事機(jī)電一體化專業(yè)教學(xué)任務(wù)。


上一頁 1 2 下一頁

關(guān)鍵詞: 單片機(jī) TM卡 1wire IC卡

評(píng)論


相關(guān)推薦

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

關(guān)閉