信息纽扣DS1991在单片机系统中的应用.docx

上传人:b****1 文档编号:2531886 上传时间:2023-05-03 格式:DOCX 页数:17 大小:21.09KB
下载 相关 举报
信息纽扣DS1991在单片机系统中的应用.docx_第1页
第1页 / 共17页
信息纽扣DS1991在单片机系统中的应用.docx_第2页
第2页 / 共17页
信息纽扣DS1991在单片机系统中的应用.docx_第3页
第3页 / 共17页
信息纽扣DS1991在单片机系统中的应用.docx_第4页
第4页 / 共17页
信息纽扣DS1991在单片机系统中的应用.docx_第5页
第5页 / 共17页
信息纽扣DS1991在单片机系统中的应用.docx_第6页
第6页 / 共17页
信息纽扣DS1991在单片机系统中的应用.docx_第7页
第7页 / 共17页
信息纽扣DS1991在单片机系统中的应用.docx_第8页
第8页 / 共17页
信息纽扣DS1991在单片机系统中的应用.docx_第9页
第9页 / 共17页
信息纽扣DS1991在单片机系统中的应用.docx_第10页
第10页 / 共17页
信息纽扣DS1991在单片机系统中的应用.docx_第11页
第11页 / 共17页
信息纽扣DS1991在单片机系统中的应用.docx_第12页
第12页 / 共17页
信息纽扣DS1991在单片机系统中的应用.docx_第13页
第13页 / 共17页
信息纽扣DS1991在单片机系统中的应用.docx_第14页
第14页 / 共17页
信息纽扣DS1991在单片机系统中的应用.docx_第15页
第15页 / 共17页
信息纽扣DS1991在单片机系统中的应用.docx_第16页
第16页 / 共17页
信息纽扣DS1991在单片机系统中的应用.docx_第17页
第17页 / 共17页
亲,该文档总共17页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

信息纽扣DS1991在单片机系统中的应用.docx

《信息纽扣DS1991在单片机系统中的应用.docx》由会员分享,可在线阅读,更多相关《信息纽扣DS1991在单片机系统中的应用.docx(17页珍藏版)》请在冰点文库上搜索。

信息纽扣DS1991在单片机系统中的应用.docx

信息纽扣DS1991在单片机系统中的应用

信息纽扣DS1991在单片机系统中的应用

摘要:

Dallas公司的iButton产品是一系列1-wire总线新型器件。

DS1991是一种加密存储器型信息纽扣,封装于直径为16mm的不锈钢外壳中,体积小巧,便于携带、保存,防尘、防腐蚀,可以在恶劣的应用环境中实现带密码保护的数据传送。

本文介绍DS1991的特点、工作原理及其带密码保护存储器区的读写方法。

   关键词:

iButton信息纽扣 1-Wire总线 单片机

DS1991是Dallas公司的1-wire总线信息纽扣家庭中的一员,是一种加密存储器型信息纽扣。

它内部集成了1Kbit是非易失性存储器及加密保护逻辑,封装于直径为16mm、厚约6mm的不锈钢外壳中,何种小巧、操作便捷,防潮、抗震、防灰尘,可在恶劣的环境中实现带密码保护的数据传送。

1 DS1991的特点

DS1991是一种很有特色的加密存储器型TM卡,为用户的保密数据提价节可靠的保护措施。

DS1991内部有1152位的密码保护存储器区,512位的非密码保护存储器scratchpad。

密码保护存储器被分为三个可独立操作的密钥子存储器(subkey),每区为384位,每个密钱子区都有自己的64位密码及64位的ID码,对密钥子区的读/写操作均需进行密码验证。

三个区的数据可分别操作,互不干扰。

非密码保护存储器区主要用于加密数据的拷贝,以保证数据的完整性。

2 DS1991与单片机硬件接口及软件设计

DS1991与单片机的硬件接口电路如图1。

   DS1991与单片机的接口非常方便,只用1根数据线和1根地址。

数据线由单片机的1根I/O口线控制,口线外接一个5kΩ的上拉电阻。

DS1991操作的基础是1-wire总线的初始化、读/写1位时序,如图2、图3、图4和图5。

VPULLUP为图1中D点在口线为输入状态时的电位。

初始化由主机发出复位脉冲。

DS1991回复应答脉冲,使主机了解DS1991存在于总线上并已作好操作准备。

命令和数据的各个字节由最低有效位起一位一位传送。

子程序RESET、RDBYTE和WRBYTE分别是初始化、读/写1字节的子程序。

   DIO  BIT  P1.0;引脚定义

RESET:

CLRDIO;得位子程序

MOVR7,#205

DELPP1:

NOP

DJNZR7,DELPP1

SETBDIO

MOVR7,#12

DJNZR7,$

MOVR7,#27

RESETP1:

JNBDIO,RESETP2

DJNZR7,RESETP1

RESRET:

SETBDIO

MOVA,#0EH

   RET

RESETP2:

MOVR7,#75

DJNZR7,$

MOVR7,#54

RESETP4:

JBDIO,RESETP5

DJNZR7,RESETP4

RESETP5:

MOVR7,#180

DJNZR7,$

SETBDIO

MOVA,#0

RET

WRBYTE:

MOVR6,#8;写1字节子程序

WRB1:

CLR DIO

MOV R7,#2

DJNZ R7,$

RRCA

MOVDIO,C

MOVR7,#30H

DJNZR7,$

SETBDIO

NOP

NAP

NOP

   DJNZR6,WRB1

RET

RDBYTE:

MOVR6,#8;读1字节子程序

RDB1:

CLRDUO

NOP

NOP

SETBDIO

MOVR7,#3

DJNZR7,$

MOVC,DIO

RRCA

MOVR7,#32

DJNZR7,$

SETBDIO

MOVR7,#3

DJNZR7,$

DJNZR6,RDB1

RET

3DS1991激光ROM码、存储器结构及操作

像所有的1-wire总线器件一样,主机必须先进行初始化和ROM操作,而后才能进行读写DS1991存储器的操作。

DS1991有一个自身唯一的工厂刻入的64位激光ROM系列码。

该码不会与其它任何一个1-wire总线器件相重。

该码前8位是1-wire总线家族码,后48位是器件唯一的系列码,最后8位为前56位数据的CRC校验码。

ROM操作指令建立被访问的1-wire器件与主机的连接,ROM操作指令如表1。

DS1991的存储器映像如图1。

表1ROM操作指令

命  令

字 节

功    能

readROM

33H

读取DS1991的ROM系统列码

MatchROM

55H

总线接多个器件时用于寻址特定的器件

SkipROM

CCH

总线上只有一个器件时,跳过ROM系列码的匹配而直接进行存储器的访问

SearchROM

F0H

主机使用该命令读加器件的ROM系列码

DS1991的scratchpad和每个subkey区都有自己的地址。

Scratchpad共64字节,不受密码保护,主要用于将数据拷贝到密钥子区。

密钥子区的00~07H为8字节的该区ID码,08H~0FH为8字节的该区密码,10H~3FH即为密码保护的数据存储区。

该/写Scratchpad不需要密码,但拷贝操作必须提供正确的密码。

密码子区读写均受64位的密码保护,保密性大大提高。

对存储器的操作指令如表2。

存储器操作指令的流程如图2。

表2DS1991存储器操作命令格式

命令

第1字节

第2字节

第3

字节

功  能

bit7

bit6

bit5

bit4

bit3

bit2

bit1

bit0

写scratchpad

96H

 1  1  

00H~3FH中的任意值

第2字节取反

将数据写入scratchpad

读scratchpad

69H

从scratchpa读出数据

拷贝scratchpad

3CH

Subke区号

0   0或

0   1或

1   0  

0

0

0

0

0

0

将数据块从scratchpa拷贝到指定的subkey

读subkey

66H

10H~3FH中的任意值

将数据写入subkey

写subkey

99G

从subkey中读取数据

写密码

5AH

0

0

0

0

0

0

将密码和ID码写入subkey

4 DS1991存储器的读写程序

主机读写DS1991的存储器由3个步骤组成:

初始化、ROM操作和存储器读写。

下面的程序采用写SUBYKEY命令将RAM 40H~47H单元数据写入subkey0区的10H~17H,并用读SUBKEY命令将该内容读回,存放RAM。

50H~57H,该区的密码和ID码存放在程序的表格中。

;将RAM40H~47H单元内容写入

;subkey

WRSUBKEY:

LCALLRETSET

MOVR2,#99H

MOVR0,#10H

LCALLWRCOM

LCALLIDPASS

MOVR1,#40H

MOVR4,#8

REWRSUB:

MOVA,@R1

LCALLWRBYTE

INCR1

DJNZR4,REWRSUB

LCALLRESET

RET

;读subkey存入RAM40H~47H

RDSUBKEY:

LCALL RESET

MOV R2,#66H

MOV R0,#10H

LCALL WRCOM

LCALL IDPASS

MOV R1,#40H

MOV R4,#8

RERDSUB:

LCALL RDYBTE

MOV @R1,A

INCR1

DJNZR4,RERDSUB

LCALLRESET

RET

IDPASS:

MOVR4,#8

MOVR1,#50H

RERD1:

LCALLRDBYTE

MOV@R1,A

INCR1

DJNZR4,RERD1

MOVR4,#8

CLRA

MOVDPTR,#PSTAB

REWR1:

MOVCA,@A+DPTR

LCALLWRBYTE

INCA

DJNZR4,REWR1

RET

IDTAB:

DB10H,00H,00H,00H,

DB00H,00H,00H,00H

PSTAB:

DB12H,34H,56H,78H,DB12H,34H,56H,78H

WRCOM:

MOVA,#33H

LCALLWRBYTE

MOVR4,#8

RDROM1:

LCALLRDBYTE

DJNZR4,RDROM1

MOVA,R2

LCALLWRBYTE

MOVA,R0

LCALLWRBYTE

MOVA,R0

CPLA

LCALLWRBYTE

RET

图7

结语

DS1991的密码保护存储器区为用户提供高可靠的数据保护措施。

本文提供的DS1991与单片机接口的软硬件设计,已在信息纽扣卡型公用电表系统中应用。

   摘要:

Dallas公司的iButton产品是一系列1-wire总线新型器件。

DS1991是一种加密存储器型信息纽扣,封装于直径为16mm的不锈钢外壳中,体积小巧,便于携带、保存,防尘、防腐蚀,可以在恶劣的应用环境中实现带密码保护的数据传送。

本文介绍DS1991的特点、工作原理及其带密码保护存储器区的读写方法。

   关键词:

iButton信息纽扣 1-Wire总线 单片机

DS1991是Dallas公司的1-wire总线信息纽扣家庭中的一员,是一种加密存储器型信息纽扣。

它内部集成了1Kbit是非易失性存储器及加密保护逻辑,封装于直径为16mm、厚约6mm的不锈钢外壳中,何种小巧、操作便捷,防潮、抗震、防灰尘,可在恶劣的环境中实现带密码保护的数据传送。

1 DS1991的特点

DS1991是一种很有特色的加密存储器型TM卡,为用户的保密数据提价节可靠的保护措施。

DS1991内部有1152位的密码保护存储器区,512位的非密码保护存储器scratchpad。

密码保护存储器被分为三个可独立操作的密钥子存储器(subkey),每区为384位,每个密钱子区都有自己的64位密码及64位的ID码,对密钥子区的读/写操作均需进行密码验证。

三个区的数据可分别操作,互不干扰。

非密码保护存储器区主要用于加密数据的拷贝,以保证数据的完整性。

2 DS1991与单片机硬件接口及软件设计

DS1991与单片机的硬件接口电路如图1。

   DS1991与单片机的接口非常方便,只用1根数据线和1根地址。

数据线由单片机的1根I/O口线控制,口线外接一个5kΩ的上拉电阻。

DS1991操作的基础是1-wire总线的初始化、读/写1位时序,如图2、图3、图4和图5。

VPULLUP为图1中D点在口线为输入状态时的电位。

初始化由主机发出复位脉冲。

DS1991回复应答脉冲,使主机了解DS1991存在于总线上并已作好操作准备。

命令和数据的各个字节由最低有效位起一位一位传送。

子程序RESET、RDBYTE和WRBYTE分别是初始化、读/写1字节的子程序。

   DIO  BIT  P1.0;引脚定义

RESET:

CLRDIO;得位子程序

MOVR7,#205

DELPP1:

NOP

DJNZR7,DELPP1

SETBDIO

MOVR7,#12

DJNZR7,$

MOVR7,#27

RESETP1:

JNBDIO,RESETP2

DJNZR7,RESETP1

RESRET:

SETBDIO

MOVA,#0EH

   RET

RESETP2:

MOVR7,#75

DJNZR7,$

MOVR7,#54

RESETP4:

JBDIO,RESETP5

DJNZR7,RESETP4

RESETP5:

MOVR7,#180

DJNZR7,$

SETBDIO

MOVA,#0

RET

WRBYTE:

MOVR6,#8;写1字节子程序

WRB1:

CLR DIO

MOV R7,#2

DJNZ R7,$

RRCA

MOVDIO,C

MOVR7,#30H

DJNZR7,$

SETBDIO

NOP

NAP

NOP

   DJNZR6,WRB1

RET

RDBYTE:

MOVR6,#8;读1字节子程序

RDB1:

CLRDUO

NOP

NOP

SETBDIO

MOVR7,#3

DJNZR7,$

MOVC,DIO

RRCA

MOVR7,#32

DJNZR7,$

SETBDIO

MOVR7,#3

DJNZR7,$

DJNZR6,RDB1

RET

3DS1991激光ROM码、存储器结构及操作

像所有的1-wire总线器件一样,主机必须先进行初始化和ROM操作,而后才能进行读写DS1991存储器的操作。

DS1991有一个自身唯一的工厂刻入的64位激光ROM系列码。

该码不会与其它任何一个1-wire总线器件相重。

该码前8位是1-wire总线家族码,后48位是器件唯一的系列码,最后8位为前56位数据的CRC校验码。

ROM操作指令建立被访问的1-wire器件与主机的连接,ROM操作指令如表1。

DS1991的存储器映像如图1。

表1ROM操作指令

命  令

字 节

功    能

readROM

33H

读取DS1991的ROM系统列码

MatchROM

55H

总线接多个器件时用于寻址特定的器件

SkipROM

CCH

总线上只有一个器件时,跳过ROM系列码的匹配而直接进行存储器的访问

SearchROM

F0H

主机使用该命令读加器件的ROM系列码

DS1991的scratchpad和每个subkey区都有自己的地址。

Scratchpad共64字节,不受密码保护,主要用于将数据拷贝到密钥子区。

密钥子区的00~07H为8字节的该区ID码,08H~0FH为8字节的该区密码,10H~3FH即为密码保护的数据存储区。

该/写Scratchpad不需要密码,但拷贝操作必须提供正确的密码。

密码子区读写均受64位的密码保护,保密性大大提高。

对存储器的操作指令如表2。

存储器操作指令的流程如图2。

表2DS1991存储器操作命令格式

命令

第1字节

第2字节

第3

字节

功  能

bit7

bit6

bit5

bit4

bit3

bit2

bit1

bit0

写scratchpad

96H

 1  1  

00H~3FH中的任意值

第2字节取反

将数据写入scratchpad

读scratchpad

69H

从scratchpa读出数据

拷贝scratchpad

3CH

Subke区号

0   0或

0   1或

1   0  

0

0

0

0

0

0

将数据块从scratchpa拷贝到指定的subkey

读subkey

66H

10H~3FH中的任意值

将数据写入subkey

写subkey

99G

从subkey中读取数据

写密码

5AH

0

0

0

0

0

0

将密码和ID码写入subkey

4 DS1991存储器的读写程序

主机读写DS1991的存储器由3个步骤组成:

初始化、ROM操作和存储器读写。

下面的程序采用写SUBYKEY命令将RAM 40H~47H单元数据写入subkey0区的10H~17H,并用读SUBKEY命令将该内容读回,存放RAM。

50H~57H,该区的密码和ID码存放在程序的表格中。

;将RAM40H~47H单元内容写入

;subkey

WRSUBKEY:

LCALLRETSET

MOVR2,#99H

MOVR0,#10H

LCALLWRCOM

LCALLIDPASS

MOVR1,#40H

MOVR4,#8

REWRSUB:

MOVA,@R1

LCALLWRBYTE

INCR1

DJNZR4,REWRSUB

LCALLRESET

RET

;读subkey存入RAM40H~47H

RDSUBKEY:

LCALL RESET

MOV R2,#66H

MOV R0,#10H

LCALL WRCOM

LCALL IDPASS

MOV R1,#40H

MOV R4,#8

RERDSUB:

LCALL RDYBTE

MOV @R1,A

INCR1

DJNZR4,RERDSUB

LCALLRESET

RET

IDPASS:

MOVR4,#8

MOVR1,#50H

RERD1:

LCALLRDBYTE

MOV@R1,A

INCR1

DJNZR4,RERD1

MOVR4,#8

CLRA

MOVDPTR,#PSTAB

REWR1:

MOVCA,@A+DPTR

LCALLWRBYTE

INCA

DJNZR4,REWR1

RET

IDTAB:

DB10H,00H,00H,00H,

DB00H,00H,00H,00H

PSTAB:

DB12H,34H,56H,78H,DB12H,34H,56H,78H

WRCOM:

MOVA,#33H

LCALLWRBYTE

MOVR4,#8

RDROM1:

LCALLRDBYTE

DJNZR4,RDROM1

MOVA,R2

LCALLWRBYTE

MOVA,R0

LCALLWRBYTE

MOVA,R0

CPLA

LCALLWRBYTE

RET

图7

结语

DS1991的密码保护存储器区为用户提供高可靠的数据保护措施。

本文提供的DS1991与单片机接口的软硬件设计,已在信息纽扣卡型公用电表系统中应用。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2