USB实现隔离的四种方法分析

目前在办公室和家庭中使用的标准信息处理设备—个人电脑 (PC),使用通用串行总线(U S B) 与大多数外设进行通讯。标准化、低成本 及软件和开发工具的支持已使个人电脑成为医疗和工业应用很具吸引力的主处理器平台,但这些增长中的市场对安全性和可靠性要求 (特别是在电气隔离方面)与一直以来推动个人电脑发展的办公室环境有很大不同。

早期的个人电脑以串行和并行端口作为与外部世界连接的标准接口。这些标准是从最早的大型计算机继承而来的。另一个可用的通讯标准R S-232 接口,虽然速度慢,但因为可简单地实现所需要的鲁棒隔离,很适合医疗和工业环境。由于得到广泛使用并有良好的支持,人们容忍了其速度低和点对点的缺点。

USB接口已取代R S-232,成为个人电脑及其外设的标准端口,其特性几乎在所有方面都远远优于较老的串行端口。然而,对于要求隔离 的医疗和工业应用,由于实现隔离的难度大且成本高,USB一直主要用作诊断端口和临时连接。

本文讨论了对USB实现隔离的各种方法。值得特别介绍的是,ADI公司现提供了一个新的可选方案— ADuM41601 USB隔离器。这一突破性 产品可简单廉价地实现外设隔离(特别是D+和D-线的隔离),提高了USB在医疗和工业应用中的使用价值。

关于通用串行总线

USB是个人电脑的首选串行接口。该接口得到所有常用的商业操作系统的支持,且允许硬件和驱动器热插拔。一台主机可以集中星型方式连接多达127 个设备。许多数据传输模式可处理存储设备的大批量数据传输、流媒体的同步传输以及时间关键型数据的中断驱动型传输(如鼠标移动)等各类传输。 USB以三种数据传输速率运行:低速 (1.5Mbps)、全速 (12Mbps) 和高速(480Mbps)。该规范创建后强化了 消费应用,这些应用要求连接必须简单且具有鲁棒性,由控制器和物理层信令来解决复杂性的问题。

USB物理层只包含4条线:两条向外设提供5V电源和地,另外两条(D+和D-)构成可传 递差分数据的双绞线对(图1)。这些线也可传递 单端数据以及用无源电阻实现的空闲状态。当设备 连接到总线上时,无源电阻结构中的电流对传输速度进行协商,并建立无驱动的空 闲状态。数据被组织成数据帧或数据包,每帧可以包含时钟同步位、数据类型标识符、设备地址、数据有效载荷及包尾序列。

图1. USB的标准组成。

串行接口引擎(SIE) 在电缆的两端对这个复杂的数据结构进行控制,这个专用控制器(或作为更大控制器的一部分)实现USB协议,通常内置 USB收发器硬件。当某个外设首次连接到电缆上时,SIE在枚举,2期间向宿主计算机提供外设的配置信息和功率要求。在运行期间,SIE 把所有数据按照要求的传输类型格式化,并提供错误检查和自动故障处理。SIE处理总线上的所有控制流,并按需要使能和禁用线驱动器和接收器。主机 启动所有的处理业务,然后按明确规定的数据序列在主机和外设之间交换数据,包括数据损坏和出现其它故障的情况。SIE可以内建在微处理器中,因此它可能只有 D+和D-线与外设相连。实现这个总线的隔离面临几个挑战:

* 隔离器几乎总是单向器件,而D+和D-线是双向的。

* SIE不提供确定数据传输方向的外部方式。

* 隔离器必须与无源电阻的上拉和下拉功能兼容,即与隔离阻障两侧的电路匹配。

* 隔离USB的典型方法主要是设法回避上述挑战。

第一种方法: 使USB接口与需要隔离的设备完全分离(图2)。许多设备可把其它通用的串行总线与USB连接;图2中显示了R S-232与USB 的连接接口。SIE提供普通的串行接口功能;隔离是在低速串行线中实现的。但这种方法并不能利用USB的优势,所实现的是一个可热 插拔的串行端口。接口芯片可通过改变固件来实现定制,以识别外设,从而允许创建定制的驱动程序;但每个外设可能都需要一个定 制的适配器。除非该适配器是永久连在这个外设上,否则这将是维修人员的噩梦。此外,接口的速度将被限制在标准R S-232的速度,甚 至远低于低速USB的吞吐量。

图2.通过RS-232隔离。

第二种方法: 使用带有易隔离接口的独立SIE(图3)。市场上有几种产品(如SPI)使用快速单向接口把SIE连接到微处理器。数字隔离器 (如 ADuM1401C 四通道数字隔离器)可对SPI 总线实现完全隔离。由于SIE包含可通过SPI总线填充的缓冲存储器,SPI的运行速度在很大程度上可不依赖于USB的速度。SIE将与USB主机协商其可能的最高 连接速度,并以协商得出的总线速度分发数据,直到把缓冲中的数据传递完。此时,SIE会通知主机如果有更多的数据需要传送则重试,并留出时间使 SPI接口可为下一个传输循环重新填充缓存。虽然非常有效,这种方案通常要求修改外设驱动程序,并忽视内置在外设的微处理器中的 USB电路。该方案在元件和电路板尺寸方面的成本较高。

图3. 通过SPI接口隔离SIE。

第三种方法: 如果微处理器的SIE使用外部收发器,则可以对微处理器和收发器之间的数据和控制线进行隔离(图4)。但是,这种方式要求在SIE 和收发器之间有9条单向数据线。在高速数字隔离器中,这将带来极大的成本问题。此外,现有的速度最快的数字隔离器工作在约150M b p s,虽然远高于低速和全速 USB,但不能处理高速数据,限制了USB接口的速度范围。该方案与为微处理器SIE提供的USB驱动器完全 兼容,可降低开发成本,但需使用多个隔离通道致使实现成本高昂。此类收发器接口将被集成度要求日益提高的市场所淘汰。

图4. 隔离的外部USB收发器

第四种方法:直接在D+和D-线线中插入隔离(图5)。这种方式允许在现有的USB应用中添加D+/D-隔离,而无需重写驱动程序或增加冗余 SIE,同其它方法相比,这是一个很大的优点。但是,D+和D-线的隔离较为复杂,因为隔离器件必须能够像SIE那样处理控制流,允许 在隔离屏障两边使用上拉电阻,并确定传输速度。另外,其运行不应要求额外的设备驱动程序相关的开销。

图5. 隔离D+/D-线。

新型芯片级器件ADuM4160 USB隔离器解决了这些挑战性难题(图6),它支持低速和全速USB的D+和D-线直接隔离。

图6. ADuM4160的框图。

ADI公司的 iCoupler? 技术3 特别适合于构建USB隔离器。在开发USB隔离器时所面临的主要挑战是正确确定数据传输的方向,以及何时禁 用驱动器以让总线处在空闲状态。USB数据的面向数据包特性使我们可以使用一种简单的方法来确定数据方向,免去了整个SIE的开销。 当总线空闲时,上拉和下拉电阻使USB保持在空闲状态,缓冲器不再驱动总线

TA D u M4160监视总线的上游和下游部分,等待来自任何方向的跃迁信号。当检测到跃迁信号时,则对信号进行编码并传过隔离阻障。这些数据被解码之后, A D u M4160使能输出驱动器在电缆的另一段上进行传输。从第一次传送开始,由于数据流的方向已得到确认,A D u M4160 将禁用反向隔离通道。只要继续收到数据,隔离器就沿相同的方向继续传输数据。当USB数据包结束时,A D u M4160传输特殊 的数据—包尾序列。包尾序列包含非差分信号,而非差分信号不应包含在任何数据结构中。A D u M4160可以区分有效数据和包尾标识。包尾标识通知总线返回 空闲状态。然后,A D u M4160禁用输出驱动器,并开始监视上游和下游输入的下一次跃迁,该信号将决定下一次数据传输的方向。

此外,当发生总线错误时,看门狗定时器将使A D u M4160返回空闲状态。A D u M4160使用了基于跃迁的隔离方案,基于跃迁的隔离是 iCoupler technology技术的核心能力之一。

隔离器还必须支持上拉和下拉电阻。隔离器的每侧支持一个独立的USB总线段,在空闲状态连接所有的偏置电阻。当在总线上有某个 设备需要进入初始化序列(称为枚举)时,上拉电阻 发出信号。知道外设的工作速度以及何时应连接上拉电阻,使枚举过程以受控的方 式启动。有几个因素影响上游上拉电阻的状态。上游和下游电源电压可能有多种组合,隔离器的设计保证对所有给定的电源组合给出可预测的操作。有时,如外设需在开始 USB枚举之前完成自己的本地初始化的话,外设要求延迟启用上游的上拉电阻。ADuM4160在其下游侧提供了一个控制引脚以便由外设来决定何时开始枚举。

该器件还可以工作于5V或3.3V电源,因此,外设仅需一个电源。A D u M4160还具有良好的ESD保护能力,通常允许在连接器的D+和D- 引脚没有外部保护电路的情况下热插拔。

ADuM4160可按以下三种方式之一使用::

安装在外设中以隔离其上游端口。A D u M4160是以这个配置为基础应用设计的,该设计极大地简化了电源和控制配置(图7)。

可用来隔离集线器以及集线器所有的下游外设(图8)。

可用于隔离电缆(图9)。

下面的示例给出了ADuM4160在这些应用中的连接方法。

图7. 隔离的外设端口。

在作为集线器隔离器使用时,ADuM4160把集线器作为外设来对待(图8)。A D u M4160设置为全速,其它部分与上面讨论的标准外设类似。在 A D u M4160的chirp功能干预下,集线器被迫以全速运行。即使ADuM4160以固定的速度运行,集线器芯片都可以连接到低速和全 速设备的各种组合。集线器向下游端口的隔离器提供能量,枚举可以以上电启动或延迟启动的方式进行。集线器要求提供的能量通常 高于上游电缆通过隔离型DC/DC转换器供电的能力。

图8. 隔离的集线器。

驱动隔离的USB 电缆(图9)需使用DC/DC转换器为下游端口和电缆供电。为了满足USB规范的要求,电缆的下游部分必须向外设的上拉电路提供5V电源。可使用 ADuM5000等隔离型DC/DC转换器可以用于提供这个电源,另外,它还有足够的裕量为下游功率要求低的设备提供能量。图9显示了ADuM5000 isoPower? 器件.3 这个应用中, A D u M4160以硬连线连接的速度引脚有些不便。该电缆每次只能以一个USB速度运行,要切换速度模式须重新接线或通过简单 的开关以手动方式切换或采用更复杂的电路,这依赖于末端用户的需求。

图9. 包含isoPower的隔离电缆接口。

结束语

USB 已融入我们的生活。 ADI 公司具有突破性的 A D u M4160 隔离器可 在 USB 应用中简单而廉价地实现外设隔离,进而使 USB 在医疗和工 业应用领域的应用远远超出诊断端口和临时连接的范围。着重于在D+/D– 线中提供隔离, ADuM4160 极大地简化了隔离的实现。它支持 全速 和 低速 运行,可满足众多应用的带宽要求。

USB实现隔离的四种方法分析-方法四最好: 数字隔离器 USB隔离芯片ADuM3160、ADuM4160相关推荐

  1. 四种原因分析和解决笔记本电池充不了电的办法

    笔记本电池充不了电的四种原因分析和解决办法.不少网友会问,笔记本电池充不进电的原因是什么?笔记本电池不充电怎么办?笔记本电池不充电的4种原因分别是电源适配器故障,电池故障,主板故障,电路故障.那么我们 ...

  2. 三种平摊分析的方法分别为_[2020.Vol.188]表征城市树木滞尘:一种景观分析方法...

    表征城市树木滞尘:一种景观分析方法 Characterization of particulate matter deposited on urban tree foliage: A landscap ...

  3. Xgboost回归四种调参方法及Python简单实现

    前言 Xgboost对特征工程和数据处理比较友好,相比之下调参成为用好Xgboost重要的一环,本文分别从参数.调参方法.Python实现的维度进行梳理,作为调参思路的记录. 本文将关注以下几个问题: ...

  4. 四种连接数据库的方法(DriverManager、DataSource子类、DBCP、c3p0)

    四种连接数据库的方法(DriverManager.DataSource子类.DBCP.c3p0) 一.环境     1.数据库驱动jar文件 2.DBCP方法  Commons-dbcp.jar:连接 ...

  5. wordpress mysql 密码重置_WordPress忘记密码找回登录密码的四种行之有效的方法

    WordPress忘记密码找回登录密码的四种行之有效的方法 PS:20170214更新,感谢SuperDoge同学提供的方法,登入phpMyAdmin后,先从左边选自己的数据库,然后点上面的 SQL ...

  6. 数字万用表四种妙用方法

    数字万用表四种妙用方法 1.判断线路或器件带不带电 数字的交流电压挡很灵敏,哪怕周围有很小的感应电压都可以有显示.根据这一特点,可以当作测试电笔用.用法如下:将万用表打到AC20V挡,黑表笔悬空,手持 ...

  7. Java JDBC | 四种连接数据库的方法

    四种连接数据库的方法(DriverManager.DataSource子类.DBCP.c3p0) 〇.连接步骤 //第一步,注册驱动程序 //com.MySQL.jdbc.Driver Class.f ...

  8. 数字万用表的四种妙用方法

    数字万用表(Digital Multimeter,简称DMM)是一种在电子电路测试和维修中常用的仪器.它可以测量电压.电流.电阻等各种电信号参数,同时还可以测试二极管.晶体管等元器件.数字万用表使用数 ...

  9. 机器学习四种调参方法总结

    介绍 维基百科上说,"Hyperparameter optimization或tuning是为学习算法选择一组最优的hyperparameters的问题". 本文转载于收藏 | 机 ...

  10. 数据的四种基本存储方法

    数据的存储结构可用以下四种基本存储方法得到: (1)顺序存储方法 该方法把逻辑上相邻的结点存储在物理位置上相邻的存储单元里,结点间的逻辑关系由存储单元的邻接关系来体现. 由此得到的存储表示称为顺序存储 ...

最新文章

  1. redis搭建与安装2
  2. python就业方向有哪些-Python的就业方向有哪些?薪资都是多少?
  3. 吴恩达《神经网络与深度学习》精炼笔记(4)-- 浅层神经网络
  4. php 5.5 xhprof for windows
  5. 解决eclipse出现The superclass javax.servlet.http.HttpServlet was not found on the Java Build Path
  6. sql select distinct常见错误_这8种常见的SQL错误用法,80%的程序员还在犯
  7. 使用Python合并excel表格的两列
  8. 2019 最值得被记录的 14 条 AI 安防领袖语录丨年终盘点
  9. Xiph opus音频编码器试用
  10. 桃飘火焰焰,梨堕雪漠漠。(排序 贪心
  11. 宜搭产品生态伙伴政策——宜搭:高效的低代码应用构建平台
  12. Thread.currentThread().interrupt()和Thread.interrupted()和Thread.currentThread().isInterrupted()
  13. 如何制作一寸、二寸、六寸照片。以后不用再去照相馆了!
  14. 零基础学习python第二课笔记
  15. 各厂商接入交换机通过ACL限制端口应用的配置信息
  16. php yield Generator 处理大数组
  17. android pin码 经典蓝牙_Android蓝牙开发—经典蓝牙详细开发流程
  18. 华为被《麻省理工科技评论》评为全球“50家最聪明的公司”
  19. 史蒂夫·乔布斯经典语录
  20. 关于微信获取不到相册图片问题

热门文章

  1. 西门子1200PLC如何在威纶通HMI上进行时间显示
  2. Goole Chrome 谷歌浏览器无法打开设置、闪退、崩溃
  3. 哈哈...做点小玩意儿
  4. 金山毒霸通行证申请助手 升级版
  5. 摘自迅雷视频网站基于CSS+HTML实现大气清新的蓝色导航
  6. 运输层(TCP/IP协议)
  7. ROBOTSTUDIO中基础术语、在线功能
  8. Beyond Compare如何连接FTP进行文件夹的比较
  9. python爬虫今日头条_Python简单的quot;今日头条quot;爬虫
  10. On hand QuantitiesTransaction Qantiites