微软公司宣布不再支持你正在使用的 IE浏览器,这会严重影响浏览网页,请使用微软最新的Edge浏览器
厂商专区
产品/技术
应用分类

基于STC15W204S模拟单总线EEPROM芯片DS2431

2019-01-03 16:05 来源:互联网 编辑:niko

基于 STC15W204S 单片机研究模拟了单总线 EEPROM 芯片 DS2431。SOP-8 封装的 STC15W204S 单片机具有引脚少、价 格便宜、不需要外部晶振、内部时钟从 5 MHz ~ 35 MHz 可设置的优点。DS2431 是一款具有 1 024 bit 的 1 Wire EEPROM 芯片,它 具有 4 页 × 256 bit 的存储空间,64 位唯一不可更改的光刻。

引言

DS2431 是一款具有 64 位唯一光刻的 1 024 bitEEPROM 芯片。模拟 DS2431 就是要模拟 DS2431 的 64 位光刻和数据的存储,从而实现用单片机模拟的 DS2431 和原来的 DS2431 具有相同的 64 位光刻和数 据存储功能。利用 64 位光刻的不可更改的特性, DS2431 广泛应用于硬件电路加密、设备唯一 ID 序列 号、关键信息存储、知识产权保护、安全功能控制等。 单总线设备具有简单的线路、较少的硬件开销和低廉 的成本等优点,便于总线扩展和维护[1-2]。作为一种简 单的信号传输电路,1-Wire 总线用一根数据线来实现 一个或者一个以上的从器件和主控制器之间的半双工 通 信 。 单 总 线 通 信 可 以 通 过 初 始 化 1 -W i r e 器 件 、识 别 1-Wire 器件和主机与从机之间数据交换三个步骤来实 现[3-4]。它是主从结构,主机呼叫从器件的时候,从器件才进行应答[5]。所以,主机只有通过严格的单总线 命令序列来访问1-Wire器件,即初始化从器件、ROM、 功能命令[6-7]。如果出现序列混乱,1-Wire器件将不会 相应主机的命令[8-9]。模拟 1-Wire 器件要求单片机严 格应对单总线命令序列和命令时隙,要求单片机对主 机发出的命令进行应答[10]。通过对 DS2431 应答模拟 从而达到用单片机模拟 DS2431 的目的,用这种方法也 可以对其他的 1-Wire 器件进行模拟。

1 单总线协议

1.1 1-Wire单总线时序

1-Wire 器件在数据传输过程中都会遵循严格的通信 协议,单总线通信协议有复位脉冲、应答脉冲、写 1、写 0、 读 1 、读 0 几 种 类 型 [ 11  ] 。

单总线的初始化步骤如图 1 所示。

( 1) 主机拉低总线 480 μs ~ 960 μs,然后主机释放总 线进入接收状态[12]。

( 2) 从机监测到主机不少于 480 μs 的复位信号后等 待15 μs ~ 60 μs,然后产生一个应答信号( 拉低总线 60 μs ~ 240 μs) [13]。

( 3) 从机释放总线至少一个 2 μs 的恢复时间。

基于STC15W204S模拟单总线EEPROM芯片DS2431

写1 和写0 时序步骤如图2 所示。

( 1) 主机拉低总线 5 μs ~ 15 μs,然后主机将总线拉高 或者拉低 45 μs。

( 2) 从机在 15 μs 后开始采样。

( 3) 主机释放总线并且有至少一个 2 μs 的恢复时间 ( 标准是 5 μs) 。

( 4) 整个写 1 时隙至少 60 μs。

基于STC15W204S模拟单总线EEPROM芯片DS2431

读数据时序步骤如图 3 所示。

( 1) 主机将总线拉低至少 1 μs。

( 2) 从机从下降沿到来之后将总线拉低或者拉高并保持 15 μs。

( 3) 在主机拉低总线后 15 μs 内主机释放总线并采样。

( 4) 15 μs 后由电阻将总线拉高。

( 5) 整个时间不少于 60 s,每个时间片之后有一个至少 2 μs 的恢复时间。

基于STC15W204S模拟单总线EEPROM芯片DS2431


1.2单总线接口

单总线接口电路是非常简单的,DS2431 的读和写的 电压范围是 2. 8 V ~ 5. 25 V。在 I/O 口接一个上拉电阻,根据 D S 2 4 3 1 数 据 手 册 ,上 拉 电阻电阻的范围是0.3 kΩ ~2.2kΩ。单总线接口如图 4 所示。

QQ20190103-161641


2 模拟单总线器件时序及接口 

2. 1 模拟单总线器件时序

模拟单总线器件的时序最重要的是在符合单总线通 信协议的规定时间内对主机发起的信号进行应答,其中需 要对延时把握精确,错过了时序主机有可能视从机没有应 答从而通信失败。在模拟时序的时候可以借助逻辑分析 仪来对时序进行分析并通过分析结果对模拟时序进行微 调。

模拟单总线初始化步骤如图 5 所示。

( 1) 单片机等待主机复位信号,监测主机拉低总线并 在 480 μs 内再次确认主机拉低了总线。

( 2) 单片机在确认了复位信号后延时等待总线拉高。

( 3) 单片机监测到主机将总线释放拉高后拉低总线 ( 从机应答) 60 ~ 240 μs。

( 4) 单片机释放总线( 拉高总线表示应答完成) 。

基于STC15W204S模拟单总线EEPROM芯片DS2431

模拟主机写 1 和写 0 时序步骤:

( 1) 单片机等待主机拉低总线发起通信。

( 2) 在监测到主机拉低总线后,单片机延时几微秒后开始采样。

( 3) 单片机采样后开始延时,主机写完数据后恢复总线。

( 4) 整个时间持续 60 μs。

时序图如图 5 所示,其中采样时间可以微调,可以借助逻辑分析仪分析时序。主机写命令 55h 并匹配。 ROM 的模拟时序如图 6 所示。

QQ20190103-161830

模拟主机读数据时序步骤:

( 1) 主机将总线拉低至少 1 μs。

( 2) 单片机监测到主机拉低总线 1 μs 后立即对总线 拉高或者拉低,要确保主机能够进行采样。

( 3) 主机采样后,单片机恢复总线。

( 4) 整个时间不少于 60 μs,每个时间片之后有一个 至少 2 μs 的恢复时间。

时序图如图 3 所示,其中单片机对总线操作的时间可 以微调,可以借助逻辑分析仪分析时序。主机写命令 FOh并搜索 ROM 的模拟时序如图 7 所示。

基于STC15W204S模拟单总线EEPROM芯片DS2431

2. 2模拟单总线器件硬件电路接口设计

STC15W204S 单片机工作电压范围为 2. 5 V ~ 5. 5 V, 在 ISP 编程时内部时钟在 5 MHz ~ 35 MHz 范围内可调,± 1%温飘( -40°C ~ +85°C) 常温下温飘 ±0.6%( -20°C~ + 65°C) ,可以满足硬件指标要求。STC15W204S 有 8 个引脚6个I/O口。调试时P3.0和P3.1做串行接口用 于烧写程序,P3. 3、P5. 4、P5. 5 可以接一个 LED 灯用于调 试观测单片机状态。烧写好程序的单片机只需要 3 个引 脚便可以工作。电路接口设计如图 8 所示。

基于STC15W204S模拟单总线EEPROM芯片DS2431

3 模拟 DS2431 的程序设计

3. 1 程序设计的流程

主机会在一开始发出复位信号,一旦检测到有从器件 存在就可以发出 ROM 操作命令[14]。ROM 命令有“读” ROM【33 h】、“匹 配 ”ROM【55 h】、“跳 过 ”ROM【CCh】、“搜 索”ROM【F0h】等。如果主机发出了 ROM 命令,那么单片 机接收到了 ROM 命令就要做出相应的回应。同样接下来 主机会发出读写操作,单片机也进行相应的回应。程序设 计流程如图 9 所示。

基于STC15W204S模拟单总线EEPROM芯片DS2431

3.2 模拟64位光刻和EEPROM 

因为每一片单总线芯片的 64 位光刻都是唯一且不可更改的,所以 DS2431 的光刻可以用来做硬件 ID 序列号, 也可以用来加密硬件,EEPROM 可以用来存储关键信息。

为模拟光刻,首先读出一块 DS2431 的光刻,然后用单 片机开一个 8 B 的数组存储这些光刻。当主机发出 33h 命令时单片机就按字节给它吐光刻,当主机发出 F0h 命令 时单片机就按位吐出光刻。当主机发出 55h 命令时单片 机默认接收相应的数据即可[15]。需要注意的是主机发出 的命令是先写高位再写低位,在接收命令的时候也是先接 收高位再接收低位。

模拟 EEPROM 可以用单片机开一块数组用来存储数 据,可以一开始就给这些数组写一些固定的值,主机来读 的时候就吐数给它。也可以开一片内存来存储主机写的 数,单片机可以将这些数据存到片内 EEPROM。在设计这 个数组的时候要参照模拟目标的 EEPROM 结构,单片机 在接到地址命令和页码命令时用相应的数组结构来对应。 

4 结论

利用 STC15W204S 单片机模拟 DS2431 有很好的发展 前景和利用价值,STC15W204S 单片机具有引脚少、功耗 低、不需外部晶振、价格低廉等优点。本研究实现了用单 片机模拟 DS2431,破解了 DS2431 光刻不可以复制的难 题。本研究实现了用单片机模拟单总线从机的应答时序, 利用这种方法还可以模拟其他的单总线设备。DS2431 广 泛应用于打印设备、医疗设备、硬件电路的加密。利用 STC15W204S 单片机模拟 DS2431 的部分功能就可以破解 某些加密设备、复制硬件电路等。STC15W204S 单片机具 有温度漂移,在复制的时候应考虑温度漂移范围。单片机 的工作范围应设置不同的频率多次下载程序测试,并结合 延时函数的修改来确定,下载程序时应取其正常工作范围 的中间值来克服温度漂移问题。可以利用高低温实验来 验证程序及模拟单片机的可靠性。

声明:本内容为作者独立观点,不代表电源网。本网站原创内容,如需转载,请注明出处;本网站转载的内容(文章、图片、视频)等资料版权归原作者所有。如我们采用了您不宜公开的文章或图片,未能及时和您确认,避免给双方造成不必要的经济损失,请电邮联系我们,以便迅速采取适当处理措施;欢迎投稿,邮箱∶editor@netbroad.com。

相关阅读

微信关注
技术专题 更多>>
研发工程师的工具箱
智慧生活 创新未来

头条推荐

电子行业原创技术内容推荐
客服热线
服务时间:周一至周五9:00-18:00
微信关注
获取一手干货分享
免费技术研讨会
editor@netbroad.com
400-003-2006