Skip to main content

7. 如何設計一個「好的電控系統」

7. 如何設計一個「好的電控系統」

7.1 穩定性

硬體穩定性

  • 去耦電容(Decoupling Capacitor):每個 IC 電源腳旁放 100nF + 10μF,濾除高頻雜訊
  • 保護電路:TVS 二極體保護 GPIO 輸入,防止靜電和高壓脈衝
  • 電源設計:使用低壓差穩壓(LDO)或 DC-DC,確保 MCU 電源在 HV 切換時不抖動
  • PCB Layout:類比訊號遠離高頻數位線;差分對等長走線;CAN Bus 終端電阻靠近連接器

軟體穩定性

  • Watchdog Timer:啟用 Hardware Watchdog,若程式超時未餵狗 → 自動 Reset(搭配 AMS_OK 硬體設計)
  • Stack Overflow 保護:設定 Stack Canary
  • ROM/Flash 校驗:上電時校驗程式完整性(CRC 校驗)

7.2 安全性

電氣安全

  • 所有超過 60V 的裸露導體必須有絕緣保護或物理隔離
  • HV 接線使用橙色(FSAE 賽車 HV 線束標準色)
  • HV 連接器使用不同於 LV 的物理形式,防止誤插

功能安全

  • 關鍵感測器(油門踏板、煞車)使用雙通道冗餘設計(兩個獨立感測器,互相比對)
  • 單點故障分析(FMEA):列出所有可能的單點故障,確認每個都有對應的 Fail-safe 處理

7.3 可維護性

這是新人最容易忽略的部分,但也是讓車隊長期競爭力的關鍵。

硬體可維護性

  • 每條線束貼標籤,標明起點、終點、功能
  • 使用快拆連接器(如 Deutsch DT/DTM 系列)而非直接焊接
  • 關鍵節點(SDC 各節點、CAN Bus)設計測試點(Test Point)

軟體可維護性

  • 使用版本控制(Git)管理所有程式碼
  • 重要變數(閾值、超時時間)定義為 #define 常數,集中在一個 config 文件
  • 寫清楚的 commit message,讓半年後的你(或下一屆學弟妹)看得懂當時為什麼這樣改

7.4 Debug 能力

設計時就要為 Debug 準備

  • CAN 數據 Log:使用 CAN Logger(或 Raspberry Pi + candump)記錄所有 CAN 訊息,比賽後可以回放分析
  • LED 狀態指示:每個關鍵狀態(SDC 狀態、各 AIR 狀態、Fault 碼)用 LED 指示,不用接示波器就能知道系統狀態
  • Serial Debug Output:保留一個 UART 接口,可以輸出系統狀態和故障記錄
  • Fault Code 設計:定義數字故障碼,儲存在 EEPROM 或 Flash,斷電後仍可讀取

💡 學長心得:「只在實驗室能 Debug 的系統,不是好系統。」賽場上你沒有示波器、沒有電腦,你需要能在 5 分鐘內靠 LED 和 CAN 讀值判斷問題出在哪裡。這種設計能力要從一開始就建立。

小結

好的電控系統不是功能最多的,而是最可預期的:在任何條件下,你都知道它會做什麼,為什麼這樣做。設計的每一個決策都要能回答:「如果這裡壞了,會發生什麼?」