Vehicle Network Toolbox

CAN, J1939, XCP 프로토콜을 통한 차량 내 네트워크 통신을 지원합니다

 

Vehicle Network Toolbox™는 CAN, CAN FD, J1939 및 XCP 메시지를 송신, 수신, 인코딩 및 디코딩하는 MATLAB® 함수와 Simulink® 블록을 제공합니다. Vehicle Network Toolbox를 사용하면 업계 표준 CAN 데이터베이스 파일을 사용하여 특정 신호를 식별하고 구문 분석한 다음 디코딩된 신호를 CAN Bus Monitor 앱을 사용하여 시각화할 수 있습니다. A2L 설명 파일을 사용하여 CAN 또는 이더넷에서 XCP를 통해 ECU에 연결할 수 있습니다. MDF 파일에 저장된 메시지에 액세스하고 데이터를 측정할 수 있습니다.

Vehicle Network Toolbox는 차량 내 네트워크와의 통신을 간소화하며, 실시간 CAN 버스 데이터를 감시, 필터링 및 분석하거나, 메시지를 로깅 및 기록하여 추후에 분석하거나 재생할 수 있게 해 줍니다. 가상 CAN 버스에서 메시지 트래픽을 시뮬레이션하거나 실시간 네트워크 또는 ECU에 연결할 수 있습니다. Vehicle Network Toolbox는 Vector, Kvaser, PEAK-System 및 National Instruments®의 CAN 인터페이스 장치를 지원합니다.

시작하기:

MATLAB 및 Simulink에서 CAN 및 CAN FD 메시지 송신 및 수신

CAN 및 CAN FD 채널 구성

MATLAB의 CAN 채널 함수와 Simulink의 CAN 구성 블록을 사용하여 CAN 또는 CAN FD 표준을 바탕으로 CAN 버스와의 물리적 연결을 설정하는 Vector CAN 인터페이스 하드웨어로의 연결을 정의할 수 있습니다. Vehicle Network Toolbox™는 버스 속도, 트랜시버 설정과 같은 CAN 인터페이스 하드웨어 설정을 조회하고 구성하는 CAN 채널 함수를 제공합니다. 또한, 채널에서 유효한 메시지 개수와 송수신된 메시지 개수와 같은 기타 CAN 채널 속성을 검증할 수도 있습니다. Vector CAN 데이터베이스 파일을 CAN 채널에 연결하면 데이터베이스에 저장된 정보를 사용하여 수신 메시지가 자동으로 표시됩니다. CAN 채널을 정의한 후 채널에서 CAN 메시지를 송수신할 수 있습니다.

CAN 및 CAN FD 프로토콜을 사용하여 MATLAB을 차량 네트워크에 연결할 수 있습니다.

CAN 패킷 송수신

표준 CAN 메시지는 CAN 메시지 식별자(표준 11비트 또는 확장 29비트)를 저장하는 속성, 타임스탬프, 및 최대 8바이트의 CAN 데이터를 포함합니다. CAN FD 송신을 위해 구성된 채널은 최대 64바이트의 데이터를 포함하는 메시지를 담을 수 있습니다.

Vehicle Network Toolbox의 송신 및 수신 함수를 사용하여 CAN 채널을 통해 CAN 메시지를 송수신할 수 있습니다. 대규모 데이터셋의 경우 오프라인에서 분석할 수 있도록 CAN 메시지를 로깅할 수 있습니다.

CAN 메시지와 신호를 타임테이블 형식으로 수신하는 MATLAB 코드.

CAN 메시지로부터 신호 작성 및 추출

Vehicle Network Toolbox에는 CAN 메시지 인코딩 및 디코딩을 위한 함수 및 블록이 포함되어 있습니다. CAN 메시지 데이터는 여러 신호를 나타내는 데이터를 포함할 수 있습니다. 사용자는 Unpack 함수와 블록을 사용하여 시작 비트, 신호 강도, 데이터형, 바이트 배열을 지정할 수 있습니다. Pack 함수와 블록에는 CAN 메시지 전송에 사용할 데이터를 구축하는 동일한 옵션이 있습니다.

CAN Unpack 블록을 사용하여 CAN 메시지를 디코딩하는 Simulink 모델.

CAN 메시지의 로깅 및 재생

Vehicle Network Toolbox의 CAN Log 블록을 사용하면 모델에서 수신한 CAN 메시지를 MAT 파일에 저장할 수 있습니다. 그런 다음 CAN Replay 블록을 사용하여 다른 Simulink 모델에서 메시지를 재생할 수 있습니다. CAN Replay 블록은 재생된 데이터가 기록된 데이터와 동일한 타이밍 특성을 갖도록 로깅된 데이터의 타임스탬프를 보존합니다.

차량 테스트 시행에서 기록된  바퀴 속도 데이터를 재생한 플롯.

XCP 프로토콜을 통한 통신

Vehicle Network Toolbox는 CAN 또는 이더넷 버스에서 자동차 보정 프로토콜인 XCP를 통해 ECU와 통신하는 함수와 블록을 제공합니다. XCP를 통해 ECU와 통신할 때는 MATLAB 또는 Simulink가 마스터 장치가 되고 ECU가 슬레이브 장치가 됩니다. 여러 개의 XCP 채널을 열면 여러 개의 ECU와 통신할 수 있습니다. 각 ECU에 대해 ECU의 특정 메모리 위치에 데이터를 읽고 쓸 수 있습니다. ECU에 대한 보안 액세스가 존재하는 경우 시드와 키 보안을 사용하여 ECU에 대한 액세스를 열 수 있습니다. Vehicle Network Toolbox는 A2L 데이터베이스 파일을 연결하고 XCP 채널의 동적 DAQ 및 STIM 측정 목록을 생성하고 보는 함수와 블록도 제공합니다. 측정 목록은 연결된 A2L 파일의 측정 및 이벤트 정보를 기반으로 설정됩니다.

ECU 슬레이브 장치에서 측정값을 얻는 모델. 이 모델은 XCP Configuration 및 XCP Transport Layer 블록(왼쪽 위)과 XCP Data Acquisition 블록(왼쪽 아래)을 사용하여 PWM 신호의 수집(오른쪽)을 설정합니다.

J1939 프로토콜을 통한 통신

Vehicle Network Toolbox는 중장비 트럭 업계에서 널리 사용되는 CAN 기반 하이 레벨 프로토콜인 J1939를 통해 통신하는 함수와 블록을 제공합니다. J1939를 통해 통신할 때는 MATLAB 함수나 Simulink 블록을 사용하여 통신을 설정합니다. 구체적으로 살펴보면, 데이터베이스(.dbc) 파일을 J1939 통신에 연결하고, CAN 인터페이스 하드웨어를 지정하고, J1939 파라미터 그룹을 송신 및 수신하는 함수와 블록이 제공됩니다. 사용자는 연결에 연동된 데이터베이스 파일에서 정의된 파라미터 그룹을 사용하여 네트워크의 신호 데이터를 인코딩 및 디코딩하게 됩니다. 또한 주소 클레이밍을 사용하여 Simulink가 네트워크 노드로 기능하도록 구성할 수 있습니다.

J1939 Transmit 블록과 J1939 Receive 블록을 사용하여 J1939 데이터를 송수신하는 모델. 이 모델은 또한 J1939 Network Configuration, J1939 CAN Transport Layer Configuration 및 J1939 Node Configuration 블록을 사용하여 통신을 설정합니다.

CAN 트래픽 시각화

Vehicle Network Toolbox는 특정 CAN 채널에서 활성 트래픽을 시각화하는 Vehicle Network CAN Bus Monitor 앱을 제공합니다. MATLAB 또는 Simulink에서 다른 작업을 수행하면서 이 앱을 사용할 수 있습니다. CAN 채널에 연동된 CAN 데이터베이스 파일에 대해, 이 앱을 이용해 메시지를 디코딩하여 올바른 엔지니어링 단위로 표시할 수 있습니다.

네트워크의 트래픽에 응용 사례에 필요한 것보다 더 많은 정보가 포함되어 있으면 CAN 채널이 수신하는 CAN 메시지 개수를 정의된 CAN 메시지 식별자의 범위로 제한할 수 있습니다. Vehicle Network Toolbox의 필터 함수와 마스크 설정을 사용하면 응용 사례에 필요한 만큼의 메시지만 수신할 수 있습니다.

Vehicle CAN Bus Monitor 앱에 표시된 네트워크의 실시간 CAN 버스 트래픽. 디스플레이는 원시 데이터를 표시하며, CAN 채널이 .dbc 데이터베이스 파일과 연동된 경우 디코딩된 데이터를 표시하도록 구성할 수 있습니다.

Vector CAN 데이터베이스 파일 사용

Vehicle Network Toolbox를 사용하여 Vector CAN 데이터베이스 파일을 CAN 채널이나 MATLAB 또는 Simulink 메시지와 연결할 수 있습니다. 이렇게 하면 응용 사례 특정 메시지 및 신호 이름(예: EngineMsg, EngineRPM), 그리고 스케일링된 엔지니어링 단위를 사용하여 CAN 메시지를 인코딩 및 디코딩할 수 있습니다. 업계 표준 데이터베이스 파일로 작업할 수 있어, 데이터베이스에서 메시지 목록과 구성요소 신호를 지정하고 연관 신호에 대한 비트 패킹 및 패킹 해제 규칙도 제공하므로 CAN 버스와의 상호작용이 간단해집니다. 데이터베이스 내 메시지에 대한 신호 데이터형, 시작 비트, 길이, 바이트 배열이 모두 사전 지정되므로 사용자는 이를 정의할 필요 없이 신호 분석에만 집중할 수 있습니다.

CAN 데이터베이스 파일에 저장된 정보를 사용하여 메시지를 보는 방법을 보여주는 코드의 예제.

A2L 설명 파일 사용

Vehicle Network Toolbox에서는 업계 표준 A2L(ASAP2라고도 함) 설명 파일을 사용하여 MATLAB 또는 Simulink에서 XCP 프로토콜을 통해 ECU와 통신할 수 있습니다. A2L 설명 파일을 사용하면 MATLAB 프로그램 또는 Simulink 모델에서 내부 ECU 파라미터에 액세스할 수 있습니다. A2L 설명 파일에는 특정 파라미터, 저장 구조 및 데이터형에 대해 연결된 메모리 주소 정보가 있습니다. 이 파일에는 시스템 파라미터, 센서 특성, 정정 인자와 같은 저장된 값을 RPM, 섭씨와 같은 물리적 단위로 변환하는 규칙도 포함되어 있습니다. 이 데이터가 있으면 데이터 구문 분석과 메모리 주소 디코딩 없이 보정 및 측정 작업을 손쉽게 수행할 수 있습니다.

XCP 연결에 사용할 수 있도록 A2L 파일에 저장된 정보에 액세스하는 방법을 보여주는 코드의 예. 이 예에서는 Vector 및 Vector 가상 CAN 채널에서 무료로 제공되는 XCP 슬레이브 시뮬레이터를 사용합니다.

MDF 파일로 작업

Vehicle Network Toolbox에서는 측정 데이터 형식(MDF) 파일로부터 쉽게 데이터를 가져올 수 있습니다. Vehicle Network Toolbox는 MDF 표준 버전 3.0 이상을 지원합니다. MATLAB에서 MDF 객체를 만들 때 초기 타임스탬프, 데이터 크기, 채널 그룹, 채널 이름 정보 등 파일의 기본적인 속성을 볼 수 있습니다. MDF 파일의 일부만을 읽어 들이려면 채널 이름이나 시작 및 중지 시간을 지정하면 됩니다. 기본적으로 결과의 출력 형식은 타임테이블로 반환되므로 타임스탬프가 적용된 데이터를 사용해 보다 쉽게 작업할 수 있습니다.

메모리에 담을 수 없을 정도로 큰 MDF 파일의 경우, MDF 데이터저장소를 만들고 지정한 파라미터를 기반으로 데이터를 배치 단위로 미리 볼 수 있습니다. 비슷한 MDF 파일의 모음에 대해 쉽게 작업하기 위해 데이터저장소를 만들 수도 있습니다.

명령줄 인터페이스에서 MDF 파일을 미리 보고 변수 편집기에서 데이터를 검토하는 코드의 예.

가상 채널 사용

가상 CAN 및 CAN FD 채널을 네트워크 통신의 테스트 및 시뮬레이션에 사용할 수 있습니다. 가상 채널을 사용하면 물리적 하드웨어를 사용하지 않고도 루프백 구성으로 모델을 테스트할 수 있습니다. Vehicle Network Toolbox는 두 가지 종류의 가상 채널을 지원합니다. 하나는 MathWorks 가상 채널이고, 다른 하나는 타사 CAN 인터페이스 하드웨어 벤더에서 제공하는 가상 채널입니다. Vector 및 Kvaser와 같은 타사 벤더가 제공하는 가상 채널을 사용하려면 해당 벤더의 드라이버나 하드웨어 지원 패키지를 설치해야 합니다. MathWorks 가상 채널은 툴박스와 함께 제공되며, 추가 드라이버나 지원 패키지가 필요하지 않습니다.

MathWorks 가상 채널을 사용하여 하드웨어 없이 CAN 데이터를 송수신하는 것을 보여주는 Simulink 모델.

CDFX 파일로 작업

Vehicle Network Toolbox에서 제공하는 cdfx 함수를 사용하여 ASAM 보정 데이터 형식(CDFX)의 데이터에 액세스할 수 있습니다. CDF 파일의 보정 데이터를 Simulink 모델의 입력값으로 사용할 수 있습니다.

MathWorks 가상 채널을 사용하여 하드웨어 없이 CAN 데이터를 송수신하는 것을 보여주는 Simulink 모델.

최신 기능

MDF

Linux 플랫폼에서 MDF 파일에 액세스

Simulink의 이벤트 기반 전송

메시지 데이터에서 변경이 감지된 경우에만 CAN 메시지 전송

위 기능과 해당 함수에 대한 자세한 내용은 릴리스 정보를 참조하십시오.