DIY编程器网

标题: 美信达拉斯1-wire编程器读写DS2432(3) [打印本页]

作者: liyf    时间: 2018-12-1 15:41
标题: 美信达拉斯1-wire编程器读写DS2432(3)
前一贴已经说明了怎么看芯片是否被写保护,要是你还不会的话请回头去看看
下面继续看看怎么用onewireviewer来写该芯片

下面这部分是直接复制与onewireviewer用户指南1.3版34页的说明
DS1961S SHA浏览器命令
1.Read Scratchpad (读暂存器)
当向器件写数据和装载密码时,暂存器起着中间存储器的作用。在将暂存器数据复制到存储器页或将其作为初次密码载入之前,可用该命令来验证暂存器中的数据。计算MAC (信息验证码)以进行器件鉴别或将其做为新密码时,也要用到暂存器中的数据。某些命令可以改写暂存器中的数据。器件刚一上电时,暂存器中的内容不确定。

2.Write Scratchpad (将浏览器的暂存器输入栏数据复制到器件的暂存器)
该命令用来向暂存器中写数据。在使用该命令之前,应指定目标页和偏移以保证在主机发出Copy Scratchpad命令后即将数据写入指定的存储器页。如果未指定目标页和偏移,将不会执行Write Scratchpad命令。执行完Write Scratchpad命令后,应在数据存入器件之后用Read Scratchpad 命令来验证暂存器中数据的正确性。

3.Copy Scratchpad (把数据从暂存器复制到目标存储器页)
该命令用来计算信息验证码(MAC)并把它和指令码及目标地址一起发送给器件。只有当发送的MAC码与器件计算出的MAC码相匹配时,才可以执行该命令。计算MAC时,DS1961S SHA浏览器需要知道存储在器件里的密码。如何输入密码详见Set Container Secret部分。Copy Scratchpad命令不适用于寄存器页。

4.Copy Scratchpad w/ MAC (把数据从暂存器复制到目标存储器页)
执行该命令时,首先要求用户在一个单独的窗口中输入合适的20字节MAC,然后将该MAC和指令码、目标地址一起发送给器件。只有当发送的MAC码与器件计算出的MAC码相匹配时,才可以执行该命令。 与Copy Scratchpad命令相比,执行此命令时DS1961S SHA浏览器无需知道存储在器件里的密码。Copy Scratchpad w/ MAC 命令不适用于寄存器页。

5.Read Data Page (读四个存储器页中任一页的内容)
该命令用来读取执行Read Authenticated Page功能时所选存储器页的内容。复制到Data Page显示区的存储器数据和器件产生的MAC 都显示在Extra Info区的MAC区中。该MAC是在器件密码、所选存储器页数据、ROM ID (或身份寄存器)以及取自暂存器的3字节口令的基础上计算出来的。点击Memory Pages区四个存储器页中的任一个即可选中该存储器页。

6.Load First Secret (安装已获知的密码)
将数据从暂存器复制到存储器页时需要传送有效的MAC,该MAC是在器件密码和其它数据(参见器件数据资料)的基础上计算出来的。利用该命令可删除任何未知器件的密码并用已知数据将其覆盖,这一已知数据叫做初级密码。点击Load First Secret命令按钮时,可在随后出现的小窗口中输入该密码(8字节十六进制字符串)。一旦密码被装入,DS1961S SHA浏览器会将其复制到Extra Info区中的Container Secret区。通信结束后DS1961S SHA浏览器不记忆该密码。

7.Refresh Page (刷新存储器页数据)
对于带EEPROM的器件,数据是以电荷的形式存储在浮动栅级上的。当该电荷存储不足以用于正常的数据读取时,这时就可能出现问题。Refresh Page命令用来读存储器页数据并将其从读出的地址单元回写到原来的地址单元,这当中不包括MAC。在使用该命令之前,应先选择四个存储器页中的一个并点击Refresh Page命令按钮。根据暂存器大小,存储器页可按段刷新。执行完该命令后,暂存器中保存了已刷新存储器页的最后8个字节的复本。

8.Compute Next Secret (用计算出的密码代替当前密码)
计算出的密码其安全性要高于已装入的密码。该命令基于当前密码、所选存储器页数据和暂存器等数据计算一个新的密码,并把它做为新的器件密码存储起来。在计算密码之前,必须将部分密码(8字节,十六进制字符串)写入暂存器。点击四个存储器页中的任一个可选中该存储器页。如果Container Secret与器件的当前密码相匹配,DS1961S SHA浏览器将计算下一个密码并将其复制到Extra Info区的Container Secret区。通信结束后DS1961S SHA浏览器不记忆该密码。

9.Write-Protect Memory (给某一存储器区加写保护)
给DS1961S/DS2432存储器加写保护有以下三种方式:给页0加写保护、给页0至3加写保护、给地址8Ch至8Fh加带密码的写保护。点击Write-Protect Memory命令按钮后会出现一个小窗口,用户可在其中选择这三种方式。选定之后即产生一个命令序列,用来执行以下动作:读地址范围88h至8Fh内的存储器数据并存入缓冲器、更新各自的写保护字节、把数据写入暂存器、计算信息验证码(MAC),然后将该MAC和Copy Scratchpad指令码、目标地址一起发送给器件。只有当发送的MAC码与器件计算出的MAC码相匹配时,才可以执行Write-Protect Memory命令。计算MAC时,浏览器需要知道存储在器件里的密码。如何输入密码详见Set Container Secret。

10.Set Container Secret (告知DS1961S SHA浏览器器件的当前密码)
当利用Copy Scratchpad命令向器件写数据时,DS1961S SHA浏览器需要知道器件密码。通过Set Container Secret命令可采集用户已经输入Extra Info区中Container Secret区的数据,并把它做为Container Secret。一旦该密码被确定,就可用它来计算执行Copy Scratchpad命令需要的MAC。通信结束后DS1961S SHA浏览器不记忆该密码。

这么看来,要将数据写入ds2432必须要做2、3、10或者2、4、10几个步骤
第一步该是先设置访问密码,执行10操作
第二布将要写的数据(8个字节16进制码复制到暂存器区),设置好目标页,偏移地址,执行2操作
第三步执行3或者4操作将暂存器中的数据写入芯片的存储区
由于现在手上的芯片没法获知访问密码,测试要等下次了,测试时继续写教程


作者: iopjklbnm    时间: 2018-12-1 22:05
建议同时看看
作者: sunxc    时间: 2020-2-6 15:48
谢谢楼主分享
作者: HWX0309    时间: 2020-7-10 06:38
达拉斯猫腻真多。
作者: phi888    时间: 2020-9-24 16:47
合作下,v-13088844369
作者: 李小路    时间: 2020-9-30 14:54
谢谢分享!




欢迎光临 DIY编程器网 (http://diybcq.com/) Powered by Discuz! X3.2