DS28E01-100 的软件说明
一. 简介:
和 DS28E01-100 相关的软件代码主要由以下几个部分组成:
1. OWBASIC.H ――― 定义了 1 wire 总线驱动函数的申明。
2. OWBASIC.C ――― 它完成对 1 wire 总线的驱动工作。
3. DS2801.H ――― 定义了对 DS28E01-100 操作的函数的申明。
4. DS2801.C ― ― ― 它完成所有对 DS28E01-100 的操作。包括:读 EEPROM、写
EEPROM、 加载 64 位密码、加载 256 位扩展密码、基于 64 位密码进行验证、基于 320 位密
码进行验证。
5. OWCMD.H ―――定义了所有和 DS28E01-100 相关的命令。
6. SHA.H ――― 包含了和 SHA-1 算法相关的申明。
7. SHA.C ――― 定义了完整的 SHA-1 算法。
8. FC.H ――― 定义了 1 WIRE 器件的家族码。
9. OWERROR.H ――― 定义了相应函数返回代码。
二. 移植:
在移植时关键的是 OWBASIC.C 和 DS2801.C 这 2 个文件
1. OWBASIC.C
该源文件完成对 1 wire 的总线驱动。在移植时需修改 GPIO 定义部分,即按照系统的要
求选择一个 GPIO 做 1 wire 总线。另外一个需要修改的部分是延时函数 void delayow
(uint16),修改时要求以 1 为参数来调用该函数时,延时值尽量接近 1uS。
如果 1 wire 总线时序调试成功,则当调用 DS2801.C 中的 uint8 getromid()函数时可得
到器件的 64 位 ID 并且通过 CRC8 认证。
2. DS2801.C
这个文件完成:读取器件 64 位 ROMID、加载 64 位密码、加载 256 位扩展密码、基于
64 位密码进行验证、基于 320 位密码进行验证、读 EEPROM、写 EEPROM、写寄存器
页面的功能。
系统的 64 位公共密钥定义在数组:uint8 code basicsecret[8] 中;
系统的 256 位公共扩展密钥定义在数组:uint8 code basicp3secret[32]中;
要写入到 EEPROM 中的数据放在数组:uint8 xdata tempbuffer[8]中;
从 EEPROM 中读出的数据放在数组: uint8 xdata pagebuffer[32]中。