使用 UART 实现 1-Wire 总线主控
出处:维库电子市场网 发布于:2023-09-28 17:35:09 | 443 次阅读
然而,在 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 所示。
由于大多数 UART 发送数据(TXD)引脚不是开漏引脚,因此通常需要外部开漏缓冲电路。该电路可以由分立元件构成,如图 2 所示,也可以使用如图 3 所示的Fairchild NC7WZ07等集成解决方案。在这两个电路中,4.7kΩ 上拉电阻在 1-Wire 总线上提供逻辑高电平。
分立开漏缓冲器。
集成开漏缓冲器。
版权与免责声明
凡本网注明“出处:维库电子市场网”的所有作品,版权均属于维库电子市场网,转载请必须注明维库电子市场网,//tgdrjb.cn,违反者本网将追究相关法律责任。
本网转载并注明自其它出处的作品,目的在于传递更多信息,并不代表本网赞同其观点或证实其内容的真实性,不承担此类作品侵权行为的直接责任及连带责任。其他媒体、网站或个人从本网转载时,必须保留本网注明的作品出处,并自负版权等法律责任。
如涉及作品内容、版权等问题,请在作品发表之日起一周内与本网联系,否则视为放弃相关权利。