SAE J1939

상용차 부문의 네트워크 및 통신을 위한 개방형 표준

Know-how

SAE J1939는 상용차 분야의 네트워크 및 통신을 위한 개방형 표준입니다. 이 표준의 핵심은 파워트레인의 네트워크입니다.

SAE J1939의 특징은 네트워크 및 통신에 CAN 기술을 사용한다는 점과 제조사 간 상호 운용성을 지원한다는 점입니다. J1939 프로토콜은 자동차 기술자 협회(SAE)에서 제정되었으며, 물리계층에서는 ISO 11898에 따른 고속 CAN을 사용합니다.

 

이 페이지에서는 J1939 프로토콜에 대해 전반적으로 설명합니다. CAN FD를 사용하는 J1939에 대한 정보는 별도의 노하우 페이지에서 확인할 수 있습니다.

특징

  • 29비트 extended CAN identifier를 사용합니다.
  • 표준화된 CAN 전송 속도인 250 kbit/s 및 500 kbit/s를 지원합니다.
  • 지점 간 주소 지정(노드 주소 지정) 및 전역 주소 지정(메세지 주소 지정)을 지원합니다.
  • 다중 패킷 메시지를 통해 최대 1785byte까지 전송할 수 있다
  • 자체 네트워크 관리를 통한 버스 접근 제어
  • 차량 전체 통신을 위한 표준화된 메세지
  • 제조사별 메세지 정의 가능
  • 자체 진단 인터페이스 정의

SAE J1939 및 CAN

SAE J1939 프로토콜은 물리계층으로 CAN(Controller Area Network, ISO 11898-1 및 ISO 11898-2)을 사용합니다. CAN 프로토콜은 자동차 네트워킹에서 중요한 역할을 하며, 전자 제어기(ECU) 간의 비트 직렬 통신에 널리 사용되는 방식입니다. 대표적인 ECU로는 엔진, 변속기, 브레이크 ECU는 물론 계기판 및 도어 ECU 등이 포함됩니다.

Consortium and other Specifications

SAE J1939에서 파생된 여러 표준이 있습니다. 이러한 표준들은 J1939의 기본 사양을 사용하며, 대개 데이터 정의와 필요한 경우 물리계층의 적용 방식에서만 차이가 있습니다.

ISO 11783 – 농업 및 임업용 트랙터 및 기계 – 직렬 제어 및 통신

농업용 차량에서 이루어지는 통신을 정의합니다. 구체적으로는 트랙터와 부착 장비(소위 ‘임플리먼트’) 간의 통신을 다룹니다. ISO 11783 표준은 application layer의 서비스를 규정하며, 예를 들어 가상 단말을 통한 부착 장비 제어 등을 포함합니다. 부착 장비 자체는 제어에 필요한 모든 그래픽 요소를 포함하고 있으며, 가상 단말은 이를 표시할 수 있습니다. 그 밖의 애플리케이션 구성 요소로는 트랙터 ECU, 업무 제어기(Task Controller), 파일 서버, 시퀀스 제어 등이 있습니다. ISO 11783 표준에는 SAE J1939에 정의된 멀티패킷 프로토콜의 확장 기능이 포함되어 있습니다. 또한 작업 집합(Working Set) 메커니즘도 적용됩니다.

NMEA 2000® – 선박용 전자 기기의 직렬 데이터 네트워크

해상 환경에서 선박 간 ECU 통신을 정의합니다. 여기에서는 멀티패킷 프로토콜의 확장 버전인, 이른바 ‘패스트 패킷(Fast Packet) 프로토콜’도 사용합니다.

ISO 11992 – 견인 차량과 피견인 차량 간의 디지털 정보 교환

견인 차량과 피견인 차량 간의 도로 차량 메시지 교환 방식을 규정합니다. ISO 11992는 J1939의 메시지 포맷을 기반으로 하지만, 물리계층의 구성은 달리 사용되며, 즉 125 kbit/s만 사용합니다.

FMS – 차량 관리 시스템

FMS 표준은 J1939 네트워크와 FMS 간의 게이트웨이를 정의합니다.

문서 구조 J1939

J1939 사양 전체는 여러 문서와 장으로 세분화되어 있습니다. 모든 문서는 SAE 웹사이트(www.sae.org)에서 개별적으로 또는 미리 묶인 패키지 형태로 내려받을 수 있습니다.

J1939 사양의 개별 장은 유료이므로 무료로 열람할 수 없습니다. 개별 장들은 체계적으로 구성되어 있으며, ISO/OSI 참조 모델을 대략적으로 따르고 있습니다. ‘대략적으로’라고 표현한 이유는 J1939 문서 구조에 OSI 모델에는 정의되어 있지 않은 제8장이 포함되어 있기 때문입니다.

오른쪽 표에는 현재 존재하는 장과 문서들이 목록으로 나열되어 있습니다.

물리계층

J1939-11/14/15 사양 비교

SAE J1939 프로토콜은 물리계층으로 CAN(Controller Area Network, ISO 11898-1 및 ISO 11898-2)을 사용합니다.


 

매개변수J1939-11J1939-15J1939-14
트위스트 페어 케이블차폐형비차폐차폐형 또는 비차폐형
비트 전송률250 kbit/s250 kbit/s500 kbit/s
ECU 수301030
버스 길이최대: 40 m최대: 40 m최대: 40.0 ms – 56.4 ms
ECU 간격최소: 0.1 ms | 최대: 40 ms최소: 0.1 ms | 최대: 40 ms최소: 0.3 m | 최대: 40.0 m – 56.4 m
스텁 길이최대: 1 m최대: 3 m최대: 1,67 m

진단 스터브 길이

최대: 0.66 m + 5 m최대: 2.66 m + 5 m최대: 1.67 m + 5 m

parameter group

J1939-21 문서는 29비트 CAN identifier를 해석해야 하는 방식을 정의하고 있습니다. 시작 비트와 길이를 통해 서로 다른 시그널이 정의되는 CAN 메세지의 8byte data field와 마찬가지로, CAN identifier도 parameter group별로 여러 세그먼트로 세분화됩니다. 이에 따라 식별자 중 일부만이 PGN 자체를 나타내며, 나머지는 출발지 주소, 수신 주소, 우선순위 및 데이터 페이지(DP)로 해석됩니다.

PGN 섹션

“데이터 페이지”(DP)와 “확장 데이터 페이지”(EDP)라는 두 비트도 PGN의 일부이며, 최상위 두 비트로 간주되어 포함됩니다. 그 결과, 숫자 범위는 4개의 PGN 페이지로 구성되지만, J1939에서는 그중 3개만 사용됩니다.

다음과 같은 데이터 페이지 정의가 있습니다:

확장 데이터 페이지(EDP)데이터 페이지(DP)설명
00SAE J1939 및 ISO 11783
01SAE J1939 NMEA 2000®
10SAE J1939 – 예약됨 –
11ISO 11992 진단 (중요: J1939 layout 없음!)

Transport Protocol

길이가 8byte를 초과하는 메세지는 크기가 너무 커서 단일 CAN 데이터 프레임에 담을 수 없습니다. 따라서 송신자는 이를 개별 패킷으로 분할해야 하며, 각 패킷은 별도의 CAN 메시지로 전송됩니다. 수신기는 개별 조각들을 원래 순서대로 재조합해야 합니다. 이를 위해 J1939 표준에는 일련의 규칙, 즉 소위 전송 프로토콜이 정의되어 있습니다.

통신 유형에 따라 두 가지 전송 프로토콜이 정의되어 있습니다.

피어 투 피어 브로드캐스트 전용 통신 – 연결 모드 데이터 전송 (RTS/CTS)

이 프로토콜을 통해 송신자는 수신기와 연결을 수립합니다. 수신기는 개별 데이터 패킷의 흐름 제어를 제어하고 영향을 미칠 수 있습니다. 수신기와 송신자 모두 (예: 오류 발생 시) 연결을 중단할 수 있습니다.

연결 모드 데이터 전송 프로토콜에는 시간 제한이 없습니다. 모든 노드는 가능한 최대 속도로 서로 데이터를 교환할 수 있습니다.

글로벌 커뮤니케이션 – 브로드캐스트 알림 메세지(BAM)

흐름 제어는 송신자만이 관리합니다. 메세지는 항상 모든 노드로 전송됩니다. 수신기는 통신 과정에 개입할 수 없습니다. 수신기가 메세지를 놓치더라도 이를 알릴 수 없습니다. 필요한 경우 수신기는 새로운 메세지가 도착할 때까지 기다려야 합니다.

BAM 프로토콜에서 수신기는 흐름 제어를 제어할 수 없기 때문에, 송신기는 개별 패킷 사이에 최소 간격을 유지해야 합니다. 이 간격은 10~200 ms입니다. 이를 통해 속도가 느린 네트워크 노드도 통신에 뒤처지지 않고 따라갈 수 있습니다.

진단

J1939 진단 인터페이스는 표준 진단 커넥터와 다양한 진단 서비스를 처리하기 위한 일련의 PGN을 정의합니다. 진단 message(DM)로 지정된 PGN은 UDS(Unified Diagnostic Services) 진단 기능의 범위를 대체로 충족합니다. 또한 이 PGN들은 EU 지침과 OBD(OBD II)에 관한 “캘리포니아 규정집(California Code of Regulation)”, HD OBD(Heavy Duty OBD) 및 WWH-OBD(World Wide Harmonized) OBD(ISO 27145)를 준수합니다.

소프트웨어 도구를 통해 서비스를 능동적으로 시작해야 하는 UDS 진단과 달리, J1939 ECU는 표준 작동 중에도 독립적으로 진단 메시지를 송신합니다. 발생하는 오류는 네트워크 내에서 직접 평가되며, 필요한 경우 시각적으로 표시됩니다. 이와 동시에, 진단 커넥터를 통해 도구를 사용하여 오류를 읽어낼 수 있습니다. 표준화된 오류코드, 즉 소위 진단 장애 code(DTC)에는 결함이 발생한 SPN, 오류 패턴 및 오류 발생 빈도가 담겨 있습니다.

진단 장애 code(DTC)

DTC(진단 장애 code)는 시스템 내의 결함 상태를 나타냅니다. 이는 주로 현재 상태가 비정상인 SPN을 나타냅니다. 이에 대한 원인은 다양할 수 있습니다. 해당 상태의 원인을 알려주는 지표는 오류의 실제 원인을 좁혀 나가기 위해 사용됩니다. DTC는 일관된 구조를 가지며 다음 요소들로 구성됩니다:

  • 의심 매개변수 번호(SPN)
    : 오류가 발생한 SPN을 나타냅니다. 정의된 모든 SPN은 DTC에 사용될 수 있습니다.
  • 고장 모드 식별자(FMI)
    : 발생한 오류의 성격과 유형을 나타냅니다(예: 값의 범위 위반(상한 또는 하한 초과), 센서 단락, 잘못된 갱신 속도, 캘리브레이션 오류).
  • 발생 횟수 카운터(OC)
    : 각 SPN에 대해 오류 조건의 발생 횟수를 계산하는 카운터로, 오류가 더 이상 활성화되지 않은 상태에서도 이 값을 저장합니다.
  • SPN 변환 방법(CM)
    : DTC 내의 byte 정렬을 정의합니다. 값 “0”은 그림 “DTC의 구조”에 표시된 방법을 나타냅니다. CM의 값이 “1”인 경우, 이전에 유효했던 세 가지 방법 중 어느 것을 사용하는지 구별해야 하며, 시스템은 이를 파악하고 있어야 합니다.

기능 안전

SAE J1939에는 안전에 중요한 데이터를 전송하기 위한 두 가지 서로 다른 접근 방식이 포함됩니다. 하나는 SAE J1939-76 표준으로, 원하는 parameter group를 보호하기 위한 일반적인 절차를 규정합니다. 다른 하나는 내장된 checksum과 카운터를 특징으로 하는, SAE J1939에서 규정한 표준화된 parameter group를 활용하는 방식입니다.

SAE J1939-76 – checksum 및 시퀀스 카운터가 포함된 전용 안전 헤더 메세지

SAE J1939-76 표준(SAE J1939 기능 안전 통신 프로토콜)은 안전에 중요한 데이터의 전송을 위한 J1939의 확장 기능을 규정하고 있습니다. 이는 안전에 중요한 데이터가 포함된 메세지(안전 데이터 메세지, SDM)보다 먼저 추가 메세지(안전 헤더 메세지, SHM)를 송신함으로써 구현되며, SHM과 SDM은 함께 안전 데이터 그룹(SDG)을 구성합니다.

  • SHM은 다음 정보를 담고 있습니다.
  • 시퀀스 카운터(각 SDG당 5비트)
  • SDM의 반전된 CAN ID(우선순위 없음, 26비트)
  • SDM 데이터에 대한 CRC(32비트)

시기

송신자(생산자)는 SHM 및 SDM을 생성하여 적절한 순서와 기한을 준수하여 전송합니다. 수신기(소비자)는 전송된 데이터의 순서와 기한은 물론 무결성을 확인할 책임이 있습니다.

SDG 이동 시 다음 시간 제한을 준수해야 합니다:

  • SRVT: 안전 관련 검증 시간(SHM과 SDM 사이의 시간)

  • SCT: 안전 사이클 시간 (연속된 SDM 인스턴스 간의 시간)

허용 가능한 최대 SRVT 및 SCT 값을 결정하는 시간 기준은 SDM으로 이동될 해당 SAE J1939 PG의 사이클 시간(전송 속도)에서 도출됩니다.

최대 SCT 및 최대 SRVT의 산정 기준은 다음과 같이 정의됩니다:

SDG 타이밍 기준SCT최대값SRVTMaximum
≤ 200 ms시간 기준의 150%시간 기준의 50%
> 200 ms시간 기준에 100 ms를 더한 값100 ms

제한 사항

SDM의 길이는 8byte를 초과할 수 없습니다. 이를 통해 메세지 전송을 위한 전송 프로토콜이 필요하지 않게 됩니다. 또한, SDM은 고정 주기 또는 가변 주기로 송신되어야 합니다. 가변 주기의 예로는 100ms마다 또는 변경 사항이 발생할 때마다 송신하는 것이 있으며, 이 경우 20ms보다 빠를 수는 없습니다.

SAE J1939 디지털 부록 – 통합 checksum 및 카운터가 포함된 메세지

J1939 디지털 부록(Digital Annex)은 200개 이상의 메시지에 대한 checksum과 관련 ECU의 오류 상태 감지를 위한 메시지 카운터를 규정하고 있습니다. 메시지 카운터와 checksum은 PG의 전송 데이터에 포함됩니다. 메시지 카운터는 메세지가 전송될 때마다 1씩 증가합니다. checksum은 전송 데이터를 기반으로 계산되므로, 다른 시그널의 변경 여부와 관계없이 정상적인 전송이 이루어질 때마다 checksum도 변경됩니다. 그러나 후속 전송에서 메시지 카운터가 증가하지 않거나 checksum이 전송 데이터와 일치하지 않는 경우, 수신기는 송신자가 오류 상태에 있다고 간주할 수 있습니다.

  • 체크섬
    디지털 부록(Digital Annex)에서는 체크섬에 대한 다섯 가지 계산 규칙을 설명하고 있으며, 그중 두 가지는 8비트 길이의 일반적인 CRC(순환 중복 검사) 계산을 사용합니다. 나머지 세 가지 계산 방식은 간단한 덧셈, bit shift 및 비트 마스크를 사용합니다.
  • 메세지 카운터
    디지털 부록에서는 메세지 내 메세지 카운터가 위치할 수 있는 6가지 위치를 명시하고 있습니다.

다음 그림은 checksum과 메시지 카운터의 일반적인 조합 및 위치와, 이 조합을 사용하는 메시지의 이름을 예시로 보여줍니다. 이해를 돕기 위해 5가지 계산 규칙에는 각각 대문자(A~E)가 부여되어 있습니다.

정의된 계산 규칙

메세지 내의 위치가 경우에 따라 크게 달라질 뿐만 아니라, checksum 계산 공식도 마찬가지입니다. 기본적으로 다섯 가지 규칙이 사용됩니다.

1) 첫 번째와 두 번째 규칙은 길이가 8비트인 CRC를 사용합니다.

2) 나머지 세 가지는 bit shift 연산과 비트 마스크를 기반으로 합니다. 이러한 규칙들은 이미 꽤 오랫동안 사용되어 왔으며, 예를 들어 TSC1(PGN 0) 및 XBR(PGN 1024) parameter group에 적용됩니다.

J1939 포스터

한눈에 보는 노하우

J1939 노하우 포스터 중 하나 또는 두 가지 모두를 무료로 주문하실 수 있습니다. 두 포스터 모두 J1939 프로토콜의 가장 중요한 기본 사항을 한눈에 파악할 수 있도록 정리되어 있습니다. DIN A1 포맷(841 mm x 594 mm)의 참고 자료 두 장을 제공합니다.

포스터 1은 다음 내용을 담고 있습니다:

  • 개요
  • 사양 문서
  • 물리계층
  • CAN ID 및 PGN 구조
  • CAN frame 구조
  • 전송 프로토콜

포스터 2의 내용은 다음과 같습니다:

  • network management
  • 진단
  • 기능 안전
  • 요구/응답
  • 전용 parameter group
  • 시그널 범위 (J1939-71)

Vector - J1939 전문가

Vector는 SAE J1939 위원회의 회원사로서 워크숍에 정기적으로 참여하고 있습니다. J1939 분야에서 Vector가 쌓아온 전문 지식과 다년간의 경험을 바탕으로, 고객 여러분은 까다로운 문제를 보다 효율적이고 신속하며 비용 효율적으로 해결할 수 있는 고성능 제품과 서비스를 누리실 수 있습니다.

모든 J1939 프로젝트를 위한 연속적인 툴 체인을 갖춘 Vector는 귀사에 적합한 솔루션을 제공합니다:

  • 완벽하게 조화를 이룬 소프트웨어 도구
  • 사용자화한 embedded software 컴포넌트
  • 고객의 요구에 맞춰 특별히 디자인된 맞춤형 서비스 및 교육

벡터 도구

Vector의 다음 제품들은 J1939 프로젝트 수행에 도움을 드립니다:

도구

J1939 시스템의 시뮬레이션, 평가 및 개발:

  • J1939 시스템을 위한 시뮬레이션 환경 구축 (남아있는 버스 모사)
  • 시뮬레이션을 위한 런타임 환경
  • 대역 끝 평가

CANoe.J1939

 

J1939 시스템 분석:

  • J1939 네트워크상의 데이터 트래픽 분석 및 로깅
  • 메세지 시퀀스 시뮬레이션
  • 기록된 메세지 시퀀스 재생 (리플레이)

CANalyzer.J1939

 

확장된 J1939 지원을 갖춘 AUTOSAR Classic Platform 기반의 임베디드 소프트웨어 스택

MICROSAR Classic

 

SAE J1939 및 ISOBUS 11783에 따른 모델 기반 E/E 시스템 설계:

  • .dbc 및 AUTOSAR를 통한 J1939 디자인의 가져오기 및 내보내기
  • CAN을 위한 확장된 multiplexer
  • 제어기 응용프로그램 모델링
  • AUTOSAR 규격 준수 소프트웨어 및 하드웨어 네트워크 디자인
PREEvision 

CAN, J1939, ISO15765 및 J1708/J1587 네트워크에 액세스하기 위한 프로그래밍 인터페이스

RP1210 API

 

DIAdem용 드라이버 소프트웨어: J1939 프로토콜은 물론 NMEA2000 및 ISOBUS(ISO 11783)도 지원

vMeasure 옵션 DIAdem

 

단일 ECU 또는 차량 전체를 위한 진단 시험기 - 빠르고 특히 사용하기 쉬움

Indigo

 

Vector Academy의 SAE J1939 교육

J1939 과정

J1939 e-learning