1-wire系統(tǒng)中TM卡的單片機(jī)等效替換
對從機(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://www.ex-cimer.com/article/87775.htm
圖8 從機(jī)發(fā)送64位ID處理的中斷服務(wù)程序流程
在完整地實(shí)現(xiàn)一次ROM功能的過程中,從機(jī)首先等待主機(jī)發(fā)送的復(fù)位脈沖,待檢測到后發(fā)圖9實(shí)現(xiàn)ROM功能的流程送存在脈沖應(yīng)答。隨后,從機(jī)開始接收主機(jī)發(fā)送的ROM命令,并將其保存,以判斷隨后的操作。最后,從機(jī)發(fā)送TM卡的64位標(biāo)識碼,完成一次ROM命令的執(zhí)行。實(shí)現(xiàn)ROM功能的流程如圖9 所示。
單片機(jī)的匯編程序如下:
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í)行動作,關(guān)中斷
JNB00H,SecondJ//跳到二次判斷
ID_IN:JB01H,SEND1//從機(jī)發(fā)送TM卡64位標(biāo)識碼
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ù)位信號
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)TM卡的ROM功能,極大地方便了權(quán)限管理人員用于丟失或損壞的TM卡的權(quán)限管理。
參考文獻(xiàn)
[1] SMC1990A1 Datasheet. Version 0.1, June, 2004.
[2] 陳志英,李光輝. 單總線(1Wire Bus) 技術(shù)及其應(yīng)用[J]. 國外電子元器件, 2003(8) : 47.
[3] 丁明勇,李昔華. TM卡智能電子鎖與門禁系統(tǒng)研制[J]. 重慶工商大學(xué)學(xué)報, 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ù)。
評論