SAE J1939 프로토콜 및 NI PXI를 기반으로 CAN 버스 통신 플랫폼 구축하기

跃钢 周, Dongfeng Motor Corporation

"강력한 LabVIEW 수학적 분석 및 큐 처리, NI PXI 디바이스, 가혹한 차량 테스트 환경에 적합한 CAN 인터페이스 모듈을 통해 이 시스템은 여러 테스트 조건에 필요한 CAN 버스 메시지 정보 분석 기능을 제공합니다."

- 跃钢 周, Dongfeng Motor Corporation

과제:

J1939 프로토콜을 CAN 버스 통신 플랫폼 설계에 병합합니다.

해결책:

NI LabVIEW 시스템 설계 소프트웨어와 NI PXI CAN 통신 모듈을 사용하여 J1939 프로토콜 ID를 필터링하는 방법을 설계하여 프로토콜 형식에 따라 여러 프레임을 송수신하고 CAN 통신 플랫폼을 구축합니다. 또한 완전한 차량 HIL(hardware-in-the-loop) 전기 환경 시뮬레이션을 구현하고 CAN 버스 메시지 송수신, 저장 및 실시간 디스플레이를 포함하는 엔진 벤치 테스트 플랫폼을 구축했습니다.

III부터 IV까지의 중국 배기가스 배출 표준을 충족하는 모든 상용 차량은 CAN 버스를 사용하여 차량 ECU(VECU), 엔진 ECU(EECU), 자동 변속기 상자 ECU, 계기 ECU, 안티록 브레이크 시스템 ECU 등의 전자 제어 장치(ECU) 사이에서 통신합니다. 차량 제어 네트워크는 다지점 제어 장치(MCU), CAN 컨트롤러 및 MCU 노드 CAN 트랜시버 구조와 결합된 J1939 프로토콜을 기반으로 상용 차량 CAN 버스를 구현했습니다. PC, CAN 통신 모듈 및 소프트웨어를 포함하는 도로 테스트, 엔진 벤치 테스트 및 차량 전기 환경 HIL 시뮬레이션 테스트를 위한 기존 솔루션에는 비용이 매우 많이 듭니다.

 


통신 방식 문제

CAN 2.0 B 스펙의 산업용 버스 메시지 식별자 및 데이터 프레임에는 공통의 정의가 없기 때문에 파라미터가 임의적입니다. 상용차 CAN 버스 통신 스펙은 CAN 2.0 B 기반의 SAE J1939 프로토콜을 따릅니다. 현재 국내 자동차 산업을 위한 PXI 제어 디바이스 어플리케이션에는 LabVIEW와 J1939 프로토콜 기반의 CAN 버스 통신 방식이 없기 때문에, 우리는 LabVIEW 소프트웨어를 복잡한 J1939 프로토콜과 결합하여 메시지를 필터링, 수신, 합성, 재결합 및 전송하기로 했습니다.

 

상용 차량 CAN 버스 네트워크 특성을 고려하여 우리는 LabVIEW 및 J1939 프로토콜을 기반으로 CAN 버스 플랫폼을 구축하고 엔진 벤치 및 차량 전기 환경 HIL 테스트를 위해 NI PXI 모듈형 인터페이스 디바이스에 탑재했습니다.

 

J1939 프로토콜 및 CAN 2.0 B 스펙 차이

J1939 프로토콜은 CAN 2.0 B 스펙을 기반으로 합니다. CAN 2.0 B 확장 프레임의 29비트 ID는 J1939 코딩 시스템을 형성하도록 정의되며 여기에는 그림 1과 같이 우선순위(P), 예약 비트(R), 데이터 페이지(DP), 프로토콜 데이터 유닛(PF), 확장 유닛(PS), 소스 주소(SA), 데이터 필드가 포함됩니다. OSI(Open System Interconnection) 참조 모델 응용 계층은 7개의 부분으로 구성되며, 이 부분은 PDU(프로토콜 데이터 유닛)를 통해 하나 이상의 CAN 데이터 프레임에 캡슐화되고 물리 계층을 통해 버스 네트워크의 다른 디바이스 노드로 전송됩니다.

 

 

다양한 CAN 2.0 B 디바이스 기능은 동일한 ID를 사용하여 다른 메시지 정보를 전송하므로 특정 제조 업체 프로토콜에 따라 선택된 CAN 장치는 시스템 통합 중에 인식되지 않거나 일치하지 않는 ID를 생성할 수 있습니다. J1939 프로토콜의 각 메시지 프레임에는 고유 식별자와 PGN이 있어, 각 노드에 고유한 소스 주소를 할당하고 소스 주소를 CAN 식별자에 맵핑하여 동일한 식별자를 여러 노드가 사용하는 것을 방지합니다. 예를 들어 ID: 0CF00400은 엔진 속도 및 토크 메시지를 나타냅니다.

 

CAN 2.0 B 스펙은 7개의 OSI 참조 모델 계층에서 데이터 링크 계층을 정의합니다. 즉, 그림 2와 같이 저수준 표준입니다. CAN 버스 제품은 일반적으로 호환성, 상호 교환성 및 통합이 좋지 않습니다. 반대로 J1939는 차량 어플리케이션 신호(파라미터)와 메시지(파라미터 그룹)를 정의하는 OSI 참조 모델 응용 계층에 따른 상위 레벨 프로토콜입니다. 이 신호는 파라미터로 설명되며 각 파라미터에는 용의 파라미터 번호(SPN)가 할당됩니다. 이러한 파라미터는 PDU 데이터 필드에서 데이터 바이트의 물리적 의미를 정의합니다. 예를 들어 SPN190은 엔진 속도를 나타냅니다.

 

CAN 2.0 B 스펙은 단일 프레임 메시지만 전송할 수 있는 반면 J1939 프로토콜은 대화, 브로드캐스트를 포함한 단일 및 다중 프레임 메시지를 전송할 수 있습니다. J1939는 다중 프레임 데이터 전송 프로토콜에 따라 메시지를 포장, 전송, 수신, 합성 및 재구성할 수 있습니다.

 

모듈 인터페이스

모듈 인터페이스는 NI PXI CAN 듀얼 포트 트랜시버, SJA1000T CAN 컨트롤러, TJA1041T 고속 CAN 트랜시버 및 TJA1054AT 저속 CAN 트랜시버로 구성됩니다. J1939 프로토콜 데이터 링크 계층은 PDU 형식에 따라 메시지를 묶고 CAN 데이터 프레임 동기화, 순차 제어, 오류 제어 및 흐름 제어를 수행합니다.

 

J1939 물리 계층 프로토콜에 따르면 각 네트워크 세그먼트는 다음을 포함할 수 있습니다.

  • 최대 30개의 ECU
  • 250kB/s의 CAN 버스 통신 속도
  • 우성 및 열성 레벨을 포함하는 버스 전압
  • 3.5V 또는 1.5V의 차동 전압

 

또한 CAN 버스 트랜시버는 CAN 버스와 MCU 간의 전압 레벨을 변환합니다.

 

 

소프트웨어 설계

그림 3과 같이 J1939 프로토콜 멀티태스크 처리 흐름을 기반으로 하는 CAN 버스 메시지는 생산자 및 소비자 루프 구조를 사용합니다. 생산자 루프는 원소를 큐에 추가하는 기능을 사용하여 메시지 클러스터 큐에 데이터를 추가하고 소비자 루프는 원소 큐에서 빼기 기능을 사용하여 메시지 클러스터 큐 밖으로 데이터를 이동합니다. 큐는 여러 태스크 간의 충돌을 피하기 위해 루프 간 통신을 담당합니다. 데이터 생성이 데이터 소비보다 빠를 때 큐 버퍼는 메시지 데이터 손실을 방지합니다.

 


구현

그림 4와 같이 우리는 메시지 수신 테스트를 위한 HIL 차량 전기 환경 시뮬레이션에서 LabVIEW 및 J1939 프로토콜을 기반으로 하는 CAN 버스 통신 플랫폼을 구현했습니다. 그리고 Vector CANoe 모듈과 동시에 비교했습니다. 그림 7은 안정적으로 실행 중인 엔진에서 수신한 EECU 메시지를 보여줍니다. 1초 안에 시스템은 메시지 손실 없이 EECU로부터 526프레임의 메시지를 수신할 수 있습니다.

 

엔진 연비 메시지는 실시간으로 엔진 연비를 알려줍니다. VECU는 상용차 J1939 프로토콜에 따라 CAN 버스 네트워크에서 메시지를 수신하여 자동 변속기의 변속을 제어합니다. 통합 계기 ECU는 이 메시지를 실시간으로 수신 및 표시하여 운전자에게 좋은 운전 습관을 상기시키고 최고의 연비를 달성할 수 있게 차량을 조작합니다. 최적의 엔진 성능, 효율성 및 배출 표준을 위해 우리는 최고의 분사 펄스 폭 보정 파라미터를 얻을 수 있게 EECU를 교정합니다. 교정 후에는 EECU 교정 효과를 확인하기 위해 비교 테스트를 진행합니다.

 

엔진 일정 상태 테스트는 일정한 속도에서의 차량 성능을 보여줍니다. 다양한 작업 조건에서의 엔진 일시 조건 테스트는 실제 도로 조건에서 엔진 상태를 시뮬레이션합니다. 실시간 연료 소모량 메시지와 실제 순간 연료 소모량 측정값을 비교하면 EECU 제어 성능을 판단할 수 있습니다.

 

 

그림 8은 10가지 작업 조건에서 엔진 일시 연료 소비 벤치 테스트 곡선을 측정한 비교 값을 보여줍니다. J1939 프로토콜에 따라 CAN 버스에 의해 수신 및 구문 분석된 EECU 연료 소비 메시지 데이터는 테스트 및 벤치 연료 소비 미터와 비교하면 엔진이 저부하에서 작동할 때 현저하게 다릅니다. 따라서 엔진이 저부하 상태에서 작동할 때 실제로 연료 분사량이 적습니다. 목표 연료 분사량과 실제 연료 분사량은 엔진이 저부하 상태에서 작동할 때 커먼 레일 압력 변동으로 인해 크게 달라져 연료량 변동이 발생합니다. 두 곡선은 일반적으로 일치합니다. CAN 버스를 통해 수신된 엔진 연료 분사 목표 값은 실제 측정 값과 매우 유사하며 추세와 타이밍이 비슷합니다. 이것은 EECU 교정이 최상의 주입 펄스 폭 목표 값을 얻었다는 것을 의미합니다.

 

강력한 기반이 보여주는 가능성

J1939 프로토콜을 기반으로 하는 CAN 버스 통신 플랫폼과 NI PXI 플랫폼은 상용 차량 CAN 버스 통신 어플리케이션에서 NI CAN 모듈을 구현하기 위한 기반을 구축했습니다. 이 플랫폼은 엔진 벤치 테스트, 차량 전기 환경 시뮬레이션 HIL 테스트, 필터링 실현, 인식, 합성, 패킹, 전송, 저장, 구문 분석, 계산, 실시간 CAN 버스 메시지 디스플레이와 같은 미래 어플리케이션에 대한 가능성을 보여줍니다.

 

강력한 LabVIEW 수학적 분석 및 큐 처리, NI PXI 디바이스, 열악한 차량 테스트 환경에 적합한 CAN 인터페이스 모듈을 통해 이 시스템은 여러 테스트 조건에 필요한 CAN 버스 메시지 정보 분석 기능을 제공합니다. 또한 이 시스템은 NI PXI 디바이스로 수집한 메시지 데이터 샘플링 동기화를 보여줍니다. 비교 분석은 테스트 데이터의 리얼타임 성능과 유효성을 증명합니다.

 

저자 정보:

跃钢 周
Dongfeng Motor Corporation
중국
zhouyg@dfl.com.cn

그림 1. J1939 데이터 프레임 포맷
그림 2. OSI 참조 모델
그림 3. LabVIEW 및 J1939 프로토콜 기반 CAN 버스 멀티태스크 메시지 트랜시버
그림 4. 차량 전기 환경 HIL 시뮬레이션 테스트 엔진
그림 5. 테스트 벤치
그림 6. LabVIEW 및 J1939 프로토콜 구현 기반 CAN 버스 통신 플랫폼
그림 7. 엔진 안정 상태 EECU 메시지
그림 8. 여러 엔진 작동 조건에서의 연료 소비 비교 테스트