单总线驱动能力电路的研究

时间:2022-07-14 08:52:48

单总线驱动能力电路的研究

【摘 要】 基于单总线器件DS18B20的粮库多点测温系统,由于单总线驱动能力不足,使得粮库内测温需增设额外的电缆和测温器件继而引发二次问题。本文主要研究如何提高单总线驱动能力,改善粮库测温问题。

【关键词】 单总线 DS18B20 多点测温系统

1 粮库测温现状

发达国家粮食存储或直接采用低温冷藏组织储存方式,不存在粮食温度检测问题。我国是粮食和人口大国,粮食储备量大,能源供应和相关技术还达不到发达国家水平,粮食温度检测历来是粮食储存中重要因素之一。近些年,随着嵌入式技术等的飞速发展,传统的纵横交错的粮库测温网络基本由无线测温系统替代。无线测温系统通常由主监控模块、嵌入式下位机监测模块和单片机测温器模块组成[1]。其中,粮仓内单总线测温方案如图1所示。

2 单总线粮库无线测温系统

单总线技术是采用一根信号线进行双向数据传输,适用于单个主机控制一个或多个从机设备的情况。其线路简单,占用主机资源少,成本低廉便于维护。如图1所示,一个规格为60*25*6m3标准粮仓,内部有11-13个测温器,每个测温器负责6条支路共24个测温点的温度采集,即单个粮仓需要的测温点为264个以上。实际上基于单总线器件DS18B20的粮库多点测温系统,由于受引线长度和负载能力的限制,粮仓内单总线测温方案不得不在粮仓内增加用单片机实现的测温数据的汇聚点。并不能实现理论上通过一条总线挂接264个DS18B20即可获取一个粮仓内所有测温点相关数据的方案。

2.1 单总线的原理

为提高单总线驱动能力,首先要了解单总线的基本原理。单总线的原理包括单总线硬件结构,单总线命令序列以及单总线协议三方面。其一,单总线硬件包括主控制器、连接电缆和单总线器件三部分,主控制器通过连接电缆与单总线器件进行数据通信(通信原理详见)。其二,单总线的典型工作流程(主要是相关命令序列):先初始化即复位单总线, 接着主机发送必要的ROM命令如选定某个单总线器件命令(有些ROM命令后要重新复位),然后是功能命令如发温度转化命令等。其三,每一个单总线器件都要求采用严格的通信协议,以保证数据的传输和完整。单总线串口总线协议中定义的信号类型有:复位脉冲、应答脉冲、写1、写0、读1和读0,具体的时序图参见相应器件的数据手册。

2.2 采用DS18B20进行粮库测温遇到的问题及分析

如图2所示,单总线将从属器件通过信号线和地线并联式挂着单总线上面即可进行通信。但是这种电路只能适合测温点少,检测距离短的场合。在很多实际应用中,温度检测点很多,测温点的分布很广,例如粮库中粮堆温度的检测,一个标准仓需要264个测温点,最远距离长达60m以上,还有桥梁温度的检测,测温点也多达数十个,距离也在数百米以上,这时,采用这样的连接方式,会得不到所期望的效果。其主要原因就是随着负载和传送距离的增加,使得负载电容增加,造成数据波形的畸变,此外,距离增加会导致传输网络阻抗不匹配,容易产生反射波,致使数据波紊乱,通信失败。

2.3 粮库单总线测温系统改进

经过多方面查阅资料和对单总线技术的研究,粮库单总线测温硬件改进电路采用如图3所示设计:主控制器STC89C58、驱动芯片74ACT244和一些门电路等器件一起组成[2]。单片机只用提供P1.0和P1.1与74ACT244驱动芯片连接,其中P1.0接口接74ACT244的使能端引脚1G和2G(低有效且内部加有反相器),分别控制驱动芯片的二组传输信号;P1.1为一线总线进行双向数据传输的信号线接口。P1.0为低(A组数据输入选通B组数据进入高阻态),主控制器通过P1.1口发送数据到A组输入,244将A组数据传到1Y1组,由1Y组输出到一线总线的对应的从器件DS18B20;P1.0为高(B组数据输入选通A组数据进入高阻态),则从器件发送数据,经过导线发送“线与”的结果到B组输入,由2Y4引脚输出再经由P1.1送达主控制器,详见74ACT244提供的芯片资料。这样就通过驱动芯片将P1.1口线(内总线)与从器件组成的一线总线网络(外总线)进行串行通信的信息的交流。实验结果证明这种方案,即采用74ACT244作为驱动芯片的一线驱动芯片连接方式是非常有效的。

粮库单总线测温系统对应的软件编写采用的是keil软件,STC-ISP软件负责程序的下载,串口调试助手软件用于显示温度。相应的软件程序的设计包括二个部分:DS18B20的编号和DS18B20的测温。在粮仓测温点众多的情况下,想了解具体的某个点的温度,需要对所有的测温点进行一个编码排序,因此对应点的DS18B20就会有一个自己的编号,这个编号就通过对其进行程序编码来实现。于是,在某个测温点的DS18B20损坏需要更换时,只需要通过编号找到它,换上一个新的跟它同样编号的DS18B20即可。多个DS18B20的测温读温比较复杂,其中很重要的一部分就是搜索ROM。匹配ROM后就可对相应的DS18B20器件进行温度转换和读温操作[3]。DS18B20的测温的主程序流程如图4所示。

粮库单总线测温系统硬件搭建并写好软件程序后,进行相关试验。试验包括三个方面:一是验证根据74ACT244驱动电路原理图,运用STC89C58作主控,普通双绞线电缆作传输线的单总线直线型拓扑结构下测温系统的承载能力;二是检测T型拓扑结构是否可行;三是在以上的基础上对粮库原测温方案提出改进意见。

如实验一:在200m长的一线网络电缆中挂接16个DS18B20测试,用串口调试助手可以读到所有DS18B20有效数据,但是再增加时,读取速度明显变慢,有时甚至不能读全所有的温度数据。实验一分析:由于每个DS18B20都需要一定的温度转换的时间,所以若采用串行逐个检测的方法,检测时间等于每个所需时间之和,一个大约需要700-900us,所以时间会显著增加。为此,修改DS18B20温度转换及搜索DS18B20 ROM序列的方法,改用先广播通知所有器件进行温度转换,然后再采用搜索序列码的方法来温度,即先跳过ROM(CCH),进行温度转换(44H),然后再开始搜索ROM(FOH)和匹配ROM(55H)来读序列号对应的DS18B20的温度(33H)。实验二:在280m长的一线网络电缆中挂接49个DS18B20测试可以得到有效数据,挂接50个总线上有其他4个DS18B20温度读数为0。实验二分析:后来发现,后来加上的DS18B20的生产批号与其它的不一致,因为DS18B20本身也在不断地改进,生产批次不同,有些技术参数会不太吻合,这是程序的时序等要做相应的调整,为了一致起见,将这几个批次不同的器件剔除后电路又恢复了正常。

在后续的实验中得到的最佳结果是:单总线直线型拓扑结构下,总线电缆长度280m时,总线上挂接62个DS18B20仍能正常读取温度数据,且此结果在改善传输电缆性能后仍有潜力。另外T型拓扑结构无法用于实际粮库多点长距离测温。

以上实验结果表明:根据74ACT244驱动电路原理图,运用STC89C58作主控,普通双绞线电缆作传输线的单总线测温系统的承载能力有很大的提高,能够很好的改善原粮库单总线测温遇到的问题。

3 结语

本研究得到的结论是,采用电流驱动电路,正确地使用4芯双绞线构成一线式网络,并采用直线式拓扑的方式的前提下,一线总线的长度可达到280m,其上可挂接62个DS18B20。根据此结论改善粮库测温系统结构后,从2010下半年起投入使用至今,除进行日常基本维护外,整个系统均能够正常稳定工作。

参考文献:

[1]郑长征,毛哲.多个DS18B20在粮库测温中的应用[J].自动化技术与应用,2006.11.

[2]张彦兵,刘永前,李义强.1-Wire总线驱动电路设计[J].传感技术学报,2006.08.

[3]夏莉英,陈雁.基于DS18B20的温度测控系统设计[J].微计算机信息,2011.01.

上一篇:浅谈变压器励磁涌流的识别方法 下一篇:大型井口平台隔水套管抗冰方案研究