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

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

3天内不再提示

从USB到I²C的桥接

星星科技指导员 来源:ADI 作者:ADI 2023-01-12 15:06 次阅读

该电路提供直接I2电脑 USB 端口的 C 接口。USB转1线加密狗为PC提供1-Wire主控器,用于控制1-WireI/O扩展器。此 I/O 扩展器具有两个双向开漏端口,PC 可以写入和读取这些端口。通过在这两个端口上生成正确的逻辑信号,PC可以模拟I®2C 主控。

当您需要直接 I 时2C接口到您的PC,有几个选项可用。例如,PC的并行端口可以模拟I2C主机。然而,新PC通常缺少此端口,并且Windows的现代变体(Windows XP和Windows Vista)不允许轻松访问它。

更好的方法是使用USB端口,但该技术需要复杂的驱动程序,并且通常还需要微控制器,而微控制器又需要固件。不是你能在一个下午建造的东西!有许多商业版本可用,但它们并不便宜。另一方面,图1的电路可以快速构建,并且可以与LabVIEW和Visual Basic等多种编程语言一起运行。

poYBAGO_tDWAJlLwAABBm3eAzQA938.png

图1.该电路提供I2计算机 USB 端口的 C 接口。

U1 (DS9490R)是一款USB转1线桥接器,为PC增加了一个1线主机。连接至1-Wire网络的1-WireI/O扩展器(U2、DS2413P)提供两个双向漏极开路端口,可通过U1由PC控制。这就是创建 I 所需的所有硬件2C 主控。

软件

对于缺少硬件的微控制器,I2C master,“位敲击”是实现软件 I 的行之有效的方法2C 主控。这是用于启用软件 I 的技术2此平台的 C 母版。

软件生成 I2通过控制 U2 的 PIOA 和 PIOB(引脚 6 和 4)的逻辑电平来发出 C 信号。例如,要创建起始条件,SDA 必须在 SCL 为高时从高过渡到低。将 SCL (PIOA) 驱动为高电平,然后将 SDA (PIOB) 驱动到高电平,然后将 SDA 拉低。因此,软件实现了 I2C 通过控制 PIOA 和 PIOB 来控制。DS2413数据资料中的流程图显示了这种PIO功能(图2)。

poYBAGO_tDyAa-srAADeBdtIzag887.png

图2.PIO功能流程图,取自DS2413数据资料。

要更改PIO输出,必须首先通过ROM功能对器件进行寻址。该系统仅包含一个1-Wire从机,因此您可以使用“skip ROM”命令跳过复杂的寻址过程。然后,通过发送“5A”命令写入 PIO 输出锁存器。1-Wire I/O扩展器(U2)包括一个8位寄存器,其两个LSB连接到PIOA和PIOB。(其他六位不在乎。

为了更改逻辑状态,新数据将发送两次:一次按原样发送,一次反转。从机(U2)通过向主站返回“AA”命令来确认无差错接收,并通过发送新的输出状态来结束。整个序列现在可以重新开始,也可以通过1-Wire主机的复位中止。因此,您必须为每个输出更改传输四个字节(不包括跳过ROM和5A命令)。例如,您必须执行以下序列来生成 I2C 启动命令:

主模式 数据 评论
TX (重置) 重置总线
RX (存在) DS2413 存在
TX 0xCC 跳过只读存储器
TX 0x5A 写入 PIO 寄存器
TX 0xFF SCL=1 & SDA=1
TX 0x00 倒置数据
RX 0xAA 接收数据
RX 0x0F 返回输出状态
TX 0xFD SCL=1 & SDA=0
TX 0x02 倒置数据
RX 0xAA 收到的数据
RX 0x2D 返回输出状态

类似的序列实现其他事件,如发送字节、确认和停止。

Maxim为DS9490提供软件驱动程序,以及支持Microsoft .NET平台的Windows1-Wire软件开发套件(SDK)。为了说明,我们可以实现一个 I2LabVIEW 中的 C master,使用 其 .NET 支持。这仅在安装支持.NET的1-Wire驱动程序时才有效。另一个先决条件是安装 Microsoft .NET 框架和 Visual J# 可再发行组件包。

为防止其他应用访问1-Wire网络,VI“I2C 初始化“(其中 VI 是 LabVIEW 术语,意思是 虚拟 仪器),初始化 U1 并 使 LabVIEW 独占 访问 1-Wire 网络 (图 3)。然后发出1-Wire复位,然后发出跳脉冲命令(CC),最后发出PIO写入命令(5A)。

pYYBAGO_sX-AMrTuAAAQ9SyB6kw120.gif?imgver=1

图3.六“我2“C 初始化”初始化DS2413,之后即可接收I/O数据。

从站(U2)现在已准备好接受PIO的数据。六“I²C 时钟“将 SCL 线从低电平切换到高电平(图 4)。SDA可以设置高或低,VI返回SDA状态。您可以通过连续调用此函数 8 次(传输的每个位一个)来写入完整的字节。如果从站返回数据,则SDA由主站驱动高电平。为了传输“0”,从机可以将SDA拉低(这是可以的,因为PIOB是漏极开路输出)。由于U2会自动返回更新的输出状态,因此不需要特殊的读取操作(参见VI“Send I2C 字节“和”Get I2C 字节“)。

poYBAGO_sYCAB9UnAAAc_49epgA627.gif?imgver=1

图4.六“I²C 时钟“将 SCL 从低切换到高。SDA可以设置为“I2C 写入“操作并读取”I2C 读取“操作。

VIs“I2C开始“,”I²C停止“和”I2C acknowledge“使用相同的结构来生成适当的SDA和SCL信号。通过组合这些VI,您可以对完整的I2C 读取或写入会话。为了说明通信会话(图5),我们读取实时时钟的寄存器0(DS1337)。然后,该设备以0x39应答,这是计算秒数的寄存器的内容。寄存器地址设置为0x00,从地址设置为0xD0,要读取的字节数设置为1。示波器图像(图6)显示了电路针对这些设置产生的信号。

pYYBAGO_sYGAGsydAAAnPzVNG84653.gif?imgver=1

图5.如何使用图1电路读取寄存器的示例。

poYBAGO_sYOAWmb6AABH_u-aXjM316.gif?imgver=1

图6.读取DS1337的寄存器0。S=开始,A=确认,Sr=重复启动,P=停止。从主到从是阴影;从奴隶到主人是白人。

由于软件开销很大,该电路产生信号的速率被限制在大约20bps。但是,这个想法可以用不同的编程语言实现。

审核编辑:郭婷

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

    关注

    48

    文章

    7487

    浏览量

    151027
  • usb
    usb
    +关注

    关注

    60

    文章

    7891

    浏览量

    263960
  • 1-Wire
    +关注

    关注

    0

    文章

    49

    浏览量

    21293
收藏 人收藏

    评论

    相关推荐

    Silicon Labs推出业界首款USBI2S音讯晶片

    Silicon Laboratories (芯科实验室有限公司)宣布推出业界首款无需外部石英震荡器的USBI2S音讯晶片,支援基于USB
    发表于 10-19 15:55 4467次阅读

    用于USB-I2C的Matlab应用程序如何开发

    你好,我试图在Matlab(COM接口)中编写一个应用程序,用于UB-I2C(PSoC MixPro 3)。这些文件解释了如何开发这样的应用程序,但不幸的是,不是MATLAB。AN7079-开发
    发表于 02-12 08:45

    CY3240 USBI2C套件中使用的u***toiic .hex文件有下载链接吗

    我正在寻找在CY32 40 USBI2C套件中使用的UBtotoix.HEX文件来编程CY8C24894。有下载的链接吗? 以上来自于
    发表于 03-08 11:16

    CANBooBooLoad和I2C-CAN可以吗?

    坐在主人和引导主机。附件是canbootloader(I2C可以),bootloadable和详细的pdfexplaining实施。问候,SobiCANBooBooLoad和I2C-CAN
    发表于 07-25 08:34

    PCI Express交换及芯片的展望

    交换芯片扩展,Gen 2提供简化的机会 当I/O互连世界PCI过渡到PCI Express (PCIe)时,
    发表于 02-09 11:46 6351次阅读
    PCI Express交换及<b class='flag-5'>桥</b><b class='flag-5'>接</b>芯片的展望

    富士通推出USB 3.0 SATA芯片MB86C30A

    富士通推出USB 3.0 SATA芯片MB86C30A 富士通(Fujitsu)微电子(上海)有限公司日前宣布推出业界领先的USB 3
    发表于 08-06 08:05 2353次阅读

    富士通USB 3.0-SATA芯片获超速USB合格证书

    富士通USB 3.0-SATA芯片获超速USB合格证书 富士通微电子(上海)有限公司宣布富士通微电子的USB 3.0-SATA
    发表于 02-04 16:33 843次阅读

    AN1941 - Microchip USB 2.0集线器的USBI2C功能

    凭借Microchip USB 2.0集线器的USBI2C功能,系统设计人员可以扩展系统控制并有可能减少BOM。在系统设计中使用该功能
    发表于 03-22 11:34 7次下载
    AN1941 - Microchip <b class='flag-5'>USB</b> 2.0集线器的<b class='flag-5'>USB</b>转<b class='flag-5'>I2C</b><b class='flag-5'>桥</b><b class='flag-5'>接</b>功能

    PL230 USB串行RS232控制器的数据手册免费下载

    本文档的主要内容详细介绍的是PL230 USB串行RS232控制器的数据手册免费下载。
    发表于 11-26 16:35 6次下载
    PL230 <b class='flag-5'>USB</b><b class='flag-5'>到</b>串行RS232<b class='flag-5'>桥</b><b class='flag-5'>接</b>控制器的数据手册免费下载

    PL2303 USB串行芯片系列Windows驱动程序安装程序用户手册

    本文档的主要内容详细介绍的是PL2303 USB串行芯片系列Windows驱动程序安装程序用户手册免费下载。
    发表于 04-23 17:14 11次下载
    PL2303 <b class='flag-5'>USB</b><b class='flag-5'>到</b>串行<b class='flag-5'>桥</b><b class='flag-5'>接</b>芯片系列Windows驱动程序安装程序用户手册

    PL2303 USB串行芯片Windows驱动程序用户手册和最新驱动

    本文档的主要内容详细介绍的是PL2303 USB串行芯片Windows驱动程序用户手册和最新驱动应用程序免费下载。
    发表于 06-15 08:00 3次下载
    PL2303 <b class='flag-5'>USB</b><b class='flag-5'>到</b>串行<b class='flag-5'>桥</b><b class='flag-5'>接</b>芯片Windows驱动程序用户手册和最新驱动

    用于MiSTer的USB

    电子发烧友网站提供《用于MiSTer的USB板.zip》资料免费下载
    发表于 08-18 15:02 0次下载
    用于MiSTer的<b class='flag-5'>USB</b><b class='flag-5'>桥</b><b class='flag-5'>接</b>板

    USB I²C

    发表于 11-17 12:42 0次下载
    <b class='flag-5'>从</b> <b class='flag-5'>USB</b> <b class='flag-5'>到</b> <b class='flag-5'>I</b>²<b class='flag-5'>C</b> 的<b class='flag-5'>桥</b><b class='flag-5'>接</b>

    CP2101-GM高度集成的USBUART控制器

    CP2101-GM是一款高度集成的USBUART控制器,提供了一种简单的解决方案,可使用最少的组件和PCB空间将RS-232设计更新为USB
    发表于 05-18 15:19 373次阅读

    Microchip集线器的USBI2S功能

    电子发烧友网站提供《Microchip集线器的USBI2S功能.pdf》资料免费下载
    发表于 09-19 16:29 0次下载
    Microchip集线器的<b class='flag-5'>USB</b>转<b class='flag-5'>I</b>2S<b class='flag-5'>桥</b><b class='flag-5'>接</b>功能