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

2008-09-05 09:55:01来源: 单片机与嵌入式应用

  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卡的等效替换示意图。

  

  

  图1 TM卡的等效替换

  3.2 系统软件设计

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

  

  

  图2 初始化时序

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

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

  

  

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

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

  

  

  图4 主机写0时序

  

  

  图5 主机写1时序

  对应于从机,是等待主机命令。从机等待主机命令的中断服务程序流程如图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//判断字节发送完否

  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] SMC1990A1 Datasheet. Version 0.1, June, 2004.

  [2] 陈志英,李光辉. 单总线(1Wire Bus) 技术及其应用[J]. 国外电子元器件, 2003(8) : 47.

  [3] 丁明勇,李昔华. TM卡智能电子锁与门禁系统研制[J]. 重庆工商大学学报, 2004, 21(5) : 488 490.

  [4] 徐敏,诸葛振荣,宋加仁. 基于1Wire技术的数字温度仪[J]. 机电工程, 2007, 24(4) : 26 29.

  [5] 杨振野, 韦方明, 陈坤城,等. DS1991信息纽扣的密钥破解和等效替换[J]. 电子技术, 2006(12): 61 63.

 

 

关键字:从机  TM卡  单总线  主机  单片机  Init  ID码  温度仪  主循环  tREC

编辑:汤宏琳 引用地址:http://www.eeworld.com.cn/afdz/2008/0905/article_1094.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。
论坛活动 E手掌握
微信扫一扫加关注
论坛活动 E手掌握
芯片资讯 锐利解读
微信扫一扫加关注
芯片资讯 锐利解读
推荐阅读
全部
从机
TM卡
单总线
主机
单片机
Init
ID码
温度仪
主循环
tREC

小广播

独家专题更多

TTI携TE传感器样片与你相见,一起传感未来
TTI携TE传感器样片与你相见,一起传感未来
TTI携TE传感器样片与你相见,一起传感未来
富士通铁电随机存储器FRAM主题展馆
富士通铁电随机存储器FRAM主题展馆
馆内包含了 纵览FRAM、独立FRAM存储器专区、FRAM内置LSI专区三大部分内容。 
走,跟Molex一起去看《中国电子消费品趋势》!
走,跟Molex一起去看《中国电子消费品趋势》!
 

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 视频监控 智能卡 防盗报警 智能管理 处理器 传感器 其他技术 综合资讯 安防论坛

北京市海淀区知春路23号集成电路设计园量子银座1305 电话:(010)82350740 邮编:100191

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2016 EEWORLD.com.cn, Inc. All rights reserved