⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 21ic 信息纽扣ds1991在单片机系统中的应用.txt

📁 一篇介绍《信息纽扣DS1991》应用的文章
💻 TXT
📖 第 1 页 / 共 2 页
字号:
            RESETP2:MOV R7,#75
            DJNZ R7,$
            MOV R7,#54
            RESETP4:JB DIO,RESETP5
            DJNZ R7,RESETP4
            RESETP5:MOV R7,#180
            DJNZ R7,$
            SETB DIO
            MOV A,#0
            RET
            WRBYTE:MOV R6,#8 ;写1字节子程序
            WRB1:CLR DIO
            MOV R7,#2
            DJNZ R7,$
            RRC A
            MOV DIO,C
            MOV R7,#30H
            DJNZ R7,$
            SETB DIO
            NOP
            NAP
            NOP

                DJNZ R6,WRB1
            RET
            RDBYTE:MOV R6,#8 ;读1字节子程序
            RDB1:CLR DUO
            NOP
            NOP
            SETB DIO
            MOV R7,#3
            DJNZ R7,$
            MOV C,DIO
            RRC A
            MOV R7,#32
            DJNZ R7,$
            SETB DIO
            MOV R7,#3
            DJNZ R7,$
            DJNZ R6,RDB1
            RET

            3 DS1991激光ROM码、存储器结构及操作
            像所有的1-wire总线器件一样,主机必须先进行初始化和ROM操作,而后才能进行读写DS1991存储器的操作。
            DS1991有一个自身唯一的工厂刻入的64位激光ROM系列码。该码不会与其它任何一个1-wire总线器件相重。该码前8位是1-wire总线家族码,后48位是器件唯一的系列码,最后8位为前56位数据的CRC校验码。ROM操作指令建立被访问的1-wire器件与主机的连接,ROM操作指令如表1。DS1991的存储器映像如图1。

            表1 ROM操作指令
                  命   令字  节功     能
                  read ROM33H读取DS1991的ROM系统列码
                  Match ROM55H总线接多个器件时用于寻址特定的器件
                  Skip ROMCCH总线上只有一个器件时,跳过ROM系列码的匹配而直接进行存储器的访问
                  Search ROMF0H主机使用该命令读加器件的ROM系列码

            DS1991的scratchpad和每个subkey区都有自己的地址。Scratchpad共64字节,不受密码保护,主要用于将数据拷贝到密钥子区。密钥子区的00~07H为8字节的该区ID码,08H~0FH为8字节的该区密码,10H~3FH即为密码保护的数据存储区。
            该/写Scratchpad不需要密码,但拷贝操作必须提供正确的密码。密码子区读写均受64位的密码保护,保密性大大提高。对存储器的操作指令如表2。存储器操作指令的流程如图2。

            表2 DS1991存储器操作命令格式
                  命令 第1字节第2字节第3
                  字节功   能
                  bit7bit6bit5bit4bit3bit2bit1bit0
                  写scratchpad96H 1   1  00H~3FH中的任意值第2字节取反将数据写入scratchpad
                  读scratchpad69H从scratchpa读出数据
                  拷贝scratchpad3CHSubke区号
                  0    0或
                  0    1或
                  1    0  000000将数据块从scratchpa拷贝到指定的subkey
                  读subkey66H10H~3FH中的任意值将数据写入subkey
                  写subkey99G从subkey中读取数据
                  写密码5AH000000将密码和ID码写入subkey

            4 DS1991存储器的读写程序
            主机读写DS1991的存储器由3个步骤组成:初始化、ROM操作和存储器读写。
            下面的程序采用写SUBYKEY命令将RAM 40H~47H单元数据写入subkey 
            0区的10H~17H,并用读SUBKEY命令将该内容读回,存放RAM。50H~57H,该区的密码和ID码存放在程序的表格中。
            ;将RAM40H~47H单元内容写入
            ;subkey
            WRSUBKEY:LCALL RETSET
            MOV R2,#99H
            MOV R0,#10H
            LCALL WRCOM
            LCALL IDPASS
            MOV R1,#40H
            MOV R4,#8
            REWRSUB:MOV A,@R1
            LCALL WRBYTE
            INC R1
            DJNZ R4,REWRSUB
            LCALL RESET
            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
            INC R1
            DJNZ R4,RERDSUB
            LCALL RESET
            RET
            IDPASS:MOV R4,#8
            MOV R1,#50H
            RERD1:LCALL RDBYTE
            MOV @R1,A
            INC R1
            DJNZ R4,RERD1
            MOV R4,#8
            CLR A
            MOV DPTR,#PSTAB
            REWR1:MOVC A,@A+DPTR
            LCALL WRBYTE
            INC A
            DJNZ R4,REWR1
            RET
            IDTAB:DB10H,00H,00H,00H,
            DB 00H,00H,00H,00H
            PSTAB:DB12H,34H,56H,78H,DB12H,34H,56H,78H
            WRCOM:MOV A,#33H
            LCALL WRBYTE
            MOV R4,#8
            RDROM1:LCALL RDBYTE
            DJNZ R4,RDROM1
            MOV A,R2
            LCALL WRBYTE
            MOV A,R0
            LCALL WRBYTE
            MOV A,R0
            CPL A
            LCALL WRBYTE
            RET

            图7

            结语
            DS1991的密码保护存储器区为用户提供高可靠的数据保护措施。本文提供的DS1991与单片机接口的软硬件设计,已在信息纽扣卡型公用电表系统中应用。 



                  【打印本稿】【发表评论】【推荐】


            ----



            相关新闻


                        - iButton标准及介绍
                        - iButton的工作原理及其特点



                  嵌入式系统
                  复旦金海博
                  深圳英蓓特
                  亿道
                  周立功
                  远峰

                  单片机
                  Renesas
                  南京威立姆
                  Atmel (北天星)
                  百特(Atmel ARM)
                  周立功 Philips
                  胜创特
                  盛群 Holtek
                  Cygnal单片机
                  利尔达MSP430

                  接口电路
                  中科联微USB TO Serial
                  成都国腾微电子
                  金迈威
                  迈威
                  瑞赛特
                  周立功USB,CAN,Lin,I2CBus

                  存储器
                  香港百特(集团)
                  铁电存储器免费样品
                  北天星
                  南京威立姆

                  模拟器件
                  Linear

                  编程器
                  西尔特编程器
                  周立功编程器
                  台湾河洛、美国BP编程器











⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -