CAN 버스
이 장에서 할 일
이 장에서는 ECU 속성을 마친 노드 ECU 와 ZONE 을 CAN 버스로 잇는다.
두 노드에 CAN 컨트롤러(CanController, CanCommController)와 CAN 커넥터(CanConnector)를 하나씩 만들고, 커넥터의 + 배지로 CAN 클러스터 CanCluster 를 만들어 물리 채널 PhysicalChannel 에 두 커넥터를 연결한다.
NM(네트워크 관리)과 TP(전송 프로토콜)는 새 클러스터에서 꺼져 있고, Communication Cluster Configuration 창에서 클러스터마다 켠다. 참조 설계에는 둘 다 없으므로, 이 창에서는 둘 다 꺼져 있는지 확인만 한다.
이 장을 마치면 System 편집기에 ECU 와 ZONE 을 CanCluster 로 이은 설계가 저장되고, VALIDATION 패널에는 No validation issues. 가 보인다.
시작하기 전에
- ECU 속성을 마친 상태에서 시작한다. 노드 네 개(
ECU,ZONE,SLAVE_ECU,HPC)에는 아직 컨트롤러, 커넥터, 클러스터가 없고, VALIDATION 패널은No validation issues.이다. - 탭
TopologyDesign:System이 열려 있지 않으면 EDITOR 뷰의 DESIGN 아래에서 System 을 클릭한다. - VALIDATION 패널이 열려 있으면 푸터의 V 아이콘으로 닫아 둔다. 그림은 패널을 닫은 화면이다.
이 장에서 입력하는 값은 다음과 같다. 채널 이름 PhysicalChannel 은 클러스터를 만들 때 자동으로 붙는 기본값이라 입력하지 않는다.
| 어디서 | 항목 | 값 |
|---|---|---|
CAN CONTROLLER 패널 (노드 ECU) | NAME | CanController |
CAN CONTROLLER 패널 (노드 ECU) | SYNC JUMP WIDTH, PROPAGATION SEGMENT, TIME SEGMENT 1, TIME SEGMENT 2 | 네 칸 모두 0 |
CAN CONTROLLER 패널 (노드 ZONE) | NAME | CanCommController |
CAN CONNECTOR 패널 (노드 ECU) | NAME / CONTROLLER | CanConnector / CanController 선택 |
CAN CONNECTOR 패널 (노드 ZONE) | NAME / CONTROLLER | CanConnector / CanCommController 선택 |
| CAN CLUSTER 패널 | NAME | CanCluster |
| CAN CLUSTER 패널 | PHYSICAL CHANNELS › CHANNEL NAME | PhysicalChannel (기본값, 그대로 둔다) |
| Communication Cluster Configuration 창 | NM CLUSTER, TRANSPORT PROTOCOL, TIME DOMAIN 탭 | 꺼짐 (기본값, 그대로 둔다) |
참고. 속성 패널의 입력란은 칸에서 빠져나와야 값이 확정된다. 이 장에서는 속성 패널에 값을 입력한 뒤
Tab키를 누른다.
CAN 컨트롤러 만들기
컨트롤러 추가하기
-
캔버스에서 노드
ECU안쪽의 빈 곳을 마우스 오른쪽 버튼으로 클릭한다. 메뉴에 Add Connector, Add Controller, Add Ethernet Switch, Add Gateway, SW Mapping, Extract ECU, Delete 가 보인다. -
Add Controller 에 마우스를 올리고 하위 메뉴에서 CAN 을 클릭한다.

그림 3-1. 노드
ECU의 우클릭 메뉴. ① Add Controller, ② 하위 메뉴의 CAN, ③ 오른쪽 클릭한 노드ECU. Add Controller 의 하위 메뉴는 Ethernet, CAN, LIN Master, LIN Slave 이다. -
노드 안에 작은 사각형이 생긴다. 이것이 CAN 컨트롤러다. 새 컨트롤러는 저절로 선택되지 않으므로 이 사각형을 클릭한다. 오른쪽 속성 패널의 제목은 CAN CONTROLLER 이고, NAME 은 기본 이름
ECU_Can_Controller_0이다.
그림 3-2. 새 CAN 컨트롤러. ① 노드 안의 컨트롤러, ② 패널 제목 CAN CONTROLLER, ③ NAME =
ECU_Can_Controller_0, ④ CAN 이 켜진 CAN / CAN FD 토글, ⑤ BIT TIMING CONFIGURATION 의 빈 칸 네 개.
참고. 캔버스의 컨트롤러 사각형에는 이름이 보이지 않는다. 지금 어느 컨트롤러를 고치는지는 패널 제목과 NAME 칸으로 확인한다.
주의. 오른쪽 클릭은 노드 안쪽의 빈 곳에 한다. 노드 이름이나 이미 놓인 컨트롤러, 커넥터 위를 오른쪽 클릭하면 다른 메뉴가 열릴 수 있다.
이름과 비트 타이밍 입력하기
-
NAME 칸의
ECU_Can_Controller_0을 지우고CanController를 입력한 뒤Tab키를 누른다. -
CAN CONTROLLER CONFIGURATION 머리글 오른쪽의 토글은 CAN 이 켜진 그대로 둔다. CAN FD 는 누르지 않는다.
-
BIT TIMING CONFIGURATION 의 SYNC JUMP WIDTH, PROPAGATION SEGMENT, TIME SEGMENT 1, TIME SEGMENT 2 에 차례로
0을 입력하고, 칸마다Tab키를 누른다. 빈 칸에는 안내문Unsigned Integer (0..4294967295)가 보인다.
그림 3-3. 값을 입력한 뒤. ① 컨트롤러, ② 네 칸 모두
0인 BIT TIMING CONFIGURATION, ③ NAME =CanController. 포커스가 넘어간 MAX TIME QUANTA/BIT 라벨이 파랗게 보인다.
BIT TIMING REQUIREMENTS 의 여섯 칸(MAX TIME QUANTA/BIT 등)은 비워 둔다. CAN 이 켜져 있으면 CAN FD 용 입력란은 패널에 나오지 않는다.
ZONE 에도 컨트롤러 만들기
-
노드
ZONE안쪽의 빈 곳을 오른쪽 클릭하고 Add Controller › CAN 을 클릭한다.ZONE안에 컨트롤러 사각형이 생긴다. 이 사각형을 클릭하면 CAN CONTROLLER 패널의 NAME 에ZONE_Can_Controller_0이 보인다. -
NAME 에
CanCommController를 입력하고Tab키를 누른다. 비트 타이밍 네 칸은 비워 둔다.
그림 3-4. 노드
ZONE의 CAN 컨트롤러. ①ZONE안의 컨트롤러, ② NAME =CanCommController. 선택이 풀린ECU의 컨트롤러는 초록 테두리로 보인다.
두 컨트롤러의 값을 모으면 다음과 같다.
| 노드 | 기본 이름 | NAME | CAN / CAN FD | 비트 타이밍 네 칸 |
|---|---|---|---|---|
ECU | ECU_Can_Controller_0 | CanController | CAN | 0, 0, 0, 0 |
ZONE | ZONE_Can_Controller_0 | CanCommController | CAN | 비워 둔다 |
CAN 커넥터 만들기
커넥터 추가하기
-
노드
ECU안쪽의 빈 곳을 오른쪽 클릭한다. -
Add Connector 에 마우스를 올리고 하위 메뉴에서 CAN 을 클릭한다. 하위 메뉴는 Ethernet, CAN, LIN 이다.

그림 3-5. 노드
ECU의 우클릭 메뉴. ① Add Connector, ② 하위 메뉴의 CAN. 오른쪽 클릭하면 노드ECU가 선택되므로 패널에는 ECU 패널이 보인다. CONNECTORS 는No connectors이고 CONTROLLERS 에는CanController가 있다. -
노드
ECU의 아래 가장자리에 커넥터 사각형이 생기고, 그 아래에 초록 + 배지가 붙는다. 커넥터도 저절로 선택되지 않으므로 커넥터 사각형을 클릭한다. 패널 제목은 CAN CONNECTOR 이고, NAME 은ECU_Can_Connector_0, CONTROLLER 는Select controller..., CONNECTED CHANNEL 은(None)이다. CONTROLLER 는 필수 입력란이라, 비어 있는 동안 라벨이 빨갛고 안내문Controller is required가 보이며, 푸터의 V 아이콘에 빨간 배지1이 붙는다.
그림 3-6. 새 CAN 커넥터. ① 노드 아래 가장자리의 커넥터, ② NAME =
ECU_Can_Connector_0, ③ 빨간 라벨과Controller is required가 보이는 CONTROLLER =Select controller..., ④ CONNECTED CHANNEL =(None). 커넥터 아래에 초록 + 배지가 보이고, 푸터의 V 아이콘에 배지1이 붙어 있다.
CAN CONNECTOR 패널에는 이 밖에 DESCRIPTION, PARTIAL NETWORK, TX FRAMES, RX FRAMES 가 있다. 이 장에서는 NAME 과 CONTROLLER 만 쓴다.
이름과 컨트롤러 지정하기
-
NAME 에
CanConnector를 입력하고Tab키를 누른다. -
CONTROLLER 칸을 클릭한다. 검색칸
Type to search...와 목록이 열린다. 목록에는 같은 노드의 CAN 컨트롤러CanController하나만 있다. -
CanController를 클릭한다. 캔버스에 커넥터와 컨트롤러를 잇는 주황 선이 생긴다. CONTROLLER 의 빨간 표시와 V 아이콘의 배지가 사라진다.
그림 3-7. CONTROLLER 목록을 연 화면. ① 목록 항목
CanController, ② NAME =CanConnector, ③ 아직 컨트롤러를 고르지 않아 빨갛게 보이는 CONTROLLER 라벨.
ZONE 에도 커넥터 만들기
-
노드
ZONE안쪽의 빈 곳을 오른쪽 클릭하고 Add Connector › CAN 을 클릭한다.ZONE의 아래 가장자리에 커넥터 사각형이 생긴다. 이 사각형을 클릭하면 CAN CONNECTOR 패널의 NAME 에ZONE_Can_Connector_0이 보인다. -
NAME 에
CanConnector를 입력하고Tab키를 누른다. -
CONTROLLER 목록에서
CanCommController를 클릭한다. 목록 항목은 이것 하나뿐이다.
그림 3-8. 노드
ZONE의 CAN 커넥터. ①ZONE의 커넥터, ② NAME =CanConnector, ③ CONTROLLER =CanCommController. 두 노드 모두 커넥터와 컨트롤러가 주황 선으로 이어져 있다. 그림에서는ZONE의 컨트롤러가 커넥터 바로 위에 있어 둘 사이의 선이 아주 짧다.
두 커넥터의 값을 모으면 다음과 같다.
| 노드 | 기본 이름 | NAME | CONTROLLER |
|---|---|---|---|
ECU | ECU_Can_Connector_0 | CanConnector | CanController |
ZONE | ZONE_Can_Connector_0 | CanConnector | CanCommController |
참고. 두 커넥터의 이름은 똑같이
CanConnector이다. 커넥터는 노드 안에 속하므로 노드가 다르면 이름이 같아도 된다. 클러스터 패널에서는ZONE/CanConnector,ECU/CanConnector처럼 노드 이름을 붙여 구별한다.
CAN 클러스터 만들기
ZONE 커넥터에서 클러스터 만들기
클러스터를 만든 쪽의 커넥터가 채널의 첫 번째 커넥터가 된다. 참조 설계의 순서(ZONE, ECU)와 맞추려고 ZONE 의 커넥터에서 클러스터를 만든다.
-
노드
ZONE의CanConnector아래에 있는 초록 + 배지를 클릭한다. -
열린 메뉴에서 Create CommunicationCluster [Can] 을 클릭한다. 메뉴 항목은 이것 하나뿐이다.
![+ 배지 메뉴의 Create CommunicationCluster [Can]](/docs/ko/assets/images/03-09-zone-connector-plus-create-cluster-079d16b7a899e376f2b72019198e6de1.png)
그림 3-9.
ZONE커넥터의 + 배지 메뉴. ① + 배지, ② Create CommunicationCluster [Can]. -
ZONE아래에 클러스터 사각형이 생기고, 사각형 밑에 이름CanCluster_0이 보인다. 화면에서 보이지 않으면 캔버스 아래 툴바의 Fit to View 를 클릭한다. -
클러스터 사각형을 클릭한다. 패널 제목은 CAN CLUSTER 이고, NAME 은
CanCluster_0이다.
그림 3-10. 새 CAN 클러스터. ① 클러스터 사각형, ② NAME =
CanCluster_0, ③ 버튼 열 개 가운데 켜진 것이 없는 PROTOCOL › BAUDRATE (ARBITRATION, KBPS), ④ 기본값PhysicalChannel이 들어 있는 CHANNEL NAME. Connected Connectors (1) 아래에ZONE/CanConnector가 보인다. 사각형 밑 이름의 끝부분은 속성 패널에 가려 있다. -
NAME 에
CanCluster를 입력하고Tab키를 누른다. 사각형 밑의 이름도CanCluster로 바뀐다. PROTOCOL, BUS-OFF RECOVERY, CHANNEL NAME 은 그대로 둔다.
참고. BAUDRATE (ARBITRATION, KBPS) 의 버튼은 저장한 뒤 클러스터를 다시 선택해도 하나도 켜져 있지 않지만, 저장된 클러스터에는 보오레이트
500000이 들어간다. 참조 설계의 클러스터에는 보오레이트가 없다. 익스포트 결과의 차이는 ARXML 익스포트에서 다룬다.
참고. 참조 설계의
CanCluster에는 프로토콜 이름PROTOCOL-NAME=CAN-FD가 있다. CAN CLUSTER 패널의 PROTOCOL 섹션에는 PROTOCOL NAME 칸이 있지만 이 튜토리얼에서는 비워 두므로, 이 값은 만들어지지 않는다. 컨트롤러 패널의 CAN / CAN FD 토글은 이것과 다르다. 토글은 컨트롤러의 CAN FD 설정이고, 참조 설계의CanController에는 CAN FD 설정이 없으므로 CAN 그대로 둔다.
ECU 커넥터를 채널에 연결하기
-
노드
ECU의CanConnector아래에 있는 초록 + 배지를 클릭한다. 이번에는 메뉴에 Create CommunicationCluster [Can] 과 Connect to Channel... 이 있다. -
Connect to Channel... 에 마우스를 올리고, 하위 메뉴의 CanCluster 에 마우스를 올린 뒤, 그 하위 메뉴의 PhysicalChannel 을 클릭한다.

그림 3-11.
ECU커넥터의 + 배지 메뉴. ① + 배지, ② Connect to Channel..., ③ CanCluster, ④ PhysicalChannel.
주의. 이 메뉴의 Create CommunicationCluster [Can] 은 새 클러스터를 만드는 항목이다.
ECU의 커넥터는 Connect to Channel... 로 앞에서 만든 채널에 연결한다.
배치 정리하고 저장하기
-
캔버스 아래 툴바의 Auto Layout 을 클릭하고, 이어서 Fit to View 를 클릭한다. 노드가 다시 배치된다.
-
클러스터 사각형을 클릭해 Connected Connectors (2) 아래에
ZONE/CanConnector,ECU/CanConnector가 보이는지 확인한다.
그림 3-12. Auto Layout 뒤의 캔버스. ① Auto Layout, ② Fit to View, ③ 클러스터 사각형, ④ CHANNEL NAME
PhysicalChannel과 Connected Connectors (2) 의ZONE/CanConnector,ECU/CanConnector. 두 커넥터가 파란 선으로 클러스터와 이어져 있다. -
노드가 없는 빈 캔버스를 클릭한 뒤
Ctrl+S를 눌러 저장한다. 탭TopologyDesign:System의 파란 점이 사라진다.
Auto Layout 뒤의 배치는 그림과 조금 다를 수 있고, SLAVE_ECU 와 ECU 의 테두리가 맞닿아 보일 수 있다. 배치 결과이며 오류가 아니므로 노드를 옮기지 않아도 된다.
검증 결과 보기
-
푸터의 V 아이콘을 클릭해 VALIDATION 패널을 연다.

그림 3-13. 저장 뒤의 VALIDATION 패널. ① 푸터의 V 아이콘, ②
No validation issues.행.
검증 결과는 0건으로, ECU 속성을 마쳤을 때와 같다. NM(네트워크 관리)과 TP(전송 프로토콜)는 새 클러스터에서 꺼져 있으므로, CanCluster 를 만들어도 설계에 NM 클러스터나 TP 설정이 생기지 않는다. 이 둘을 켜는 탭은 다음 두 절에서 본다.
참고. 커넥터의 CONTROLLER 가 비어 있는 동안 V 아이콘에는 빨간 배지
1이 붙었다. 건수가 0으로 돌아오면 배지는 사라지지만, V 아이콘의 툴팁에는 마지막 건수Validation: 1 error(s), 0 warning(s), 0 info(s)가 그대로 남는다. 현재 결과는 VALIDATION 패널에서 확인한다.
네트워크 관리 탭 확인하기
클러스터 설정 창 열기
-
푸터의 V 아이콘을 다시 클릭해 VALIDATION 패널을 닫는다.
-
캔버스의
CanCluster사각형을 더블클릭한다. 창 Communication Cluster Configuration [CanCluster] 가 열린다. 탭은 CLUSTER, NM CLUSTER, TRANSPORT PROTOCOL, TIME DOMAIN 이고, 처음에는 CLUSTER 탭이 보인다. 표 FRAME TRIGGERINGS [PHYSICALCHANNEL] 에는No frame triggering. [+] adds a frame of the Signal model.이, SIGNAL LAYOUT 에는Select a frame or PDU triggering to see where it is sent and its signal layout.이 보인다. -
NM CLUSTER 탭을 클릭한다.

그림 3-14. NM CLUSTER 탭. ① 이름 앞에 빈 동그라미가 있는 탭 NM CLUSTER, ② 흐리게 보이고 입력을 받지 않는 편집 영역.
탭 이름 앞의 빈 동그라미는 이 클러스터에서 그 기능이 꺼져 있다는 표시다. NM CLUSTER, TRANSPORT PROTOCOL, TIME DOMAIN 에 모두 빈 동그라미가 있고, 탭 이름도 흐리게 보인다. 이런 탭에 마우스를 올리면 툴팁 Disabled. Right-click to enable. 이 보이고, 오른쪽 클릭하면 항목이 Enable 하나뿐인 메뉴가 열린다.
NM 이 꺼져 있는 동안 이 탭은 NM 편집 화면을 흐린 미리보기로만 보여 주며, 미리보기의 값은 설계에 저장되지 않는다. 왼쪽 NM CONFIGURATION 의 CHANNEL 에는 NAME NmCluster_CanCluster 가 보이고, NM TIMING CONFIGURATION 에는 NM MSG CYCLE TIME 0.5, NM REPEAT MESSAGE TIME 1, NM NETWORK TIMEOUT 2, NM WAIT BUS SLEEP TIME 1.5, NM REMOTE SLEEP INDICATION TIME 1, NM MESSAGE TIMEOUT TIME 2 (모두 s)가 보이며, NM IMMEDIATE NM TRANSMISSIONS 는 0 이다. 오른쪽 NM STATE MACHINE 은 NM 상태도이다.
주의. Enable 은 고르지 않는다. 참조 설계에는 NM 설정이 없으므로, 이 튜토리얼은
CanCluster의 NM 을 꺼 둔 채로 둔다.
전송 프로토콜 설정 확인하기
이 절에서는 값을 바꾸지 않는다.
-
TRANSPORT PROTOCOL 탭을 클릭한다.

그림 3-16. TRANSPORT PROTOCOL 탭. ① 빈 동그라미가 있는 탭 TRANSPORT PROTOCOL, ② 흐리게 보이는 편집 영역. TP NODE 에는
No TP node yet., TP CONNECTIONS 에는No TP connection yet. Click [+] to add one.이 보인다. 오른쪽 TP TOPOLOGY 에서ECU와ZONE의CanConnector는 모두(free)이다. -
창 오른쪽 아래의 Close 를 클릭한다. 저장 확인 창 없이 창이 닫힌다.
TP(전송 프로토콜)도 CanCluster 에서 꺼져 있으므로 이 탭도 흐린 미리보기이고, 설계에는 CAN TP 설정이 없다. TIME DOMAIN 탭도 같은 방식으로 꺼져 있다.
참조 설계에는 TP 설정이 없다. 이 튜토리얼은 TP 를 꺼 둔 채로 다음 장으로 넘어간다.
다시 검증하기
- 푸터의 V 아이콘을 클릭해 VALIDATION 패널을 연다. 여전히
No validation issues.가 보이고, 탭TopologyDesign:System에는 수정됨 표시가 없다.
Enable 을 고르지 않고 창을 닫았으므로 설계는 그대로이며, 이 결과는 정상이다.
왜 이렇게 설계하는가
- CAN 버스는
ECU와ZONE을 잇는다. 참조 설계의CanCluster채널PhysicalChannel에는ZONE과ECU의 커넥터CanConnector가 이 순서로 붙어 있다. 클러스터를ZONE쪽에서 만드는 것은 이 순서를 맞추기 위해서다. - 컨트롤러 이름은 노드마다 다르고, 커넥터 이름은 같다. 참조 설계는
ECU의 컨트롤러를CanController,ZONE의 컨트롤러를CanCommController로 부르고, 두 커넥터를 모두CanConnector로 부른다. - 비트 타이밍은
ECU의 컨트롤러에만 넣는다. 참조 설계의CanController에는 비트 타이밍 네 값이 모두0으로 들어 있고,CanCommController에는 비트 타이밍이 없다. - NM 은 꺼 둔다. 참조 설계에는 NM 설정이 없다. NM 은 NM CLUSTER 탭의 Enable 로 클러스터마다 켜고 새 클러스터에서는 꺼져 있으므로, 그대로 두면
CanCluster에는 NM 클러스터가 생기지 않는다. - TP 도 꺼 둔다. 참조 설계에는 TP 설정도 없다. TP 는 TRANSPORT PROTOCOL 탭에서 같은 방식으로 켜며, 꺼 둔 채로 두므로 TP 설정이 만들어지지 않는다.
확인하기
- 노드
ECU에 CAN 컨트롤러CanController(비트 타이밍 네 칸0, CAN 켜짐)와 CAN 커넥터CanConnector(CONTROLLER =CanController)가 있다. - 노드
ZONE에 CAN 컨트롤러CanCommController와 CAN 커넥터CanConnector(CONTROLLER =CanCommController)가 있다. - 클러스터
CanCluster를 선택하면 CHANNEL NAME 이PhysicalChannel이고, Connected Connectors (2) 아래에ZONE/CanConnector,ECU/CanConnector가 이 순서로 보인다. - Communication Cluster Configuration [CanCluster] 의 NM CLUSTER, TRANSPORT PROTOCOL, TIME DOMAIN 탭 이름 앞에 빈 동그라미가 있다.
- 탭
TopologyDesign:System에 수정됨 표시가 없다. - VALIDATION 패널에
No validation issues.가 보인다.
다음 단계
이더넷 버스에서 노드 ZONE 과 HPC 에 이더넷 컨트롤러와 커넥터를 만들고, 이더넷 클러스터 EthernetCluster 로 잇는다.