01. CANoe#
1. Definition#
1-1. CANoe란?#
CANoe는 독일의 Vector Informatik에서 개발한 차량 네트워크 및 임베디드 시스템을 위한 개발, 시뮬레이션, 테스트 및 분석 도구이다. 주로 차량 ECU 및 통신 네트워크를 개발하고 검증하는 데 사용된다.
1-2. CANoe 주요 기능#
- 네트워크 시뮬레이션
실제 ECU 없이도 가상의 환경에서 네트워크 통신을 시뮬레이션할 수 있다. 예를 들어, 하나의 ECU만 개발된 상태에서도 전체 네트워크를 가상으로 구현하여 테스트 가능하다.
- 네트워크 분석
CAN, LIN, FlexRay, MOST, Ethernet 등 다양한 차량용 네트워크 프로토콜을 모니터링하고 분석할 수 있다. 실시간으로 메시지 송수신을 감지하고, 버스 부하 및 오류 등을 확인할 수 있다.
- 테스트 자동화
특정 시나리오를 설정하여 자동화된 테스트 수행이 가능하다. CAPL (Communication Access Programming Language)이라는 자체 스크립트 언어를 제공하여 테스트 및 시뮬레이션을 쉽게 작성할 수 있다.
- HIL (Hardware-in-the-Loop) 테스트 지원
실제 ECU 하드웨어를 연결하여 테스트하는 HIL 환경에서 사용될 수 있다. 외부 장비와 연결하여 실시간으로 신호를 주고받으며 검증할 수 있다.
- ECU 프로토콜 테스트 및 검증
자동차 네트워크에서 사용되는 진단 프로토콜(UDS, OBD-II 등)의 동작을 검증할 수 있다. 특정 ECU에 특정 메시지를 보내고, 그 응답을 분석하는 기능을 제공한다.
2. DBC(DataBase Container) import#
2-1 DBC 파일 생성#
CANdb++를 실행한다. (사진은 CANdb++ 3.1)
화면 좌측 상단의 File-Create Database를 클릭한다.
Vector_IL_Basic Template.dbc를 선택하고 'OK'를 눌러, 저장할 공간을 선택하여 저장한다.
파일의 Protocol을 CAN으로 설정한다.
다음과 같은 화면이 나오면 정상적으로 파일을 생성한 상태이다.
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 생성#
Network nodes 우클릭 - New를 클릭한다.
Name을 ECU1으로 바꾸고 주소도 수정한다.
ECU2에 대해서도 같은 과정을 반복한다.
2-4 Message 생성#
Messages 우클릭 - New를 클릭한다.
Name과 ID를 다음과 같이 변경한다.
상단의 attributes를 선택하고 주기를 설정한다.
상단의 transmitters를 선택하고 add를 눌러 ECU1을 추가하고 OK를 누른다. 이후에 확인까지 누르고 Speed가 추가된 것을 확인한다.
Heat에 대해서도 transmitters 변경까지 같은 과정을 반복복한다. 마찬가지로 Heat가 추가된 것을 확인한다.
2-5 Signal 생성#
Signals-new를 클릭하여 Name과 Factor를 변경한다.
상단의 Messages 탭에서 Add를 클릭하여 Speed Message에 Speed1 signal을 추가한다. 이후 'OK', '확인'을 클릭하여 Signal 설정을 마무리한다.
Speed2에 대해서도 이와 같은 과정을 반복한다.
Temperature에 대해서 다음과 같이 설정해준다.
2-6 Signal 수신 Node 매핑#
수신할 Node를 더블클릭- Mapped Rx Sig - Add all from one message를 통해 모든 Signal을 추가해준다. 그림과 같이 모든 Signal이이 추가되었으면 확인 클릭
3 CANoe 테스트#
3-1 DBC import#
CANoe를 실행하여 New-Template에서 CAN 500kBaud 1ch를 클릭하여 프로젝트를 실행한다.
DataBase 우클릭 - Import Wizard를 선택한다.
Select를 클릭하여 이전에 생성한 DBC파일을 선택하면 아래 장치들이 추가된다. 이 장치들을 클릭하여 '>>'버튼을 통해 오른쪽으로 모두 이동시킨다. 이동이 완료되었으면 '다음'을 누르고 '마침'까지 클릭한다.
다음과 같이 Node와 DataBase가 추가되었는지 확인한다.
3-2 Trace view open#
화면 상단의 Analysis-Trace를 통해 Trace창을 추가할 수 있다.
3-3 CAN 통신 Test#
화면 상단의 Home-Real Bus를 클릭하여 Simulated Bus를 클릭한다.(부하가 없으므로) 그후 Start버튼을 통해 시작할 수 있다.
Trace창을 통해 정상적으로 시뮬레이션 되는 것을 확인할 수 있다.
4 실물 ECU를 활용한 CAN 통신 검증#
앞서 진행한 AUTOSAR CP 기반 CAN 통신 설정 실습보드(ECU1)를 활용하여 CAN통신을 검증해보자.
4-1 Connection#
다음과 같이 실물 보드와 장치를 연결하고 보드의 전원을 연결한다.
4-2 CAN 통신 검증#
CANoe를 실행하여 New-Template에서 CAN 500kBaud 1ch를 클릭하여 프로젝트를 실행한다.
Home에서 Real Bus로 설정되어있는지 확인후, Start 버튼을 클릭한다.
화면 하단의 trace 버튼을 클릭하여 CAN 통신이 잘 되는지 확인한다.
Switch를 눌렀을때 ID가 2번인 신호의 값이 정상적으로 변경되는지 확인한다.