《电子技术应用》

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

2017年微型机与应用第8期 作者:张杰1,杨笔锋1,2,严学阳1,刘语嫣1
2017/5/27 9:26:00

  张杰1,杨笔锋1,2,严学阳1,刘语嫣1

  (1.成都信息工程大学 电子工程学院,四川 成都 610225;2.中国气象局大气探测重点开放实验室,四川 成都 610225)

        摘要:基于STC15W204S单片机研究模拟了单总线EEPROM芯片DS2431。SOP8封装的STC15W204S单片机具有引脚少、价格便宜、不需要外部晶振、内部时钟从5 MHz~35 MHz可设置的优点。DS2431是一款具有1 024 bit的1 Wire EEPROM芯片,它具有4页×256 bit的存储空间,64位唯一不可更改的光刻。64位光刻的唯一性使DS2431广泛应用于硬件电路的加密、硬件电路唯一的ID序列号以及密钥信息的存储等。主要介绍了1Wire通信协议、单片机模拟芯片硬件电路、单片机模拟DS2431的程序设计流程、单片机模拟DS2431的64位光刻以及EEPROM。

  关键词单片机模拟单总线器件1-Wire;DS2431;STC15W204S

  中图分类号:TP368.1文献标识码:ADOI: 10.19358/j.issn.1674-7720.2017.08.011

  引用格式:张杰,杨笔锋,严学阳,等.基于STC15W204S单片机模拟单总线EEPROM芯片DS2431[J].微型机与应用,2017,36(8):31-33,38.

0引言

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

1单总线协议

  1.11-Wire单总线时序

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

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

001.jpg

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

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

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

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

002.jpg

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

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

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

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

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

003.jpg

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

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

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

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

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

  1.2单总线接口

004.jpg

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

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

  2.1模拟单总线器件时序

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

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

005.jpg

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

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

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

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

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

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

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

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

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

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

  ROM的模拟时序如图6所示。

006.jpg

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

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

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

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

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

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

 

007.jpg

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

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

008.jpg

3模拟DS2431的程序设计

  3.1程序设计的流程

009.jpg

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

  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单片机具有温度漂移,在复制的时候应考虑温度漂移范围。单片机的工作范围应设置不同的频率多次下载程序测试,并结合延时函数的修改来确定,下载程序时应取其正常工作范围的中间值来克服温度漂移问题。可以利用高低温实验来验证程序及模拟单片机的可靠性。

参考文献

  [1] 陈浩. 基于智能传感器和单片机的温度监测系统[D]. 北京:华北电力大学,2005.

  [2] 陈志英,李光辉. 单总线技术及其应用[J]. 电气时代,2015(8):74-75.

  [3] 杨张利. IC卡燃气表智能控制及检测系统研究[D]. 重庆:重庆大学,2007

  [4] 胡皓,雷金莉,周妮娜. 1-Wire总线技术及其在火灾监测中的应用[J]. 机电工程技术,2006,35(6):68-71.

  [5] 张扬清. 基于双机通信的电压和温度监控系统[J]. 科技风,2013(23):104-105.

  [6] 张东. 基于双CPU的温室温度远距离测控系统研究[D]. 重庆:重庆大学,2007

  [7] 张华峰. One-Wire Bus检测网从站管理及可靠传输研究[D]. 南昌:南昌大学,2007

  [8] 高罗卿. 1-wire系统中TM卡的单片机等效替换[J]. 单片机与嵌入式系统应用, 2008(8):62-65.

  [9] 李颖. 车用动力电池SOC估算方法的研究及其管理系统设计[D]. 沈阳:东北大学, 2012.


继续阅读>>