1-wire系統中TM卡的單片機等效替換方案介紹
本文引用地址:http://dyxdggzs.com/article/171119.htm
對應于從機,是等待主機命令。從機等待主機命令的中斷服務(wù)程序流程如圖6所示。
圖6 從機等待主機命令的中斷服務(wù)程序流程
最后是主機讀數據時(shí)序,如圖7所示。主機總線(xiàn)在開(kāi)始時(shí)刻從高電平拉至低電平時(shí),總線(xiàn)只需保持低電平1~7 μs。之后在tLOWR時(shí)刻釋放總線(xiàn),一般在tRDV時(shí)刻采樣總線(xiàn)(15 μs處),讀時(shí)間隙在tLOWR與tRDV之間有效。從機必須在tRDV時(shí)刻前拉高或拉低總線(xiàn),主機在tRDV時(shí)刻采樣,并在60~120 μs內釋放總線(xiàn)。
圖7 主機讀數據時(shí)序
對從機來(lái)說(shuō),則為發(fā)送64位ID處理。程序處理的難點(diǎn)在于從機必須在15 μs之前拉高或拉低總線(xiàn),以供主機在15 μs處采樣總線(xiàn)。程序通過(guò)判斷位地址00H處的狀態(tài)來(lái)實(shí)現此功能。通過(guò)判斷位地址01H處的狀態(tài)來(lái)確定發(fā)送位0或發(fā)送位1。從機發(fā)送64位ID處理的中斷服務(wù)程序流程如圖8所示。
圖8 從機發(fā)送64位ID處理的中斷服務(wù)程序流程
在完整地實(shí)現一次ROM功能的過(guò)程中,從機首先等待主機發(fā)送的復位脈沖,待檢測到后發(fā)圖9實(shí)現ROM功能的流程送存在脈沖應答。隨后,從機開(kāi)始接收主機發(fā)送的ROM命令,并將其保存,以判斷隨后的操作。最后,從機發(fā)送TM卡的64位標識碼,完成一次ROM命令的執行。實(shí)現ROM功能的流程如圖9所示。
單片機的匯編程序如下:
ORG0000H
AJMPInit//跳到Init段
ORG0003H
AJMPJudge//跳到中斷服務(wù)程序
Init: //初始化
MOVDPTR,#ID//ID表地址
MOVR5,#001H
MOVR7,#000H
CLR00H
SETB01H
SETBP3.2
LCALLDelay10s
CLRP3.2//拉低總線(xiàn)叫醒主機
LCALLDelay100us
SETBP3.2
SETBEA
SETBIT0
SETBEX0
MAIN: AJMPMAIN//主循環(huán)
Judge:CLREX0//判斷執行動(dòng)作,關(guān)中斷
JNB00H,SecondJ//跳到二次判斷
ID_IN:JB01H,SEND1//從機發(fā)送TM卡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//判斷字節發(fā)送完否
評論