摘要:DS1991是一种多密钥信息扣子,文章介绍了DS1991的首要特点、作业原理及读写办法。给出了一种根据DS1991和PIC单片机的智能水卡规划方案,一起给出了整个体系的硬件组成原理和软件规划办法。 关键词:信息扣子;单总线;单片机 1 DS1991概述 iButtoninformation 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伏的静电,然后确保本身和存储数据的安然无恙。在耐用性、辨认成功性、运用方便性、加密功用及带着性等方面,该水卡比如今较盛行的磁卡、%&&&&&%卡、射频卡都优胜许多。此外,DS1991的多密钥特性更是为数据的保密供给了牢靠的确保。