본문 바로가기

CAN(Controller Area Network)

CANoe - DBC 만들기

예제 Message

 

※ DBC에서 셋팅해야 할 기본적인 사항들

1. Network Protocol

2. Network ECU

3. Network Message(ID, Name, Length(byte), Cycle, Rx&Tx ECU, signal, Layout)

4. Signal(Name, Length(bit), Factor, Offset, Min, Max)

 

 

1. CANoe 실행

- 경로에는 한글이 포함되면 안됨

- 확장자명은 cfg(DBC의 확장자명은 .dbc)

 

- cfg에서 Tool => CANdb++ Editor 선택

 

※ CANdb++에서 직접 생성할 수도 있음

 

- CABdb++에서 File => Create Database => DBC Template 선택(Template은 상황에 따라 달라질 수 있음)

 

- cfg 파일이 저장된 곳에 저장하기!

- 폴더명은 편한대로 정해도 됨!

- CAPL은 일종의 코드(시나리오, 즉 Event를 만들 때 사용됨, CAN통신은 Event driven)

- PANNEL은 일종의 UI라고 생각하면 편함

- CAPL, PANNEl은 아님, 근데 CAPL은 꽤 중요함

 

Message 만들기

1. Network Protocol 정하기

 

2.  ECU 만들기

- Name에 ECU 이름을 설정

- Adress 설정은 크게 신경쓰지 않아도 됨. 명세서에 요구가 되어 있다면 변경하면 된다

- 다음과 같이 ECU 생성!

 

3. Message 만들기

- 0x123, BMS 메시지를 예시로 만들겠습니다

- Name에 메세지 이름

- Type은 CAN Standard/CAN Extended 존재

- ID는 Message ID(이건 반드시 정의해야 함

- DLC는 데이터 길이, 예제에서 BMS는 8Byte

- Attributes에서 주기 설정!(Message 주기를 유동적으로 변경하고 싶은 경우 설정하지 마세요!!)

 

4. Signal 생성

- Signal Name, Length, Byte Order, Value Type, Factor, Offset 생성(일부만 생성)

- Calculate minmum & maximum 버튼은 데이터 최소~최대 범위를 자동으로 계산 해준다

 

5. Message에 Signal 넣기

- 원하는 Signal을 Message로 Drag & Drop하면 됨

- Edit Message => Layout에서 각 Signal의 Start bit을 설정(Drag하면 됨)

 

6.  Message Tx & Rx 정하기

- Tx의 경우 원하는 ECU에 Drag & Drop하면 됨

- 위의 경우 BMS msg를 BMS_Controller에 Drag & Drop함, Tx Messages에서 확인 가능

 

 

- Rx의 경우 Message를 받는 ECU에서 직접 설정해야 함(Drag & Drop이 안됨...)

- Edit Node => Mapped Rx.sig => Add(message 또는 Signal을 추가할 수 있음)

- Rx에 Message가 추가된 모습을 오른쪽 사진에서 확인할 수 있음(일부만 만듬)