Automotive

SAE J1939 - Introduction

habana4 2024. 9. 4. 01:17
728x90
반응형

 

J1939란 무엇인가?

J1939은 차량 네트워킹을 위한 통신 프로토콜로, 주로 상용 차량, 농업 기계, 건설 장비 및 기타 중장비에서 사용됩니다. 이 프로토콜은 SAE(Society of Automotive Engineers)에서 개발했으며, 특히 디젤 엔진 차량에서 널리 채택되고 있습니다. J1939은 CAN(Controller Area Network) 버스를 기반으로 하여 데이터 전송을 처리하며, 차량 시스템 간에 신뢰성 있는 통신을 보장합니다.

 

J1939 프로토콜은 차량 내 다양한 전자 제어 장치(ECU) 간의 실시간 데이터 교환을 가능하게 합니다. 이 데이터는 엔진 제어, 변속기 제어, ABS 제어, 그리고 기타 여러 차량 시스템의 성능을 최적화하는 데 사용됩니다. J1939은 또한 오류 코드 진단, 상태 모니터링 및 원격 통신 기능도 지원합니다.

J1939 프로토콜의 구조

J1939 프로토콜은 상용 차량, 농업 기계, 건설 장비 등에서 사용되는 네트워킹 프로토콜로, CAN (Controller Area Network) 버스를 기반으로 합니다. 이 프로토콜은 차량 내 여러 전자 제어 장치(ECU) 간의 통신을 표준화하여 다양한 시스템 간의 상호작용을 가능하게 합니다. J1939 프로토콜의 구조는 복잡하지만, 이해하기 위해 이를 여러 구성 요소로 나눠서 설명할 수 있습니다.

 

CAN 프레임 구조

J1939 프로토콜은 CAN 2.0B 표준을 기반으로 하며, 29비트의 확장 식별자를 사용하는 메시지 프레임을 정의합니다. CAN 프레임의 기본 구조는 다음과 같습니다:

항목 설명
시작 비트
(Start of Frame, SOF)
CAN 메시지의 시작을 나타내는 비트
29비트 식별자
(Identifier)
J1939 메시지의 가장 중요한 부분으로, 메시지의 우선순위, 파라미터 그룹, 송신자와 수신자를 정의합니다. 이 식별자는 다음과 같은 세부 요소들로 구성됩니다.

• Priority (3비트): 메시지 전송의 우선순위, 값이 낮을수록 높은 우선순위를 의미
• Data Page (DP, 1비트): 추가적인 데이터 페이지를 정의하는 비트
• Extended Data Page (EDP, 1비트): 확장된 데이터 페이지 비트, 추가 데이터 페이지 정보 제공
• Parameter Group Number (PGN, 18비트): 메시지의 파라미터 그룹을 정의하는 번호
• Source Address (8비트): 메시지를 송신하는 ECU의 주소
제어 비트
(Control Field)
데이터 길이 코드(DLC)를 포함하여, 메시지의 데이터 길이를 정의
데이터 필드
(Data Field)
최대 8바이트의 데이터를 포함할 수 있습니다. 이 필드에는 SPN(Suspect Parameter Number)과 같은 실제 차량 데이터를 포함
CRC 
(Cyclic Redundancy Check)
데이터 무결성을 확인하기 위한 오류 검출 코드를 포함
ACK (Acknowledge) 비트 메시지의 수신 여부를 확인하기 위해 사용
종료 비트 
(End of Frame, EOF)
CAN 메시지의 끝을 나타내는 비트


J1939의 계층 구조

J1939 프로토콜은 OSI 모델을 기반으로 한 계층 구조를 따릅니다. 이 계층 구조는 데이터 전송을 관리하고, 네트워크 상의 다양한 장치 간의 통신을 조정하는 데 중요한 역할을 합니다.

계층 설명
물리 계층 
(Physical Layer)
전송 매체와 전송 속도(baud rate)를 정의합니다. 
J1939은 250 kbps의 전송 속도를 사용하며, 물리 계층에서는 전기적 신호를 통해 데이터를 전송합니다. 이 계층은 CAN 버스를 통해 구현됩니다.
데이터 링크 계층 
(Data Link Layer)
메시지 프레임을 정의하고, 메시지의 충돌을 방지하며, 네트워크 내의 메시지 전송을 관리합니다. 
이 계층은 CAN 프로토콜이 제공하는 기능을 사용하여 메시지의 무결성, 프레임 오류 검출, 그리고 ACK/NACK를 처리합니다.
네트워크 계층 
(Network Layer)
J1939 네트워크 계층은 메시지의 라우팅 및 주소 관리를 담당합니다. 
특히, 네트워크 상의 장치들이 자신의 주소를 클레임하고, 이를 통해 메시지를 송수신할 수 있도록 합니다.
전송 계층 
(Transport Layer)
전송 계층은 메시지가 8바이트를 초과할 때, 데이터를 여러 프레임으로 나누어 전송하고 이를 재조립하는 역할을 합니다. 두 가지 주요 전송 방식을 사용합니다:
• BAM (Broadcast Announce Message): 여러 수신자에게 데이터를 전송할 때 사용
• CMDT (Connection Mode Data Transfer): 특정 수신자와의 연결을 통해 데이터 전송에 사용
응용 계층 
(Application Layer)
차량 내 ECU들이 실제로 통신하는 데이터의 의미를 정의합니다. 이 계층에서는 PGN과 SPN을 사용하여 다양한 차량 데이터를 정의하고 교환합니다.

 


PGN (Parameter Group Number)

PGN은 J1939에서 특정 데이터 그룹을 식별하는 번호로, 메시지 프레임의 일부로 포함됩니다. PGN은 18비트로 구성되며, 파라미터 그룹의 성격을 정의합니다. 예를 들어, 특정 엔진 데이터를 전송하는 메시지나, 브레이크 시스템 상태를 보고하는 메시지는 각각 고유한 PGN을 가집니다.

  • PGN 구조: PGN은 18비트로 구성되며, 다음과 같은 정보가 포함됩니다.
  • 데이터 페이지(DP): 1비트로, 메시지의 데이터 페이지를 나타냅니다.
  • 확장 데이터 페이지(EDP): 1비트로, 추가적인 데이터 페이지 정보를 제공합니다.
  • PGN 본체: 16비트로, 실제 파라미터 그룹을 정의합니다.

 

SPN (Suspect Parameter Number)

SPN은 PGN에 포함된 데이터 중에서 특정 파라미터를 식별하는 번호입니다. 예를 들어, 엔진 속도, 연료 소비, 냉각수 온도 등은 각각의 SPN으로 정의됩니다. SPN은 차량 상태를 모니터링하고 진단하기 위한 중요한 정보를 제공합니다.

  • SPN의 역할: SPN은 엔진 속도, 연료 압력, 온도 등의 개별적인 차량 성능 데이터를 식별합니다. 이 값은 차량의 상태를 모니터링하고 진단하는 데 중요한 역할을 합니다.
  • DTC와의 관계: SPN은 진단 트러블 코드(Diagnostic Trouble Codes, DTC)와 밀접한 관계가 있습니다. 차량 시스템에서 오류가 발생하면, 해당 오류에 대한 SPN과 함께 DTC가 생성되어 정비사나 기술자가 문제를 진단할 수 있습니다.

 

주소 관리 및 주소 클레임

J1939 네트워크에서 각 ECU는 고유한 8비트 주소를 가져야 합니다. 새로운 장치가 네트워크에 연결될 때, 자신이 원하는 주소를 클레임하는 프로세스를 거칩니다. 만약 네트워크에 이미 동일한 주소를 사용하는 장치가 있다면, 우선순위에 따라 주소를 재할당합니다.

 

네트워크 관리 및 메시지 유형

J1939 프로토콜은 다양한 네트워크 관리 메시지를 정의하여 네트워크 상의 통신을 조정하고 최적화합니다. 주요 메시지 유형은 다음과 같습니다:

  • 주소 클레임 메시지 (Address Claim Message): 네트워크에 새로 연결된 장치가 자신의 주소를 클레임할 때 사용됩니다.
  • 네트워크 관리 메시지 (Network Management Message): 네트워크의 상태를 관리하고, 오류를 감지하고 복구하는 데 사용됩니다
  • 명령 메시지 (Command Message): 특정 장치에 명령을 전달하는 데 사용됩니다. 예를 들어, ECU에게 특정 작업을 수행하도록 지시할 수 있습니다.

 

 

J1939의 주요 기능 및 응용

J1939 프로토콜은 상용 차량 및 중장비 산업에서 다양한 용도로 사용됩니다. 여기에는 다음과 같은 기능들이 포함됩니다:

  • 엔진 제어 및 모니터링: J1939은 엔진 ECU와 통신하여 연료 주입, 점화 타이밍, 배기 가스 재순환(EGR) 등의 제어를 가능하게 합니다. 이 정보를 바탕으로 차량의 연료 효율성과 배출가스 성능을 최적화할 수 있습니다.
  • 진단 및 오류 코드: J1939은 차량 내 시스템에서 발생하는 오류를 모니터링하고, 이를 표준화된 DTC(Diagnostic Trouble Codes)로 변환하여 차량의 정비 및 수리를 용이하게 합니다.
  • 차량 내 네트워킹: J1939은 차량 내 다양한 ECU 간의 데이터 통신을 지원하여 시스템 간의 상호작용을 개선합니다. 이는 차량의 안전성, 효율성, 그리고 사용자 경험을 향상시키는 데 중요한 역할을 합니다.
  • 텔레매틱스 및 원격 진단: J1939은 차량의 실시간 데이터를 원격으로 모니터링하고 분석할 수 있는 텔레매틱스 시스템과도 통합될 수 있습니다. 이는 차량 운영자에게 효율적인 차량 관리와 유지보수를 가능하게 합니다.

 

J1939의 장점과 한계

장점:

• 표준화: J1939은 상용 차량 및 중장비 산업에서 널리 사용되는 표준 프로토콜로, 제조업체 간의 호환성을 보장합니다.
• 신뢰성: CAN 기반의 통신 프로토콜로, 높은 신뢰성과 낮은 오류율을 자랑합니다.
• 유연성: 다양한 응용 프로그램에 적용 가능하며, 모듈식 구조로 설계되어 있어 시스템 확장이 용이합니다.

 

한계:

• 복잡성: J1939의 구조와 설정은 매우 복잡할 수 있으며, 이를 제대로 이해하고 사용하려면 상당한 전문 지식이 필요합니다.
• 대역폭 제한: J1939은 CAN 네트워크의 대역폭 제한을 공유하므로, 많은 양의 데이터를 빠르게 전송하는 데는 한계가 있습니다.
• 사이버보안 취약: J1939은 설계 당시 주로 물리적 접근이 제한된 폐쇄된 네트워크 환경을 전제로 했기 때문에, 사이버보안 위협에 대한 고려가 부족했습니다. 그러나 최근 차량의 연결성이 증가함에 따라, 원격 공격, 데이터 위변조, 그리고 시스템 마비와 같은 사이버 위협에 노출될 가능성이 커지고 있습니다.

 

 

728x90
반응형