본문 바로가기
자동차 임베디드 SW/잡

J1939 에 대하여 (CAN 진단통신)

by 존버매니아.임베디드 개발자 2022. 6. 2.
반응형

www.eskorea.net 에 설명이 잘돼있다.

CAN 통신 위에서 동작하는 진단통신 스펙의 한 종류.
트럭, 트레일러 같은 상용차에서 사용되는 프로토콜이라고 한다.

주요 특징은 일단 CAN Extendid ID 방식을 사용한다.
(ID 길이가 29bit)
그리고 통신에 사용되는 몇 가지 파라미터들이 존재하는데, 특이사항은 그런 파라미터를 메세지의 ID값을 활용해서(파싱해서) 나타낸다는 것이다.

예를 들어 원래 CAN 메세지는 브로드캐스트 방식이라 메세지에 Source Address, Destination Address 같은 개념이 없다.

근데 J1939의 경우 ID의 끝 1바이트를 Source Address를 나타내는 용도로 사용한다.

이런식으로 CAN Extended ID를 적절한 비트필드로 잘라서 활용하는 것이다.

이때, Id는 다음과 같이 파싱된다.

제일 앞의 3bit는 메세지간 우선순위에 활용되는 부분이고.

PDU 1과 PDU2를 구분하는 기준은,
위 그림에서 PDU Format 이라고 하는 8비트 영역의 값이 0~239 이면 PDU1
값이 240~255 이면 PDU2 이다.

위 그림에서 PGN 이라 불리는 18 bit 영역이 있는데
CAN 메세지의 데이터필드에 담기는 데이터가 어떤 것인지를 구분해주는 용도이다.
(Parameter Group Number)
(CAN통신의 메세지 ID 같은 역할)

CAN Dbc 목록처럼 각 PGN 별로 해당 CAN 메세지의 데이터영역에 담기는 데이터가 어떤 데이터이고, 그 안에서 세부적으로 어느 비트에 어떤 시그널들이 들어가는지 Pgn List를 만들어두고 이를 바탕으로 Sw를 구현한다.

반응형