一种基于微控制器的多路长距离一线总线主机驱动电路的制作方法

文档序号:11948284阅读:376来源:国知局
一种基于微控制器的多路长距离一线总线主机驱动电路的制作方法与工艺

本发明属于数据通信领域,特别涉及了由微控制器充当的主机与多路一线总线(1-Wire Bus)上的从机器件进行长距离通信的技术。



背景技术:

一线总线(1-Wire Bus)技术是达拉斯半导体(Dallas Semiconductor)公司设计开发的一种通信方式,主机与从机器件之间通过1条数据线进行双向数字通信。在实际应用中,主机通过1条双绞线(共2根线,下同)与多个从机器件进行双向数字通信。一线总线技术需要在数据线上接一只上拉电阻,在主机和从机都释放总线(即主机和从机都为高阻态,下同)时,由上拉电阻将数据线置成高电平。一线总线技术以其线路简单、硬件开销少、成本低廉、软件设计相对简单、拥有多种类型的从机器件而广泛应用于环境状态监测、居民小区监管、低速测控等领域。

一线总线技术有两个技术特点,其一是一线总线(指一线总线的数据线,下同)的高电平是上拉电阻起作用而形成的,电平上升速率比较慢;其二是一线总线上传送的数字信号的波形持续时间长度(即脉冲宽度)差别很大。从“复位”波形的最长大于480微秒到“读时隙”波形的最短小于15微秒。这两个特点成为制约一线总线传输距离的瓶颈。

以五类双绞线为例,每百米电阻和线间电容的标称值分别是9.5欧姆和5.6纳法,一线总线的上拉电阻典型值是4.7千欧,电源电压是5伏。不难算出,在线长100米时,4.7千欧的上拉电阻将接口电平从0伏上拉到接口高电平的最小值2.2伏,所需要的时间已大于15微秒,已不能满足“读时隙”的要求。

为延长一线总线的通信距离,双绞线必须能够快速充电、放电,以满足“1-Wire协议(1-Wire Protocol)”的时隙要求。

方案之一,减小上拉电阻的阻值。上拉电阻的阻值可以减小到1千欧左右,通信距离可达到300米。上拉电阻取更小的值则会将一线总线上的低电平电压值抬高到最高允许值以上,造成通信失败。对于一线总线上典型的从机器件数字温度传感器DS18B20(以下简称为“18B20”)来说,过小的上拉电阻即使不造成通信失败,也会使18B20的自身温升增加,测量误差增大。

方案之二,美信(MAXIM)公司(DALLAS公司已被MAXIM公司收购,产品仍以原型号形式出现)设计推荐了一款一线总线主机驱动电路,称为“性能优异的1-Wire网络驱动器(Advanced 1-Wire Network Driver)”,该主机驱动电路在减小上拉电阻的同时,控制一线总线上电平摆幅速率和对双绞线进行仔细的阻抗匹配。该主机驱动电路使一线总线的通信距离达到了500米以上。该主机驱动电路需要用微控制器的3个I/O口与其连接,这3个端口的操作时序需要相互配合,比较复杂,因此一个微控制器就难以组建起多路的一线总线。而一路一线总线在长距离的情况下,所挂接的从机器件数量就不能很多。



技术实现要素:

为了解决上述背景技术提出的技术问题,本发明旨在提供一种基于微控制器的多路长距离一线总线主机驱动电路,能够驱动多达8路的一线总线,并可以使每一路一线总线的通信距离达到700米以上。

为了实现上述技术目的,本发明的技术方案为:

一种基于微控制器的多路长距离一线总线主机驱动电路,包括八路双向三态缓冲器、8组T型电路、8组电流源电路以及8组保护电路;所述八路双向三态缓冲器包括A、B两组数据输入/输出端;所述A组数据输入/输出端的8个端口、8组T型电路、8组电流源电路、8组保护电路和8路一线总线是一一对应的;所述B组数据输入/输出端的8个端口分别与作为主机的微控制器的8个I/O口相连;八路双向三态缓冲器的使能端和方向控制端分别与微控制器的其他2个I/O口相连;每组T型电路均包括第一二极管、第一电容、第四电阻和第五电阻;所述第四电阻的一端与第一二极管的阴极相连,第四电阻的另一端与第五电阻的一端相连,第五电阻的另一端与第一二极管的阳极相连,第一电容的一端与第四电阻和第五电阻的公共端相连,第一电容的另一端接地;每组保护电路均包括第二二极管和第三二极管;所述第二二极管的阴极接入电源正极,第二二极管的阳极与第三二极管的阴极相连,第三二极管的阳极接地;八路双向三态缓冲器A组数据输入/输出端的8个端口分别与对应的T型电路中的第一二极管的阴极相连;8组电流源电路的输入端接入电源正极,8组电流源电路的输出端分别与对应的T型电路中第一二极管的阳极和对应的保护电路中第三二极管的阴极相连;8路一线总线的数据线的一端分别与对应的保护电路中第三二极管的阴极相连,8路一线总线的数据线的另一端分别与相应的从机器件相连。

基于上述技术方案的优选方案,每组电流源电路均包括第一三极管、第二三极管、第一电阻、第二电阻和第三电阻;所述第一三极管的发射极连接第二电阻的一端,第二电阻的另一端连接电源正极,第一三极管的集电极连接第一电阻的一端,第一电阻的另一端接地,第一三极管的基极和集电极相连,第一三极管的基极与第二三极管的基极相连,第二三极管的发射极连接第三电阻的一端,第三电阻的另一端连接电源正极,第二电阻、第三电阻与电源正极的连接点是电流源电路的输入端,第二三极管的集电极是电流源电路的输出端;第一三极管和第二三极管均为PNP型三极管。

基于上述技术方案的优选方案,所述八路双向三态缓冲器采用型号为74HC245的集成电路。

基于上述技术方案的优选方案,所述八路双向三态缓冲器采用型号为74AC245的集成电路。

基于上述技术方案的优选方案,所述第一二极管、第二二极管和第三二极管均为肖特基二极管。

采用上述技术方案带来的有益效果:

(1)采用本发明设计的主机驱动电路,主机可以驱动多达8路的一线总线,能够组成规模较大、成本低廉的一线总线网络;

(2)在本发明中,主机驱动8路一线总线,只需要占用微控制器的10个I/O口;

(3)在本发明中,主机驱动的每一路一线总线,在从机器件数量受到限制的情况下,与从机器件的通信距离均可达到700米以上;

(4)在本发明中,主机可以对8路一线总线上的所有从机器件同时发出复位指令、ROM指令和功能指令。

附图说明

图1是本发明的电路组成框图;

图2是本发明的具体电路组成原理图。

标号说明:

U1:八路双向三态缓冲器;

R1、R2、R3、R4、R5:电阻器;

D1、D2、D3:二极管;

T1、T2:PNP型三极管;

C1:电容器。

具体实施方式

以下将结合附图,对本发明的技术方案进行详细说明。

一种基于微控制器的多路长距离一线总线主机驱动电路,如图1、图2所示,包括:

(1)八路双向三态缓冲器U1:

U1有两组共16个数据输入/输出端,其中A1、A2、...、A8共8个为A组,B1、B2...、B8共8个为B组。U1有一个方向控制输入端D,当D端输入为高电平(逻辑1)时,数据由数据输入/输出端A组传向B组,即A1传向B1、A2传向B2、...、A8传向B8,此时A组的所有端口为输入,B组的所有端口为输出;当D端输入为低电平(逻辑0)时,数据由数据输入/输出端B组传向A组,即B1传向A1、B2传向A2、...、B8传向A8,此时B组的所有端口为输入,A组的所有端口为输出。U1还有一个使能输入端OE,当OE端输入为高电平(逻辑1)时,数据输入/输出端A组与B组之间为绝缘状态,A组、B组的所有端口均为高阻态;当OE端输入为低电平(逻辑0)时,数据输入/输出端A组与B组为正常传输状态。OE端的作用优先于D端。

U1的数据输入/输出端B组的8个端口分别与微控制器的8个I/O口连接,要求微控制器的这8个I/O口既能够进行并行的输入/输出操作,也能够进行每个I/O口单独的输入/输出操作。U1的D端和OE端这两个端口分别与微控制器的另外两个I/O口连接,要求微控制器的这两个I/O口能够进行每个I/O口单独的输入/输出操作。

(2)T型电路:

一共有8组T型电路(图1、图2中只画出了1组),对应8路一线总线。每组T型电路包括二极管D1、电容C1、电阻R4、电阻R5。R4的一端与D1的阴极相连,R4的另一端与R5的一端相连,R5的另一端与D1的阳极相连,C1的一端与R4和R5的公共端相连,C1的另一端接地。U1的数据输入/输出端A组的A1端连接到D1的阴极。

(3)电流源电路:

一共有8组电流源电路(图1、图2中只画出了1组),对应8路一线总线。每组电流源电路包括三极管T1、三极管T2、电阻R1、电阻R2、电阻R3。T1的发射极连接R2的一端,R2的另一端接到电源正极VDD(+5V)端,T1的集电极连接R1的一端,R1的另一端接地,T1的基极和集电极分别与T2的基极相连,T2的发射极连接R3的一端,R3的另一端接到VDD端,T2的集电极与T型电路中的D1的阳极相连。

(4)保护电路:

一共有8组保护电路(图1、图2中只画出了1组),对应8路一线总线。每组保护电路包括二极管D2、二极管D3。D2的阴极接入VDD端,D2的阳极与D3的阴极相连,D3的阳极接地,D3的阴极与电流源电路中T2的集电极相连,D3的阴极与DQ端连接。

上述各电子器件中,U1可选用的集成电路型号有74HC245、74AC245;T1、T2为PNP型小功率三极管;R1、R2、R3、R4、R5为小功率电阻器;D1、D2、D3为小功率肖特基二极管;C1为瓷片电容器。

从机器件有三根引线,分别是数据线、地线(也是电源负极)和电源正极引线。设双绞线的两端分别为A端和B端,双绞线中的一根线作为一线总线的数据线,其A端连接到DQ端,B端连接到从机器件的数据线;双绞线中的另一根线作为一线总线的地线,A端连接到GND端(接地),B端连接到从机器件的地线。从机器件的电源正极引线需要通过一根导线与VDD端连接。在实际应用中通常再用1条双绞线,该双绞线中的一根线,其A端连接到VDD端,B端与从机器件电源正极引线连接;另一根线,其A端连接到GND端,B端与从机器件地线连接。

下面以18B20作为从机器件为例,说明本发明电路的工作原理。

T0、T1、R1、R2、R3组成温度稳定性较好的电流源电路。在主机和18B20都释放总线时,电流源电路以比电阻上拉更快的速率将一线总线置成高电平。电流源电流值设计为4.5毫安。

在主机和从机都释放总线时,R5和C1串联组成双绞线的交流匹配阻抗。R5取值为100欧姆,C1取值为1000皮法。

主机和从机器件的通信距离超过500米后,仅靠电流源上拉已不能满足一线总线的时隙要求。为此本电路设置了R4和D1。在需要主机将数据线快速置成高电平的刚开始的一段时间内,U1的A1端口不是处于高阻态,而是处于输出高电平的状态,A1端输出的电流,通过R4、R5(R4、R5串联)流向DQ端,加快了对双绞线线间电容的充电速率。这里,A1端口输出高电平的持续时间TH,设计为略小于18B20“读1时隙”中所规定的,从主机释放总线到主机开始读的这段时间;A1端输出电流的最大值设计为:该电流值加上电流源的电流值,小于18B20输出低电平时所允许的最大灌入电流值。TH的时间长度是以微秒计的,计算表明,在TH时间段内,灌入一线总线上18B20(设一线总线上只接了1只18B20,且18B20为输出低电平状态)的电能量只有零点几微焦耳。实测表明,这种快速对双绞线线间电容充电的方法,对由18B20经过简单封装做成的测温探头的测温精度没有影响。

在主机拉低一线总线电平时,利用D1旁路R4、R5。D1较小的导通电阻快速对双绞线的线间电容的进行放电;D1较小的导通电压可以确保一线总线低电平电压值小于最高允许值。

D2、D3的作用是电压钳位和续流保护。

在本发明中,主机驱动一线总线的操作是通过微控制器对本电路的操作实现的,下面对几种基本操作进行说明:

(1)主机释放总线:是指主机同时释放所有8路一线总线(“一线总线”以下简称“总线”),微控制器向U1的OE端输出1位“1”数据(逻辑1,下同)即可。

(2)主机写0:是指主机同时将所有8路总线置成低电平,设在进行本操作之前,主机已处于主机释放总线状态,则微控制器的操作为:并行输出8位“0”数据(逻辑0,下同)“00000000”给U1数据输入/输出端B组的8个端口,再输出1位“0”数据给U1的D端,然后再输出1位“0”数据给U1的OE端。

(3)主机写1:是指主机将所有8路总线快速置成高电平,设在进行本操作之前,主机已处于主机写0状态,则微控制器的操作为:并行输出8位“1”数据“11111111”给U1数据输入/输出端B组的8个端口。

(4)主机读:是指主机并行读入所有8路总线上的1位电平数据(每路1位数据,高电平对应逻辑1,低电平对应逻辑0,下同)。设在进行本操作之前,主机已处于主机释放总线状态,则微控制器的操作为:输出1位“1”数据给U1的D端,再输出1位“0”数据给U1的OE端,然后并行读入U1数据输入/输出端B组8个端口的8位数据。

(5)主机单独读:是指主机单独读入某一路总线上的电平数据。条件和步骤基本同“主机读”,只是最后一步,微控制器单独读入U1数据输入/输出端A组中某一个端口的1位数据。

(6)主机单独写:是指主机单独对某一路总线写入1位(“1”或“0”)数据。这里要说明的是,在进行主机单独写操作时,对其他不进行写操作的各路总线,必须保持高电平输出。操作条件与步骤基本与“主机写0”和“主机写1”相同。例如,设8路总线编号是从第0号到第7号,第0号的数据对应8位数据的最低位(即最右边一位),则对第0号总线进行主机单独写1位“0”数据的操作,只需按照“主机写0”的操作步骤进行,并且将其中并行输出的数据改为“11111110”,即可。

(7)主机延时和主机判别:微控制器进行延时操作和判别操作。

利用以上几种基本操作,就可以实现对8路一线总线同步发指令、同步读数据,或对其中某一路一线总线单独发指令、单独读数据。例如,对8路总线上所有从机器件进行“复位”操作,按照“1-Wire协议”做如下步骤操作:

A.主机写0,然后延时最少480微秒,这里选择延时520微秒。

B.主机释放总线,然后延时15至60微秒,这里选择延时40微秒。

C.主机延时、循环判别8路总线是否都有应答低电平。如果总延时间达到320微秒后,某一路总线一直没有应答低电平,则说明这一路总线没有从机器件或全部损坏了。这里“延时、循环判别”是指主机读,然后检查读到的数据,对读到“0”数据的总线做出标记,延时几微秒,再主机读,然后再检查读到得数据,对读到“0”数据的总线再做出标记,这样不断循环,直到总延时时间达到320微秒。

D.主机延时30微秒,然后判别所有8路总线是否都是高电平,如果某一路总线是低电平,则说明这一路总线有从机器件损坏,在后续主机写操作中,主机对这一路总线只能单独写0,以免影响其他各路总线。

E.主机延时240微秒,复位操作结束。

以上实施例仅为说明本发明的技术思想,不能以此限定本发明的保护范围,凡是按照本发明提出的技术思想,在技术方案基础上所做的任何改动,均落入本发明保护范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1