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