在嵌入式设计中添加双向I2C数字隔离

news2024/10/6 18:23:52

嵌入式开发工程师曾使用光电耦合器进行I2C隔离。这些电路有些复杂,对总线电容敏感,并且速度有限。它们也与具有标准CMOS输入电平的高速数字隔离器不兼容。

嵌入式开发工程师思想展示了如何将标准的高速数字隔离器转换为双向I2C隔离器。除了与数字隔离器兼容之外,该电路比以前发布的解决方案更简单,对总线电容完全不敏感,并且可以轻松支持标准的400KHz最大I2C总线速率。

标准I2C SDA和SCL信号由漏极驱动器驱动。在所有情况下,SDA都可以由总线上的任何设备驱动,以便SDA总线将信息从I2C主设备传递到从设备,并将信息从从设备传递到主设备。即,数据传输是双向的。在某些情况下,SCL仅具有I2Cmaster的驱动程序。

但是,在许多情况下,例如多个I2C主设备,或者如果从设备需要在检索数据时将其保持为低电平来扩展SCL,则SCL线也必须是双向的。

对于需要双向传输的电线,如果插入数字隔离器,则存在几个问题;隔离器必须开漏,并且可能发生闩锁情况。例如,如果A侧驱动器拉低,则隔离器A在B侧拉低。

这会导致隔离器B在A侧拉低,并且两个隔离器都拉低时电路锁存。通过将肖特基二极管与隔离器输出串联可以很容易地解决开漏问题,但是闭锁问题要难得多。

解决该问题的先前尝试是使用光耦合器输入固有的二极管和附加电路来避免闭锁情况。这些方法中的一些对总线电容敏感。

由于光耦合器的响应较慢,它们往往会变慢。最后,当使用具有标准CMOS输入电平的高速数字隔离器时,使用光耦合器的二极管输入的电路技巧就不再适用。

使用数字隔离器

的电路下图1显示了使用Silicon Laboratories,Inc.的Si8442高速隔离器的完整电路。该电路在SCL和SDA线上假设有1K上拉电阻。可以很容易地针对其他总线上拉电阻进行调整。该电路已经过SiliconLaboratories,Inc. C8051Fxxx系列MCU的测试,总线速度约为300KHz,包括需要SCL时钟拉伸的总线事务。

图1:二极管D1A,B和D2A,b将Si8442的推挽输出转换为漏极开路。

通过使用比较器检测非隔离侧(A侧)是否引起隔离侧(B侧)的低电平,解决了上述闩锁问题。晶体管Q1和Q2充当比较器。如果B侧的低电平是由A侧的低电平引起的,则Q1或Q2将不会导通,这是因为二极管D2A,B和R1或R2两端的压降,并且该低电平不会传播回A侧,从而破坏了锁存条件。

如果B侧的低电平是由B侧的漏极开路驱动器引起的,则Q1和Q2确实会导通,并且该低电平会传播。请注意,比较器电路仅需在一侧使用,并且可以在A侧或B侧使用。A侧的电压电平完全符合I2C要求,没有比较器电路的一侧无需特殊考虑。

对于B侧,使用比较器电路时,隔离器的输出不应打开比较器,但漏极开路驱动器必须打开比较器。比较器的阈值由分压器R3,R4和R6,R7设置。二极管D3A,B提供温度补偿以匹配二极管D2A,B。

根据所示的组件值,比较器阈值约为0.28V。肖特基钳位下拉至大约0.5V,开漏驱动器通常下拉至0.1V,因此比较器阈值很好地居于这些值之间。

如果总线上拉电阻不是1K,则Vdd电压不是3.3V,或者带有比较器的那一侧的驱动器不能拉到0.2V以下,则需要调整电路。必须将隔离器的下拉电阻(由二极管D2和R1或R2确定)调整为与连接到B侧总线的设备的逻辑低电平兼容。

比较器阈值由D3(跟踪D2)和分压器R3 / R4或R6 / R7设置。将比较器阈值调整为隔离器电路的下拉和B侧I2C总线上的其他I2C电路的下拉之间的中间位置。

电路性能

隔离电路引入的从A面(非隔离面)到B面(隔离面)的传播延迟对于上升沿和下降沿均可以忽略不计(<50nsec)。这是因为在这个方向上,比较器不在路径中并且不会引入延迟。

对于下降沿,随着晶体管开启,延迟约为50nsec。对于上升沿,由于晶体管关闭,会有大约250nsec的延迟。还要注意,在这种情况下,输入波形的最终上升被延迟了,因此,当波形超过典型的1V CMOS逻辑阈值时,偏斜很小。

该电路引入的增加的延迟与I2C或SMBus操作兼容,速度高达400KHz。因此,与传统实现相比,使用数字隔离器进行I2C隔离为嵌入式开发工程师带来了许多好处。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1041274.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

visual studio的安装

visual studio是一款很不错的c语言编译器 下载地址&#xff1a;官网 点击后跳转到以下界面 下滑后点击下载Vasual Sutdio&#xff0c;选择社区版即可 选择位置存放下载文件后&#xff0c;即可开始安装 安装时会稍微等一小会儿。然后会弹出这个窗口&#xff0c;我们选择安装位…

Mycat管理及监控

Mycat管理 -h 是你自己的ip地址 相关命令及含义 Mycat-eye(图形化界面监控) 仅限于Linux系统

2023年【北京市安全员-C3证】考试技巧及北京市安全员-C3证模拟试题

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 2023年北京市安全员-C3证考试技巧为正在备考北京市安全员-C3证操作证的学员准备的理论考试专题&#xff0c;每个月更新的北京市安全员-C3证模拟试题祝您顺利通过北京市安全员-C3证考试。 1、【多选题】下面属于违章作…

小程序中Echarts实现隐藏x轴,y轴,刻度线,网格

参考了大佬的链接 首次在小程序中使用echarts踩了一些小坑做个记录&#xff0c;希望可以帮到同样踩坑的同学 这里以柱状图作为例子&#xff0c;扁扁的柱状图什么线都没有了 xAxis: {show:false, // 不显示坐标轴线、坐标轴刻度线和坐标轴上的文字axisTick:{show:false // 不显…

css实现渐变电量效果柱状图

我们通常的做法就是用echarts来实现 比如 echarts象形柱图实现电量效果柱状图 接着我们实现进阶版&#xff0c;增加渐变效果 echarts分割柱形图实现渐变电量效果柱状图 接着是又在渐变的基础上&#xff0c;增加了背景色块的填充 echarts实现渐变电量效果柱状图 其实思路是一…

如何使用ArcGIS Pro直接获取道路中心线

以前使用ArcGIS获取道路中心线&#xff0c;需要先将面要素转换为栅格再获取中心线&#xff0c;现在我们可以通过ArcGIS Pro直接获取道路中心线&#xff0c;这里为大家介绍一下获取方法&#xff0c;希望能对你有所帮助。 新建地理数据库 在存储数据的文件夹上点击右键&#xff…

基础运维(一)YUM仓库

一 自定义YUM仓库 1 Yum仓库特点 作为yum源需要准备的内容 大量的rpm 软件安装包文件针对这些软件包的 repodata/ 仓库档案 repodata/ 仓库档案数据 filelists.xml.gz // 软件包的文件安装清单primary.xml.gz // 软件包的基本/主要信息other.xml.gz // 软件包…

ROS2 从头开始:第 08/8回 - 使用 ROS2 生命周期节点简化机器人软件组件管理

一、说明 欢迎来到我在 ROS2 上的系列的第八部分。对于那些可能不熟悉该系列的人,我已经涵盖了一系列主题,包括 ROS2 简介、如何创建发布者和订阅者、自定义消息和服务创建、

44.java教程

目录 一、Java 教程。 &#xff08;1&#xff09;我的第一个 JAVA 程序。 &#xff08;2&#xff09;Java 简介。 &#xff08;2.1&#xff09;java简介。 &#xff08;2.2&#xff09;主要特性。 &#xff08;2.3&#xff09;发展历史。 &#xff08;2.4&#xff09;J…

Tomcat9 AJP 任意文件读取和文件包含漏洞(CVE-2020-1938)

Tomcat9 AJP 任意文件读取和文件包含漏洞&#xff08;CVE-2020-1938&#xff09; 文章目录 Tomcat9 AJP 任意文件读取和文件包含漏洞&#xff08;CVE-2020-1938&#xff09;1 在线漏洞解读:2 环境搭建2.1 修改端口80892.2 环境启动&#xff1a; 3 漏洞复现 1 在线漏洞解读: ht…

web服务基础

前言&#xff1a;web服务怎么做&#xff0c;怎样使用&#xff0c;这是一个长期的任务 1、DNS解析原理 在windows 客户端查看本地缓存的DNS解析记录 C:\Users\86157>ipconfig /displaydns #其中这两个字符之间会有空格 在windows11 中的命令行运行结果如下 清除win客户端…

LeetCode力扣09:回文数

回文数 代码实现 代码1是使用将整形数字倒置来进行对比&#xff0c;最后得出答案 class Solution(object):def isPalindrome(self, x):""":type x: int:rtype: bool"""if x<0:return Falseres0oldxwhile x:ax%10resres*10ax//10return reso…

K8S入门前奏之VMware虚拟机网络配置

为了能在本地搭建 K8S 的运行服务器&#xff0c;在个人电脑上安装了虚拟机VMware16版本&#xff0c;并且在阿里巴巴开源镜像站下载了CentOS-7操作系统&#xff1a;阿里巴巴开源镜像站 做完一些列准备工作后&#xff0c;在虚拟机安装完CentOS-7操作系统后&#xff0c;需要对VMw…

数据结构题型10-链栈

//参考博客&#xff1a;https://blog.csdn.net/weixin_37716512/article/details/104068102 #include <iostream> //引入头文件 using namespace std;typedef int Elemtype;#define Maxsize 10 #define ERROR 0 #define OK 1typedef struct Linknode {Elemtype data;…

jar包在linux服务器已经运行好,但是访问不到地址

jar包在linux服务器已经运行好&#xff0c;但是访问不到地址 1.将jar包已经上传到linux服务器&#xff0c;并且已经启动 2.但是在本地访问的时候&#xff0c;访问不到,云服务的的安全组策略也开放了相对应的端口。 3.解决方案 修改防火墙开放的接口 iptables -I INPUT -p t…

监控与运维,主流it运维监控工具

IT监管和运行维护已成为企业经营的关键环节。本文将详细介绍IT监管和运行维护的必要性、主要功能和实施策略&#xff0c;帮助企业实现数据安全和高效运行。 IT监管和运行维护的必要性 确保企业数据安全 IT监控系统可以实时监控企业网络、服务器、存储等关键设备的运行情况&…

[架构之路-222]:邮件服务与协议:POS3和SMTP

目录 网络架构&#xff1a; 联系&#xff1a; 区别&#xff1a; 网络架构&#xff1a; SMTP&#xff08;Simple Mail Transfer Protocol&#xff09;和 POP3&#xff08;Post Office Protocol version 3&#xff09;是用于电子邮件传输和接收的两种不同的协议。它们在不同的…

两大电商为苹果作证,iPhone15销量倍增,销量遥遥领先并非虚言

苹果的零售店再次出现排队抢购iPhone15的现象&#xff0c;显示出iPhone15的受欢迎程度&#xff0c;不过也有人质疑排队现象&#xff0c;不过日前两大电商则为苹果提供了证明&#xff0c;显示出iPhone15的销售情况确实相当火爆。 某外卖平台的电商业务公布的数据指北上广深杭五大…

从零实现邮件中继服务

背景目的验证准备前提前置过程网络约束节点信息账号信息 具体验证过程转发测试相关问题 背景 在当前现场环境中&#xff0c;我们面临着一个重要的问题。我们的系统部署在一个内网环境中&#xff0c;邮件告警模块需要连接公网的邮件服务器以便发送邮件来及时通知我们关键事件和…

【KMP算法】C++

KMP算法的原理是通过构建部分匹配表&#xff0c;来利用已经匹配过的信息&#xff0c;避免不必要的回溯。部分匹配表是一个长度与模式字符串相等的数组&#xff0c;用于记录在每个位置上的最长公共前后缀的长度。 这样图片完全表达了KMP算法的核心思想&#xff0c;出处来自添加链…