- Jelina 개요
- CommBridge
- 데이터 수집
SAE J1939 수집
1. 노드 생성
섹션 제목: “1. 노드 생성”(1) CommBridge 페이지의 【스마트 트윈】으로 이동한 후 왼쪽에서 【장치 연결】로 전환합니다.

(2) SAE J1939, 데이터 처리 및 MQTT 업로드 플러그인을 차례로 플러그인 작업 영역에 끌어 놓아 세 개의 노드를 생성합니다.

(3) 세 노드를 차례로 연결합니다. 연결 순서는 SAE J1939 → 데이터 처리 → MQTT 업로드입니다.

2. 구성 생성
섹션 제목: “2. 구성 생성”(1) SAE J1939를 두 번 클릭하고 【구성 추가】 버튼을 클릭합니다.

(2) 연결 설정을 입력하고 dbc 파일을 가져온 후 【다음】을 클릭합니다.

(3) 그룹 및 데이터 포인트 정보를 확인합니다.

(4) 【완료】를 클릭하여 수집 구성을 추가합니다.

(5) 구성의 스위치를 켜고 【저장】을 클릭합니다.

3. 결과 확인
섹션 제목: “3. 결과 확인”(1) 【장치 연결】의 【배포】 버튼을 클릭하여 배포합니다.

(2) 【스마트 트윈】으로 전환한 후 SAE J1939 노드 위로 마우스를 이동하면 노드 정보 목록이 표시됩니다.

(3) 구성을 클릭하여 해당 구성의 각 그룹에 속한 데이터 포인트의 실시간 데이터와 이력 데이터를 확인합니다.

4. 설정 설명
섹션 제목: “4. 설정 설명”연결 설정
섹션 제목: “연결 설정”| 매개변수 | 조건 | 설명 | 형식 | 예 | 비고 |
|---|---|---|---|---|---|
| 구성 이름 | 사용자가 지정하는 구성 이름 | 필수 | CAN 수집 | ||
| CAN 인터페이스 | 실제 장치의 CAN 포트에 따라 결정 | 드롭다운 선택 | vcan0 | ||
| DBC | 아래 설명 참조 | DBC 파일 | testType.dbc | ||
| 이름 설정 방식 | Hex Number | ||||
| 선호 주소 | 드롭다운 선택 | 128 | |||
| 반환 데이터 유형 | 수집하는 실시간 데이터의 유형 | 드롭다운 선택 | Phy | ||
| Socketcand | socketcand 활성화 여부입니다. Socketcand는 네트워크 인터페이스를 통해 컴퓨터의 CAN 인터페이스에 액세스할 수 있습니다. | Yes, No | No | ||
| Socketcand 포트 | 원격 데이터 디버깅에 사용 | 숫자 | |||
| 이름 | 선호 주소가 Hex Number | 이름(Name)은 각 ECU에 고유한 식별 정보를 부여하는 64비트(8바이트) 길이의 레이블입니다. | 0x7758 | ||
| 임의 주소 사용 가능 비트 | 선호 주소가 Properties | ECU의 송신 주소 자동 변경 허용 여부를 나타냅니다. 1은 허용, 0은 고정입니다. | 숫자, 0, 1 | 0 | |
| 산업 그룹 | 선호 주소가 Properties | 차량이 속한 산업 분류 | 숫자, 범위: [0,7] | 0 | |
| 장치 클래스 인스턴스 | 선호 주소가 Properties | 동일 장치 클래스 내에서 구별하는 인스턴스 번호 | 숫자, 범위: [0,15] | 0 | |
| 장치 클래스 | 선호 주소가 Properties | SAE가 정의하는 7비트 “장치/시스템” 분류 | 숫자, 범위: [0,127] | 0 | |
| 기능 코드 | 선호 주소가 Properties | ECU가 “차량 시스템” 내에서 수행하는 구체적인 기능 | 숫자, 범위: [0,255] | 0 | |
| 기능 인스턴스 | 선호 주소가 Properties | 동일 기능의 인스턴스 번호로, 같은 기능을 수행하는 여러 ECU를 구별 | 숫자, 범위: [0,31] | 0 | |
| ECU 인스턴스 | 선호 주소가 Properties | 동일한 물리적 ECU 모델의 인스턴스 구별 | 숫자, 범위: [0,7] | 0 | |
| 제조사 코드 | 선호 주소가 Properties | SAE가 할당하는 11비트 제조사 식별자 | 숫자, 범위: [0,2047] | 0 | |
| 식별 번호 | 선호 주소가 Properties | 제조사가 정의하는 21비트 일련번호 | 숫자, 범위: [0,2097151] | 0 |
참고:
- DBC는 원본 데이터 구조의 출처입니다. 이후 그룹(메시지) 및 데이터(신호)에 대한 모든 변경은 이 dbc 구조에 병합됩니다.
- 반환 데이터 유형: Raw는 원시 값, Phy는 물리 값, PhyWIthUnit은 단위가 포함된 물리 값을 반환합니다.
- 통신 프로토콜은 TCP/IP 연결과 전용 프로토콜을 사용하여 CAN 프레임과 제어 명령을 전송합니다. 현재 클래식 CAN만 지원하며 CAN FD는 지원하지 않습니다.
- 선호 주소: Hex Number, Properties
- J1939 네트워크에서는 두 노드가 같은 주소를 사용할 수 없습니다. 주소 충돌을 방지하기 위해 J1939는 64비트 “이름”과 8비트 “주소”를 함께 사용하여 노드를 식별합니다. 이름의 구조는 다음과 같습니다.
- 임의 주소 비트, 길이 1비트. 0은 네트워크 관리자가 노드 주소를 정적으로 설정함을, 1은 동적으로 임의 할당함을 나타냅니다.
- 산업 그룹, 길이 3비트. 일반적인 값은 000(일반), 001(고속도로 차량—트럭, 버스 등), 010(농업), 011(건설) 등입니다.
- 차량 시스템 인스턴스, 길이 4비트
- 차량 시스템, 길이 7비트
- 예약 비트
- 기능, 길이 8비트
- 기능 인스턴스, 길이 5비트
- ECU 인스턴스, 길이 3비트
- 제조사 코드, 길이 11비트
- 식별 번호, 길이 21비트
그룹 추가
섹션 제목: “그룹 추가”| 매개변수 | 설명 | 형식 | 예 |
|---|---|---|---|
| 그룹 이름 | 사용자가 지정하는 그룹 이름 | 필수 | t_msg_1_unsigned |
| 메시지 이름 | 메시지의 기능이나 용도를 나타내는 이름 | 필수, 영문자, 숫자 및 밑줄만 허용하며 숫자로 시작할 수 없음 | t_msg_1_unsigned |
| 우선순위 | 3 | ||
| 파라미터 그룹 번호 | 0x0 | ||
| 데이터 길이 코드 | 데이터 길이 코드(DLC): 클래식 CAN의 DLC 0 |
데이터, 범위: [0,8] 또는 [0,15] | 8 |
| 송신 노드 | 메시지를 전송하는 송신자(Transmitter), 즉 장치(Node) | 드롭다운 선택, 기본값 Vector__XXX |
Vector__XXX |
| 메시지 설명 | 메시지의 역할이나 기능을 이해하기 쉽게 설명하는 선택 필드 | 문자열 |
참고:
- 그룹은 dbc 파일의 메시지(Message)에 해당합니다.
- 메시지(그룹)에 송신 노드가 지정되지 않았다면 이 값을
Vector__XXX로 설정해야 합니다.
데이터 추가
섹션 제목: “데이터 추가”| 매개변수 | 조건 | 설명 | 형식 | 예 |
|---|---|---|---|---|
| 신호 이름 | 사용자가 지정하는 신호 이름으로, 데이터의 기능을 설명합니다. | |||
| 의심 파라미터 번호(SPN) | ||||
| 신호 모드 | 신호의 전송 모드 | 드롭다운 선택 | ||
| 시작 비트 | 메시지에서 신호가 시작되는 위치(Start Bit)입니다. 0부터 시작하며 CAN 프레임 내 신호의 구체적인 저장 위치를 결정합니다. | 단위: bit | 0 | |
| 값 유형 | 신호의 데이터 유형 | 드롭다운 선택 | Intel | |
| 바이트 순서 | 메시지 내 신호의 저장 순서 | 드롭다운 선택 | ||
| 스케일링 계수 | 원시 값을 실제 물리 값으로 변환하는 계산 계수 | 부동소수점 수 | ||
| 오프셋 | 데이터의 물리 값을 계산할 때 사용하는 오프셋(offset) | 부동소수점 수 | ||
| 최솟값 | 신호 범위를 제한하는 물리 값의 최솟값 | 부동소수점 수 | ||
| 최댓값 | 신호 범위를 제한하는 물리 값의 최댓값 | 부동소수점 수 | ||
| 단위 | 신호의 물리 단위 | 문자열 | ||
| 수신 노드 | 신호를 수신하는 노드 이름(receiver)으로, 하나 이상 지정하며 신호의 대상 장치를 나타냅니다. | 드롭다운 선택, 기본값 Vector__XXX |
||
| 설명 | 신호의 물리 단위(예: km/h, °C, m/s) | 문자열 | ||
| 계산 | 사용자가 데이터 별칭을 기반으로 정의하는 수식 | |||
| 길이 | 값 유형이 Unsigned/Signed | 신호가 차지하는 비트 수(비트 길이) | 단위: bit, [1,64] | |
| 다중화 값 | 신호 모드가 Signal이 아님 | 다중화기 신호가 어떤 값일 때 해당 신호가 유효한지 설정 |
참고:
- 신호 모드: Signal, Multiplexor, Multiplexed.
- 값 유형: Unsigned(부호 없는 정수), Signed(부호 있는 정수), Float(단정밀도 부동소수점 수), Double(배정밀도 부동소수점 수).
- 바이트 순서: Intel 바이트 순서(리틀 엔디언), Motorola 바이트 순서(빅 엔디언).
- 시작 비트: 신호의 최하위 비트(LSB, Least Significant bit) 위치입니다.
- 끝 비트: 신호의 최상위 비트(MSB, Most Significant bit) 위치입니다.
- 분해능 및 오프셋: 물리 값과 네트워크 값의 변환에 사용합니다. 네트워크 값 = (물리 값 - 오프셋) ÷ 분해능.
- 신호에 수신 노드가 지정되지 않았다면 반드시
Vector__XXX로 설정해야 합니다.
5. DBC 파일 관련 매개변수 설명
섹션 제목: “5. DBC 파일 관련 매개변수 설명”DBC 파일(CAN Database File)은 CAN(Controller Area Network) 버스의 메시지와 신호 정의를 기술하는 표준 파일 형식입니다.
구성 요소
섹션 제목: “구성 요소”(1) Node(노드)
노드는 네트워크 내 장치를 논리적으로 나타냅니다. 각 노드는 메시지의 송신자 또는 수신자가 될 수 있습니다.
1). DBC 파일 형식:
BU_: Node1 Node2 Node3BU_: 노드 목록을 정의합니다.- 뒤에 모든 노드 이름을 공백으로 구분하여 나열합니다.
(2) Message(메시지)
메시지는 CAN 네트워크에서 전송하는 최소 데이터 단위로, 여러 신호를 포함하며 고정된 ID와 길이를 가집니다.
1). DBC 파일 형식:
BO_ <메시지_ID> <메시지_이름>: <데이터_길이_코드> <송신_노드>2). 예:
BO_ 1001 SpeedMessage: 8 Node1BO_: 메시지를 나타냅니다.1001: 메시지 ID입니다.SpeedMessage: 메시지 이름입니다.8: 데이터 길이 코드(DLC)입니다.Node1: 송신 노드입니다.
(3) Signal(신호)
신호는 메시지 안의 데이터 단위로, 속도, 회전수, 온도 등의 구체적인 물리량을 나타냅니다.
1). DBC 파일 형식:
SG_ <신호_이름> : <시작_비트>|<길이>@<바이트_순서><값_유형_기호> (<스케일링_계수>,<오프셋>) [<최솟값>|<최댓값>] "<단위>" <수신_노드>2). 예:
SG_ Speed : 0|16@1+ (0.1,0) [0|200] "km/h" Node2BO_: 메시지를 나타냅니다.
주요 매개변수 설명
섹션 제목: “주요 매개변수 설명”- d
| 63 (MSB) | 62-60 | 59-56 | 55-49 | 48 | 47-40 | 39-35 | 34-32 | 31-21 | 20-0 (LSB) |
|---|---|---|---|---|---|---|---|---|---|
| 임의 주소 | 산업 그룹 | 차량 시스템 인스턴스 | 차량 시스템 | 예약 비트 | 기능 | 기능 인스턴스 | ECU 인스턴스 | 제조사 코드 | 식별 번호 |
| 1 bit | 3 bits | 4 bits | 7 bits | 1 bit | 8 bits | 5 bits | 3 bits | 11 bits | 21 bits |
- 신호 모드
| 신호 모드 | 의미 |
|---|---|
| Signal | 데이터를 직접 담는 일반 신호로, 별도의 표시나 관계가 없습니다. |
| Multiplexor | 메시지에 포함되는 다른 신호가 어느 그룹인지를 결정하는 다중화기 신호입니다. 예를 들어 하나의 메시지에 여러 데이터 형식이 포함될 수 있으며, 다중화기는 사용할 데이터 형식을 선택합니다. |
| Multiplexed | 다중화기 신호와 연결된 다중화 신호입니다. 다중화기 신호의 값에 따라 이 신호의 전송 여부가 결정됩니다. 예를 들어 다중화기 값이 1이면 특정 다중화 신호 그룹을 전송합니다. |