新聞中心

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

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

        作者:常州輕工職業(yè)技術學院 高羅卿 時間:2008-09-08 來源:單片機與嵌入式系統(tǒng)應用 收藏

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

        本文引用地址:http://www.104case.com/article/87775.htm


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

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

          的匯編程序如下:

            ORG0000H
            AJMPInit//跳到Init段
            ORG0003H
            AJMPJudge//跳到中斷服務程序
          Init: //初始化
            MOVDPTR,#ID//ID表地址
            MOVR5,#001H
            MOVR7,#000H
            CLR00H
            SETB01H
            SETBP3.2
            LCALLDelay10s
            CLRP3.2//拉低總線叫醒主機
            LCALLDelay100us
            SETBP3.2
            SETBEA
            SETBIT0
            SETBEX0
          MAIN:  AJMPMAIN//主循環(huán)
          Judge:CLREX0//判斷執(zhí)行動作,關中斷
            JNB00H,SecondJ//跳到二次判斷
          ID_IN:JB01H,SEND1//從機發(fā)送64位標識碼
            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//設置01H狀態(tài)
            JZRelease1
            SETB01H
          Release1:SETBP3.2
            MOVA,R5
            ANLA,#080H//判斷字節(jié)發(fā)送完否
            JZINTEND
            INCDPTR
            AJMPINTEND//跳到中斷結(jié)束
          SecondJ:MOVA,R7//二次判斷
            JZWaitReply//跳到執(zhí)行應答判斷是否命令接收結(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//判斷主機的發(fā)送狀態(tài),是否返回
            ANLA,#004H
            JZRLOOP1
            AJMPINTEND//跳到中斷結(jié)束
          WaitReply://執(zhí)行應答
          RLOOP:MOVA,P3//判斷主機的復位信號
            ANLA,#004H
            JZRLOOP
            LCALLDelay30us
            CLRP3.2//從機拉低電平應答
            LCALLDelay150us
            SETBP3.2//釋放總線
            NOP
            NOP
            NOP
            NOP
          INTEND:
            INCR7
            CLRIE0
            SETBEX0//開中斷
            RETI//中斷返回
          ID:DB001H//ID表
            DB0C3H
            DB04DH
            DB057H
            DB033H
            DB022H
            DB000H
            DB0D2H

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

        參考文獻

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

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


        上一頁 1 2 下一頁

        關鍵詞: 單片機 TM卡 1wire IC卡

        評論


        相關推薦

        技術專區(qū)

        關閉
        主站蜘蛛池模板: 皮山县| 喜德县| 永兴县| 尼玛县| 南通市| 金塔县| 迁西县| 海兴县| 兰溪市| 玛沁县| 怀安县| 南皮县| 曲水县| 西畴县| 渝中区| 保康县| 定远县| 乐东| 武鸣县| 闽侯县| 合阳县| 瑞昌市| 宁陕县| 肇源县| 安塞县| 巴彦县| 屏山县| 奎屯市| 巴林左旗| 青海省| 滁州市| 齐河县| 富顺县| 聂荣县| 玛纳斯县| 澳门| 桐乡市| 民丰县| 宝坻区| 黔南| 阿图什市|