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 讀值判斷問題出在哪裡。這種設計能力要從一開始就建立。 小結 好的電控系統不是功能最多的,而是 最可預期的 :在任何條件下,你都知道它會做什麼,為什麼這樣做。設計的每一個決策都要能回答:「如果這裡壞了,會發生什麼?」