ZHCAC37 February 2023 ADS7038-Q1 , SN74HCS165-Q1 , TCA9539-Q1 , TIC12400-Q1 , TMUX1308-Q1
汽车的当前发展趋势是转向整合设计,使用区域架构通过半导体设计配电。这种转变带来了诸多优势,例如优化 ECU 之间的布线、增强的软件控制和区域配电。通过将分配给更多负载、传感器和传动器的电力组合到区域模块中,将更多输入和输出连接到单个汽车微控制器 (MCU)、微处理器或片上系统 (SoC) 的难题变得更为普遍。
之所以编写本文是为了介绍输入和输出端的输入/输出 (IO) 扩展方法。本文讨论了 IO 扩展的主要注意事项,包括从 MCU 到 IO 接口器件的信号延迟、软件开销、设计尺寸以及自主监控、中断引脚、湿性电流和接口类型等器件特性;即通用 IO (GPIO)、串行外设接口 (SPI)、内部集成电路 (I2C)。
区域模块中通常使用的输入示例包括:分立式高压开关(高电平有效、低电平有效、推挽)、来自其他控制模块的分立式高压信号、电阻编码开关、矩阵开关和模拟传感器。有 6 种可能的硬件设计用于处理输入并为 MCU 提供帮助:
本文档以应用中需要的 24 个开关或传感器输入为例。输入可以是电池开关、接地开关、三态开关或模拟传感器。某些器件只能识别高或低离散状态,因此无法适应三态开关或模拟传感器。对于这些特定的输入,IO 扩展器件的输出端必须与 MCU 上的 ADC 引脚连接,或者 IO 扩展器件必须具有集成 ADC。根据开关的类型,需要一个上拉和/或下拉电阻器将开关保持在已知状态。还可能需要一个额外的分压器来降低 IO 扩展器件所见的输入电压。此外,系统中还需要反向电压保护、电池短路保护或接地短路保护。如果需要湿性电流,则需要额外的#SECTION_F25_VDG_VVB,或者 IO 扩展器件具有集成式湿性电流。
每个区域模块可以有大量负载驱动器来控制系统中的负载。通常,大多数负载驱动器都是高侧开关,通常由系统 MCU 的 GPIO 控制。但是,MCU 可使用有限的 GPIO 与系统内的所有高侧开关和其他电路连接。对于基于 SPI 的高侧开关,需要通过 IO 扩展来处理大量片选 (CS)。有两种可能的硬件设计可用于处理高侧开关并减轻 MCU 的负担:
本简报的其余部分将分析每个硬件 IO 设计。
当可用的 GPIO 受到限制、需要更少的功能和更少的软件开销时,最好使用移位寄存器。移位寄存器仅需要来自 MCU 的 4 个 GPIO,并且能够以菊花链形式让器件将数据输出到单个 GPIO 数据输出端。另外 3 个 GPIO 用于驱动 CLK、SH/LD、SER。通过采用菊花链配置移位寄存器,连接 GPIO 的数量始终为四个,这使得该设计极其灵活,可用于距离设计过程更远的附加项。但是,虽然菊花链是一个很好的设计,但通过菊花链连接的移位寄存器越多,延时增加的就越多。在软件开销方面,移位寄存器只需要应用 CLK、SH/LD 和 SER 信号,但需要定期轮询数据输出以了解状态变化。此轮询过程会影响所需的软件开销量。如需详细了解移位寄存器,请参阅使用移位寄存器进行设计 应用手册。
图 1 中的 TI 提议显示了使用 3 个 SN74HCS165-Q1 的设计,这是一个 8 通道移位寄存器。移位寄存器以菊花链实现方式显示,将 24 个开关输入减少为 4 个 MCU GPIO。
当需要软件开销极小的纯模拟设计、不需要 MCU 唤醒、只需要开关监控或优选注入电流控制功能时,最好使用多路复用器。在典型区域应用中,MCU 需要使用 A0、A1 和 A2 定期循环多路复用器真值表,以检查输入端是否有值变化。这决定了总延迟和软件开销。有关 MUX 时序特性的信息,请查看专门的 TI E2E 常见问题解答,其中详细讨论了 MUX 延迟。
#GUID-97C8122A-43B3-46B5-86FC-B535D7B1C51D 中的 TI 提议显示了使用 3 个 TMUX1308-Q1 的设计,这是一个 8 通道 MUX。该设计需要 24 个开关输入,并且 MCU 上最多需要 15 个 GPIO。通过将所有 EN 引脚连接在一起,将 A0 引脚连接在一起、将 A1 引脚连接在一起、将 A2 引脚连接在一起,可以将这个数字减少到 7 个 GPIO。这样,需要 4 个 GPIO 来控制 EN,需要 A0、A1、A2 和 3 个 GPIO 来接收来自 MUX 的数据。
当优选 I2C 接口且需要中断引脚时,最好使用 IO 扩展器。为了实现软件开销,将 IO 端口配置为输入或输出,然后需要通过寄存器读取来确定输入端的值,并需要通过寄存器写入来设置输出的值。对于开关输入,IO 扩展器可以轮询输入端,或在有标记时使用中断引脚检查输入端。关于信号延迟,IO 扩展器器件是可以在快速 I2C 总线 (400kHz) 上运行的 I2C 目标器件。延迟取决于 I2C 工作频率和总线负载条件。
图 3 中的 TI 提议使用 1 个 TCA9539-Q1(16 通道)和 1 个 TCA6408-Q1(8 通道)将 24 个输入端连接到共享 I2C 总线。
IO 扩展器也是输出扩展的理想选择,因为 I2C 可用于控制高侧开关,从而大幅减少所需的 GPIO 数量。将 IO 端口配置为输入端和输出端,以连接相应的高侧开关引脚。
图 4 显示了如何使用 GPIO 扩展器来控制高侧开关。如果高侧开关需要电流检测引脚,则电流检测引脚可直接连接到 MCU 上的 ADC 引脚,或通过 MUX(即 TMUX1308-Q1)连接到 MCU 上的 ADC 引脚、,或连接到外部 ADC。
当需要 SPI、MCU 内的模拟输入多于可用的 ADC 引脚,以及需要使用中断引脚进行自主监控时,最好使用 ADC。设置 SPI 通信和配置寄存器需要一些软件开销。考虑到延迟,ADS7038-Q1 是一款具有不同配置模式的逐次逼近 (SAR) ADC。根据配置模式的不同,使用手动 模式时,ADC 可以具有零延迟(使用动态 模式)至 2 周期延迟。总体而言,延迟在很大程度上取决于器件应用、采样率和器件的模式配置。
图 5 展示了使用 3 个 ADS7038-Q1(一种 8 通道 ADC)将 24 路输入转换为 SPI 的设计。
当需要 SPI、集成式湿性电流、高电压保护和自主监控时,最好使用 MSDI。配置 SPI 通信和设置所需的寄存器需要一些软件开销。
信号的延迟可以指开关状态变化与产生中断信号之间的时间。该时间可能会根据器件配置而变化。TIC12400-Q1 是一款 24 通道 MSDI 器件,在轮询循环中对输入引脚进行顺序采样。可通过 POLL_TIME 寄存器将此循环的频率配置为每 2ms 执行一次到每 4096ms 执行一次。延迟取决于开关转换相对于内部轮询循环的发生位置,因为这些是异步的。因此,延迟几乎是瞬时的,或者说几乎是整个轮询时间。其他因素也会影响延迟,例如湿性电流的应用方式(连续或轮询模式)、测量类型(比较器或 ADC)、所配置的输入通道数量、轮询模式下主动应用湿性电流的时间等。
图 6 中的 TI 设计使用 1 个 TIC12400-Q1(24 通道)来减少 SPI 的 24 路输入。由于湿性电流集成到器件中,因此与其他设计相比,省去了一些无源器件。
当主处理器上的处理带宽受到限制或专用于某些功能时,最好使用支持微控制器。由于 GPIO、SPI 和 I2C 引脚可用于捕获信号以及将数据传输到主处理器,因此提高了灵活性。与本应用简报中描述的其他设计相比,软件开销要求更高;但是,一旦配置了与主处理器的通信,通信偏好设置将更加灵活,并且可以在将最终数据发送到主主机处理器之前完成本地处理。数据可通过 GPIO、SPI 或 I2C 发送到主处理器,从而使支持的 MCU 成为目前非常灵活的设计。
图 7 中的 TI 设计使用支持的 MCU 来适应将在本地处理的 24 路输入,最终数据将通过 GPIO、SPI 或 I2C 发送到主主机处理器。支持的 MCU 还可用于通过高侧开关进行输出扩展。总体而言,支持的 MCU 可作为易于配置的 IO 扩展的竞争性设计。
前几节讨论了不同的 IO 扩展硬件设计。最后一节详细介绍了分立式湿性电流电路。湿性电流是保持机械开关正常运行所需的最小直流电流,用于消除机械开关上可能积累的过度腐蚀。如果施加的湿性电流不足,开关可能会产生过高的电阻,从而导致开关发生故障。通常,湿性电流介于 1mA 至 20mA 之间。
如果前面列出的器件不提供集成式湿性电流,则需要分立式电路。该电路由两个双极结晶体管 (BJT)、电阻器和电容器组成。我们创建了一个模拟来显示分立式电路的示例值。根据开关类型的不同,分立式湿性电路有不同的配置。
图 8 显示了开关接地的湿性电路原理图。将第二个 BJT (Q2) 的栅极连接到 MCU 上的 GPIO。此 GPIO 可根据需要打开或关闭湿性电流。R5 和 R6 代表输入开关被连接至 IO 扩展器件前的分压器。R8 的值会改变湿性电流的值。通过将 R8 设置为 1kΩ,模拟的湿性电流为 11mA。电池电压也会改变湿性电流的值。如果电池电压上下波动,则湿性电流也会上下波动。
图 9 显示了具有电池开关的湿性电路原理图。将第二个 BJT (Q4) 的栅极连接到 MCU 上的 GPIO。此 GPIO 可根据需要打开或关闭湿性电流。R3 和 R4 代表输入开关被连接至 IO 扩展器件前的分压器。在该电路中,R16 控制湿性电流的值。通过将 R16 设置为 1kΩ,模拟的湿性电流为 10.5mA。电池电压也会影响该电路中的湿性电流值。
本文档介绍了使用 TI 器件进行开关输入和输出的 IO 扩展方法。输入扩展的六种可能的硬件设计是移位寄存器、MUX、ADC、IO 扩展器、MSDI 和支持 MCU。对于实施大量高侧开关的区域模块,IO 扩展器是减少控制高侧开关所需 MCU GPIO 数量的有效方法。
图 10 显示了每个输入扩展硬件设计的最小封装比较。如果需要分立式湿性电路,则会在系统布板空间中添加额外的无源器件。
在以下方面对硬件设计进行了比较:延迟、软件开销、设计尺寸,以及自主监控、中断引脚、湿性电流和接口类型(即 GPIO、SPI、I2C)等器件特性。表 1 概述了可帮助工程师为输入扩展做出理想选择所需的这些主要特性。
类型 | 器件 | 通道 | 接口 | 延迟 | 软件 开销 | 中断 | 自主 监控 | 湿性 电流 |
---|---|---|---|---|---|---|---|---|
移位寄存器 | SN74HCS165-Q1 | 8 | GPIO | 轮询时间、菊花链和时钟速度 | 轮询 | 否 | 否 | 分立式 |
多路复用器 | TMUX1308-Q1 | 8 | GPIO | 轮询时间 | 轮询 | 否 | 否 | 分立式 |
IO 扩展器 | TCA9539-Q1 TCA6408-Q1 | 8 或 16 | I2C | 时钟速度和总线负载 | 用于配置一些寄存器的 I2C | 是 | 否 | 分立式 |
ADC | ADS7038-Q1 | 8 | SPI | 配置和时钟速度 | 用于配置多个寄存器的 SPI | 是 | 是 | 分立式 |
MSDI | TIC12400-Q1 | 24 | SPI | 配置和时钟速度 | 用于配置多个寄存器的 SPI | 是 | 是 | 集成式 |