单总线(1-WireBus)技术及其应用摘要:介绍了美DALLAS公司推出的单总线技术的原 理和信号传输方式,说明了单总线通信协议,最后以单总线器件iBu tt on在安防系统中的应 用为例,给出了单总线的数据传输方法关键词:单总线 单总线协议iButtonl引言目前 常用的微机与外设之间进行数据传输的串行总线主要有I2C总线、SPI总线和SCI总线其 中12C总线以同步串行2线方式进行通信(一条时钟线,一条数据线)SPI总线则以同步串 行3线方式进行通信(一条时钟线,一条数据输入线,一条数据输出线),而SCI总线是以异 步方式进行通信(一条数据输入线,一条数据输出线)的这些总线至少需要两条或两条以 上的信号线近年来,美国的达拉斯半导体公司(DALLAS SEMICONDUCTOR)推出了一项特有 的单总线(1-WireBus)技术该技术与上述总线不同,它采用单根信号线,既可传输时钟, 又能传输数据,而且数据传输是双向的,因而这种单总线技术具有线路简单,硬件开销少, 成本低廉,便于总线扩展和维护等优点单总线适用于单主机系统,能够控制一个或多个从 机设备主机可以是微控制器,从机可以是单总线器件,它们之间的数据交换只通过一条信 号线。
当只有一个从机设备时,系统可按单节点系统操作;当有多个从设备时,系统则按多 节点系统操作图1所示是单总线多节点系统的示意图 2 单总线的工作原理顾名思义,单 总线即只有一根数据线,系统中的数据交换、控制都由这根线完成设备(主机或从机)通 过一个漏极开路或三态端口连至该数据线,以允许设备在不发送数据时能够释放总线,而让 其它设备使用总线,其内部等效电路如图2所示单总线通常要求外接一个约为4.7kQ的上 拉电阻,这样,当总线闲置时,其状态为高电平主机和从机之间的通信可通过3个步骤完 成,分别为初始化1 -wire器件、识别1 -wire器件和交换数据由于它们是主从结构,只有 主机呼叫从机时,从机才能应答,因此主机访问1-wire器件都必须严格遵循单总线命令序列, 即初始化、ROM、命令功能命令如果出现序列混乱,1-wire器件将不响应主机(搜索ROM 命令,报警搜索命令除外)表1是列为AIQ命令的说明,而功能命令则根据具体1 -wire 器件所支持的功能来确定表1 ROM命令说明ROM命令说明搜索ROM (FOh)识别单总线上 所有的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)是初始化时序,初始化时序包括主 机发出的复位脉冲和从机发出的应答脉冲主机通过拉低单总线至少480us产生Tx复位脉 冲;然后由主机释放总线,并进入Rx接收模式主机释放总线时,会产生一由低电平跳变为 高电平的上升沿,单总线器件检测到该上升沿后,延时15〜60us,接着单总线器件通过拉 低总线60〜240usu来产生应答脉冲主机接收到从机的以应答脉冲后,说明有单总线器件 ,然后主机就可以开始对从机进行ROM命令和功能命令操作图3中的(b)、(c)、(d) 分别是写1、写0和读时序在每一个时序中,总线只能传输一位数据所有的读、写时序 至少需要60us,且每两个独立的时序之间至少需要1us的恢复时间图中,读、写时序均 始于主机拉低总线在写时序中,主机将在拉低总线15us之内释放总线,并向单总线器件 写1;若主机拉低总线后能保持至少60us的低电平,则向单总线器件写0。
单总线器件仅在 主机发出读时序时才向主机传输数据,所以,当主机向单总线器件发出读数据命令后,必须 马上产生读时序,以便单总线器件能传输数据在主机发出读时序之后,单总线器件才开始 在总线上发送0或1若单总线器件发送1,则总线保持高电平,若发送0,则拉低总线由 于单总线器件发送数据后可保持15us有效时间,因此,主机在读时序期间必须释放总线, 且须在15us的采样总线状态,以便接收从机发送的数据[!--empirenews.page—]图3单 总线的几种信号时序4 单总线器件通常把挂在单总线上的器件称之为单总线器件,单总线器 件内一般都具有控制、收*发、存储等电路为了区分不同的单总线器件,厂家生产单总线器 件时都要刻录一个64位的二进制ROM代码,以标志其ID号目前,单总线器件主要有数字 温度传感器(如DS18B20)、A/D转换器(如DS2450)、门标、身份识别器(如DS1990A)、单 总线控制器(如DS1WM)等这里介绍一种iButton形式的单总线器件,它是利用瞬间接触 来进行数字通信的,这些器件的应用已经渗透到货币交易和高度安全的认证系统之中IButton是采用纽扣状不锈钢外壳封装的微型计算机晶片,它具有抗撞击、防水渍、耐腐蚀、 抗磁扰、防折叠、价格便宜等特点,能较好的解决传统识别器存在的不足,同时又可满足系 统在可靠性、稳定性方面的要求。
IButton主要有三种类型,分别是Memory iButton (存储 器);Java-powered cryp to graphic iButton (加密型);Thermochron iButton (温度型) 存储型iButton最大存储空间为64kB,可以存储文本或数字照片加密型iButton是一种微 处理器和高速算法加速器,可以产生大量需要加密和解密的数据信息,它的运行速度非常快, 可与Internet应用相结合,并可应用于远程鉴定识别温度型iButton可以测量温度变化, 它内含温度计、时钟、热记录和存储单元等图4安防系统硬件原理图5 单总线器件的应用 现以单总线器件iButton在安防系统上的应用为例来进行说明,该安防系统就是利用iButton 来进行门禁识别的其门禁识别部分的硬件原理图如图4所示,它由主机微控制器、从机(包 括iButton信息读取头和iButton)、主机通过RS485进行远程通信(或通过MicroWeb连上 Internet)等三部分组成微控制器采用Microchip公司的PIC16F873芯片,而API8108A 语音芯片则用来告诉用户系统[1][2]下一页 信息;iButton采用DS1990A,信息读取头被读取并同时送到主机微控制器,然后由主机把收到的标识码与原先存 储的iButton标识码进行比较判断,若吻合,则系统按设定要求程序工作,否则,系统给出 语音提示。
DS1990A与主机微控制器之间的通信软件设计流程图如图5所示通常主机与单 总线器件的通信都是通过初始化、写0、写1、读0、读1时序来的完成的,下面给出用汇编 语言编写的子程序,需要说明的是,这些程序虽然是针对iButton所写的,但适用于所有的 单总线器件,且简单易懂,现予给出,以供大家参考。