用户名: 密码: 免费注册 免费试用 简体中文 | ENGLISH
中国·芯片交易在线  
www.ic112.com
IC72论坛
广告服务
网页制作
用户帮助
首页 供应信息 求购信息 库存查询 新闻中心 展会资讯 IC厂商 技术资料 自由区域
当前位置:首页>> 技术资料 >> 正文
1-wire系统中TM卡的单片机等效替换
时间:2008/9/9 9:11:00  作者:  来源:IC72  浏览人数:1047
 
 

      1  TM卡简介

      TM(Touch Memory)卡是美国Dallas公司的专利产品。它采用单线协议通信,通过瞬间碰触完成数据读写,既具有非接触式IC卡的易操作性,又具有接触式IC 卡的廉价性,是当前性价比最优秀的IC卡之一。它的外形类似于一个钮扣(button)电池,可镶嵌于卡片、钥匙扣等物体上。

      TM卡通过一个多功能器将数据线、地址线、控制线和电源线合并为1根线,实现单线通信。当主机加电时,TM卡通过500 kΩ和50 Ω阻抗之间的切换来响应主机,用信号被拉低的时长(长或短)来表示数字逻辑(长为1,短为0)。由于阻抗切换的幅度为10 000∶1,因此,触点的接触电阻不会影响数字信号的辨识。

      2  1wire通信协议

      单总线即只有1根数据线, 系统中的数据交换、控制都由这根线完成。设备(主机或从机)通过一个漏极开路或三态端口连至该数据线, 以允许设备在不发送数据时能够释放总线, 而让其他设备使用总线。单总线通常要求外接一个约为4.7 kΩ 的上拉电阻, 这样, 当总线闲置时, 其状态为高电平。主机和从机之间的通信可通过3个步骤完成: 初始化1wire 器件;识别1wire 器件;交换数据。由于它们是主从结构,只有主机呼叫从机时, 从机才能应答, 因此主机访问1wire 器件都必须严格遵循单总线命令序列, 即初始化、ROM 命令、功能命令。如果出现序列混乱,1wire 器件将不响应主机(搜索ROM 命令,报警搜索命令除外)。

      SMC1990A1是具有工厂激光刻度的64位ROM ID码,其中包括48位的序列号、1个8位的CRC编码和1个8位的产品系列号。数据遵循单总线协议传输,用于读和写的电源由数据线本身提供,而不需要提供外部电源。

      3  SMC1990A1的等效替换

      单总线技术具有节省I/O口线资源,线路简单,硬件开支少,成本低,便于总线扩展和维护等优点。在分布式测控系统中有着广泛的应用。在实际应用过程中,可能会出现TM卡丢失和损坏的情况,如果发生此类情况,往往需要根据一个新TM卡来设置多个采集点的权限。如果采集点设置得很多,将浪费大量的人力。此时,利用单片机来替换已丢失或损坏的TM卡就显得很有必要。

      3.1  系统硬件组成

      系统采用AT89C51作为控制器,并采用24 MHz晶振。为了能尽量适应标准的单总线通信协议,晶振频率应尽量高。考虑到单总线通信协议所有的传输都是由主机发起的,因此为了尽快地响应主机,采用中断处理。选择AT89C51的INT0(即P3.2)作为SMC1990A1等效替换的正极。图1为TM卡的等效替换示意图。

IC72新闻中心

图1  TM卡的等效替换

      3.2  系统软件设计

      对于SMC1990A1的等效替换,主要是对其时序的分析。对于SMC1990A1子设备,主要的编程是针对主机而言的,传输都是由主机发起的。现在改为单片机模拟SMC1990A1子设备(现称为“从机”)。

IC72新闻中心

图2  初始化时序

      首先,初始化时序,如图2所示。主机首先发送一个复位脉冲,历时tRETL(最短为480 μs的低电平信号),然后释放总线并进入接收状态。从机在检测到总线的上升沿后,等待tPDH时间后,从机拉低总线发出存在脉冲,历时tPDL(低电平, 持续60~240 μs),然后释放总线。释放总线通过拉高总线实现。

      对应于从机,初始化时序的中断服务程序流程如图3所示。

IC72新闻中心

图3  初始化时序的中断服务程序流程

      下面是主机写0和写1时序。在初始化时序后,当主机总线从高电平拉至低电平时,就产生写时间隙。在开始15 μs之内,应将所需写的位送到总线上,从机在开始后15 ~60 μs间对总线采样。若为低电平,写入的位是0,如图4所示;若为高电平,写入的位是1,如图5所示。连续写多位间的间隙tREC应大于1 μs。

IC72新闻中心

图4  主机写0时序

IC72新闻中心

图5  主机写1时序

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

IC72新闻中心

图6  从机等待主机命令的中断服务程序流程

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

IC72新闻中心

图7  主机读数据时序

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

IC72新闻中心

图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//判断字节发送完否
            JZINTEND
            INCDPTR
            AJMPINTEND//跳到中断结束
      SecondJ:MOVA,R7//二次判断
            JZWaitReply//跳到执行应答判断是否命令接收结束
            ANLA,#008H
            JZWaitOrder//跳到执行接收命令
            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//判断主机的发送状态,是否返回
            ANLA,#004H
            JZRLOOP1
            AJMPINTEND//跳到中断结束
      WaitReply://执行应答
      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

      本文代码在实际运用中得到了很好的验证,能够稳定地替代SMC1990A1实现TM卡的ROM功能,极大地方便了权限管理人员用于丢失或损坏的TM卡的权限管理。

 
【相关文章】
·1-wire系统中TM卡的单片机等效替换
 
 
新闻搜索
 
新闻热点
基于红外超声光电编码器的室内移动小车定位系
基于闪烁存储器的TMS320VC5409DSP并行引导装载方法
非移动市场需求飙升,ARM预计2010年出货量超50亿片
一种快速响应的电容式湿度传感器感湿薄膜设计
利用特殊应用模拟开关改进便携式设计
无线传感器网络跨层通信协议的设计
基于GSM技术的汽车防盗系统的设计
热电阻在烟叶初烤炕房温度控制中的应用
高速数据转换系统对时钟和数据传输的性能要求
Zetex迷你晶体管功率达1.25W
友情连接
 关于我们  IC论坛  意见反馈  设置首页  广告服务  用户帮助  联系我们
copyright:(1998-2005) IC72 中国·芯片交易在线
(北京)联系电话:(010)82614113、82614123 传真:(010)82614123 客户服务:service@IC72.com 库存上载:IC72@IC72.com
在线MSN咨询:ic72sale8@hotmail.com 通信地址:北京市西城区西直门内大街2号大厦15层 邮政编码:100013
(深圳)联系方式: 在线MSN咨询:ic72sale6@hotmail.com 在线QQ咨询:191232636 通信地址:深圳市福田区振华路
注 册 号: 1101081318959(1-1)

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 0 1 2 3 4 5 6 7 8 9