0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

通过调节上拉电阻来提高1-wire总线器件的驱动能力

电子设计 来源:单片机与嵌入式系统应用 作者:朱立强 , 金晖 2021-05-05 09:53 次阅读

Dallas公司生产的集成电路中,广泛应用了1-wire总线。主机只需1根连线就可以把一个或数个1-wire总线器件连接起来,实现有效可靠的数据通信。但是,在使用1-wire总线驱动多个器件、连接电缆线较长的场合,它的驱动能力是否适应;或者说,应该如何提高1-wire总线器件的驱动能力? 本文就此问题进行分析和实验。

1 1-wire总线简介

从 Dallas公司提供的图1所示读写时序图可以看出,主机读DS18B20 时,首先应该把线拉低至少1μ s,然后在15μs内读总线的逻辑状态(t0~t1)。DS18B20 则在主机拉低总线1μs内开始输出数据,如果为0,继续拉低总线,并在15~60μs(t1~t2)之间释放总线(典型值为30μs),由上拉电阻把总线拉至高电平;如果数据位为1,则在主机拉低总线1μs后,DS18B20 的DQ端呈现开漏状态,一旦主机释放总线,上拉电阻就把总线拉至高电平。在60μs(t2)之后,1-wire总线还必须继续保持高电平至少1μs,作为两个数据位之间的分隔(称之为“恢复时间”)。由此可见,为了保证所读数据的可靠性,89C2051必须在15μs前读取总线的逻辑状态。

图1 1-wire总线读写时序图

主机在对DS18B20进行写入操作时,首先应该拉低1- wire总线至少1μs 。然后,如果写入数据位是 0,则继续拉低总线至60μs结束(t2);否则就释放总线,由上拉电阻把总线拉成高电平。而DS18B20则在15~60μs之间(t1~t2)读入数据(典型值为15μs)。同样,在60μs之后(t2),1-wire总线还必须继续保持高电平至少1μs,作为两个数据位之间的分隔。

2 实验电路参数的分析与实验结果

以1-wire总线的数字温度集成电路DS18B20与单片机89C2051 为例,其接口电路如图2所示,时钟频率为12MHz 。89C2051的P1.0口与DS18B20的DQ相连。1-wire总线器件的DQ口(数据口线)都为开漏结构,以便可以在1-wire总线上挂接多个DS18B20。因此,在1-wire总线上应该加接1个上拉电阻,文献推荐值为4.7kΩ。笔者使用2 m长的4芯屏蔽电缆连接89C2051 和DS18B20 ,其中一芯以及外屏蔽单端接地,其余分别为VCC、GND 和DQ 。经测试,DQ线到地的分布电容为131pF/m 。为了能够测试1-wire总线的驱动能力,在DQ线上加接电容,以便近似地模拟长电缆,等效电路如图3所示。可以通过选择上拉电阻的值,合理安排 t0~t1和t0~t2两个时间段,以提高1-wire总线器件驱动长总线的能力。自然,上拉电阻越小,其拉动1-wire总线的能力就越大,但是要受到 DS18B20的低电平吸入电流的限制。综合考虑各种因素,选取上拉电阻值为1.5kΩ。

图2 89C2051与DS18B20接口电路

图3 1-wire总线逻辑电平转换时的等效电路

电工学可知,图3(a)中电容C上的电压为

在t0~t1阶段,由 89C2051拉低1-wire总线并保持至少1μs。89C2051的I/O口输出低电平时可吸入20mA的电流,其内阻因是非线性特性,不会大于 50Ω。DS18B20的逻辑0输入电平最大可为0.8V;89C2051为0.9V,取 VC = 0.8V,VCC = 5V。把上述数据代入方程(4),取负载电容C = 10nF,可以得到t =0.9μs;加上SETB指令需时1μs ,稳定所需时间(至少1μs),取t0~t1 = 3μs。

在t1~t2阶段,无论是89C2051还是DS18B20输出0电平,由于总线电平已经是0电平,不存在阶跃问题,所以不必计算。

如果是逻辑1,不管是由89C2051还是由DS18B20输出, 两者的输出FET均为开漏状态(89C2051有弱上拉,可以忽略),由上拉电阻把1-wire总线从0电平上拉到高电平。可以用于把总线从0电平上拉到 1电平的时间t1-t2 = 15 - 3 - 1 = 11μs,其中1μs在读DS18B20时用于读操作,在写DS18B20时用来补偿指令MOV DQ,C所需的时间。DS18B20的逻辑高电平最低为2.2V,89C2051为1.9V,取VC = 2.2V 。

把上述数据代入方程(2),当上拉电阻为4.7kΩ时,可以算得C = 4.0nF;当上拉电阻为1.5kΩ时,C = 12.6nF,相当于96.5m长的屏蔽电缆。

3 实验结果

表1为实验数据,使用2m长的4芯屏蔽电缆,在总线上加接电容以模仿长电缆。

表1 1-wire总线器件驱动能力与上拉电阻的关系

从表1可以看出,实验结果与理论计算基本相符。由于实验条件的限制,测试是相当粗糙的。更细致的调节,可以使用示波器观察1-wire总线上的波形来对电路参数与程序进行微调,以求得到更好的结果。笔者曾以其它的定时关系编制了实验程序,其驱动能力均不如本程序。

责任编辑:gt

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 集成电路
    +关注

    关注

    5346

    文章

    10947

    浏览量

    355638
  • 单片机
    +关注

    关注

    6011

    文章

    44158

    浏览量

    624463
  • 总线
    +关注

    关注

    10

    文章

    2755

    浏览量

    87428
收藏 人收藏

    评论

    相关推荐

    电阻和下拉电阻的作用

    因素:1驱动能力与功耗的平衡。以上电阻为例,一般地说,
    发表于 05-22 08:46

    基于DS2432的USB口1-Wire总线适配器的设计

    电阻器,它可使USB口的D+端上拉到DS2490S的VB端,表示USB主机系统是高速设备,同时这个
    发表于 07-11 07:24

    基于C++模板技术的1-wire总线编程

    atmega48 的 uart 数据链路实现的 1-wire 总线总线具有枚举功能,其挂有多个 ds18b20 器件。ds18b20_
    发表于 11-22 23:40

    1-Wire时序的理解及配置

    /μs。DS2480B是强1-Wire驱动器。相比采用2.2kΩ
    发表于 11-12 00:17

    电阻的计算

    进行设定,主要需要考虑以下几个因素:1驱动能力与功耗的平衡。以上电阻为例,一般地说,
    发表于 05-12 08:24

    关于51单片机IO引脚的驱动能力电阻

    ,仅仅是在 P0 口才考虑加不加的问题:当用 P0 口做为输入口的时候,需要加上、当用 P0 口输出高电平驱动 MOS 型负载的时候,也需要加上,其它的时候,P0 口也不用加入电阻
    发表于 06-26 16:52

    电阻

    芯片,为了防止静电造成损坏,不用的管脚不能悬空,一般接上电阻产 生降低输入阻抗,提供泄荷通路。5、 芯片的管脚加上电阻
    发表于 08-28 09:27

    电阻

    芯片,为了防止静电造成损坏,不用的管脚不能悬空,一般接上电阻产 生降低输入阻抗,提供泄荷通路。5、 芯片的管脚加上电阻
    发表于 11-16 17:14

    电阻与下拉作用

    的输入。 -------电阻是用来解决总线驱动能力不足时提供电流的。一般说法是电流,下拉
    发表于 06-28 06:21

    微控制器和1-Wire温度传感器的软件接口

    3V至5.5V电源端的4.7kf2电阻提供。由于每个器件具有唯一的64位ROM识别码,所以挂接在总线上的
    发表于 12-17 11:29

    电阻和下拉电阻问题

    电阻的选择应结合开关管特性和下级电路的输入特性进行设定,主要需要考虑以下几个因素: 1驱动能力与功耗的平衡。以上电阻为例,一般地说,
    发表于 06-27 05:55

    如何访问1-Wire API

    任何组件在创建者实现这一点。有人知道如何访问1-Wire API吗?谢谢 以上来自于百度翻译 以下为原文I have been looking for a 1-wire component
    发表于 07-29 15:25

    请问我这样通过电阻提高IO驱动能力能行吗?

    这个是在书上截取的一段话,照这样下去,要提高IO的驱动能力,外部多并联几个电阻或者接一个小一点的
    发表于 08-02 04:36

    请问上电阻可以增加信号驱动能力吗?

    问题描述很简单,但是一直困扰我常听说上电阻可以增加信号驱动能力,那么本来就是驱动能力弱,再加上一个电阻,岂不是更加削弱了信号的
    发表于 08-28 02:12

    通过串行接口读写1-Wire器件

    本应用笔记介绍了1-Wire协议在新旧器件中的电气方面。一个特别的章节解释了如何为由新旧1-Wire从机组成的网络确定适当的时序参数。1-Wire母版概念部分提供了详细讨论
    的头像 发表于 02-21 17:21 1489次阅读
    <b class='flag-5'>通过</b>串行接口读写<b class='flag-5'>1-Wire</b><b class='flag-5'>器件</b>