팜테크(FAMTECH)

[CAN 통신] 캔통신 DBC란? (CAN DBC Editor, Message, Signal) 본문

기초이론/캔통신(CAN Communication)

[CAN 통신] 캔통신 DBC란? (CAN DBC Editor, Message, Signal)

FAMTECH 2024. 2. 8. 09:04

 

목차

     

    "관련제품 문의는 로고 클릭 또는 공지사항의 연락처를 통해 하실 수 있습니다."

     

     

     

     

    CAN DBC란?

     

    CAN DBC는 '데이터베이스 CAN'을 의미하며, CAN 네트워크를 통해 전송된 데이터의 의미와 구조를 설명하는 텍스트 기반 파일입니다. 간단히 말해, DBC 파일은 CAN 버스를 통해 전송되는 데이터를 사람이 읽고 이해할 수 있도록 도와주는 '번역기'와 같은 역할을 합니다.

     

    CAN 버스는 차량 내 다양한 장치들 사이에서 데이터를 주고받는 데 사용되는 통신 네트워크입니다. 이 네트워크를 통해 전송되는 메시지는 주로 8바이트의 16진수 데이터 형태로 구성됩니다.

     

    DBC 파일의 역할은 이러한 16진수 데이터(8바이트까지 포함할 수 있는 데이터 필드를 가짐)를 '의미 있는' 물리적 값으로 변환하는 것입니다. 예를 들어, 엔진의 속도, 온도, 전압 같은 물리적 매개변수를 나타내는 신호로 해석합니다.

     

    데이터 구조에서, 하나의 CAN 메시지는 최대 64개의 개별 신호를 포함할 수 있으며, 이 신호들은 1바이트 값 8개, 1비트 값 64개, 64비트 값 1개 또는 이들의 조합으로 나눌 수 있습니다. 이는 데이터가 매우 다양한 형태로 구성될 수 있음을 의미합니다.

     

    DBC 파일의 정보는 CAN 메시지 내의 원시 데이터를 '물리적 값'으로 디코딩하는 데 필요한 정보를 포함합니다. 이는 각 신호의 의미, 데이터 형태, 위치 등을 정의하여, 원시 CAN 데이터를 실제 차량의 동작이나 상태와 관련된 정보로 변환할 수 있도록 합니다.

     

     

     

    CAN DBC 구조

     

     

    위 그림은 DBC의 text 형태로 아래와 같은 정보를 포함 합니다.

     

    • The CAN ID of the message in which this signal is present
    • The position where the signal is present in the CAN message
    • The byte order of the signal
    • The conversion details of the signal
    • Unit of the signal

     

    아래는 팜테크에서 제공하는 Rexgen2 IMU 장비의 DBC 정보로 가속도 센서, 자이로 센서, GNSS 로 측정한 값을 CAN으로 변환하고 이를 읽을 때 사용하는 DBC 입니다.

     

     

    <ReXgen_IMU_Out_V5.dbc>

    VERSION ""
    
    NS_ : 
    	NS_DESC_
    	CM_
    	BA_DEF_
    	BA_
    	VAL_
    	CAT_DEF_
    	CAT_
    	FILTER
    	BA_DEF_DEF_
    	EV_DATA_
    	ENVVAR_DATA_
    	SGTYPE_
    	SGTYPE_VAL_
    	BA_DEF_SGTYPE_
    	BA_SGTYPE_
    	SIG_TYPE_REF_
    	VAL_TABLE_
    	SIG_GROUP_
    	SIG_VALTYPE_
    	SIGTYPE_VALTYPE_
    	BO_TX_BU_
    	BA_DEF_REL_
    	BA_REL_
    	BA_DEF_DEF_REL_
    	BU_SG_REL_
    	BU_EV_REL_
    	BU_BO_REL_
    	SG_MUL_VAL_
    
    BS_: 
    
    BU_: Module_25
    
    BO_ 296 Accel: 8 Module_25
     SG_ SG_AccelY : 16|16@1- (0.001,0) [0|255] "" Vector__XXX
     SG_ SG_AccelX : 0|16@1- (0.001,0) [0|255] "" Vector__XXX
     SG_ SG_AccelZ : 32|16@1- (0.001,0) [0|255] "" Vector__XXX
    
    BO_ 297 Gyro: 8 Module_25
     SG_ SG_GyroX : 0|16@1- (0.01,0) [0|255] "" Vector__XXX
     SG_ SG_GyroZ : 32|16@1- (0.01,0) [0|255] "" Vector__XXX
     SG_ SG_GyroY : 16|16@1- (0.01,0) [0|255] "" Vector__XXX
    
    BO_ 298 ADC: 8 Module_25
     SG_ SG_ADC1 : 0|16@1- (0.01,0) [0|255] "mV" Vector__XXX
     SG_ SG_ADC2 : 16|16@1- (0.01,0) [0|255] "mV" Vector__XXX
     SG_ SG_DIG1 : 32|16@1- (0.01,0) [0|0] "" Vector__XXX
     SG_ SG_DIG2 : 48|16@1- (0.01,0) [0|0] "" Vector__XXX
    
    BO_ 299 GNSS: 8 Module_25
     SG_ SG_Altitude : 0|32@1- (0.01,0) [0|999999] "m" Vector__XXX
     SG_ SG_GPS_Speed : 32|16@1+ (0.01,0) [0|255] "kmph" Vector__XXX
    
    BO_ 300 GNSS_1: 8 Module_25
     SG_ SG_Longitude : 0|32@1- (0.01,0) [0|255] "" Vector__XXX
     SG_ SG_Latitude : 32|32@1- (0.01,0) [0|255] "" Vector__XXX
    
    BO_ 301 GNSS_2: 8 Module_25
     SG_ SG_GROUND_DISTANCE : 32|32@1+ (0.01,0) [0|255] "" Vector__XXX
     SG_ SG_DATETIME : 0|32@1+ (1,0) [0|1410065407] "" Vector__XXX
    
    BO_ 302 GNSS_3: 8 Module_25
     SG_ SG_NUMBER_OF_SATTELITE : 32|32@1+ (0.01,0) [0|255] "" Vector__XXX
     SG_ SG_COURSE : 0|32@1+ (0.01,0) [0|255] "" Vector__XXX
    
    BO_ 303 GNSS_4: 8 Module_25
     SG_ SG_QUALITY : 0|32@1+ (0.01,0) [0|255] "" Vector__XXX
    
    SIG_VALTYPE_ 300 SG_Longitude : 1;
    SIG_VALTYPE_ 300 SG_Latitude : 1;

     

     

    위 Text 형식을 통해 DBC 구조를 이해할 수 있습니다.

     

     

     

     

    CAN DBC 구조: Message

     

     

    위 화면은 Dialog의 CAN DBC Editor 기능으로 CAN 메세지의 구조를 확인할 수 있습니다. 

     

    • CAN ID: CAN ID with which the message is transmitted.
    • Name of the message.
    • Type of CAN Message (CAN Standard/Extended or CAN FD Standard/Extended).
    • Data Length Code (DLC) – Length of the Data in the CAN message.
    • Transmitter: CAN Node / Control unit from which the message is transmitted.

     

     

     

     

     

     

    CAN DBC 구조: Signal

     

    위 화면은 Dialog의 CAN DBC Editor 기능으로 CAN 메세지에 속한 Signal에 대한 정보를 확인할 수 있습니다. 구성은 아래와 같습니다.

     

    • Signal Name: Name of the signal present in the message.
    • Unit: Unit of the physical data present in the signal.
    • Start Bit: Start Bit of the signal.
    • Bit Count: Bit count of the signal.
    • Byte Order: Byte order of the signal, Motorola (Big Endian) / Intel (Little Endian).
    • Type: Data Type.
    • Factor: Conversion factor for the signal.
    • Offset Conversion offset for the signal.
    • Minimum & Maximum value of the signal.

     

     

     

    Signal의 DBC 정보를 통해 위와 같이 위치를 Mapping 해서 알려줍니다.

     

     

    DBC 파일은 CAN 버스를 통해 전송되는 데이터를 이해하는 데 도움을 줍니다. 이 작업을 수동으로 수행하는 것은 거의 불가능해 보일 수 있지만, 특정 소프트웨어를 사용하면 이 과정을 빠르고 쉽게 할 수 있습니다.

     

    Windows PC에서 DBC 파일을 읽고 분석할 수 있는 여러 응용 프로그램이 있습니다. 예를 들면, Influx Dialog Plus, Influx Module Analyser, Influx ReXdesk, MATLAB의 Vehicle Network Toolbox, Vector의 CAN db++ 등이 있습니다. 이러한 도구들은 DBC 파일 내의 데이터를 해석하고, 필요한 경우 수정하는 기능을 제공합니다.

     

    또한, Windows의 메모장(Notepad)을 사용하여 DBC 파일을 읽고 편집할 수도 있지만, 이 방법은 파일의 구조와 데이터를 이해하는 데 있어 다소 복잡할 수 있습니다. 따라서, DBC 파일을 만들거나 편집할 때는 Influx Dialog 같은 전문 도구를 사용하는 것이 효율적입니다. 이러한 도구들은 사용자가 CAN 버스를 통해 전송되는 데이터를 쉽게 이해하고, 필요에 따라 수정할 수 있도록 설계되었습니다.

     

     

     

     

     

    해당 내용과 관련해서 팜테크에서 교육 프로그램, 측정/분석 용역, 장비를 제공하고 있습니다.  관심 있으시면 아래 홈페이지 또는 연락처를 통해 문의 주시면 됩니다. :)

     

    https://famtech.co.kr/sub04/01_01.php

     

    교육일정및신청(주)팜테크

    이달의 교육일정 해당월에는 교육일정이 없습니다.

    famtech.co.kr

     

     

     

     

     

     

     

    Comments