zoukankan      html  css  js  c++  java
  • 单总线(1-Wire Bus)技术及其应用

    单总线(1-Wire Bus)技术及其应用

    reference: http://www.doc88.com/p-2106151016582.html

    摘要:介绍了美DALLAS公司推出的单总线技术的原理和信号传输方式,说明了单总线通信协议,最后以单总线器件iButton在安防系统中的应用为例,给出了单总线的数据传输方法。

       关键词:单总线 单总线协议 iButton
    1 引言
    目前常用的微机与外设之间进行数据传输的串行总线主要有I2C总线、SPI总线和SCI总线。其中I2C总线以同步串行2线方式进行通信(一条时钟线,一条数据线),SPI总线则以同步串行3线方式进行通信(一条时钟线,一条数据输入线,一条数据输出线),而SCI总线是以异步方式进行通信(一条数据输入线,一条数据输出线)的。这些总线至少需要两条或两条以上的信号线。近年来,美国的达拉斯半导体公司(DALLAS SEMICONDUCTOR)推出了一项特有的单总线(1-Wire Bus)技术。该技术与上述总线不同,它采用单根信号线,既可传输时钟,又能传输数据,而且数据传输是双向的,因而这种单总线技术具有线路简单,硬件开销少,成本低廉,便于总线扩展和维护等优点。
    单总线适用于单主机系统,能够控制一个或多个从机设备。主机可以是微控制器,从机可以是单总线器件,它们之间的数据交换只通过一条信号线。当只有一个从机设备时,系统可按单节点系统操作;当有多个从设备时,系统则按多节点系统操作。图1所示是单总线多节点系统的示意图。 
     
     
    2 单总线的工作原理
    顾名思义,单总线即只有一根数据线,系统中的数据交换、控制都由这根线完成。设备(主机或从机)通过一个漏极开路或三态端口连至该数据线,以允许设备在不发送数据时能够释放总线,而让其它设备使用总线,其内部等效电路如图2所示。单总线通常要求外接一个约为4.7kΩ的上拉电阻,这样,当总线闲置时,其状态为高电平。主机和从机之间的通信可通过3个步骤完成,分别为初始化1-wire器件、识别1-wire器件和交换数据。由于它们是主从结构,只有主机呼叫从机时,从机才能应答,因此主机访问1-wire器件都必须严格遵循单总线命令序列,即初始化、ROM、命令功能命令。如果出现序列混乱,1-wire器件将不响应主机(搜索ROM命令,报警搜索命令除外)。表1是列为ΔΙΩ命令的说明,而功能命令则根据具体1-wire器件所支持的功能来确定。 

    表1 ROM命令说明
    ROM命令 说      明
    搜索ROM(F0h) 识别单总线上所有的1-wire器件的ROM编码
    读ROM(33h)(仅适合单节点) 直接读1-wire器件的序列号
    匹配ROM(55h) 寻找与指定序列号相匹配的1-wire器件
    跳跃ROM(CCh)(仅适合单节点) 使用该命令可直接访问总线上的从机设备
    报警搜索ROM(Ech)(仅少数器件支持) 搜索有报警的从机设备
    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的采样总线状态,以便接收从机发送的数据。 

    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可以测量温度变化,它内含温度计、时钟、热记录和存储单元等。 

    5 单总线器件的应用
    现以单总线器件iButton在安防系统上的应用为例来进行说明,该安防系统就是利用iButton来进行门禁识别的。其门禁识别部分的硬件原理图如图4所示,它由主机微控制器、从机(包括iButton信息读取头和iButton)、主机通过RS485进行远程通信(或通过MicroWeb连上Internet)等三部分组成。微控制器采用Microchip公司的PIC16F873芯片,而API8108A语音芯片则用来告诉用户系统信息;iButton采用DS1990A,信息读取头被读取并同时送到主机微控制器,然后由主机把收到的标识码与原先存储的iButton标识码进行比较判断,若吻合,则系统按设定要求程序工作,否则,系统给出语音提示。DS1990A与主机微控制器之间的通信软件设计流程图如图5所示。
    通常主机与单总线器件的通信都是通过初始化、写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技术能较好地解决传统识别器普遍存在的携带不便、易损坏、易受腐馈、易受电磁干扰等不足,可应用于高度安全的门禁、身份识别等领域。其通信可靠简单,很容易实现。因此单总线技术有着广阔的应用前景,是值得产注的一个发展领域。

    (综合电子论坛)

  • 相关阅读:
    atitit.TokenService v3 qb1 token服务模块的设计 新特性.docx
    Atitit attilax在自然语言处理领域的成果
    Atitit 图像清晰度 模糊度 检测 识别 评价算法 原理
    Atitit (Sketch Filter)素描滤镜的实现  图像处理  attilax总结
    atitit。企业的价值观 员工第一 vs 客户第一.docx
    Atitit 实现java的linq 以及与stream api的比较
    Atitit dsl exer v3 qb3 新特性
    Atititi tesseract使用总结
    Atitit 修改密码的功能流程设计 attilax总结
    atitit.TokenService v3 qb1  token服务模块的设计 新特性.docx
  • 原文地址:https://www.cnblogs.com/limanjihe/p/10329959.html
Copyright © 2011-2022 走看看