基于多密钥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.com3 软件设计
本系统对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的多密钥特性更是为数据的保密提供了可靠的保证。
《基于多密钥iButton的智能水卡的设计》相关文章
- › 基于多密钥iButton的智能水卡的设计
- 在百度中搜索相关文章:基于多密钥iButton的智能水卡的设计
- 在谷歌中搜索相关文章:基于多密钥iButton的智能水卡的设计
- 在soso中搜索相关文章:基于多密钥iButton的智能水卡的设计
- 在搜狗中搜索相关文章:基于多密钥iButton的智能水卡的设计