Skip to content

01. CANoe#

1. Definition#

1-1. CANoe란?#

CANoe는 독일의 Vector Informatik에서 개발한 차량 네트워크 및 임베디드 시스템을 위한 개발, 시뮬레이션, 테스트 및 분석 도구이다. 주로 차량 ECU 및 통신 네트워크를 개발하고 검증하는 데 사용된다.

1-2. CANoe 주요 기능#

  1. 네트워크 시뮬레이션

실제 ECU 없이도 가상의 환경에서 네트워크 통신을 시뮬레이션할 수 있다. 예를 들어, 하나의 ECU만 개발된 상태에서도 전체 네트워크를 가상으로 구현하여 테스트 가능하다.

  1. 네트워크 분석

CAN, LIN, FlexRay, MOST, Ethernet 등 다양한 차량용 네트워크 프로토콜을 모니터링하고 분석할 수 있다. 실시간으로 메시지 송수신을 감지하고, 버스 부하 및 오류 등을 확인할 수 있다.

  1. 테스트 자동화

특정 시나리오를 설정하여 자동화된 테스트 수행이 가능하다. CAPL (Communication Access Programming Language)이라는 자체 스크립트 언어를 제공하여 테스트 및 시뮬레이션을 쉽게 작성할 수 있다.

  1. HIL (Hardware-in-the-Loop) 테스트 지원

실제 ECU 하드웨어를 연결하여 테스트하는 HIL 환경에서 사용될 수 있다. 외부 장비와 연결하여 실시간으로 신호를 주고받으며 검증할 수 있다.

  1. ECU 프로토콜 테스트 및 검증

자동차 네트워크에서 사용되는 진단 프로토콜(UDS, OBD-II 등)의 동작을 검증할 수 있다. 특정 ECU에 특정 메시지를 보내고, 그 응답을 분석하는 기능을 제공한다.

2. DBC(DataBase Container) import#

2-1 DBC 파일 생성#

CANdb++를 실행한다. (사진은 CANdb++ 3.1)

2-1

화면 좌측 상단의 File-Create Database를 클릭한다.

2-2

Vector_IL_Basic Template.dbc를 선택하고 'OK'를 눌러, 저장할 공간을 선택하여 저장한다.

2-0

파일의 Protocol을 CAN으로 설정한다.

2-3

다음과 같은 화면이 나오면 정상적으로 파일을 생성한 상태이다.

2-2 DBC 파일 구성#

CAN프로토콜을 사용하는 Communication Matrix를 정의해보자. 이번 예제에서는 다음의 구성을 따를 예정이다.

메시지 ID 메시지 이름 데이터 길이(단위: Byte) 송신제어기 수신제어기 Send type
0x123 Speed 4 ECU1 xx,xx,xx 주기 10ms
0x456 Heat 4 ECU1 xx,xx,xx 주기 100ms
메시지 ID Signal
0x123 Speed1
0x123 Speed2
0x456 Temperature

2-3 Node 생성#

2-4

Network nodes 우클릭 - New를 클릭한다.

2-5

Name을 ECU1으로 바꾸고 주소도 수정한다.

2-6

ECU2에 대해서도 같은 과정을 반복한다.

2-4 Message 생성#

2-7

Messages 우클릭 - New를 클릭한다.

2-8

Name과 ID를 다음과 같이 변경한다.

2-8-1

상단의 attributes를 선택하고 주기를 설정한다.

2-9

상단의 transmitters를 선택하고 add를 눌러 ECU1을 추가하고 OK를 누른다. 이후에 확인까지 누르고 Speed가 추가된 것을 확인한다.

2-10

2-10-1

Heat에 대해서도 transmitters 변경까지 같은 과정을 반복복한다. 마찬가지로 Heat가 추가된 것을 확인한다.

2-5 Signal 생성#

2-11

Signals-new를 클릭하여 Name과 Factor를 변경한다.

2-12

상단의 Messages 탭에서 Add를 클릭하여 Speed Message에 Speed1 signal을 추가한다. 이후 'OK', '확인'을 클릭하여 Signal 설정을 마무리한다.

2-13

Speed2에 대해서도 이와 같은 과정을 반복한다.

2-14 2-15

Temperature에 대해서 다음과 같이 설정해준다.

2-6 Signal 수신 Node 매핑#

2-16

수신할 Node를 더블클릭- Mapped Rx Sig - Add all from one message를 통해 모든 Signal을 추가해준다. 그림과 같이 모든 Signal이이 추가되었으면 확인 클릭

3 CANoe 테스트#

3-1 DBC import#

3-1

CANoe를 실행하여 New-Template에서 CAN 500kBaud 1ch를 클릭하여 프로젝트를 실행한다.

3-2

DataBase 우클릭 - Import Wizard를 선택한다.

3-3

3-4

Select를 클릭하여 이전에 생성한 DBC파일을 선택하면 아래 장치들이 추가된다. 이 장치들을 클릭하여 '>>'버튼을 통해 오른쪽으로 모두 이동시킨다. 이동이 완료되었으면 '다음'을 누르고 '마침'까지 클릭한다.

3-5

다음과 같이 Node와 DataBase가 추가되었는지 확인한다.

3-2 Trace view open#

3-6

화면 상단의 Analysis-Trace를 통해 Trace창을 추가할 수 있다.

3-3 CAN 통신 Test#

3-7

화면 상단의 Home-Real Bus를 클릭하여 Simulated Bus를 클릭한다.(부하가 없으므로) 그후 Start버튼을 통해 시작할 수 있다.

3-8

Trace창을 통해 정상적으로 시뮬레이션 되는 것을 확인할 수 있다.

4 실물 ECU를 활용한 CAN 통신 검증#

앞서 진행한 AUTOSAR CP 기반 CAN 통신 설정 실습보드(ECU1)를 활용하여 CAN통신을 검증해보자.

4-1 Connection#

4-1

다음과 같이 실물 보드와 장치를 연결하고 보드의 전원을 연결한다.

4-2 CAN 통신 검증#

3-1

CANoe를 실행하여 New-Template에서 CAN 500kBaud 1ch를 클릭하여 프로젝트를 실행한다.

4-2

Home에서 Real Bus로 설정되어있는지 확인후, Start 버튼을 클릭한다.

4-3

화면 하단의 trace 버튼을 클릭하여 CAN 통신이 잘 되는지 확인한다.

4-4

Switch를 눌렀을때 ID가 2번인 신호의 값이 정상적으로 변경되는지 확인한다.