如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
1-wire单总线的基本原理一概述1-wire单总线是Maxim全资子公司Dallas的一项专有技术与目前多数标准串行数据通信方式如SPI/I2C/MICROWIRE不同它采用单根信号线既传输时钟又传输数据而且数据传输是双向的它具有节省I/O口线资源结构简单成本低廉便于总线扩展和维护等诸多优点1-wire单总线适用于单个主机系统能够控制一个或多个从机设备当只有一个从机位于总线上时系统可按照单节点系统操作而当多个从机位于总线上时则系统按照多节点系统操作为了较为全面地介绍单总线系统将系统分为三个部分讨论硬件结构命令序列和信号方式信号类型和时序二硬件结构顾名思义单总线只有一根数据线设备主机或从机通过一个漏极开路或三态端口连接至该数据线这样允许设备在不发送数据时释放数据总线以便总线被其它设备所使用单总线端口为漏极开路其内部等效电路如图1所示单总线要求外接一个约5k的上拉电阻这样单总线的闲置状态为高电平不管什么原因如果传输过程需要暂时挂起且要求传输过程还能够继续的话则总线必须处于空闲状态位传输之间的恢复时间没有限制只要总线在恢复期间处于空闲状态高电平如果总线保持低电平超过480s总线上的所有器件将复位另外在寄生方式供电时为了保证单总线器件在某些工作状态下如温度转换期间EEPROM写入等具有足够的电源电流必须在总线上提供强上拉如图1所示的MOSFET三命令序列典型的单总线命令序列如下第一步初始化第二步ROM命令跟随需要交换的数据第三步功能命令跟随需要交换的数据每次访问单总线器件必须严格遵守这个命令序列如果出现序列混乱则单总线器件不会响应主机但是这个准则对于搜索ROM命令和报警搜索命令例外在执行两者中任何一条命令之后主机不能执行其后的功能命令必须返回至第一步31初始化基于单总线上的所有传输过程都是以初始化开始的初始化过程由主机发出的复位脉冲和从机响应的应答脉冲组成应答脉冲使主机知道总线上有从机设备且准备就绪复位和应答脉冲的时间详见单总线信号部分32ROM命令在主机检测到应答脉冲后就可以发出ROM命令这些命令与各个从机设备的唯一64位ROM代码相关允许主机在单总线上连接多个从机设备时指定操作某个从机设备这些命令还允许主机能够检测到总线上有多少个从机设备以及其设备类型或者有没有设备处于报警状态从机设备可能支持5种ROM命令实际情况与具体型号有关每种命令长度为8位主机在发出功能命令之前必须送出合适的ROM命令ROM命令的操作流程如图2所示下面将简要地介绍各个ROM命令的功能以及使用在何种情况下3.2.1搜索ROM[F0h]当系统初始上电时主机必须找出总线上所有从机设备的ROM代码这样主机就能够判断出从机的数目和类型主机通过重复执行搜索ROM循环搜索ROM命令跟随着位数据交换以找出总线上所有的从机设备如果总线只有一个从机设备则可以采用读ROM命令来替代搜索ROM命令关于搜索ROM命令的详细解释请参见附录A在每次执行完搜索ROM循环后主机必须返回至命令序列的第一步初始化3.2.2读ROM[33h]仅适合于单节点该命令仅适用于总线上只有一个从机设备它允许主机直接读出从机的64位ROM代码而无须执行搜索ROM过程如果该命令用于多节点系统则必然发生数据冲突因为每个从机设备都会响应该命令3.2.3匹配ROM[55h]匹配ROM命令跟随64位ROM代码从而允许主机访问多节点系统中某个指定的从机设备仅当从机完全匹配64位ROM代码时才会响应主机随后发出的功能命令其它设备将处于等待复位脉冲状态3.2.4跳越ROM[CCh]仅适合于单节点主机能够采用该命令同时访问总线上的所有从机设备而无须发出任何ROM代码信息例如主机通过在发出跳越ROM命令后跟随转换温度命令[44h]就可以同时命令总线上所有的DS18B20开始转换温度这样大大节省了主机的时间值得注意如果跳越ROM命令跟随的是读暂存器[BEh]的命令包括其它读操作命令则该命令只能应用于单节点系统否则将由于多个节点都响应该命令而引起数据冲突3.2.5报警搜索[ECh]仅少数1-wire器件支持除那些设置了报警标志的从机响应外该命令的工作方式完全等同于搜索ROM命令该命令允许主机设备判断那些从机设备发生了报警如最近的测量温度过高或过低等同搜索ROM命令一样在完成报警搜索循环后主机必须返回至命令序列的第一步33功能命令以DS18B20为例在主机发出ROM命令以访问某个指定的DS18B20接着就可以发出DS18B20支持的某个功能命令这些命令允许主机写入或读出DS18B20暂存器启动温度转换以及判断从机的供电方式DS18B20的功能命令总结于表1中并在图3流程图