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

[09-12 17:31:55]   来源:http://www.88dzw.com  单片机学习   阅读:8858

文章摘要: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

基于多密钥iButton的智能水卡的设计,标签:单片机开发,单片机原理,单片机教程,http://www.88dzw.com

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的多密钥特性更是为数据的保密提供了可靠的保证。




上一页  [1] [2] 


Tag:单片机学习单片机开发,单片机原理,单片机教程单片机学习

《基于多密钥iButton的智能水卡的设计》相关文章

分类导航
最新更新
热门排行