新聞中心

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

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

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

對(duì)應(yīng)于從機(jī),是等待主機(jī)命令。從機(jī)等待主機(jī)命令的中斷服務(wù)程序流程如圖6所示。

本文引用地址:http://2s4d.com/article/171098.htm

按此在新窗口瀏覽圖片
圖6 從機(jī)等待主機(jī)命令的中斷服務(wù)程序流程

  最后是主機(jī)讀數(shù)據(jù)時(shí)序,如圖7所示。主機(jī)總線在開始時(shí)刻從高電平拉至低電平時(shí),總線只需保持低電平1~7 μs。之后在tLOWR時(shí)刻釋放總線,一般在tRDV時(shí)刻采樣總線(15 μs處),讀時(shí)間隙在tLOWR與tRDV之間有效。從機(jī)必須在tRDV時(shí)刻前拉高或拉低總線,主機(jī)在tRDV時(shí)刻采樣,并在60~120 μs內(nèi)釋放總線。

按此在新窗口瀏覽圖片
圖7 主機(jī)讀數(shù)據(jù)時(shí)序

  對(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所示。

按此在新窗口瀏覽圖片
圖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ā)送卡的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ā)送完否



評(píng)論


相關(guān)推薦

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

關(guān)閉