TM卡在1-wire系统中的单片机等效替换

时间:2012-07-31来源:网络

对应于从机,是等待主机命令。从机等待主机命令的中断服务程序流程如图6所示。

按此在新窗口浏览图片
图6 从机等待主机命令的中断服务程序流程

  最后是主机读数据时序,如图7所示。主机总线在开始时刻从高电平拉至低电平时,总线只需保持低电平1~7 μs。之后在tLOWR时刻释放总线,一般在tRDV时刻采样总线(15 μs处),读时间隙在tLOWR与tRDV之间有效。从机必须在tRDV时刻前拉高或拉低总线,主机在tRDV时刻采样,并在60~120 μs内释放总线。

按此在新窗口浏览图片
图7 主机读数据时序

  对从机来说,则为发送64位ID处理。程序处理的难点在于从机必须在15 μs之前拉高或拉低总线,以供主机在15 μs处采样总线。程序通过判断位地址00H处的状态来实现此功能。通过判断位地址01H处的状态来确定发送位0或发送位1。从机发送64位ID处理的中断服务程序流程如图8所示。

按此在新窗口浏览图片
图8 从机发送64位ID处理的中断服务程序流程

  在完整地实现一次ROM功能的过程中,从机首先等待主机发送的复位脉冲,待检测到后发图9实现ROM功能的流程送存在脉冲应答。随后,从机开始接收主机发送的ROM命令,并将其保存,以判断随后的操作。最后,从机发送TM卡的64位标识码,完成一次ROM命令的执行。实现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//主循环
  Judge:CLREX0//判断执行动作,关中断
    JNB00H,SecondJ//跳到二次判断
  ID_IN:JB01H,SEND1//从机发送TM卡64位标识码
    CLRP3.2//发送位0
  SEND1:SETBP3.2 //发送位1
    LCALLDelay30us
    MOVA,R5//R5循环左移
    RLA
    MOVR5,A
    MOVA,#00H
    MOVCA,@A+DPTR
    ANLA,R5
    CLR01H//设置01H状态
    JZRelease1
    SETB01H
  Release1:SETBP3.2
    MOVA,R5
    ANLA,#080H//判断字节发送完否

1 2 3

关键词: 等效 替换 单片机 系统 卡在 1-wire TM

加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW

或用微信扫描左侧二维码

相关文章

查看电脑版