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

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

3天内不再提示

如何使用微处理器的UART来实现1-Wire®总线主机

电子设计 来源:eeweb 作者:Maxim 2021-05-28 16:24 次阅读

本应用笔记说明了如何使用微处理器UART来实现1-Wire®总线主机。它包括所需的电接口,UART配置以及UART与1-Wire信号之间的时序关系的说明。设置UART字节时序提供的灵活性允许直接实现1-Wire时隙以及复位和在线检测脉冲。通过包含深度发送和接收FIFO,可以在1-Wire总线上传输几个字节值,而主处理器只需要每位几个时钟周期即可。

1-Wire器件为识别,存储,计时,测量和控制提供了经济的解决方案。1-Wire数据接口减小到绝对最小值,即一条数据线加上一个接地基准。由于大多数1-Wire器件提供的数据量相对较少,典型的16kbps数据速率足以满足预期任务的需要。通常以“位敲打”的方式使用8位或16位微控制器的通用输入/输出(GPIO)引脚作为总线主控器很方便。

但是,在32位系统中,处理器时钟频率通常超过100MHz,并且使用GPIO引脚作为1-Wire总线主机时,每个1-Wire位消耗大量时钟周期。在32位便携式系统中,在对1-Wire读写时隙进行定时时会消耗宝贵的电池电量。一些系统通过在其芯片组中包含DS1WM可合成1-Wire总线主控器*硬件模块,减轻了主处理器的位定时和字节成帧操作的负担。如果DS1WM或其他硬件1-Wire主端口不可用,则在有通用异步接收器发送器(UART)通道可用的情况下,与1-Wire器件的通信可以轻松完成。

本应用笔记包括所需的电气接口,UART配置以及UART与1-Wire信号之间的时序关系的说明。假定对1-Wire通信有一个一般的了解。在下面的讨论中将使用典型的时序和逻辑电平,读者应参考特定的1-Wire器件数据手册,以了解特定的时序和电压规格以及容差。

正确配置了波特率,每个字符的数据位,奇偶校验和停止位的数量后,每秒115,200位的UART提供了实现1-Wire主设备所需的输入和输出时序。UART产生1-Wire复位脉冲以及读和写时隙。微处理器只需将一个字节的字符代码放入UART发送寄存器中,以发送1-Wire 1或0位,然后UART即可完成工作。相反,微处理器读取与从1-Wire从器件读取的1位或0位相对应的单字节字符代码。所有1-Wire位传输都需要总线主机UART来通过将1-Wire总线驱动为低电平来开始周期。因此,每个1-Wire位周期包括UART发送的字节和接收的字节。读取时,接收到的数据是有意义的,但是写入时,接收字节被丢弃。根据UART的读取和写入先进先出(FIFO)缓冲区深度,UART还可以将1-Wire位成帧为字节值,从而进一步减少了处理器开销。

UART至1-Wire电接口

1-Wire器件在漏极开路环境下,总线电压范围为2.0V至5.5V。精确的逻辑电平和最小上拉电压取决于器件,尽管通常寄生功率器件要求最小上拉电压为2.8V,以便在数据线为低电平期间为用于供电的内部存储电容器充电。4.7kΩ电阻通常用作1-Wire数据线上的上拉电阻。电阻器被动地提供逻辑高信号,总线主机和所有从器件驱动逻辑低信号。器件通常具有弱内部下拉电阻,如图1的Ipd所示。

pIYBAGCwqCKADSr8AABZo23wy5g272.png

由于大多数UART发送数据(TXD)引脚都不是漏极开路的,因此通常需要一个外部漏极开路缓冲电路。该电路可以由如图2所示的分立元件构成,也可以采用如图3所示的FairchildNC7WZ07之类的集成解决方案。在这两个电路中,4.7kΩ上拉电阻在1-Wire总线上提供逻辑高电平。

o4YBAGCwqCuABSdcAABQpBLNrGY283.png

离散漏极开路缓冲器。

o4YBAGCwqDWAFcxbAAA2Jh4-qOc677.png

集成的漏极开路缓冲器。

编辑:hfy

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

    关注

    68

    文章

    18209

    浏览量

    221928
  • 缓冲器
    +关注

    关注

    6

    文章

    1566

    浏览量

    44854
收藏 人收藏

    评论

    相关推荐

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

    。  -Wire测量网络的实现需要与PC主机相结合,所以在1-Wire总线组成的测量网络中,网络适配器是必不可少的,它担负着
    发表于 07-11 07:24

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

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

    1-Wire时序的理解及配置

    本帖最后由 gk320830 于 2015-3-8 23:26 编辑 摘要:DS2480B是带有UART主机接口的1-Wire?主机(驱动
    发表于 11-12 00:17

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

    )。软件控制为了精确地控制1-Wire接口的特殊时序要求,必须先建立几个关键的函数。第一个函数应该是延时函数,它是所有读和写控制的组成部分。这个函数完全依赖于微处理器的速度。为了更好地理解,值此以
    发表于 12-17 11:29

    如何访问1-Wire API

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

    如何采用Verilog语言创建1-Wire主机

    如何采用Verilog语言创建1-Wire主机
    发表于 04-29 06:42

    DS2480B串行接口1-Wire 线驱动器的使用

    1-Wire®通信协议可以通过微处理器上的一个IO 引脚产生,不过,为了创建可靠的1-Wire 网络,必须提供正确的时序和适当的输出电压摆率。1-Wire
    发表于 04-18 10:14 57次下载

    嵌入1-Wire主机

    摘要:本应用指南阐述如何将1-Wire主机(1WM)嵌入到用户ASIC设计之中。本文包含了采用Verilog语言如何创建1-Wire主机例程的摘要。本文提到的DS89C200只是一个理
    发表于 04-30 14:14 916次阅读
    嵌入<b class='flag-5'>1-Wire</b><b class='flag-5'>主机</b>

    嵌入1-Wire主机

    摘要:本应用指南阐述如何将1-Wire主机(1WM)嵌入到用户ASIC设计之中。本文包含了采用Verilog语言如何创建1-Wire主机例程的摘要。本文提到的DS89C200只是一个理
    发表于 05-06 08:54 987次阅读
    嵌入<b class='flag-5'>1-Wire</b><b class='flag-5'>主机</b>

    用软件实现1-Wire通信

    摘要:在没有专用总线主机(如DS2480B、DS2490)的情况下,微处理器可以轻松地产生1-Wire时序信号。本应用笔记给出了一个采用‘C’语言编写、支持标准速率的
    发表于 05-08 12:02 2007次阅读
    用软件<b class='flag-5'>实现</b><b class='flag-5'>1-Wire</b>通信

    1-Wire双向电平转换器应用

    FPGA、微处理器、DS2482-100和DS2480B是常见的1-Wire主机器件。1-Wire/iButton从器件由Maxim生产,该系列器件的典型工作电压为2.8V至5.25V
    发表于 10-08 11:00 2415次阅读
    <b class='flag-5'>1-Wire</b>双向电平转换器应用

    1-Wire总线主机

    Abstract: Communication with 1-Wire slave devices requires a 1-Wire master. There are numerous ways
    发表于 10-19 17:02 53次下载

    实现隔离式1-Wire总线

    1-Wire总线在需要电气隔离的医疗设备中传感器和耗材的认证和校准中越来越受欢迎。本文以应用笔记4206“为嵌入式应用选择合适的1-Wire主机”为基础,介绍如何修改现有的
    的头像 发表于 01-17 10:39 2255次阅读
    <b class='flag-5'>实现</b>隔离式<b class='flag-5'>1-Wire</b><b class='flag-5'>总线</b>

    使用UART实现1-Wire总线主控

    本应用笔记解释了如何使用微处理器UART实现1-Wire总线主机。它包括对所需电气接口、
    的头像 发表于 03-29 11:28 2334次阅读
    使用<b class='flag-5'>UART</b><b class='flag-5'>实现</b><b class='flag-5'>1-Wire</b><b class='flag-5'>总线</b>主控

    为嵌入式应用选择合适的1-Wire主机

    本文讨论的电路为1-Wire主机控制器,它们均与1-Wire从器件通信。 但是,这些1-Wire主机控制器不能作为单独的主体,需要一个
    的头像 发表于 06-13 09:40 657次阅读
    为嵌入式应用选择合适的<b class='flag-5'>1-Wire</b><b class='flag-5'>主机</b>