基于多密钥iButton的智能水卡的设计

2007-03-09 19:03:27来源: 互联网
摘要:DS1991是一种多密钥信息纽扣,文章介绍了DS1991的主要特点、工作原理及读写方法。给出了一种基于DS1991和PIC单片机的智能水卡设计方案,同时给出了整个系统的硬件组成原理和软件设计方法。 关键词:信息纽扣;单总线;单片机 1 DS1991概述 iButtoninformation Button信息纽扣是一种封装在扁圆型不锈钢外壳里的直径为16毫米的微型智能化信息载体。具有双向通讯功能,数据传输使用独特的1-Wire(单总线)协议,仅用一根数据线即可与外界进行信息交换。iButton信息钮扣与其读写器的信息传递只需短暂接触即可完成,传输速率可达16.3kbps。信息纽扣内置的NVSRAM存储器可存放文字或数字化的图像,任何时刻只要短暂的触碰就可更改存放的信息。在每一个信息纽扣的晶片上都有工厂光刻的、独一无二的64位注册码,该号码具有不可伪造性。先进的设计理念及封装形式赋予了iButton超强的抗冲击、防静电、防腐蚀、防水、防摩擦等性能,极大的提高了数据的安全性,并可确保十年以上的使用寿命。 图1 DS1991是一种加密存储型信息纽扣,它有三个独立的电子密钥分区(提供1152位的可读写非易失安全存储器)和512位暂存器。每个密钥分区包括384位,具有独立的64位密码和64位ID码。对密钥分区的读/写操作均需进行密码验证。三个区的数据可分别操作,互不干扰。512位的暂存器主要用于加密数据的拷贝,以保证安全存储器中数据的完整性。DS1991可在恶劣环境中实现带密码保护的数据传送。 DS1991通过严格的1-Wire(单总线)协议传输数据。1-Wire协议定义了复位脉冲、应答脉冲、写0、写1和读数据时序等几种信号类型,所有单总线命令序列都是由这些基本的信号类型组成的。单片机访问DS1991必须严格遵循单总线命令序列,即初始化、ROM操作、存储器功能命令。 DS1991的ROM操作命令有读取(33H)、匹配(55H)、搜索(F0H)、跳过(CCH)等。这些命令可作用于DS1991的64位光刻注册码。DS1991有6个设备检测命令:写暂存器(96H)、读暂存器(69H)、复制暂存器(3CH)、 写密码(5AH)、写密钥子区(99H)、读密钥子区(66H)。存储器功能命令由三段组成:一为功能代码,二为命令的起始地址和子密钥的地址代码,三为第二个字节的取反。 2 系统结构与工作原理 本文设计了一种基于DS1991的智能水卡。这种智能水卡由于运用了iButton信息纽扣,因而便于携带,不易损坏,只需在触头上一碰,水就哗哗的流出,再次触碰则可关闭水龙头,从而很好的达到了节约用水的目的。 本设计中的单片机选用Microchip公司的PIC16C63,其最大优点是省电,该单片机在低功耗休眠状态时的静态电流小于1μA,正常工作时的最小工作电流仅为15μA,并具有看门狗复位电路,特别适合用来设计小型电子产品。无用户用水时,系统处于休眠状态,当水卡第一次碰触头时,单片机从休眠状态唤醒。iButton触头与单片机的连线极其简单,只需将PIC16C63的一根口线与其相连并外接一个上拉电阻即可。选用24WC02存储器可在掉电时保存数据。CD4098是双单稳态触发器。流量传感器选用基于模拟水表的旋翼式结构,可将叶轮的旋转转换为电信号。电磁阀选用12V低压电磁阀。其硬件连接如图1所示。 使用时,先由管理员将用户预购的水量存于卡中。用水时,用户将水卡与触头一碰。单片机首先判断是否为坏卡,然后读取iButton序列号以判断是否为该供水系统所接受的智能水卡。水卡辨识正确后再读取卡中的水量信息并打开电磁阀,此后,数码管动态显示并扣除卡中所有现存水量,以防用户不进行关水触碰。单片机实时采集流量信号,并做相应扣除。当剩余水量小于初始给定值时,水卡发出声音报警提示用户及时购水。当用户用水完毕再次触碰后或剩余水量为零时,关闭阀门,并将剩余水量存入水卡,同时存储器实时存储卡中信息,以备系统故障时正确处理。 3 软件设计 本系统对DS1991进行的操作主要包括三个过程:其中读取序列号和读密钥子区的流程图见图2所示。写密钥子区的流程图见图3。为确保数据传输的正确性,本设计对欲写的数据组都追加一个计算出的CRC校验码,并对读出的数据组添加CRC校验。只有检验正确,才视为读出的数据组,从而确保了触碰时数据传输的正确。 1-Wire的CRC校验码由如图4所示的多项式生成。该多项式方程为X8+X5+X4+1。每片DS1991都有唯一的64位ROM代码,即:8位家族码+48位唯一序列码+8位CRC校验码。移位寄存器进行零初始化后从8位家族码的最低有效位开始移入,每次移1位,当第8位家族码移入后开始移入序列号,第48位序列号移入后,移位寄存器中的值即是CRC值,此后继续移入DS1991内部的8位CRC校验码。此时如果接收数据正确,则使移位寄存器归零。CRC的编程如下: CHECKCRC: MOVLW 8 MOVWF RXBUF CRCLP: BTFSS MD2,0 GOTO CRC0 MOVLW 1 GOTO CRC1 CRC0: MOVLW 0 CRC1: XORWF MD1,W MOVWF NUMB RRF NUMB BTFSS STATUS,0 GOTO CRC2 MOVF MD1,W XORLW 18H MOVWF MD1 CRC2: RRF MD1 RRF MD2 DECFSZ RXBUF GOTO CRCLP RETURN 本系统软件采用模块化设计,分为初始化模块、检验坏卡模块、读序列号模块、CRC校验模块、读/写DS1991模块、流量检测数据处理模块、I2C存储器存储模块、动态显示模块以及报警提醒模块等。 4 结束语 使用iButton作智能水卡时,其坚固的不锈钢外壳确保了水卡的抗冲击、防水、耐磨、耐腐蚀特性;而先进的防静电电路及芯片则可确保iButton能承受高达8,000伏的静电,从而保证自身和存储数据的安然无恙。在耐用性、识别成功性、使用方便性、加密性能及携带性等方面,该水卡比现今较流行的磁卡、IC卡、射频卡都优越许多。此外,DS1991的多密钥特性更是为数据的保密提供了可靠的保证。
编辑: 引用地址:http://www.eeworld.com.cn/designarticles/mcu/200703/10899.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。
论坛活动 E手掌握
微信扫一扫加关注
论坛活动 E手掌握
芯片资讯 锐利解读
微信扫一扫加关注
芯片资讯 锐利解读
推荐阅读
全部

小广播

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

站点相关: 安防电子 医疗电子 工业控制

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

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