0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

单总线1-Wire Bus技术的原理及应用研究

电子设计 来源:郭婷 作者:电子设计 2019-09-19 08:02 次阅读

1 、引言

目前常用的微机与外设之间进行数据传输的串行总线主要有I2C总线、SPI总线和SCI总线。其中I2C总线以同步串行2线方式进行通信(一条时钟线,一条数据线),SPI总线则以同步串行3线方式进行通信(一条时钟线,一条数据输入线,一条数据输出线),而SCI总线是以异步方式进行通信(一条数据输入线,一条数据输出线)的。这些总线至少需要两条或两条以上的信号线。近年来,美国的达拉斯半导体公司(DALLAS SEMICONDUCTOR)推出了一项特有的单总线(1-Wire Bus)技术。该技术与上述总线不同,它采用单根信号线,既可传输时钟,又能传输数据,而且数据传输是双向的,因而这种单总线技术具有线路简单,硬件开销少,成本低廉,便于总线扩展和维护等优点。

单总线适用于单主机系统,能够控制一个或多个从机设备。主机可以是微控制器,从机可以是单总线器件,它们之间的数据交换只通过一条信号线。当只有一个从机设备时,系统可按单节点系统操作;当有多个从设备时,系统则按多节点系统操作。图1所示是单总线多节点系统的示意图。

单总线1-Wire Bus技术的原理及应用研究

2 、单总线的工作原理

顾名思义,单总线即只有一根数据线,系统中的数据交换、控制都由这根线完成。设备(主机或从机)通过一个漏极开路或三态端口连至该数据线,以允许设备在不发送数据时能够释放总线,而让其它设备使用总线,其内部等效电路如图2所示。单总线通常要求外接一个约为4.7kΩ的上拉电阻,这样,当总线闲置时,其状态为高电平。主机和从机之间的通信可通过3个步骤完成,分别为初始化1-wire器件、识别1-wire器件和交换数据。由于它们是主从结构,只有主机呼叫从机时,从机才能应答,因此主机访问1-wire器件都必须严格遵循单总线命令序列,即初始化、ROM、命令功能命令。如果出现序列混乱,1-wire器件将不响应主机(搜索ROM命令,报警搜索命令除外)。表1是列为ΔΙΩ命令的说明,而功能命令则根据具体1-wire器件所支持的功能来确定。

单总线1-Wire Bus技术的原理及应用研究

单总线1-Wire Bus技术的原理及应用研究

3 、信号方式

所有的单总线器件都要遵循严格的通信协议,以保证数据的完整性。1-wire协议定义了复位脉冲、应答脉冲、写0、读0和读1时序等几种信号类型。所有的单总线命令序列(初始化,ROM命令,功能命令)都是由这些基本的信号类型组成的。在这些信号中,除了应答脉冲外,其它均由主机发出同步信号,并且发送的所有命令和数据都是字节的低位在前。图3是这些信号的时序图。其中,图3(a)是初始化时序,初始化时序包括主机发出的复位脉冲和从机发出的应答脉冲。主机通过拉低单总线至少480μs产生Tx复位脉冲;然后由主机释放总线,并进入Rx接收模式。主机释放总线时,会产生一由低电平跳变为高电平的上升沿,单总线器件检测到该上升沿后,延时15~60μs,接着单总线器件通过拉低总线60~240μsμ来产生应答脉冲。主机接收到从机的以应答脉冲后,说明有单总线器件在线,然后主机就可以开始对从机进行ROM命令和功能命令操作。图3中的(b)、(c)、(d)分别是写1、写0和读时序。在每一个时序中,总线只能传输一位数据。所有的读、写时序至少需要60μs,且每两个独立的时序之间至少需要1μs的恢复时间。图中,读、写时序均始于主机拉低总线。在写时序中,主机将在拉低总线15μs之内释放总线,并向单总线器件写1;若主机拉低总线后能保持至少60μs的低电平,则向单总线器件写0。单总线器件仅在主机发出读时序时才向主机传输数据,所以,当主机向单总线器件发出读数据命令后,必须马上产生读时序,以便单总线器件能传输数据。在主机发出读时序之后,单总线器件才开始在总线上发送0或1。若单总线器件发送1,则总线保持高电平,若发送0,则拉低总线。由于单总线器件发送数据后可保持15μs有效时间,因此,主机在读时序期间必须释放总线,且须在15μs的采样总线状态,以便接收从机发送的数据。

单总线1-Wire Bus技术的原理及应用研究

4 、单总线器件

通常把挂在单总线上的器件称之为单总线器件,单总线器件内一般都具有控制、收*发、存储等电路。为了区分不同的单总线器件,厂家生产单总线器件时都要刻录一个64位的二进制ROM代码,以标志其ID号。目前,单总线器件主要有数字温度传感器(如DS18B20)、A/D转换器(如DS2450)、门标、身份识别器(如DS1990A)、单总线控制器(如DS1WM)等。这里介绍一种iButton形式的单总线器件,它是利用瞬间接触来进行数字通信的,这些器件的应用已经渗透到货币交易和高度安全的认证系统之中。IButton是采用纽扣状不锈钢外壳封装的微型计算机芯片,它具有抗撞击、防水渍、耐腐蚀、抗磁扰、防折叠、价格便宜等特点,能较好的解决传统识别器存在的不足,同时又可满足系统在可靠性、稳定性方面的要求。

IButton主要有三种类型,分别是Memory iButton(存储器);Java-powered cryptographic iButton(加密型);Thermochron iButton(温度型)。存储型iButton最大存储空间为64kB,可以存储文本或数字照片。加密型iButton是一种微处理器和高速算法加速器,可以产生大量需要加密和解密的数据信息,它的运行速度非常快,可与Internet应用相结合,并可应用于远程鉴定识别。温度型iButton可以测量温度变化,它内含温度计、时钟、热记录和存储单元等。

单总线1-Wire Bus技术的原理及应用研究

5 、单总线器件的应用

现以单总线器件iButton在安防系统上的应用为例来进行说明,该安防系统就是利用iButton来进行门禁识别的。其门禁识别部分的硬件原理图如图4所示,它由主机微控制器、从机(包括iButton信息读取头和iButton)、主机通过RS485进行远程通信(或通过MicroWeb连上Internet)等三部分组成。微控制器采用Microchip公司的PIC16F873芯片,而API8108A语音芯片则用来告诉用户系统信息;iButton采用DS1990A,信息读取头被读取并同时送到主机微控制器,然后由主机把收到的标识码与原先存储的iButton标识码进行比较判断,若吻合,则系统按设定要求程序工作,否则,系统给出语音提示。DS1990A与主机微控制器之间的通信软件设计流程图如图5所示。

单总线1-Wire Bus技术的原理及应用研究

通常主机与单总线器件的通信都是通过初始化、写0、写1、读0、读1时序来的完成的,下面给出用汇编语言编写的子程序,需要说明的是,这些程序虽然是针对iButton所写的,但适用于所有的单总线器件,且简单易懂,现予给出,以供大家参考。

RESET BSF RB2 ;主机拉低总线

CALL DELAY_500us ;给500μs复位脉冲

BCF RB2 ;释放总线

CALL DELAY_200us

BTFSC BR1 ;检测iButton返回应答脉冲否

GOTO RESET ;否,再给它复位脉冲

CALL DELAY_500us ;是,返回

RETURN

WRITE_0 BSF RB2 ;对iButton写0时序子程序

CALL DELAY_10us

CALL DELAY_60us

BCF RB2

CALL DELAY_10us

RETURN

WRITE_1 BSF RB2 ;对iButton写1时序子程序

CALL DELAY_10us

BCF RB2

CALL DELAY_60us

RETURN

READ_TIME BSF RB2 ;对iButton读数据时序

NOP

NOP

NOP

BCF RB2

CALL DELAY_10us

RETURN

6 、总结

单总线技术以其线路简单、硬件开销少、成本低廉、软件设计简单优势而有着无可比拟的应用前景。基于单总线的iButton技术能较好地解决传统识别器普遍存在的携带不便、易损坏、易受腐馈、易受电磁干扰等不足,可应用于高度安全的门禁、身份识别等领域。其通信可靠简单,很容易实现。因此单总线技术有着广阔的应用前景,是值得产注的一个发展领域。


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 微控制器
    +关注

    关注

    48

    文章

    6809

    浏览量

    147626
  • 总线
    +关注

    关注

    10

    文章

    2706

    浏览量

    87206
收藏 人收藏

    评论

    相关推荐

    基于DS2432的USB口1-Wire总线适配器的设计

    公司设计的1-Wire总线是众多现场总线中极具竞争力的一种。具备能与计算机进行数字通信、总线负载量大、布线简练、精度高、性能稳定、价格便宜等诸多优点,特别是非常适合中短距离通信,是工业
    发表于 07-11 07:24

    基于C++模板技术1-wire总线编程

    这是一个比较简单的 1-wire 总线 C++ 模板库。这个库由 4 个部分组成:11-wire 协议链路层接口类:ow_t定义了 1-wire
    发表于 11-22 23:40

    1-Wire 总线读写器

    Maxim Dallas 1-Wire 专用读写器DS9097/DS9490 淘宝网{:23:}
    发表于 07-10 14:30

    Maxim 1-Wire 读写器

    本公司自主研发并生产的1-Wire 单总线器件读写器,可兼容DS9097,采用USB接口,USB供电。提供DS2502/DS2502 ALL IN ONE 编程器,无需外部电源,连接USB接口就可以编程,和外部输入12V电源说Byebye淘宝网输入DS9097/DS949
    发表于 07-10 14:35

    1-Wire接口

    1-Wire接口要适应12V供电的芯片有什么?
    发表于 11-12 11:20

    如何访问1-Wire API

    任何组件在创建者来实现这一点。有人知道如何访问1-Wire API吗?谢谢 以上来自于百度翻译 以下为原文I have been looking for a 1-wire component
    发表于 07-29 15:25

    如何设计嵌入式单总线控制器?

    DS1820是美国DALLAS公司生产的一种单总线(1-wire)数字温度传感器,采用1-wire总线通信协议。具有独特的单总线通信方式以及
    发表于 08-12 06:03

    1-wire单总线的基本原理

    1-wire单总线的基本原理:1-wire 单总线是Maxim 全资子公司,Dallas 的一项专有技术与目前多数标准串行数据通信方式,如S
    发表于 09-26 16:57 55次下载

    1-wire单总线的基本原理

    1-wire单总线的基本原理 1-wire 单总线是Maxim 全资子公司Dallas 的一项专有技术与目前多数标准串行数据通信方式如SP
    发表于 02-05 17:58 78次下载

    利用单总线控制器通讯

    利用单总线控制器通讯 本示例的程序采用C 语言编写,主程序为:“Get Temperature”(获取温度),它完成1-Wire 控制器的初始化,搜索1-Wire 总线上的所有器件,
    发表于 03-18 10:05 27次下载

    DS1820单总线(1-wire)数字温度传感器

      DS1820是美国DALLAS公司生产的一种单总线(1-wire)数字温度传感器,采用1-wire总线通信协议。具有独特的单总线通信方式
    发表于 12-09 11:35 3635次阅读
    DS1820<b class='flag-5'>单总线</b>(<b class='flag-5'>1-wire</b>)数字温度传感器

    实施隔离的1-Wire总线

    Abstract: The 1-Wire bus has become increasingly popular for the authentication and calibration
    发表于 05-24 11:48 59次下载
    实施隔离的<b class='flag-5'>1-Wire</b><b class='flag-5'>总线</b>

    1-Wire总线主机

    Abstract: Communication with 1-Wire slave devices requires a 1-Wire master. There are numerous ways
    发表于 10-19 17:02 53次下载

    1-wire_单总线的基本原理

    1-wire_单总线的基本原理
    发表于 02-28 15:06 15次下载

    实现隔离式1-Wire总线

    1-Wire总线在需要电气隔离的医疗设备中传感器和耗材的认证和校准中越来越受欢迎。本文以应用笔记4206“为嵌入式应用选择合适的1-Wire主机”为基础,介绍如何修改现有的1-Wire
    的头像 发表于 01-17 10:39 2290次阅读
    实现隔离式<b class='flag-5'>1-Wire</b><b class='flag-5'>总线</b>