KCU 高位/低位驅動 (High Side / Low Side Driver) 模塊
KCU GEN1 / GEN2 提供整合式高位驅動 (HSD) 與低位驅動 (LSD) 模塊,支援 PWM 輸出、負載電流量測與通道診斷。本文整理 KopherBit 在 KopherSAR Driver Interface 中的 HSD / LSD API、診斷流程與 BSW 整合方式。
Summary
KCU 提供整合式 High Side Driver (HSD) 與 Low Side Driver (LSD) 模塊,可直接驅動繼電器、馬達、燈具等車輛致動器,部分通道支援 PWM 輸出。KopherBit 在 KopherSAR Driver Interface 中提供標準化 API,包含輸出設定 (HS_SetOutput / LS_UpdateOutputState)、診斷觸發 (HS_Diagnosis_Enabler / LS_RunDiagnosis)、診斷讀取 (*_GetDiagnosisResult)、診斷清除 (*_CleanDiagnosis)、HSD 負載電流量測 (HS_GetLoadCurrent) 等功能,可直接整合於應用層 SWC。
Technical Role
HSD / LSD 是車用 ECU 控制致動器的物理介面:
- High Side Driver (HSD):將電源 (VBATT) 連接到負載,負載另一端接地。常用於需要受保護電源的負載,如繼電器、燈、加熱元件。
- Low Side Driver (LSD):將負載另一端連接到地,電源從外部供應。常用於高頻 PWM 控制(如電機 PWM、燈光調光)。
KopherBit 在 KCU GEN1 上將 HSD / LSD 封裝為 KopherSAR Driver Interface 模塊(屬於 ECU Abstraction Layer),讓應用層 SWC 不需直接觸及 SPI 切換 IC 或 MCU PWM 暫存器。
API 一覽
Low Side Driver (LSD) API
| API | 功能 |
|---|---|
LS_UpdateOutputState | 更新 LSD 輸出狀態至暫存記憶體(後續由 BSW 應用至實體 IC)。 |
LS_GetOutputStatus | 從暫存記憶體取得指定 LSD 通道的輸出狀態。 |
LS_RunDiagnosis | 執行 LSD 各通道診斷並存入暫存記憶體。 |
LS_RunTimeModeCfg | 執行時動態配置 LSD 腳位功能(僅 Demo 用途)。 |
LS_GetDiagnosisResult | 取得選定 LSD 通道的診斷結果。 |
LS_CleanDiagnosis | 清除診斷錯誤狀態。 |
High Side Driver (HSD) API
| API | 功能 |
|---|---|
HS_SetOutput | 設置 HSD 輸出狀態。 |
HS_Diagnosis_Enabler | 開啟 / 關閉 HSD 診斷功能。 |
HS_GetLoadCurrent | 取得選擇 HSD 通道的負載電流量測值。 |
HS_RunTimeModeCfg | 執行時動態配置 HSD 腳位功能(僅 Demo 用途)。 |
HS_GetDiagnosisResult | 取得診斷資訊。 |
HS_CleanDiagnosis | 清除診斷資訊。 |
Architecture
| 層級 | 角色 |
|---|---|
| Application Layer (SWC) | 呼叫 HS_/LS_ API,操作致動器並讀取診斷。 |
| KopherSAR Driver Interface | 提供 HS_/LS_ 標準化 API,封裝 SPI / GPIO 細節。 |
| BSW MCAL (Pwm / Dio / Spi) | 對應 MCU 與切換 IC(如 VNF1248FTR、TLE9104SH)的低階驅動。 |
| Hardware (HSD / LSD IC) | 實體切換 IC,負責電源切換與保護。 |
| DEM (Diagnostic Event Manager) | 記錄 HSD / LSD 診斷錯誤為 DTC。 |
Key Capabilities
- PWM 輸出:KCU GEN1 LSD 18 路(含 4×PWM)、HSD 10 路(含 3×PWM);GEN2 LSD 28 路 PWM、HSD 6 路 PWM。
- 負載電流量測:HSD 提供
HS_GetLoadCurrent即時讀取通道電流,可用於負載偵測或閉迴路控制。 - 整合診斷:開路、短路、過熱、過電流偵測,透過
*_GetDiagnosisResult讀回,並可由應用層轉換為 DTC。 - 暫存記憶體更新模式:LSD 採「先寫暫存 → BSW 統一刷新」模式,避免高頻 SPI 寫入。
- 執行時配置:提供
*_RunTimeModeCfg供 Demo 階段彈性切換腳位(量產建議於配置階段固定)。
Engineering Inputs Required
| 輸入 | 用途 |
|---|---|
| 致動器清單與電流等級 | 決定使用 HSD 還是 LSD、PWM 通道分配。 |
| PWM 頻率與佔空比範圍 | 配置 PWM 模組與診斷判讀條件。 |
| 診斷需求 | 開路 / 短路 / 過熱 / 過電流偵測啟用範圍。 |
| DTC 對應 | 將通道診斷結果映射至 DEM DTC。 |
| 安全要求 | 是否需要冗餘輸出、過電流自動關閉、Failsafe 反應。 |
How KopherBit Supports This
- 基礎軟體:KopherSAR Driver Interface 提供標準化 HSD / LSD API。
- 配置工具:KopherConfig 將通道分配與診斷參數匯出為 BSW 配置。
- 診斷整合:DEM 模組可直接接收 HSD/LSD 診斷結果並轉為 DTC,再由 UDS 0x19 服務讀出。
- 驗證:KCU 平台 Testbench 提供致動器迴路與診斷觸發測試。
FAQ
HSD 與 LSD 該如何選擇?
需要受保護電源連接(如車外燈具,避免線路接地短路時持續通電)→ 選 HSD;需要高頻 PWM 與較高效率(如電機 PWM)→ 選 LSD。實際選擇也與 ECU 接線、保險絲設計有關。
*_RunTimeModeCfg 是否可用於量產?
不建議。*_RunTimeModeCfg 提供 Demo / 開發階段彈性切換腳位功能,但執行時改變配置會增加除錯難度與失效模式。量產建議於 BSW 配置階段固定通道功能。
為何 LSD 採暫存記憶體更新而非直接寫入?
LSD 通道往往透過 SPI 連接外部切換 IC,若每次 LS_UpdateOutputState 都立即寫入會導致 SPI 流量爆增。BSW 統一在 cyclic task 中將暫存值刷新到實體 IC,可控制 SPI 利用率並避免重複寫入。
HSD 負載電流量測精度為何?
精度依使用的 HSD IC 而定。KopherBit 主要採用 VNF1248FTR、TLE9104SH 等內建電流量測之 IC,誤差約 ±10–15% (full scale)。詳細以實際選用 IC datasheet 為準。
診斷觸發後 DTC 是否會自動產生?
需在 KopherSAR DEM 中配置對應 EventId 與診斷條件。應用層呼叫 Dem_SetEventStatus 或在 BSW 中設定自動鏈接,由 DEM 將診斷結果轉為 DTC。
JSON-LD
{
"@context": "https://schema.org",
"@type": "TechArticle",
"headline": "KCU 高位/低位驅動 (High Side / Low Side Driver) 模塊",
"description": "KCU GEN1/GEN2 提供整合式 HSD / LSD 模塊,支援 PWM、負載電流量測與通道診斷,並透過 KopherSAR Driver Interface 標準化 API。",
"url": "https://kopherbit.com/knowledge/low-side-high-side-drivers/",
"datePublished": "2026-05-09",
"dateModified": "2026-05-09",
"inLanguage": "zh-TW",
"keywords": ["High Side Driver", "Low Side Driver", "HSD", "LSD", "PWM", "致動器"],
"articleSection": "Controller",
"author": { "@type": "Organization", "name": "KopherBit", "url": "https://kopherbit.com" },
"publisher": { "@type": "Organization", "name": "KopherBit", "logo": { "@type": "ImageObject", "url": "https://kopherbit.com/logo.png" } }
}