ZHCAC37 February 2023 ADS7038-Q1 , SN74HCS165-Q1 , TCA9539-Q1 , TIC12400-Q1 , TMUX1308-Q1
汽車的當前發(fā)展趨勢是轉向整合設計,使用區(qū)域架構通過半導體設計配電。這種轉變帶來了諸多優(yōu)勢,例如優(yōu)化 ECU 之間的布線、增強的軟件控制和區(qū)域配電。通過將分配給更多負載、傳感器和傳動器的電力組合到區(qū)域模塊中,將更多輸入和輸出連接到單個汽車微控制器 (MCU)、微處理器或片上系統(tǒng) (SoC) 的難題變得更為普遍。
之所以編寫本文是為了介紹輸入和輸出端的輸入/輸出 (IO) 擴展方法。本文討論了 IO 擴展的主要注意事項,包括從 MCU 到 IO 接口器件的信號延遲、軟件開銷、設計尺寸以及自主監(jiān)控、中斷引腳、濕性電流和接口類型等器件特性;即通用 IO (GPIO)、串行外設接口 (SPI)、內(nèi)部集成電路 (I2C)。
區(qū)域模塊中通常使用的輸入示例包括:分立式高壓開關(高電平有效、低電平有效、推挽)、來自其他控制模塊的分立式高壓信號、電阻編碼開關、矩陣開關和模擬傳感器。有 6 種可能的硬件設計用于處理輸入并為 MCU 提供幫助:
本文檔以應用中需要的 24 個開關或傳感器輸入為例。輸入可以是電池開關、接地開關、三態(tài)開關或模擬傳感器。某些器件只能識別高或低離散狀態(tài),因此無法適應三態(tài)開關或模擬傳感器。對于這些特定的輸入,IO 擴展器件的輸出端必須與 MCU 上的 ADC 引腳連接,或者 IO 擴展器件必須具有集成 ADC。根據(jù)開關的類型,需要一個上拉和/或下拉電阻器將開關保持在已知狀態(tài)。還可能需要一個額外的分壓器來降低 IO 擴展器件所見的輸入電壓。此外,系統(tǒng)中還需要反向電壓保護、電池短路保護或接地短路保護。如果需要濕性電流,則需要額外的#SECTION_F25_VDG_VVB,或者 IO 擴展器件具有集成式濕性電流。
每個區(qū)域模塊可以有大量負載驅動器來控制系統(tǒng)中的負載。通常,大多數(shù)負載驅動器都是高側開關,通常由系統(tǒng) MCU 的 GPIO 控制。但是,MCU 可使用有限的 GPIO 與系統(tǒng)內(nèi)的所有高側開關和其他電路連接。對于基于 SPI 的高側開關,需要通過 IO 擴展來處理大量片選 (CS)。有兩種可能的硬件設計可用于處理高側開關并減輕 MCU 的負擔:
本簡報的其余部分將分析每個硬件 IO 設計。
當可用的 GPIO 受到限制、需要更少的功能和更少的軟件開銷時,最好使用移位寄存器。移位寄存器僅需要來自 MCU 的 4 個 GPIO,并且能夠以菊花鏈形式讓器件將數(shù)據(jù)輸出到單個 GPIO 數(shù)據(jù)輸出端。另外 3 個 GPIO 用于驅動 CLK、SH/LD、SER。通過采用菊花鏈配置移位寄存器,連接 GPIO 的數(shù)量始終為四個,這使得該設計極其靈活,可用于距離設計過程更遠的附加項。但是,雖然菊花鏈是一個很好的設計,但通過菊花鏈連接的移位寄存器越多,延時增加的就越多。在軟件開銷方面,移位寄存器只需要應用 CLK、SH/LD 和 SER 信號,但需要定期輪詢數(shù)據(jù)輸出以了解狀態(tài)變化。此輪詢過程會影響所需的軟件開銷量。如需詳細了解移位寄存器,請參閱使用移位寄存器進行設計 應用手冊。
圖 1 中的 TI 提議顯示了使用 3 個 SN74HCS165-Q1 的設計,這是一個 8 通道移位寄存器。移位寄存器以菊花鏈實現(xiàn)方式顯示,將 24 個開關輸入減少為 4 個 MCU GPIO。
當需要軟件開銷極小的純模擬設計、不需要 MCU 喚醒、只需要開關監(jiān)控或優(yōu)選注入電流控制功能時,最好使用多路復用器。在典型區(qū)域應用中,MCU 需要使用 A0、A1 和 A2 定期循環(huán)多路復用器真值表,以檢查輸入端是否有值變化。這決定了總延遲和軟件開銷。有關 MUX 時序特性的信息,請查看專門的 TI E2E 常見問題解答,其中詳細討論了 MUX 延遲。
#GUID-97C8122A-43B3-46B5-86FC-B535D7B1C51D 中的 TI 提議顯示了使用 3 個 TMUX1308-Q1 的設計,這是一個 8 通道 MUX。該設計需要 24 個開關輸入,并且 MCU 上最多需要 15 個 GPIO。通過將所有 EN 引腳連接在一起,將 A0 引腳連接在一起、將 A1 引腳連接在一起、將 A2 引腳連接在一起,可以將這個數(shù)字減少到 7 個 GPIO。這樣,需要 4 個 GPIO 來控制 EN,需要 A0、A1、A2 和 3 個 GPIO 來接收來自 MUX 的數(shù)據(jù)。
當優(yōu)選 I2C 接口且需要中斷引腳時,最好使用 IO 擴展器。為了實現(xiàn)軟件開銷,將 IO 端口配置為輸入或輸出,然后需要通過寄存器讀取來確定輸入端的值,并需要通過寄存器寫入來設置輸出的值。對于開關輸入,IO 擴展器可以輪詢輸入端,或在有標記時使用中斷引腳檢查輸入端。關于信號延遲,IO 擴展器器件是可以在快速 I2C 總線 (400kHz) 上運行的 I2C 目標器件。延遲取決于 I2C 工作頻率和總線負載條件。
圖 3 中的 TI 提議使用 1 個 TCA9539-Q1(16 通道)和 1 個 TCA6408-Q1(8 通道)將 24 個輸入端連接到共享 I2C 總線。
IO 擴展器也是輸出擴展的理想選擇,因為 I2C 可用于控制高側開關,從而大幅減少所需的 GPIO 數(shù)量。將 IO 端口配置為輸入端和輸出端,以連接相應的高側開關引腳。
圖 4 顯示了如何使用 GPIO 擴展器來控制高側開關。如果高側開關需要電流檢測引腳,則電流檢測引腳可直接連接到 MCU 上的 ADC 引腳,或通過 MUX(即 TMUX1308-Q1)連接到 MCU 上的 ADC 引腳、,或連接到外部 ADC。
當需要 SPI、MCU 內(nèi)的模擬輸入多于可用的 ADC 引腳,以及需要使用中斷引腳進行自主監(jiān)控時,最好使用 ADC。設置 SPI 通信和配置寄存器需要一些軟件開銷??紤]到延遲,ADS7038-Q1 是一款具有不同配置模式的逐次逼近 (SAR) ADC。根據(jù)配置模式的不同,使用手動 模式時,ADC 可以具有零延遲(使用動態(tài) 模式)至 2 周期延遲。總體而言,延遲在很大程度上取決于器件應用、采樣率和器件的模式配置。
圖 5 展示了使用 3 個 ADS7038-Q1(一種 8 通道 ADC)將 24 路輸入轉換為 SPI 的設計。
當需要 SPI、集成式濕性電流、高電壓保護和自主監(jiān)控時,最好使用 MSDI。配置 SPI 通信和設置所需的寄存器需要一些軟件開銷。
信號的延遲可以指開關狀態(tài)變化與產(chǎn)生中斷信號之間的時間。該時間可能會根據(jù)器件配置而變化。TIC12400-Q1 是一款 24 通道 MSDI 器件,在輪詢循環(huán)中對輸入引腳進行順序采樣??赏ㄟ^ POLL_TIME 寄存器將此循環(huán)的頻率配置為每 2ms 執(zhí)行一次到每 4096ms 執(zhí)行一次。延遲取決于開關轉換相對于內(nèi)部輪詢循環(huán)的發(fā)生位置,因為這些是異步的。因此,延遲幾乎是瞬時的,或者說幾乎是整個輪詢時間。其他因素也會影響延遲,例如濕性電流的應用方式(連續(xù)或輪詢模式)、測量類型(比較器或 ADC)、所配置的輸入通道數(shù)量、輪詢模式下主動應用濕性電流的時間等。
圖 6 中的 TI 設計使用 1 個 TIC12400-Q1(24 通道)來減少 SPI 的 24 路輸入。由于濕性電流集成到器件中,因此與其他設計相比,省去了一些無源器件。
當主處理器上的處理帶寬受到限制或專用于某些功能時,最好使用支持微控制器。由于 GPIO、SPI 和 I2C 引腳可用于捕獲信號以及將數(shù)據(jù)傳輸?shù)街魈幚砥?,因此提高了靈活性。與本應用簡報中描述的其他設計相比,軟件開銷要求更高;但是,一旦配置了與主處理器的通信,通信偏好設置將更加靈活,并且可以在將最終數(shù)據(jù)發(fā)送到主主機處理器之前完成本地處理。數(shù)據(jù)可通過 GPIO、SPI 或 I2C 發(fā)送到主處理器,從而使支持的 MCU 成為目前非常靈活的設計。
圖 7 中的 TI 設計使用支持的 MCU 來適應將在本地處理的 24 路輸入,最終數(shù)據(jù)將通過 GPIO、SPI 或 I2C 發(fā)送到主主機處理器。支持的 MCU 還可用于通過高側開關進行輸出擴展??傮w而言,支持的 MCU 可作為易于配置的 IO 擴展的競爭性設計。
前幾節(jié)討論了不同的 IO 擴展硬件設計。最后一節(jié)詳細介紹了分立式濕性電流電路。濕性電流是保持機械開關正常運行所需的最小直流電流,用于消除機械開關上可能積累的過度腐蝕。如果施加的濕性電流不足,開關可能會產(chǎn)生過高的電阻,從而導致開關發(fā)生故障。通常,濕性電流介于 1mA 至 20mA 之間。
如果前面列出的器件不提供集成式濕性電流,則需要分立式電路。該電路由兩個雙極結晶體管 (BJT)、電阻器和電容器組成。我們創(chuàng)建了一個模擬來顯示分立式電路的示例值。根據(jù)開關類型的不同,分立式濕性電路有不同的配置。
圖 8 顯示了開關接地的濕性電路原理圖。將第二個 BJT (Q2) 的柵極連接到 MCU 上的 GPIO。此 GPIO 可根據(jù)需要打開或關閉濕性電流。R5 和 R6 代表輸入開關被連接至 IO 擴展器件前的分壓器。R8 的值會改變濕性電流的值。通過將 R8 設置為 1kΩ,模擬的濕性電流為 11mA。電池電壓也會改變濕性電流的值。如果電池電壓上下波動,則濕性電流也會上下波動。
圖 1-8 接地開關的濕性電路圖 9 顯示了具有電池開關的濕性電路原理圖。將第二個 BJT (Q4) 的柵極連接到 MCU 上的 GPIO。此 GPIO 可根據(jù)需要打開或關閉濕性電流。R3 和 R4 代表輸入開關被連接至 IO 擴展器件前的分壓器。在該電路中,R16 控制濕性電流的值。通過將 R16 設置為 1kΩ,模擬的濕性電流為 10.5mA。電池電壓也會影響該電路中的濕性電流值。
圖 1-9 用于切換到電池的濕性電路本文檔介紹了使用 TI 器件進行開關輸入和輸出的 IO 擴展方法。輸入擴展的六種可能的硬件設計是移位寄存器、MUX、ADC、IO 擴展器、MSDI 和支持 MCU。對于實施大量高側開關的區(qū)域模塊,IO 擴展器是減少控制高側開關所需 MCU GPIO 數(shù)量的有效方法。
圖 10 顯示了每個輸入擴展硬件設計的最小封裝比較。如果需要分立式濕性電路,則會在系統(tǒng)布板空間中添加額外的無源器件。
圖 1-10 封裝尺寸比較在以下方面對硬件設計進行了比較:延遲、軟件開銷、設計尺寸,以及自主監(jiān)控、中斷引腳、濕性電流和接口類型(即 GPIO、SPI、I2C)等器件特性。表 1 概述了可幫助工程師為輸入擴展做出理想選擇所需的這些主要特性。
| 類型 | 器件 | 通道 | 接口 | 延遲 | 軟件 開銷 | 中斷 | 自主 監(jiān)控 | 濕性 電流 |
|---|---|---|---|---|---|---|---|---|
移位寄存器 | 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 | 是 | 是 | 集成式 |