访问电脑版页面

导航:老古开发网手机版其他

单片机单总线技术

导读:
关键字:

简介 美国Dallas公司近年推出的单总线技术及相应的集成芯片,用单片机可以组建成单总线技术的应用系统。文中具体说明了系统的硬、软件组成特点,介绍了一些典型器件,并列举了在自动测控系统中的实际应用情况。相对于传统的方案,单片机单总线技术具有突出的技术优势和更高的性能价格比。

关键词 单片机 单总线 测控技术

引言

  计算机用于测控系统时,测控对象与计算机之间的信息交换是通过总线进行的。不管是通用的并行、串行总线,还是专用总线,其传送数据的信号线总是多根的。最简单的RS-232串行总线也有两根信号线,且只能通向一路被测或被控对象,否则要用下位机扩展。这样,当遇到多路多个测控对象时,系统中相互连接则非常复杂。若只用一根信号线(1-wire),在其上可以挂上许多测控对象,且电源也经这根信号线馈给,这样组建一个系统就方便多了。本文介绍使用这种一根信号线的技术,为了表述简明易懂,并区别于计算机的其他总线,将其称为单总线(1-wire bus)技术。

  单总线及相应芯片是美国Dallas半导体公司近年推出的新技术。在该公司支持下,信息产业部电子五所和桂林电子工业学院联合对单总线技术进行了开发应用。我们正在对环境状态监测系统、实时气象监测系统(自动气象站)、军用仓库测控系统、农业塑料大棚测控系统、宾馆楼宇监管系统、停车收费系统、考勤管理系统等领域进行应用开发。应用中主控计算机视要求,既可以采用PC机也可以采用单片机。本文主要介绍在单片机控制下单总线技术的应用。

一、 单总线技术

  单总线技术是只有一个总线命令者和一个或多个从者组成的计算机应用系统。单总线系统由硬件配置、处理次序和单总线信号三部分组成。

  系统按单总线协议规定的时序和信号波形进行初始化、识别器件和进行数据交换。

1. 硬件配置

  单总线系统只定义了一根信号线。总线上的每个器件都能够在合适的时间驱动它,相当于把计算机的地址线、数据线、控制线合为一根信号线对外进行数据交换。为了区分这些芯片,厂家在生产每个芯片时,都编制了惟一的序列号,通过寻址就能把芯片识别出来。这样做能使这些器件挂在一根信号线上进行码分多址、串行分时数据交换,组成一个自动测控系统或一个自动收费系统,甚至还可以用单总线组成一个微型局域网。

  厂家对每个芯片用激光刻录的一个64位二进制ROM代码。从最低位开始,前8位是族码,表示产品的分类编号;接着的48位是一个惟一的序列号;最后8位是前56位的CRC校验码。CRC(Cyclic Redundancy Check)称为循环冗余码检测,是数据通信中校验数据传输是否正确的一种方法。在使用时,总线命令者读入ROM中64位二进制码后,将前56位按CRC多项式(这里是X8+X5+X4+1)计算出CRC值,然后与ROM中高8位的CRC值比较,若相同则表明数据传送正确,否则要求重传。48位序列号是一个15位的十进制编码,这么长的编码完全可为每个芯片编制一个全世界惟一的号码,也称之为身份证号,可以被寻址识别出来。此外,芯片内还含有收、发控制和电源存储电路,其示意图如图1所示。

图1  单总线芯片入口的示意图

  这些芯片采用CMOS技术,耗电量都很小,从单总线上“偷”一点电(空闲时几μW,工作时几mW)存在芯片内电容中就可正常工作了,故一般不用另附电源。单总线上通常处于高电位(5V左右),每个器件都能在需要时驱动它。因此,挂在总线上的每个器件必须是漏极开路或者是三态输出的,这样,不工作时不会给总线增加功耗。

  单总线的数据传输有两种模式,通常以16.3kb/s的速率通信,超速模式可达142kb/s。因此,只能用于对速度要求不高的场合,一般用于100kb/s以下速率的测控或数据交换系统中。

  以上内容是单总线技术协议所要求的,各种芯片都具备这些基本内容,然后才进入某种具体的芯片功能,如A/D转换器、温度计等。应当指出,单总线技术作用距离在单片机I/O直接驱动下可达200m,经扩展可达1000m以上,允许挂上百个器件,能满足一般测控系统的要求。

2. 处理次序

  处理次序是软件设计的任务。在单总线系统中,软件设计是技术的关键。简洁的硬件配置是靠复杂的软件来支撑的。在PC机作主控机时,单总线软件设计基于Dallas公司授权的软件开发商提供的成套开发工具,为软件开发应用带来很大的便利。而用单片机作主控机时,得由自己依据单总线协议,用汇编语言和C语言来编写全部软件,给开发应用增加了一定的难度。

  处理次序保证数据可靠的传送,任一时刻单总线上只能有一个控制信号或数据。处理次序操作时,一般有以下四个过程:① 初始化;② 传送ROM命令;③ 传送RAM命令;④ 数据交换。

  单总线上所有处理都从初始化开始。初始化时序由总线命令者发出的复位脉冲和一个或多个从者发出的应答脉冲组成。“应答脉冲”是从者让总线命令者知道某器件是在总线上,并准备工作。其信号波形如图2所示。

图2  单总线的时序信号波形

  当总线命令者检测到某器件的存在,就会发出传送ROM功能命令。单总线协议规定其层次结构如图3所示。

图3  ROM的功能层次结构

  单总线命令者首先必须发送7个ROM功能命令中的一个命令:① 读ROM(总线上只有一个器件时,如读DS2401的序列号);② 匹配ROM(总线上有多个器件时,寻址某个器件);③ 查找ROM(系统首次启动后,须识别总线上各器件);④ 跳过ROM(总线上只有一个器件时,可跳过读ROM命令直接向器件发送命令,以节省时间);⑤ 超速匹配ROM(超速模式下寻址某个器件);⑥ 超速跳过ROM(超速模式下跳过读ROM命令);⑦ 条件查找ROM(只查找输入电压超过设置的报警门限值的某个器件)。这些操作在手册中都有具体的命令码供编程使用。当成功执行上述命令之一后,总线命令者可发送任何一个可使用的命令来访问存储和控制功能,进行数据交换。所有数据的读写都是从最低位开始的。

3. 单总线信号

  单总线传送数据或命令是由一系列的时序信号组成的,单总线上共有4种时序信号:① 初始化信号;② 写0信号;③ 写1信号;④ 读信号。图2给出了常规模式下这4种波形的示意图。各器件的应用手册中对这4种波形参数(如脉冲上升时间、宽度和间隙等)都作了具体的要求,设计中应保证指令执行时间小于或等于时序信号中的最小时间。这部分软件必须用单片机的汇编语言进行编程,以确保严格的时间关系,且注意当单片机工作频率不同时,单总线的时延值是不同的。

  根据单总线的时序信号波形,用汇编语言写出接口程序,C51将其作为外部函数调用即可。C语言的外部调用函数声明如下:

  extern WDS(unsigned char x); /* 写单总线命令外部函数声明 */
  extern RDSCRC8(unsigned char pt,unsigned char num);/*读单总线数据外部函数声明*/
  extern bit RTDS(void);/*复位单总线外部函数声明*/
  extern Delay15(unsigned char n); /* 延时15μs外部函数声明 */

  例如,对于单总线上的器件要读其序列号,用0x33H命令,程序如下:

  if (RTDS()!=1) {;} Delay15(0x1f);
  WDS(0x33); RDSCRC8(temp,8);while(1){}; /* Read serial number */

  这段程序首先对单总线发复位,然后再对单总线写0x33H命令,最后从单总线上读取64位的序列号,存入Temp变量中。

二、 单总线器件

  单总线系统中配置的各种器件是由Dallas等公司提供的专用芯片来实现的。专用芯片的种类和型号很多,可以参阅Dallas公司的数据手册和光盘,也可从互联网上访问。这里简单介绍常用的典型芯片。

1. 数字温度计

  DS18S20 Dallas公司提供了多种数字温度计,如DS1820、DS18B20。下面是其新推出的DS18S20的主要特性。

  · 温度测量范围:-55~+125℃;
  · 分辨率:±0.5℃(-10~+85℃时);
  · 温度值输出:9位二进制数字量;
  · 转换时间: 750ms(最大值);
  · 用户可设置报警温度的上下限;
  · 不需外围电路,电源可由单总线提供;
  · 两种封装形式: 3端PR-35塑封或8脚SOIC封装。

  该温度计采用了与众不同的原理,是利用温敏振荡器的频率随温度变化的关系,通过对振荡周期的计数来实现温度测量的。为了扩大测温范围和提高分辨率,使用了一个低温系数振荡器和一个高温系数振荡器分别进行计数,并采用了非线性累加器等电路来改善线性,故此DS18S20具有上述良好的特性,而且售价低廉。

2. A/D转换器

  在单总线上直接挂上A/D转换器,会使系统的检测功能大大增强。各种物理量只要通过传感器变为电压量,就可由A/D采集后经单总线送到计算机进行处理。Dallas公司1999年推出的DS2450就是这样的A/D转换器,其主要特性为:

  · 4路模拟输入通道,两种模拟输入量程为0~2.56V和0~5.12V;
  · 未用做输入的通道可作为输出通道使用;
  · 一个数据口,以16.3kb/s的速率通信,超速模式可达142kb/s;
  · 逐次逼近的变换原理,可选择的8位转换精度;
  · 响应模拟电压超门限报警设置;
  · 不用另接电源和外围电路;
  · 8脚SOIC封装。

  这样,温、湿度的检测也可改用A/D转换器DS2450和模拟式温、湿度传感器串接来实现。同理,其他类型的传感器,如防火、防盗等传感器,其输出电压也可由A/D判定来报警。

3. 可寻址控制开关

  在测控系统中,开关量控制是应用最多的。对计算机来讲,只要送出一位0或1控制码信号,就可用它去触发被控电路。通常是先触发光电耦合器,然后启动继电器、晶闸管或固体继电器,视被控设备功率大小选用合适的开关器件。

  Dallas公司提供了一些可寻址的控制开关,如DS2405、DS2406、DS2409等。DS2405的主要特性为:

  · 由单总线上数据决定漏极开路输出的逻辑电平作为开关控制信号,如图4所示;

图4  可寻址开关DS2405原理示意图

  · PIO引脚吸收能力大于4mA,0.4V;
  · 不用外接电源;
  · 三种封装形式:TO-92三脚塑封;SOT-223四脚平面封装和C-Lead六脚表面安装封装。

4. 硅序列号DS2401

  该芯片实际上是块符合单总线协议的ROM硅片,厂家在其中写入了惟一的序列号,用做寻址定位的标识。图5中的电子门锁和防非法侵入,都使用了DS2401。DS2401广泛用于位置判定、身份识别和巡检监督等场合。

图5  单总线环境状态监控系统布局示意图

5. 防静电保护二极管

  在单总线线路的末端,为防止处在开路状态易受静电等干扰侵入,通常都接上DS9502之类的防静电(可高达27kV)保护二极管。

三、 单总线应用

  用单片机实现单总线应用,硬件连接简单,单片机并口P1、P2、P3中的任一位I/O端口都可以与单总线进行双向数据传输。用单片机对单总线系统进行现场长期监控是最经济实惠的方案,而且还可通过RS-232(或485)串行口与上位机PC连接,这样还能在Windows平台上进行更高一级的软件管理。单总线技术可广泛应用到社会各领域,这里只列举了环境状态监控的应用情况,其方法也完全可以应用于其他领域。

  环境状态监控系统通常用于程控通信机房、精密仪器室、档案馆、库房、宾馆客房、无人值守站、变电站等场所,实时监测现场环境中的温度、湿度、烟雾、浸水及非法侵入等情况,根据设定值自动报警并驱动相关执行器件。这是计算机在测控领域中典型应用的实例。通常的设计方案是选用一块性能符合要求的多路数据采集(A/D)卡,与单片机的并行口相连,再把各种传感器送来的模拟信号经多路转换开关连到A/D上,变成数字信号后交给计算机进行处理。这样设计至少有两大缺点:其一,要拉一大把线才能把现场传感器的信号送到采集卡上,布线施工麻烦,成本也高;其二,线路上传送的是模拟信号,易受干扰和损耗。因此,这种方案的性能价格比较低。

  采用单总线技术设计环境状态监控系统,只要一条双绞线(一根为信号线,一根为地线)从单片机拉向监控现场,然后将各种监控对象挂在其上就可以了,其示意图如图5所示。图中只画出了一个监控现场的配置,其布线接头与通常电话线路用的一样,插入和拔出都很方便。

  图5中的系统可监控室内温、湿度。因为温度计为直接数字输出,不需A/D转换器。湿度计、烟雾传感器、红外传感器和浸水报警需要A/D转换器进行判别。当温、湿度超过设定值就会通过开关DS2405来开启空调机、去湿机。烟雾传感器用做防火报警,当其输出电压超过A/D设定门限时就发出报警。对于红外式传感器,当有人侵入室内时,其输出电压可由A/D判知并告警。对于浸水报警,当置于地面上的探测器被水淹而短路,接通了监视电路,被计算机查询到后就会发出浸水报警。

  电子门锁和防非法侵入都是用DS2401序列号设计的。正常情况下,只有用对应的序列号钥匙才能打开房门。若非法侵入,门窗位移使磁控开关接通设置的序列号,则会发出报警。

结论

  综上所述,单片机单总线技术比采用传统的方案具有较高的性能价格比。而且,可以看出该技术具有以下特点:适用于低速测控场合;测控对象越多越显示其优越性;性价比高;硬件施工、维修方便;抗干扰性能好;具有CRC校验功能,可靠性高;软件设计规范;系统简明直观,易于掌握。因此,积极推广单总线技术的应用会有较好的经济效益和社会效益。

参考文献

1  Dallas. Products data Book,1999(光盘版)
2  Dallas. Application Net Book,1999(网络版)
3  吴江,陈尚松.单总线技术在测控系统中的应用. 电测与仪表,1999(9)
4  吴江,陈尚松.用单总线技术设计环境状态监控系统. 电子技术应用,2000(6)

来源:单片机与嵌入式系统应用   作者:信息产业部电子五所 黄宇飞 吴江;桂林电子工业学院 秦旭 陈尚松  2006/2/12 0:00:00
栏目: [ ]

相关阅读

安森美推出新的高功率图腾柱PFC控制器,满足具挑战的能效标准

动态功耗低至60μA/MHz!助力设备超长续航,首选国民技术低功耗MCU!