글

라벨이 차량 네트워크인 게시물 표시

진단 통신(UDS) 검증, 무엇을 보고 무엇을 판정하나 — 서비스·NRC·테스트케이스

이미지
개정: 2026-10-04. 세션·서비스·타이밍의 프로젝트별 조건과 CANoe 대기시간, 검증 프로세스의 차이를 정리했습니다. UDS 진단은 테스터가 요청하고 ECU가 응답하는 클라이언트–서버 통신입니다. 검증에서 중요한 것은 서비스 번호를 외우는 일보다, 올바른 조건으로 요청하고 정해진 응답을 판정하는 일입니다. 응답이 없거나 거부됐다는 사실만으로 ECU 고장을 확정하지 마세요. 1. 주소와 시험 범위부터 정합니다 CAN의 물리 주소 진단은 특정 ECU와 1:1로 대화하고, 기능 주소 진단은 대상 기능에 해당하는 여러 ECU에 요청할 수 있습니다. 요청·응답 ID와 주소 형식은 승인된 진단 사양 및 설명 파일에서 확인합니다. 일반 CAN 메시지에도 주기·이벤트 방식이 있으므로 “일반 메시지는 언제나 주기, 진단은 언제나 응답”으로 단순화하지 않습니다. 기능 주소, 긍정 응답 억제 설정, 서비스별 응답 규칙에 따라 무응답 판정이 달라질 수 있습니다. 처음 시험을 만들 때는 물리 주소, 응답을 기대하는 서비스 하나로 시작한 뒤 범위를 확장하면 원인을 구분하기 쉽습니다. 바이트 포장·분할은 ISO-TP이고, 서비스 허용·응답 내용은 UDS라는 층의 차이도 기억하세요. 2. 기본·확장·프로그래밍 세션은 허용표와 함께 읽습니다 0x10 DiagnosticSessionControl로 진단 세션을 전환합니다. 기본, 확장, 프로그래밍이라는 이름만으로 어떤 읽기·쓰기·루틴이 허용되는지 단정할 수는 없습니다. 서비스·서브기능·DID마다 지원 세션, 보안 수준, 전압·운전 상태 같은 선행조건을 확인해야 합니다. 확장 세션으로 바꿨다고 보호된 쓰기가 모두 열리는 것도 아닙니다. 시험 준비 항목 확인할 근거 서비스·DID·길이 지원 목록과 요청·응답 정의 세션·보안 서비스 허용표, 보안 접근 조건 P2·P2*·S3 승인 진단 사양·설명 파일·세션 전환 응답 등 적용 근거 주소·패딩 CAN ID, ISO-TP 주소 형식, 전송 사양 S3는 비기본 세션의 비활동 시...

CAN 프레임 안에 UDS는 어떻게 들어가나 — ISO-TP 정리

이미지
개정: 2026-10-04. 설명 범위를 Classical CAN 일반 주소 방식으로 한정하고, 50바이트 예제의 FC를 CTS 4회와 Wait 1회, 총 5회로 정리했습니다. CANoe Trace의 03 22 F1 90 AA AA AA AA 는 무엇일까요? 앞의 03은 UDS 서비스가 아니라 ISO-TP의 제어 정보입니다. 이 글은 CAN 데이터 안에서 길이·순번·흐름 제어를 읽는 연습입니다. 서비스가 허용되는지는 별도 UDS 사양으로 판정합니다. 1. 먼저 적용 범위를 붙입니다 아래 바이트 예제는 Classical CAN, 데이터 길이 8바이트, 일반(normal) 주소 형식, 물리 주소 1:1 전송을 가정합니다. 일반 주소는 CAN ID로 주소를 표현하므로 데이터 첫 바이트가 PCI입니다. 확장·혼합 주소 형식에는 추가 주소 바이트가 들어갈 수 있습니다. CAN FD는 최대 64바이트 데이터와 다른 길이 처리가 있으므로 여기의 “7바이트” 규칙을 그대로 적용하지 않습니다. CAN의 ID는 프레임을 구분하고, DLC는 데이터 길이를 나타냅니다. 이 범위의 데이터는 최대 8바이트입니다. ISO-TP는 그 안에 PCI와 진단 데이터를 넣고, 한 프레임에 안 들어가면 분할·재조립합니다. CAN의 CRC·ACK는 링크 전송에 관여하지만 UDS 서비스 결과나 ECU 애플리케이션 처리 완료를 보장하지 않습니다. 2. DLC와 진단 데이터 길이는 다릅니다 03 22 F1 90 AA AA AA AA 에서 DLC는 8, SF의 진단 데이터 길이는 3입니다. PCI 03의 상위 4비트 0은 Single Frame, 하위 4비트 3은 길이입니다. 실제 UDS 바이트는 22 F1 90이고 나머지 AA 네 개는 이 예제의 패딩입니다. AA는 모든 프로젝트의 공통 정답이 아닙니다. Classical CAN·일반 주소·물리 1:1 예에서 DLC 8은 PCI 1바이트, UDS 3바이트, 패딩 4바이트로 나뉩니다. AA는 이 예제의 가정입니다. 종류 PCI 예 이 범위...

DBC·LDF가 어렵다면? CAN·LIN 로그를 읽고 바로 검증에 적용하는 실무 가이드

이미지
수정 2026-10-04: Frame ID와 PID를 구분하고, LIN 슬롯 시간과 프레임 반복주기의 차이를 가상 스케줄로 설명했습니다. CAN·LIN 로그에 숫자는 보이는데 펌프가 몇 RPM인지 모르겠다면, 먼저 DBC와 LDF를 확인하세요. DBC는 CAN 데이터의 의미를 풀어주는 정의 파일 이고, LDF는 LIN 신호·프레임·노드와 스케줄을 설명하는 파일 입니다. 파일을 읽는 목적은 문법 암기가 아니라 원시 데이터와 제어 의미, 시간 조건을 연결하는 것입니다. DBC·LDF로 통신 데이터를 신호와 시험 조건에 연결하는 개념도입니다. 1. 네 가지 약어부터 구분합니다 용어 뜻과 역할 DBC CAN 데이터베이스 파일 형식(.dbc). 메시지 ID와 신호의 비트 위치·길이·단위·변환 규칙 등을 정의. LDF LIN Description File. LIN 노드, 신호, 프레임, 송수신 역할과 Schedule Table 등을 정의. DLC Data Length Code. CAN 데이터 길이 코드. CAN FD에서는 코드와 실제 바이트 수가 항상 같지 않음. PID Protected Identifier. LIN의 6비트 Frame ID에 패리티 2비트를 더한 8비트 식별자. 예를 들어 CAN FD의 DLC 15는 데이터 64바이트를 뜻합니다. LIN Frame ID 0x22는 패리티를 결합하면 PID 0xE2가 됩니다. 둘은 같은 숫자를 다른 표기로 쓰는 관계가 아닙니다. 도구가 ID와 PID 중 무엇을 표시하는지 확인해야 합니다. 이 값은 프로토콜 설명 예이며 고객 메시지 사양이 아닙니다. 2. CAN은 ID와 길이부터 읽습니다 확인 순서는 ID·프레임 형식 → 데이터 길이 → Start Bit·Length·Endian → Factor·Offset → 단위·상태 → 시간 조건 입니다. Standard/Extended ID, Classical CAN/CAN FD를 먼저 구분하세요. 메시지가 다르면 같은 바이트도 다른 의미입니다. Start Bi...

자동차 CAN 통신 완벽 가이드: 프레임 구조·CAN Stack·AUTOSAR·Vector 장비

이미지
여러 ECU가 CANH·CANL 공통 버스를 통해 상태와 명령을 공유하는 자동차 CAN 네트워크 자동차에서 CAN(Controller Area Network)은 여러 ECU가 두 가닥의 공통 통신선으로 상태와 명령을 주고받게 하는 차량 네트워크입니다. 단순히 “CAN 메시지를 보냈다”는 말 안에는 전압, 비트 타이밍, 프레임, 중재, 오류 검출, 네트워크 관리, 진단, 신호 데이터베이스와 시험 도구까지 여러 층이 들어 있습니다. 30초 요약 CAN은 메시지의 송신자·수신자 주소보다 CAN ID로 데이터의 의미와 우선순위 를 표현하는 브로드캐스트 방식입니다. Classical CAN 한 프레임의 데이터는 최대 8바이트입니다. SOF–중재–제어–데이터–CRC–ACK–EOF가 한 묶음을 이룹니다. 트랜시버는 CANH·CANL의 차동 전압을 디지털 TXD·RXD로 바꾸고, MCU 안의 CAN Controller가 비트·프레임·오류 처리를 담당합니다. AUTOSAR는 역할과 인터페이스가 표준화된 계층형 Stack이고, Non-AUTOSAR는 제품 목적에 맞게 더 간단히 구성할 수 있습니다. 저가 인터페이스도 기본 송수신에는 충분합니다. Vector의 강점은 OEM 생태계, CANoe·CAPL·진단·Restbus·자동화·보고서의 통합과 재현성입니다. 기준일: 2026년 8월 17일. 이 글은 Classical CAN과 CAN FD를 중심으로 설명합니다. 시험 규격과 OEM 요구사항, 도구 버전은 프로젝트 시작 전에 최신 승인본을 다시 확인해야 합니다. CAN은 왜 탄생했을까 자동차 전장 기능이 늘어나면 센서와 스위치를 각 ECU에 일대일 배선하는 방식은 곧 한계에 부딪힙니다. 배선 무게와 커넥터 핀 수가 증가하고, 같은 차속·온도 정보를 여러 ECU가 각각 받아야 하며, 변경 때마다 하네스를 다시 설계해야 하기 때문입니다. 보쉬는 1980년대 초 차량용 직렬 통신 시스템을 개발했고 19...

자동차 CAN·LIN 통신 입문: EOP·EWP 신입 엔지니어 실무 가이드

이미지
전동화 펌프의 명령·상태 신호를 벤치와 네트워크 Trace에서 함께 확인하는 모습 EOP·EWP·OPU를 처음 맡으면 부품 구조보다 먼저 낯선 약어에 막힙니다. DBC, LDF, DTC, 카운터, 체크섬, 타임아웃이 한꺼번에 나오기 때문입니다. 하지만 업무의 중심을 한 문장으로 줄이면 의외로 단순합니다. 상위 제어기가 어떤 명령을 보냈고, 펌프가 어떤 상태를 돌려줬으며, 통신이 끊겼을 때 안전하게 반응했는지 증명하는 일 입니다. 30초 요약 ① 부품보다 먼저 네트워크와 핵심 신호를 그립니다. ② CAN은 여러 노드가 공유 버스에 전송할 수 있고 식별자로 우선순위를 중재합니다. ③ LIN은 지휘 노드가 헤더와 스케줄을 관리해 예측 가능한 통신을 만듭니다. ④ 고장은 물리 계층 → 신호 해석 → 타이밍 → 제어·진단 순서로 좁히면 빠릅니다.

오류 테스트, DTC 뜨면 끝인가요? — 결함 주입부터 정상 복귀까지

이미지
개정: 2026-10-04. 임계값 히스테리시스와 시간·횟수·상태 기반 복구를 구분하고, 전체 오류–복구 판정 틀을 정리했습니다. “고장을 넣었더니 DTC가 떴다”만으로 오류 시험을 끝내면 보호 동작과 정상 복귀를 놓칩니다. 전동화 제어기는 이상을 감지한 뒤 출력을 제한하거나 정지할 수 있고, 정상화 뒤에는 정해진 조건으로 재진입해야 합니다. DTC는 진단 정보이지 출력과 상태가 모두 올바르다는 증거는 아닙니다. 이 글의 사례·변수·시험 계획은 교육용이며 실제 프로젝트의 실행 결과가 아닙니다. 실제 반응과 시간은 승인 요구사항·안전 분석·하드웨어 정격에서 가져옵니다. “모든 오류는 즉시 정지”나 “입력이 정상으로 돌아오면 즉시 복구” 같은 공통 정답을 만들지 않습니다. 결함 주입·보호·복귀의 기존 개념 삽화이며 실측 시험이나 PASS 결과가 아닙니다. 보호·복귀 조건을 따로 확인하고 현재 고장·기능 복귀·저장 DTC를 구분합니다. 1. 오류를 넣기 전에 주입점과 관측점을 나눕니다 오류 범주 입력·상황 예 관측할 것 전원 저전압·순간 강하·재인가 리셋 원인, 출력, NVM·통신 복귀 통신 수신 중단·무효값·카운터 오류 유효 상태, 선택 명령, 타임아웃 센서 범위 이탈·고정값·급변 원시값·필터값·대체값 구동·열 응답 없음·과온 후보 전류·속도·온도·보호 상태 타이밍 태스크 지연·Watchdog 실행 시각·상태천이·재기동 같은 회전수 저하라도 저전압, 부하·점도 변화, 전류 제한, 제어 오류처럼 원인이 다릅니다. 어디에 무엇을 넣었는지와 어디서 무엇을 읽었는지를 구분해야 결과를 해석할 수 있습니다. 시험환경이 만들 수 없는 고장을 만들었다고 기록하지 않습니다. 2. 감지·확정·보호는 별도 시각으로 봅니다 감지는 입력이 오류 후보 조건을 만족한 시점입니다. 디바운스는 순간 노이즈를 확정 고장으로 오인하지 않도록 시간·횟수 등을 보는 처리입니다. 진단 확정, 통신으로 DTC를 보고하는 시점, 보호 출력이 바뀌는 시점은 서로 다를 수 있습니다. 항상 ...