使用端口扩展器轻松高效地为 IIoT 端点添加高性价比子节点
投稿人:DigiKey 北美编辑
2020-06-10
对于工业物联网 (IIoT) 应用,就 IIoT 端点的特性和灵活性而言,不仅在功能上一直扩展,而且还将物理控制区域从端点中的主机微控制器扩大至数英尺之外。虽然可以使用 IIoT 端点主机微控制器的一些 I/O 引脚来到达这些扩展位置,但随着距离的增加,I/O 线路更容易受到电磁干扰 (EMI) 的影响,导致可靠性降低。尽管可以将另一个微控制器用作 IIoT 端点主机微控制器的子节点,但是当数据仅用作简单的数字 I/O 信号时,这可能会增加不必要的复杂性。
开发人员可以使用端口扩展器作为 IIoT 端点高性价比的子节点,而不必扩展 I/O 线路以实现范围更广的控制。
本文先介绍了端口扩展器的作用,然后介绍了 Maxim Integrated 推出的两款端口扩展器。这些扩展器可通过串行接口轻松连接至主机微控制器,从而大幅扩展 IIoT 节点的数字 I/O 功能。在做到这一点的同时,它们还保留了常规通用 I/O (GPIO) 功能,如脉冲宽度调制 (PWM) 生成和中断检测。
为什么 IIoT 网络需要端口扩展器
规划 IIoT 网络时,首要步骤之一是确定端点数量。每个需要与设施的其他部分同步其行为的设备都将需要至少一个端点。工厂装配线是一个很好的例子。每个工位必须与整条装配线的进度保持同步,以便在恰当的时间执行正确的装配程序。
但是,工厂装配线中的 IIoT 端点可能不会定位在一个物理区域,而是可能使用电线或电缆将 IIoT 端点的主机微控制器 GPIO 端口延伸到数英尺之外,类似于以主机微控制器作为中心的星形配置。星形配置每个点的端接可能具有一定的复杂性,可以充当 IIoT 主端点的子节点,但又不会特别复杂,因而无法配置为独立的 IIoT 端点进行网络连接。虽然子节点可以设计成由自带微控制器来控制,但对于简单的 GPIO,这可能会增加不必要的复杂性和成本。
一个真实的例子是使用 PWM 信号控制电机的 IIoT 端点。如果电机远在几英尺之外,则需要将多个 PWM 信号发送到电机,而这会增加周围区域的 EMI。屏蔽电缆可用于传输 PWM 信号,但这会增加系统成本,并且无法消除因远距离相位延迟或串扰引起的误差。作为替代,可以使用 I2C 或 SPI 等串行总线将命令发送至位于电机附近的可编程系统,然后由该系统生成 PWM 信号。这些电子器件将作为一个子节点以生成所需 PWM 信号。
一个实用的子节点解决方案是使用主机微控制器的串行接口连接端口扩展器。端口扩展器比微控制器更易于配置,而且可以扩展主机微控制器的 GPIO 覆盖范围。主机微控制器只需通过 I2C 或 SPI 接口轻松访问子节点的端口扩展器,而不需要布设八条或更多的 GPIO 线路通向子节点。写入端口扩展器中的寄存器可设置或清除 GPIO,而读取则可返回 GPIO 的状态,与主机微控制器的 GPIO 控制一样。此外,端口扩展器还保留了微控制器 GPIO 的大部分功能,包括 PWM 生成和中断输入。
一个易于使用的端口扩展器示例是 Maxim Integrated 的 MAX7315AUE+T,它具有八个 GPIO 和 I2C 接口(图 1)。
图 1:Maxim Integrated 的 MAX7315A 端口扩展器提供多达八个 GPIO,并可在任何 GPIO 状态发生变化时生成主机微控制器中断。该器件可通过双线 I2C 接口来访问。(图片来源:Maxim Integrated)
MAX7315A 支持八个 GPIO,每个 GPIO 可独立配置为输入或开漏输出。主机微控制器通过双线 I2C 接口与 MAX7315A 通信,该接口的工作频率高达 400 kHz。I2C 总线上的设备地址通过三个地址引脚 AD [0:2] 进行配置,如图 1 所示。该器件还可以生成主机微控制器中断。
MAX7315A 仅需三个引脚即可轻松管理八个 GPIO:两个 I2C 引脚和中断引脚。只要条件能确保可靠的 I2C 通信,就可将该器件置于与主机微控制器保持任意距离的位置。根据电路板布局和环境 EMI,通常情况下,串行时钟 (SCL) 频率为 400 kHz 时,三英尺是比较可靠的距离,而 100 kHz SCL 下可以达到九英尺或更远。
不过,务必在有源环境中进行测试,以确保环境条件或 EMI 对距离没有显著影响。
子节点的中断检测
该器件的引脚 13 支持低电平有效中断输出,但如果不需要中断功能,则可以将引脚 13 配置为第九个 GPIO。中断可以配置为在任何输入引脚转换时变为低电平。这样,主机微控制器无需轮询 MAX7315A,即可了解子节点的活动。启用中断功能后,任何配置为输入并启用了中断的 GPIO 都将用作中断输入。在任何配置为中断的 GPIO 状态发生任何变化时,引脚 13 都会变为低电平,以向主机微控制器发出变化信号。然后,主机微控制器读取 MAX7315A 的状态,以确定哪个 GPIO 的状态发生了变化。
此过程可防止将端口扩展器用作 GPIO 造成任何中断功能丢失,这不仅在 IIoT 中至关重要,而且在需要中断来实现高效固件运行的微控制器系统中也是如此。
更改 MAX7315A 的配置之前,应禁用中断功能,以免生成错误中断。
尽管 MAX7315A 可以采用 2 V 至 3.6 V 电源供电,但 GPIO 可承受 5.5V 的电压,因而 GPIO 可兼容标准逻辑电平,包括 2.0 V、3.6 V 和 5.0 V 数字系统。每个配置为开漏输出的 GPIO 均可在逻辑高电平下提供高达 50 mA 的电流。输出可以连接在一起,以增加输出电流。这使得 MAX7315A 适用于大电流 LED 指示灯和键盘背光。
子节点的 PWM 生成
MAX7315A 还可以实现可编程 PWM 输出,无需主机微控制器的干预。内置的 32 kHz 振荡器可用作 PWM 波形的时基。与预分频器类似,4 位主强度设置可将所有输出的可用 32 kHz PWM 强度配置为 0 至 15。每个 GPIO 的每个 PWM 输出波形均分为 15 个时隙。主强度设置确定了可用于生成 PWM 的时隙数。每个 GPIO 都配有单独的强度寄存器,用于设置活动时隙中波形的占空比。单个 GPIO 引脚输出波形示例可以很好地解释这一点(图 2)。
图 2:MAX7315A 具有可编程 PWM 发生器,通过内部产生的 32 kHz 时钟工作。该 PWM 的主强度 = 2,单个 GPIO 占空比强度 = 2。(图片来源:Maxim Integrated)
主强度设置为 2,因此 15 个时隙中只有时隙 1 和 2 可用于生成 PWM,而时隙 3 至 15 的逻辑电平为零。该 GPIO 的单个占空比强度设置为 2,因此时隙 1 和 2 中波形的占空比为 2/16 = 12.5%。
PWM 主强度可设置为 0 至 15,其中 15 表示所有 15 个时隙都可用。主强度为 0 意味着所有 GPIO 均禁止用于生成 PWM,因此 32 kHz 时钟关闭以降低功耗。
每个 GPIO 的 PWM 占空比强度都可配置为 1 至 16,其中 16 表示 100% 占空比,即将时隙设置为逻辑高电平。
为了进一步提高灵活性,每个 GPIO 都有一个极性位,可以反转 PWM 波形。图 2 显示了该 GPIO 的极性位设置为 1 时的波形。图 3 显示的 PWM 波形是图 2 中的相同 GPIO 采用了同样的主强度和占空比强度设置,但极性位为 0。
图 3:在 Maxim Integrated 的 MAX7215A 上,每个 PWM GPIO 都有一个极性位,可反转波形。该 PWM 的主强度 = 2,单个占空比强度 = 2,极性位= 0(反转波形)。(图片来源:Maxim Integrated)
凭借这种灵活的 PWM 波形生成功能,MAX7315A 可用作 IIoT 端点的子节点,以控制 LED 指示灯的调光、驱动直流电机的功率晶体管,以及控制螺线管和执行器。现在,在杂乱的工业环境中,主机微控制器不再需要布设八条数字线路来传输 PWM 波形,而只需配置 MAX7315A 并使其独立运行。
子节点的扩展功能
对于更复杂的子节点,Maxim Integrated 提供了 MAX7301AAX+T 端口扩展器,它具有多达 28 个 GPIO。MAX7301AAX 使用标准四引脚 SPI 接口与 IIoT 端点的主机微控制器连接(图 4)。此外,该器件还支持高电平有效中断功能,作为引脚 P31 的另一项功能。MAX7315AAX 可配置为在一个或多个 GPIO 的状态发生变化时将生成中断返回主机微控制器。因此,在中断驱动系统中,仅使用五条控制线路即可控制子节点的 27 个 GPIO:四条 SPI 控制线路和一条中断线路。
图 4:Maxim Integrated 的 MAX7301 端口扩展器具有 SPI 接口,并支持多达 28 个可用于输入或输出的 GPIO 引脚。引脚 31 的另一项功能是支持高电平有效中断,允许使用五个控制信号来控制 27 条 GPIO 线路。(图片来源:Maxim Integrated)
MAX7301AAX 可在 2.25 V 至 5.5 V 的宽电源电压范围内工作,使其兼容大多数数字逻辑系统。GPIO 可以配置为带或不带内部上拉电阻的施密特触发器输入。GPIO 也可以配置为推挽输出,可实现高达 10 mA 的灌电流。这使得 MAX7301AAX 适合连接至用于控制其他设备(例如工业控制器)的逻辑电平电路,以及系统监控和报警电路。
总结
随着设计人员扩展 IIoT 端点的物理覆盖范围,控制子节点可能会成为一项挑战,因为在数英尺的距离上扩展多条控制线路会在 EMI、布局和电路复杂性方面产生许多问题。借助端口扩展器来控制中断驱动系统的子节点,开发人员可以简化印刷电路板布局、提高可靠性,同时为 IIoT 端点添加重要功能。
免责声明:各个作者和/或论坛参与者在本网站发表的观点、看法和意见不代表 DigiKey 的观点、看法和意见,也不代表 DigiKey 官方政策。