BSS Personal — 배터리 스왑 스테이션 파워유닛 펌웨어
2슬롯 배터리 교환형 충전 스테이션의 파워유닛 펌웨어를 메인으로 개발 중입니다.
개요
전기이륜차용 교환형 배터리팩 충전 스테이션(KS R 6200-2) 파워유닛 펌웨어입니다. 충전기는 2개의 배터리 슬롯을 갖지만 동시에 한 슬롯만 충전 모드로 동작시킬 수 있어, CH_SEL 핀으로 12V 웨이크 경로와 CAN MUX를 함께 선택하고 CAN(KS R 6300-1)으로 BMS와 핸드셰이크(WAKEUP → WAIT_READY → ACTIVATE → CHARGING)해 배터리 상태를 실시간으로 감시합니다.
충전 정책은 두 배터리의 SOC 차이가 10%를 넘지 않도록 번갈아 충전하는 밸런스 모드와, 한 슬롯을 완충한 뒤 다음 슬롯으로 넘어가는 우선 충전 모드 두 가지 FSM으로 설계했고, 앱은 BLE로 충전 시작 요청·모드·슬롯을 지정합니다. 슬롯 전환 시에는 반드시 현재 슬롯의 CAN 충전을 안전 정지한 뒤 CH_SEL을 바꾸도록 해, 반대 슬롯이 의도치 않게 WORKING 상태로 남지 않도록 했습니다.
안정성을 위해 외부 SPI NOR 플래시 기반 듀얼뱅크 FOTA 부트로더를 TrustZone 위에 구현했고, 공장 출하 단계는 USB HID ISP로, 현장 업데이트는 앱을 통한 BLE FOTA로 역할을 분리했습니다. 실기 하드웨어가 없어도 검증할 수 있도록 CAN 없이 BLE로 가상 충전 시나리오를 재현하는 시뮬레이터와, 전력단 벤치 테스트용 CLI 빌드 프로필(product/sim/hwtest)을 함께 구축해 개발 속도를 높였습니다.
판단 — 슬롯 전환 순서
슬롯 전환 시 반대 슬롯이 의도치 않게 WORKING 상태로 남지 않도록, CAN 충전을 먼저 안전 정지한 뒤에만 CH_SEL을 바꾸도록 순서를 고정했습니다. 전력 GPIO보다 통신 상태 정지를 우선한 결정입니다.
핵심
- CAN(KS R 6300-1)으로 BMS 통신, 배터리 상태 실시간 감시
- CH_SEL/전력 GPIO 제어로 2슬롯 중 1슬롯만 안전하게 충전 전환
- 밸런스 / 우선 충전 모드 FSM 설계
- SPI NOR 듀얼뱅크 FOTA 부트로더(TrustZone) 구현
- BLE 가상 충전 시뮬레이터로 실기 없이 검증 가능한 CLI 빌드 구축
직접 해보기
배터리 스왑 스테이션의 2슬롯 충전 상태전이(FSM)를 직접 조작해보는 시뮬레이터.
Charge FSM Visualizer →두 배터리 SOC 차이 10% 이내로 번갈아 충전
듀얼뱅크 부트로더의 다운로드→검증→스왑→부팅 과정을 실패·복구 시나리오까지 시뮬레이션합니다.
FOTA Bank Swap →v1.0.0
—
8바이트 CAN 페이로드를 BMS 시그널(전류·전압·모드)로 디코딩.
CAN Frame Decoder →ID=0x319 B1_ChargeLimit DLC=8
RAW 58 4B 88 13 20 03 70 27
ChargerLimitCurr 385.76 A
ChargerLimitVolt 10.000 V
ChargerCutoffCurr 16.00 A
ChargerCutoffVolt 20.192 V