资源预览内容
第1页 / 共10页
第2页 / 共10页
第3页 / 共10页
第4页 / 共10页
第5页 / 共10页
第6页 / 共10页
第7页 / 共10页
第8页 / 共10页
第9页 / 共10页
第10页 / 共10页
亲,该文档总共10页全部预览完了,如果喜欢就下载吧!
资源描述
信息纽扣DS1991在单片机系统中的应用日期:2004-12-5来源:单片机及嵌入式系统应用 作者:赵嘉蔚字体:大 中 小 摘要:allas公司的iButton产品是一系列wire总线新型器件。是一种加密存储器型信息纽扣,封装于直径为mm的不锈钢外壳中,体积小巧,便于携带、保存,防尘、防腐蚀,可以在恶劣的应用环境中实现带密码保护的数据传送。本文介绍的特点、工作原理及其带密码保护存储器区的读写方法。 关键词:iButton信息纽扣ire总线单片机是Dallas公司的wire总线信息纽扣家庭中的一员,是一种加密存储器型信息纽扣。它内部集成了Kbit是非易失性存储器及加密保护逻辑,封装于直径为mm、厚约mm的不锈钢外壳中,何种小巧、操作便捷,防潮、抗震、防灰尘,可在恶劣的环境中实现带密码保护的数据传送。的特点是一种很有特色的加密存储器型卡,为用户的保密数据提价节可靠的保护措施。内部有位的密码保护存储器区,位的非密码保护存储器scratchpad。密码保护存储器被分为三个可独立操作的密钥子存储器(subkey),每区为位,每个密钱子区都有自己的位密码及位的码,对密钥子区的读写操作均需进行密码验证。三个区的数据可分别操作,互不干扰。非密码保护存储器区主要用于加密数据的拷贝,以保证数据的完整性。与单片机硬件接口及软件设计与单片机的硬件接口电路如图。 与单片机的接口非常方便,只用根数据线和根地址。数据线由单片机的根口线控制,口线外接一个k的上拉电阻。操作的基础是wire总线的初始化、读写位时序,如图、图、图和图。为图中点在口线为输入状态时的电位。初始化由主机发出复位脉冲。回复应答脉冲,使主机了解存在于总线上并已作好操作准备。命令和数据的各个字节由最低有效位起一位一位传送。子程序、和分别是初始化、读写字节的子程序。 . ;引脚定义RESET:CLR DIO ;得位子程序MOV R7,#205DELPP1:NOPDJNZ R7,DELPP1SETB DIOMOV R7,#12DJNZ R7,$MOV R7,#27RESETP1:JNB DIO,RESETP2DJNZ R7,RESETP1RESRET:SETB DIOMOV A,#0EH RETRESETP2:MOV R7,#75DJNZ R7,$MOV R7,#54RESETP4:JB DIO,RESETP5DJNZ R7,RESETP4RESETP5:MOV R7,#180DJNZ R7,$SETB DIOMOV A,#0RETWRBYTE:MOV R6,#8 ;写字节子程序:,$RRC AMOV DIO,CMOV R7,#30HDJNZ R7,$SETB DIONOPNAPNOP DJNZ R6,WRB1RETRDBYTE:MOV R6,#8 ;读字节子程序RDB1:CLR DUONOPNOPSETB DIOMOV R7,#3DJNZ R7,$MOV C,DIORRC AMOV R7,#32DJNZ R7,$SETB DIOMOV R7,#3DJNZ R7,$DJNZ R6,RDB1RET3 DS1991激光码、存储器结构及操作像所有的wire总线器件一样,主机必须先进行初始化和操作,而后才能进行读写存储器的操作。有一个自身唯一的工厂刻入的位激光系列码。该码不会与其它任何一个wire总线器件相重。该码前位是wire总线家族码,后位是器件唯一的系列码,最后位为前位数据的校验码。操作指令建立被访问的wire器件与主机的连接,操作指令如表。的存储器映像如图。表1 ROM操作指令命 令字 节功 能read ROM33H读取DS1991的ROM系统列码Match ROM55H总线接多个器件时用于寻址特定的器件Skip ROMCCH总线上只有一个器件时,跳过ROM系列码的匹配而直接进行存储器的访问Search ROMF0H主机使用该命令读加器件的ROM系列码的scratchpad和每个subkey区都有自己的地址。Scratchpad共字节,不受密码保护,主要用于将数据拷贝到密钥子区。密钥子区的为字节的该区码,为字节的该区密码,即为密码保护的数据存储区。该写Scratchpad不需要密码,但拷贝操作必须提供正确的密码。密码子区读写均受位的密码保护,保密性大大提高。对存储器的操作指令如表。存储器操作指令的流程如图。表2 DS1991存储器操作命令格式命令 第1字节第2字节第3字节功 能bit7bit6bit5bit4bit3bit2bit1bit0写scratchpad96H1 100H3FH中的任意值第2字节取反将数据写入scratchpad读scratchpad69H从scratchpa读出数据拷贝scratchpad3CHSubke区号0 0或0 1或1 0000000将数据块从scratchpa拷贝到指定的subkey读subkey66H10H3FH中的任意值将数据写入subkey写subkey99G从subkey中读取数据写密码5AH000000将密码和ID码写入subkey存储器的读写程序主机读写的存储器由个步骤组成:初始化、操作和存储器读写。下面的程序采用写命令将单元数据写入subkey 0区的17,并用读命令将该内容读回,存放。,该区的密码和码存放在程序的表格中。;将单元内容写入;subkeyWRSUBKEY:LCALL RETSETMOV R2,#99HMOV R0,#10HLCALL WRCOMLCALL IDPASSMOV R1,#40HMOV R4,#8REWRSUB:MOV A,R1LCALL WRBYTEINC R1DJNZ R4,REWRSUBLCALL RESETRET;读subkey存入:,:R1,AINC R1DJNZ R4,RERDSUBLCALL RESETRETIDPASS:MOV R4,#8MOV R1,#50HRERD1:LCALL RDBYTEMOV R1,AINC R1DJNZ R4,RERD1MOV R4,#8CLR AMOV DPTR,#PSTABREWR1:MOVC A,A+DPTRLCALL WRBYTEINC ADJNZ R4,REWR1RETIDTAB:DB10H,00H,00H,00H,DB 00H,00H,00H,00HPSTAB:DB12H,34H,56H,78H,DB12H,34H,56H,78HWRCOM:MOV A,#33HLCALL WRBYTEMOV R4,#8RDROM1:LCALL RDBYTEDJNZ R4,RDROM1MOV A,R2LCALL WRBYTEMOV A,R0LCALL WRBYTEMOV A,R0CPL ALCALL WRBYTERET图7结语
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号