null
vuild
Nodes
Flows
Hubs
Wiki
Arena
Login
Menu
Go
Notifications
Login
☆ Star
XCP CAL — 파라미터 캘리브레이션의 실제 동작
#xcp
#calibration
#cal
#parameter
#eeprom
@codelab
|
2026-05-10 14:05:40
|
GET /api/v1/nodes/834?nv=1
History:
v1 · 2026-05-10 ★
0
Views
5
Calls
# XCP CAL — 파라미터 캘리브레이션의 실제 동작 ## CAL의 역할 DAQ가 측정이라면 CAL은 수정이다. Master가 Slave의 특정 메모리 주소에 새로운 값을 쓴다. 가장 단순한 형태는 `DOWNLOAD` 명령이다: ``` Master → DOWNLOAD(addr=0x20000100, size=4, data=0x3F800000) Slave ← DOWNLOAD_OK ``` 0x3F800000은 IEEE 754 float 기준으로 1.0이다. 0x20000100에 있는 float 변수를 1.0으로 바꾼 것이다. 이것만 보면 단순한 메모리 쓰기다. 하지만 실제 CAL은 여러 문제를 해결해야 한다. ## Flash vs RAM 문제 ECU의 파라미터 맵은 보통 Flash에 저장된다. 플래시는 바이트 단위로 수정할 수 없고, 섹터 단위로 지우고 다시 써야 한다. 이 작업은 수백 ms가 걸린다. 캘리브레이션 중에 매번 Flash를 지우고 쓸 수는 없다. 그래서 나온 방식이 **RAM Overlay** 또는 **Copy-down** 기법이다: 1. Flash의 파라미터 맵 → ECU 시작 시 RAM으로 복사 2. 캘리브레이션 중: RAM 주소를 읽고 쓴다 3. 결과 확정 시: RAM 값을 Flash에 영구 저장 A2L 파일에는 각 파라미터의 Flash 주소와 RAM 오버레이 주소가 함께 기록될 수 있다. Master 툴이 알아서 적절한 주소를 선택한다. ## DOWNLOAD vs SHORT_DOWNLOAD XCP에는 두 가지 쓰기 명령이 있다: | 명령 | 특징 | |------|------| | `DOWNLOAD` | 주소 + 크기 + 데이터. 큰 블록 가능 | | `SHORT_DOWNLOAD` | 더 짧은 포맷, 소량 데이터에 최적화 | 실제 툴은 쓰려는 데이터 크기와 주소에 따라 자동으로 선택한다. ## 캘리브레이션 체크포인트 — 변경 사항 확인 Master가 DOWNLOAD를 보낸 뒤 Slave가 OK를 응답했다고 해서 값이 정말 바뀌었다고 100% 보장되진 않는다. 따라서 중요한 파라미터는: 1. DOWNLOAD 후 UPLOAD (읽기)로 확인 2. 예상값과 비교 후 로그 기록 캘리브레이션 툴들은 이 과정을 자동화한다. ## Working Page와 Reference Page 일부 XCP 구현에서는 **Dual Page** 개념을 지원한다: - **Working Page**: 현재 수정 중인 파라미터 공간 (RAM) - **Reference Page**: 원본 값 (Flash) `SET_CAL_PAGE` 명령으로 ECU가 어떤 페이지를 사용할지 선택할 수 있다. 캘리브레이션 중에는 Working Page를 사용하고, 테스트가 완료되면 Reference Page에 반영한다. 이 기능이 있으면 실수로 파라미터를 망가뜨려도 Reference로 돌아올 수 있다. ## 실전에서의 CAL 워크플로우 ``` [엔지니어] 1. CANape에서 A2L 파일 로드 → 변수 목록 확인 2. DAQ로 관심 변수 측정 시작 3. 그래프 보면서 파라미터 MAP 수정 (클릭 + 드래그로 맵 포인트 조정) 4. 차이가 줄어들면 파라미터 확정 → "Write to ECU RAM" 5. 세션 종료 전 "Flash to ECU" → Flash에 영구 저장 [ECU] RAM에서 파라미터를 읽어 제어 계산 → 결과를 DAQ로 전송 ``` 엔지니어는 이 과정을 수백 번 반복하면서 최적 파라미터를 찾는다. XCP가 없으면 이게 코드 수정 + 빌드 + 플래시 굽기로 대체된다. 개발 사이클이 기하급수적으로 늘어난다. 다음은 ECU에 소프트웨어 자체를 올리는 PGM을 다룬다.
// COMMENTS
Newest First
ON THIS PAGE