24小(xiǎo)时联系電(diàn)话:18217114652、13661815404
中文(wén)
- 您当前的位置:
- 首页>
- 電(diàn)子资讯>
- 公司新(xīn)闻>
- I2C 总線(xiàn)多(duō)路复用(yòng)器
公司新(xīn)闻
I2C 总線(xiàn)多(duō)路复用(yòng)器
I2C 总線(xiàn)多(duō)路复用(yòng)器
在本文(wén)中,我们将阐明如何构建可(kě)与 I 2 C 線(xiàn)路一起使用(yòng)的双向 2 位多(duō)路复用(yòng)器電(diàn)路。如果需要,该電(diàn)路还具有(yǒu)作為(wèi)電(diàn)平转换器工作的额外功能(néng)。该设计基于 GreenPAK™ SLG46826V。由于 SDA 和 SCL 線(xiàn)路的双向性,该设计可(kě)用(yòng)于单主或多(duō)主 I 2 C 通信。
该電(diàn)路是一个双轨 IC,包括构建适合 I 2 C 协议的双向多(duō)路复用(yòng)器電(diàn)路所需的所有(yǒu)元件。使用(yòng)此 IC 可(kě)实现小(xiǎo)尺寸。除了实现 I 2 C 多(duō)路复用(yòng)器電(diàn)路的小(xiǎo)尺寸外,GreenPAK 还能(néng)够集成電(diàn)路所需的振荡器和上拉電(diàn)阻器。
该设计针对实际应用(yòng)进行了优化,可(kě)以轻松修改以满足阅读器系统的要求。
通过将其放置在由 Arduino 板和四个 I 2 C-LCD 屏幕组成的 I 2 C 网络中对其进行了检查,其中每个屏幕包含相同的 I 2 C 地址。在设计的 IC 的帮助下,每个屏幕都被单独写入。
I 2 C 协议
连接两个或多(duō)个设备以传输和接收信息需要特殊的通信路径,由发送方和接收方共享的通信协议控制。集成電(diàn)路间总線(xiàn),也称為(wèi) I 2 C,是一种非常常见的双向通信总線(xiàn),使用(yòng)两条線(xiàn)路在设备之间发送串行信息。
I 2 C 用(yòng)于在控制器和一组外围设备之间创建通信网络。它已得到众多(duō)電(diàn)子传感器和执行器的支持,因為(wèi)它高效且易于布線(xiàn)。I 2 C 总線(xiàn)支持7 位和10 位地址空间设备,由两条信号線(xiàn)组成:SCL 和SDA 線(xiàn),用(yòng)于与设备进行通信。SCL 代表“串行时钟”,它承载由主机驱动的时钟信号。SDA 代表“串行数据”,因此主机和从机都可(kě)以发送和接收数据。当I 2 C 外设之间没有(yǒu)传输时,SCL 和SDA 線(xiàn)都被上拉到V DD。
我们可(kě)以使用(yòng) I 2 C 协议连接多(duō)达 128 个设备,所有(yǒu)设备都共享相同的 SCL 和 SDA 線(xiàn)。图 1 显示了一个小(xiǎo)规模的例子。
系统通常需要為(wèi)不同的 IC 提供多(duō)种不同的電(diàn)源電(diàn)压,如今的外围设备通常在 I 2 C 总線(xiàn)和 I 2 C 電(diàn)平转换器或 I 2 C 总線(xiàn)多(duō)路复用(yòng)器的帮助下连接到微控制器以解决兼容性问题。
图 1:I2C 网络图
I 2 C 总線(xiàn)多(duō)路复用(yòng)器
在 I 2 C 网络中,每个设备都必须有(yǒu)一个唯一的不重复地址才能(néng)正确实现主从设备之间的通信,但是当许多(duō)传感器和外围设备组合在同一条总線(xiàn)上时,相同的 I 2 C 地址可(kě)以分(fēn)配给多(duō)个设备。為(wèi)了解决这个问题,我们实现了一个独特的多(duō)路复用(yòng)電(diàn)路,将具有(yǒu)相同地址的从设备连接到通信总線(xiàn),我们可(kě)以通过轮询输入交换通道。
I 2 C 总線(xiàn)多(duō)路复用(yòng)器電(diàn)路是 SCL 和 SDA 总線(xiàn)的双向选择器,设计使用(yòng) SLG46826 双轨 IC 构建四通道输出多(duō)路复用(yòng)器電(diàn)路,如图 2 所示。 SCL 線(xiàn)的双向性,虽然单主系统不需要,但确保拓扑可(kě)用(yòng)于多(duō)主配置,其中主主(连接到图 2 的左侧)可(kě)以仲裁辅助主(连接到地址上的图 2 的右侧)可(kě)以向主 I 2 C 网络发送命令。
图 2:I2C 总線(xiàn)多(duō)路复用(yòng)器 IC 图
GreenPAK 设计
设计由两个主要部分(fēn)组成;SDA 線(xiàn)多(duō)路复用(yòng)器和 SCL 線(xiàn)多(duō)路复用(yòng)器。该電(diàn)路的关键行為(wèi)是 SLG46826 的双向引脚和 OE(输出使能(néng))逻辑的配置和灵活性,用(yòng)于配置特定引脚是输入还是输出。
SDA 線(xiàn)路多(duō)路复用(yòng)器
在这部分(fēn)中,引脚 3 将根据输入 A0 和 A1 的状态连接到引脚 7、13、15、16 之一。这些输入已配置為(wèi)用(yòng)作数字输入/输出。输出类型為(wèi)漏极开路 NMOS,输入上拉至 10 kΩ 電(diàn)阻。如图 3 所示,NOR 门控制每个引脚的 OE“输出使能(néng)”;当 OE 為(wèi)“低”时,该引脚成為(wèi)连接到 10K 上拉電(diàn)阻的输入,当 OE 為(wèi)“高”时,该引脚成為(wèi)输出且為(wèi) GND。
图 3:SDA 線(xiàn)路复用(yòng)器设计
3 位 LUT7 的输出连接到引脚 3 的 OE,而 3L8 或非门的输出将被多(duō)路复用(yòng)并连接到引脚 7、13、15、16 的 OE。时间延迟块被配置為(wèi)下降Edge Delay 并因此产生到 NOR 门的时间延迟。2 位解复用(yòng)器是使用(yòng)块 3L3、3L4、3L5、2L2 和 2L3 构建的。
因此,当 [A1A0] = [00] 时,3L8 输出传递到引脚 7,活动通道為(wèi) 0 到 3L3,而其余通道的输入被上拉至 1。当 [A1A0] = [01] 时,3L8 输出通过 3L4 传递到引脚 13,当 [A1A0] = [10] 时,输出通过 3L5 传递到引脚 15,当 [A1A0] = [11] 时,3L8 输出通过两个与门 2L3 和 2L2 传递到引脚 16。
图 4:引脚 6 属性
块3L0、3L1和3L2用(yòng)于构建2位多(duō)路复用(yòng)器電(diàn)路;然后它选择来自引脚 7、13、15、16 的一个输入信号并将其传递到 NOR 门,稍后传递到引脚 3 (SDA)。引脚 4 和 5 被配置為(wèi)连接到下拉電(diàn)阻器的输入,然后通道 0 在初始状态下处于活动状态,因為(wèi) [A0A1] = [00]。
MF1 和 MF2 是多(duō)功能(néng)块,可(kě)配置為(wèi)执行多(duō)个功能(néng)。在这个设计中,它们被用(yòng)来产生一个时间延迟,此外,用(yòng)来制定或非门。每个计数器的“DLY IN”输入连接到或非门输出。
图 5:MF1(多(duō)功能(néng)块)配置
设计事件顺序
当总線(xiàn)处于空闲状态(不发送或接收)时,通信引脚连接到一个上拉電(diàn)阻(高電(diàn)平),所有(yǒu)引脚根据传递到 OE 的信号处于输入状态。如果输入之一接收到 LO 信号,则该信号将通过 NOR 门传播,从而在基于 A0A1 的适当 OE 处产生 HI 信号。这会将引脚配置為(wèi)输出并因此保持到 GND。如果输入返回 HI,则会产生一个短时间延迟以保持 OE 状态,以考虑引脚需要从 LO 变為(wèi) HI(从输入到输出)的时间。
要继续处理(lǐ)事件序列,请考虑以下示例:
初始状态,总線(xiàn)上无通讯,[A1A0]=[00]。即所有(yǒu)引脚都是输入,并且由于输入的上拉電(diàn)阻被激活,信号 HI 从所有(yǒu)输入传递到 IC。当引脚 3 从主机接收到 LO 时,信号传递到 3L8,然后到 3 位 LUT3 和 3L3 输出也為(wèi)低電(diàn)平,因為(wèi)信号低電(diàn)平到达引脚 7 的 OE,这使得引脚 7 的状态从输入变為(wèi)输出。LO 信号通过总線(xiàn) SDA0 传播到外部设备。
当主机释放通信总線(xiàn)时,由于现有(yǒu)的上拉電(diàn)阻,输入变為(wèi) HI。然后 HI 传递到 3L8,后者反转信号并将信号低電(diàn)平传递到引脚 7 的 OE,从而导致引脚将其状态从输出更改為(wèi)输入。由于上拉電(diàn)阻处于活动状态,HI 被传递到外部设备,并在下降沿应用(yòng)时间延迟,以便在接收新(xīn)值之前為(wèi)引脚提供足够的时间来改变其 IO 状态。
SCL 線(xiàn)路多(duō)路复用(yòng)器
与 SDA 总線(xiàn)的多(duō)路复用(yòng)器電(diàn)路的设计一样,SCL 总線(xiàn)的另一个多(duō)路复用(yòng)器電(diàn)路也采用(yòng)相同的配置设计,其中引脚 6、17、18、19 和 20 被配置為(wèi)作為(wèi)数字输入/输出和内部上拉電(diàn)阻在引脚上被激活。因此,通过引脚 6 来自主机的信号将根据 A1 和 A0 连接到引脚 17、18、19 和 20 之一。块 3L11、3L12、3L13 和 2L0 用(yòng)于构建 2 位解复用(yòng)器,而块 4L0、3L6 和 2L1 用(yòng)于构建 2 位复用(yòng)器,从而实现双向通信。
图 6:SCL 線(xiàn)路复用(yòng)器设计
表 1:选择输入状态
SLG46826 具有(yǒu)双電(diàn)源 V DD和 V DD2,这允许设计添加電(diàn)平转换作為(wèi)多(duō)路复用(yòng)器電(diàn)路的另一个功能(néng)。引脚 3、6 和 7 由 V DD供電(diàn),而引脚13、15、16、17、18、19和 20 由 V DD2供電(diàn)。因此,可(kě)以将此复用(yòng)器電(diàn)路用(yòng)作通道 1、2、3 的電(diàn)平转换電(diàn)路,而无需通道 0。可(kě)以从项目信息中选择所需的電(diàn)压(V DD和 V DD2)。
電(diàn)平转换功能(néng)
表 2:已实现多(duō)路复用(yòng)器的 GreenPAK 引脚图
结果
為(wèi)确保设计按预期工作,该设计置于真实场景中:控制四个屏幕 (I 2 C-LCD),所有(yǒu)屏幕均具有(yǒu)相同的静态 I 2 C 地址。所有(yǒu)通信都来自一个主设备,在这种情况下,是一个 Arduino 板。已经為(wèi) Arduino 板编写了一个程序,它可(kě)以作為(wèi)主机运行,并通过 I 2 C 协议在每个屏幕上打印不同的短语。屏幕通过 I 2 C 多(duō)路复用(yòng)器電(diàn)路和 Arduino 数字输出在总線(xiàn)上互换,以控制 A0 和 A1。在每个打印指令之前,总線(xiàn)在屏幕之间多(duō)路复用(yòng)。图 7 描述了实施后的屏幕输出。
图 7:实施后的 I2C-LCD 输出