5월 한 달 동안은 실무 현업에서 진행되는 차량 전장 단품 평가(Evaluation Board/HILs) 환경에서의 전원 제어 및 타이밍 검증을 어떻게 하면 완전 자동화할 수 있을지에 대해 고민하고 설계하는 시간을 보냈습니다.
첫 번째 프로젝트가 Practice 겸 Python 기반 자동화 프로젝트였다면, 이번 프로젝트는 말 그대로 실무 환경을 최대한 구현하고, 그에 맞게 수동 테스트 데이터와 자동화 테스트 데이터를 비교하며 나오는 산출물로 데이터 처리하는 방법을 진행하려고 했습니다.
전장 단품 평가의 복잡한 전원 요구사항 (REQ)
차량 단말기(CCU/T-Box)의 전원은 우리가 흔히 쓰는 가전제품처럼 간단히 "On/Off"로 끝나지 않습니다. 실제 차량 제어기들은 배터리 손상과 방전을 막고 데이터 안정성을 확보하기 위해 복잡한 전원 변화 규격(Power Matrix)과 가혹한 시간 지연(Timing Delay) 특성을 가집니다.
- B1/B2 (상시 전원): 배터리 직결 라인으로 항상 12V의 대기 전압을 유지해야 함.(평가환경에서는)
- ACC (Wire ACC / Panel ACC): 시동 키 혹은 인포테인먼트 조작 시 물리/논리 전압 인입.
- 물리적 부팅 지연 사양: ACC ON 인입 시, 시스템 커널이 정상 부팅을 마치고 고속 이더넷 인터페이스 링크업(PHY Link) 및 세션 토큰을 발급받기까지 5초의 부팅 유예 지연을 설정함.
- 슬립 유예 지연 사양 (Grace Period): ACC OFF가 감지되어도 즉각 셧다운하지 않고, 약 10초간 통신을 유지(실제로는 상당히 긴 시간 유지함)하며 실시간 CAN 버스로 정합성 데이터(CRC 롤링 등)를 안전하게 백업 및 최종 보고한 뒤 슬립에 들어가야 함.
수동 테스트의 한계점
이 타이밍 사양들이 정상 작동하는지 수동으로 검증할 때 테스터는 엄청난 시간적 매몰 비용을 마주하게 됩니다.
대략 5초, 10초로 작성했지만 실제 단품 평가 진행 시 제 환경에서는 약 1분을 넘는 시간이 소비되고 있습니다.
- 대기 시간과 피로 누적: 전원 스위치를 켜고 부팅이 완료될 때까지(5초), 전원을 끄고 슬립에 들어갈 때까지(10초) 매 테스트 케이스마다 멍하니 모니터의 로그 터미널과 계측기만 쳐다보고 있어야 합니다.
- 휴면에러 발생: 이건 당연하다고 할 수 있지만, EV 차량 기준 1200개의 T/C ID가 존재하기 때문에 매번 정확하게 진행을 할 수 있다고 가정하기 쉽지는 않습니다. 아무리 로그와 시그널 값, 다른 데이터들을 확인한다고 해도 놓칠 수 밖에 없습니다.
가상 CCU 하드웨어 에뮬레이터 구축
이 문제를 해결하기 위해, 일단 가상으로 진행할 수 있는 환경을 만드려고 하고 있습니다.
5초의 부팅 지연과 10초의 슬립 유예기간, 그리고 물리 배선 상태 레지스터를 실차 규격 그대로 재현하고자 Python 기반 Pytest, PlayWright는 당연히 사용하며, Python-Can, MQTT, FastAPI, Docker 등 많은 기술 스택을 넣고 진행을 하고 있는데
상당히 딜레이가 많이 되는 과정을 거쳤기 때문에 실무 중 MT, MO 각각 2가지 정도 구현을 하고자 목표를 재설정했습니다.
장기 프로젝트여서 아직까지는 순탄하게 진행 중이라고 생각하고 있습니다.


5월을 마치며
재미있게도 자격증을 따고나서 바로 목표가 없어져서 조금 설렁설렁하기도 했고
일이 정말정말 바빠져서 야근도 좀 했습니다....
솔직히 일하면서 사양서 확인하고 체크하는게 생각보다 재밌어서
4주동안 프로젝트 하나 완료하고 그런 느낌으로 일이 진행되기 때문에 끝나고나서 좀 더 열심히 해봐야겠다고 생각하고 있었습니다.