본문으로 건너뛰기

토폴로지 설계

이 장에서 할 일​

이 장에서는 새 프로젝트 PNC를 만들고, System 편집기에서 차량 네트워크의 뼈대(토폴로지)를 그린다. HPC, Zone ECU, 말단 ECU를 놓고, CAN FD 클러스터와 VLAN 두 개를 가진 Ethernet 클러스터로 잇고, HPC 안에 이더넷 스위치를 넣은 뒤 스위치 포트를 각 Ethernet 컨트롤러에 연결한다. 대표 노드 몇 개를 화면에서 직접 만들어 보고, 나머지는 값 표를 보며 같은 방법으로 추가한다.

이 장을 마치면 System 편집기에 그림 2-1과 같은 조널(zonal) 토폴로지가 완성된다. HPC 아래에 BackboneSwitch가 있고, 그 아래에 Zone ECU 3개, 맨 아래에 말단 ECU 10개가 놓인다.

완성된 PNC 예제 토폴로지

그림 2-1. 이 장에서 완성할 토폴로지. 맨 위 HPC, 그 아래 BackboneSwitch, 가운데 줄 WestZone, SouthZone, EastZone, 맨 아래 말단 ECU 10개. 캔버스 왼쪽 위의 PncVehicle은 완성 예제 프로젝트의 루트 이름이다.

시작하기 전에​

  • 예제와 설계 목표에서 이 예제의 PNC 3개와 참여 ECU를 확인해 둔다.
  • PAIO를 실행하고 프로젝트가 열려 있지 않은 창에서 시작한다. 창 제목이 PAIO이고, 왼쪽 EDITOR 뷰에 No project open이 보이고, Welcome 탭이 열려 있으면 된다. PAIO가 전에 작업한 프로젝트를 열면 PROJECT › New Window를 선택해 이런 창을 연다.
  • System 편집기(이전 이름 IVC 편집기)의 전체 기능은 IVC Editor에 정리되어 있다. 이 장에서는 튜토리얼에 필요한 동작만 다룬다.

이 장에서 직접 만들어 보는 요소는 다음과 같다. 나머지 요소는 나머지 노드와 채널 추가하기의 표를 따른다.

요소이름비고
HPCHPCEthernet 컨트롤러 HPC_Eth, 커넥터 HPC_Eth_Body_Conn
Zone ECUWestZoneCAN FD 컨트롤러 WestZone_CanFd, Ethernet 컨트롤러 WestZone_Eth
말단 ECUDoorCtrl_FLCAN FD 컨트롤러 DoorCtrl_FL_CanFd
CAN 클러스터WestCAN500 kbps, 채널 WestCAN_Channel
Ethernet 클러스터Backbone채널 VLAN_Body(VLAN ID 100), VLAN_Rear(VLAN ID 200)
이더넷 스위치BackboneSwitchHPC 내장, 클러스터 Backbone
커플링 포트HPC_Eth_Port, WestZone_Eth_Port, Port_0, Port_1스위치 포트와 컨트롤러 포트의 물리 연결

새 프로젝트 만들기​

  1. 화면 위쪽 메뉴에서 PROJECT를 클릭한다.

  2. 드롭다운에서 New Project... 항목을 클릭한다. 단축키는 없다. Welcome 탭의 New Project 버튼도 같은 대화상자를 연다.

    PROJECT 메뉴의 New Project

    그림 2-2. PROJECT 메뉴. ① New Project... 항목.

  3. New Project 대화상자의 Name에 PNC를 입력한다.

  4. Location에 프로젝트를 둘 폴더를 지정한다. 경로를 직접 입력하거나 Browse… 버튼을 클릭해 폴더를 고른다. PAIO는 그 안에 프로젝트 폴더 PNC를 만들고, 입력란 아래 줄에 그 경로를 The project will be created in …\PNC로 보여 준다. Create는 Name과 Location이 모두 채워져야 켜진다.

  5. Create를 클릭한다.

    New Project 대화상자

    그림 2-3. New Project 대화상자. ① Name, ② Location과 Browse… 버튼, ③ 새 프로젝트 폴더를 알려 주는 줄, ④ Create 버튼. 그림의 폴더는 예시일 뿐이므로 직접 고른 폴더를 쓰면 된다.

  6. 같은 창이 새 프로젝트로 들어간 것을 확인한다. 창 제목이 PAIO [PNC]이고, 왼쪽 뷰의 머리글이 EDITOR: PNC이며, DESIGN과 MODULE이 펼쳐져 있다. 편집기 탭은 아직 열려 있지 않다. 프로젝트 폴더 PNC에는 PNC.io.prj와 code, design, doc, export, import, workflow 폴더가 있다.

System 편집기 열기​

  1. 왼쪽 EDITOR 뷰를 본다. DESIGN 아래에 System, VFB, Interface, DataType, Diagnostic이, MODULE 아래에 Definition, Configuration이 보인다.

  2. DESIGN 아래의 System을 클릭한다. 한 번 클릭하면 System 편집기가 열린다.

    EDITOR 뷰 DESIGN 아래의 System

    그림 2-4. PNC 프로젝트의 EDITOR 뷰. ① DESIGN 아래의 System을 클릭한다.

  3. 편집기 탭 PNC:System이 열리고 빈 캔버스가 나타난다. 캔버스 왼쪽 위에 루트 이름 System이 표시된다.

    빈 System 편집기

    그림 2-5. 처음 연 System 편집기. 가운데가 캔버스, 캔버스 왼쪽 아래가 툴바(확대, 축소, Fit to View, Auto Layout 등)이다. 캔버스 왼쪽 가장자리의 아이콘 두 개는 Signal과 Partial Network (PNC) 아이콘이다. 오른쪽 가장자리의 버튼 세 개는 속성 패널 열기·닫기, 잠금, SYSTEM 패널 열기(System, PAIO 로고) 버튼이다.

참고. 새 프로젝트의 루트 이름은 System이다. 편집기 이름이 아니라 시스템의 이름이다. 이 장의 완성 화면(그림 2-1, 그림 2-25)은 완성 예제 프로젝트를 연 것이라 루트 이름이 PncVehicle로 보인다. 따라 하는 데는 영향이 없다.

HPC 추가하기​

  1. 캔버스의 빈 곳을 우클릭한다. 메뉴에 Add ECU, Add HPC 두 항목이 나타난다.

  2. Add HPC를 클릭한다. HPC_0 노드가 생긴다.

    캔버스 우클릭 메뉴

    그림 2-6. 캔버스 우클릭 메뉴. ① Add HPC.

  3. HPC_0 노드를 클릭한다. 오른쪽에 속성 패널(제목 HPC)이 열린다.

  4. NAME에 HPC를 입력하고 Tab 키를 눌러 확정한다. 캔버스의 노드 이름이 HPC로 바뀐다.

    HPC 이름 바꾸기

    그림 2-7. HPC 속성 패널. ① 선택한 HPC 노드, ② NAME 입력란. 편집 중에는 탭 이름 옆에 저장 안 됨 점이 표시된다.

Zone ECU와 말단 ECU 추가하기​

  1. 캔버스 빈 곳을 우클릭하고 Add ECU를 클릭한다. ECU_0 노드가 생긴다.

  2. 노드를 클릭하고 NAME을 WestZone으로 바꾼다.

  3. 다시 캔버스 빈 곳을 우클릭하고 Add ECU를 클릭한다. 첫 ECU의 이름을 바꿨으므로 새 노드의 기본 이름도 ECU_0이다.

  4. 새 노드를 클릭하고 NAME을 DoorCtrl_FL로 바꾼다.

    두 번째 ECU 이름 바꾸기

    그림 2-8. ECU 속성 패널. ① 새로 만든 ECU, ② NAME 입력란. ECU 패널에는 HPC에 없는 POWER MANAGEMENT 섹션이 있다.

CAN FD 컨트롤러와 커넥터 추가하기​

컨트롤러는 ECU 안의 통신 장치이고, 커넥터는 그 컨트롤러가 버스(채널)에 닿는 접점이다. 먼저 WestZone에 만들어 본다.

  1. WestZone 노드 안의 빈 곳을 우클릭한다.

  2. Add Controller ▸ CAN을 선택한다. 노드 안에 초록 사각형(컨트롤러)이 생긴다.

    ECU 우클릭 메뉴의 Add Controller

    그림 2-9. WestZone 우클릭 메뉴와 Add Controller 하위 메뉴(Ethernet, CAN, LIN Master, LIN Slave). ① CAN.

주의. 노드 경계 위의 커넥터나 안쪽 컨트롤러 위를 우클릭하면 그 요소의 메뉴가 뜬다. 커넥터 메뉴에는 Delete만 있고, 같은 종류의 클러스터가 생긴 뒤에는 Connect to Channel... 항목이 함께 나온다. 노드 이름(머리글) 근처는 커넥터와 겹치기 쉬우므로, 항상 노드 안의 빈 곳을 우클릭한다.

  1. 초록 사각형(컨트롤러)을 클릭한다. 속성 패널 제목이 CAN CONTROLLER로 바뀐다.

  2. NAME을 WestZone_CanFd로 바꾼다.

  3. CAN CONTROLLER CONFIGURATION 섹션 머리글 오른쪽의 CAN / CAN FD 토글에서 CAN FD를 클릭한다. 아래 필드가 FD BIT TIMING CONFIGURATION, FD BIT TIMING REQUIREMENTS로 바뀐다. 이 튜토리얼에서는 비트 타이밍 값을 입력하지 않는다.

    CAN 컨트롤러를 CAN FD로 설정

    그림 2-10. CAN CONTROLLER 패널. ① NAME, ② CAN FD 토글.

  4. WestZone 안의 빈 곳을 우클릭하고 Add Connector ▸ CAN을 선택한다. 노드 경계에 커넥터(파란 사각형)가 생긴다.

  5. 커넥터를 클릭한다. 속성 패널 제목이 CAN CONNECTOR로 바뀐다. 9단계에서 컨트롤러를 고르기 전까지 CONTROLLER는 빨간색 Select controller...와 Controller is required를 보여 주고, 상태 표시줄의 검증 아이콘에는 빨간 배지 1이 붙는다.

  6. NAME을 WestZone_CanFd_Conn으로 바꾼다.

  7. CONTROLLER 목록에서 WestZone_CanFd를 고른다. 캔버스에서 컨트롤러와 커넥터 사이에 주황 선이 생기고, 빨간 표시와 배지가 사라진다. CONNECTED CHANNEL은 아직 (None)이다.

    CAN 커넥터와 컨트롤러 연결

    그림 2-11. CAN CONNECTOR 패널. ① NAME, ② CONTROLLER. 캔버스에서 커넥터 아래의 초록 [+] 배지는 다음 절에서 클러스터를 만들 때 쓴다. PARTIAL NETWORK 섹션은 3장에서 입력한다.

  8. DoorCtrl_FL에도 1~9와 같은 방법으로 컨트롤러와 커넥터를 만든다. 컨트롤러는 DoorCtrl_FL_CanFd(CAN FD), 커넥터는 DoorCtrl_FL_CAN_Conn이다.

참고. Zone ECU의 CAN 커넥터는 _CanFd_Conn, 말단 ECU의 CAN 커넥터는 _CAN_Conn으로 끝난다. 예제 파일의 이름 규칙이므로 그대로 따른다.

CAN 클러스터 WestCAN 만들기​

  1. WestZone_CanFd_Conn 아래의 초록 [+] 배지를 클릭한다. 아직 클러스터가 없으므로 메뉴에 Create CommunicationCluster [Can] 하나만 나온다.

  2. Create CommunicationCluster [Can] 항목을 클릭한다. 작은 보라 사각형(CAN 클러스터, 기본 이름 CanCluster_0)이 생기고 커넥터와 연결된다.

    커넥터의 [+] 메뉴

    그림 2-12. 커넥터 [+] 배지 메뉴. ① Create CommunicationCluster [Can].

  3. 보라 사각형을 클릭한다. 속성 패널 제목이 CAN CLUSTER로 바뀐다.

  4. NAME을 WestCAN으로 바꾼다.

  5. PROTOCOL 섹션의 BAUDRATE (ARBITRATION, KBPS) 항목에서 500을 클릭한다.

  6. PHYSICAL CHANNELS 섹션의 CHANNEL NAME을 WestCAN_Channel로 바꾼다. Connected Connectors (1) 아래에 WestZone/WestZone_CanFd_Conn이 보인다.

    WestCAN 클러스터 속성

    그림 2-13. CAN CLUSTER 패널. ① NAME, ② 500을 고른 BAUDRATE (ARBITRATION, KBPS), ③ CHANNEL NAME. ② 아래의 CAN FD BAUDRATE (DATA PHASE, KBPS)는 Classical CAN 그대로이다.

  7. DoorCtrl_FL_CAN_Conn 아래의 [+] 배지를 클릭한다.

  8. Connect to Channel... ▸ WestCAN ▸ WestCAN_Channel을 선택한다. DoorCtrl_FL 커넥터가 WestCAN에 연결된다.

    Connect to Channel 메뉴

    그림 2-14. 이미 클러스터가 있으면 [+] 메뉴에 Connect to Channel...이 함께 나온다. ① WestCAN_Channel.

참고. 예제 파일에서는 CAN 클러스터에도 CAN FD 설정(데이터 구간 2 Mbps)이 들어 있어, CAN FD BAUDRATE (DATA PHASE, KBPS) 항목에 2000이 선택되어 있다. 여기서 속도를 고르면 클러스터가 CAN FD 클러스터가 된다. 이 튜토리얼에서는 Classical CAN 그대로 두고, CAN FD를 컨트롤러의 CAN FD 토글로만 설정한다.

Ethernet 클러스터 Backbone과 VLAN 채널 만들기​

  1. HPC 안의 빈 곳을 우클릭하고 Add Controller ▸ Ethernet을 선택한다. 새 컨트롤러(초록 사각형)를 클릭하고 NAME을 HPC_Eth로 바꾼다.

  2. HPC 안의 빈 곳을 우클릭하고 Add Connector ▸ Ethernet을 선택한다. 새 커넥터(노드 경계의 사각형)를 클릭하고 NAME을 HPC_Eth_Body_Conn으로, CONTROLLER를 HPC_Eth로 설정한다.

  3. HPC_Eth_Body_Conn의 [+] 배지를 클릭하고 Create CommunicationCluster [Ethernet] 항목을 선택한다. Ethernet 클러스터가 생긴다.

  4. 새 클러스터를 클릭한다. 속성 패널 제목은 ETHERNET CLUSTER이다. NAME을 Backbone으로 바꾼다.

  5. PHYSICAL CHANNELS의 첫 채널에서 CHANNEL NAME을 VLAN_Body로, VLAN ID를 100으로 입력한다.

  6. PHYSICAL CHANNELS 머리글 오른쪽의 +(Add Channel)를 클릭해 둘째 채널을 추가한다.

  7. 둘째 채널의 CHANNEL NAME을 VLAN_Rear로, VLAN ID를 200으로 입력한다. VLAN ID 입력란에는 UNTAGGED 또는 1~4094를 넣을 수 있다.

    Backbone 클러스터의 VLAN 채널

    그림 2-15. ETHERNET CLUSTER 패널. ① Add Channel(+), ② 둘째 채널의 VLAN ID 입력 중. 첫 채널 VLAN_Body에는 HPC/HPC_Eth_Body_Conn이 연결되어 있다.

  8. WestZone 안의 빈 곳을 우클릭해 Add Controller ▸ Ethernet(WestZone_Eth)과 Add Connector ▸ Ethernet(WestZone_Eth_Conn, CONTROLLER WestZone_Eth)을 추가한다.

  9. WestZone_Eth_Conn의 [+] 배지를 클릭하고 Connect to Channel... ▸ Backbone ▸ VLAN_Body (VLAN: 100) 순서로 선택한다.

    VLAN 채널 연결 메뉴

    그림 2-16. VLAN 채널은 메뉴에 "이름 (VLAN: 번호)" 형식으로 표시된다. ① VLAN_Body (VLAN: 100).

이더넷 스위치 추가하기​

  1. HPC 안의 빈 곳을 우클릭하고 Add Ethernet Switch 항목을 클릭한다. HPC 안에 EthSwitch_0이 생긴다.

    HPC 우클릭 메뉴

    그림 2-17. HPC 우클릭 메뉴. ① Add Ethernet Switch. HPC 메뉴에는 ECU의 Extract ECU 대신 Extract Machine이 있다.

  2. 스위치 노드를 클릭한다. 속성 패널 제목은 COUPLING ELEMENT이다. 4단계에서 클러스터를 고르기 전까지 COMMUNICATION CLUSTER는 빨간색 -- Select --와 Communication Cluster is required를 보여 준다.

  3. NAME을 BackboneSwitch로 바꾼다.

  4. COMMUNICATION CLUSTER 목록에서 Backbone을 고른다. COUPLING TYPE은 기본값 SWITCH를 그대로 둔다. COUPLING PORTS는 아직 비어 있다(No coupling ports).

    스위치 속성

    그림 2-18. COUPLING ELEMENT 패널. ① NAME, ② COMMUNICATION CLUSTER. 스위치에서 Backbone 클러스터로 이어진 점선은 이 클러스터 지정을 나타낸다.

참고. 막 만든 내장 스위치는 HPC 경계를 넘어 겹쳐 그려지고, HPC 노드 크기도 자동으로 늘지 않는다. 다음 절의 Auto Layout을 실행하면 HPC 안으로 정리된다. 완성 예제(그림 2-1)에서는 포트가 많아 스위치가 HPC 바로 아래에 따로 그려지지만, 여전히 HPC에 내장된 스위치이다.

자동 배치와 저장​

  1. 캔버스 왼쪽 아래 툴바의 Auto Layout 버튼을 클릭한다. 진행 대화상자가 잠깐 나타났다 사라진다.

    Auto Layout 전

    그림 2-19. Auto Layout 전의 캔버스. ① 툴바의 Auto Layout 버튼.

  2. Ctrl+S를 눌러 저장한다. 탭 이름 옆의 저장 안 됨 점이 사라진다.

    Auto Layout 후

    그림 2-20. Auto Layout을 실행하고 저장한 캔버스. 노드가 겹치지 않게 다시 놓였고, BackboneSwitch가 HPC 안에 들어갔다. 보라 선은 WestCAN, 파랑 선은 Backbone의 VLAN_Body 연결이다.

참고. Auto Layout은 노드가 겹치지 않게 다시 배치하지만, 위에서 아래로 계층 순서를 맞춰 주지는 않는다. 그림 2-20처럼 말단 ECU DoorCtrl_FL이 Zone ECU WestZone보다 위에 놓일 수 있다. 필요하면 노드를 끌어서 옮긴다.

참고. 이 시점에는 화면 아래 상태 표시줄의 검증 아이콘(V)에 배지가 없다(그림 2-19, 2-20). 모델에 오류가 있으면 이 아이콘에 빨간 숫자 배지가 나타난다. CONTROLLER가 아직 비어 있는 커넥터가 그 예이다. 검증 결과는 System 에디터와 검증에서 다룬다.

스위치 포트 만들고 연결하기​

스위치와 ECU를 물리적으로 잇는 요소는 커플링 포트(Coupling Port)이다. Ethernet 컨트롤러에 포트를 만들고, 스위치에도 포트를 만든 다음, 두 포트를 Connect to Port... 메뉴로 잇는다.

주의. Connect to Port... 후보에는 같은 Ethernet 클러스터에 속하면서 아직 연결되지 않은 포트만 나온다. 컨트롤러 포트의 클러스터는 그 컨트롤러를 참조하는 커넥터가 연결된 채널로 정해지므로, 앞 절에서 커넥터를 채널에 연결해 둔 다음에 포트를 만들어야 한다. 이미 연결된 포트를 우클릭하면 Connect to Port... 없이 Delete 항목만 나온다.

  1. HPC 안의 HPC_Eth 컨트롤러(초록 사각형)를 우클릭하고 Add Coupling Port 항목을 클릭한다. 컨트롤러 우클릭 메뉴에는 이 항목과 Delete 두 가지만 있다.

    컨트롤러 우클릭 메뉴의 Add Coupling Port

    그림 2-21. Ethernet 컨트롤러 우클릭 메뉴. ① Add Coupling Port.

  2. 노드 경계에 생긴 포트를 클릭하고 NAME을 HPC_Eth_Port로 바꾼다. 기본 이름은 <컨트롤러 이름>_Port_<번호>이다.

  3. WestZone의 WestZone_Eth 컨트롤러에도 같은 방법으로 포트를 만들고 NAME을 WestZone_Eth_Port로 바꾼다.

참고. Ethernet 컨트롤러 하나에는 커플링 포트를 1개만 만들 수 있다. 이미 포트가 있으면 Add Coupling Port 항목이 비활성화된다.

  1. HPC 안의 BackboneSwitch 노드를 우클릭하고 Add CouplingPort 항목을 클릭한다. 스위치 쪽 라벨은 컨트롤러 쪽과 달리 띄어쓰기 없이 Add CouplingPort이다.

    스위치 우클릭 메뉴의 Add CouplingPort

    그림 2-22. HPC 안 BackboneSwitch의 우클릭 메뉴. ① Add CouplingPort.

  2. 새로 생긴 포트를 클릭한다. 속성 패널 제목이 COUPLING PORT로 바뀐다.

  3. NAME을 Port_0으로 바꾸고, PORT SETTINGS 섹션에서 PORT ROLE을 HOST-PORT로, PHYSICAL LAYER TYPE을 1000BASE-T1로, NEGOTIATION을 AUTO로 고른다. NEGOTIATION이 없는 스위치 포트는 검증에서 constr_5251 오류로 보고된다.

    커플링 포트 설정

    그림 2-23. COUPLING PORT 패널. ① NAME, ② PORT ROLE(HOST-PORT, STANDARD-PORT, UP-LINK-PORT 중 선택), ③ PHYSICAL LAYER TYPE(1000BASE-T1 선택). ③ 아래의 NEGOTIATION(AUTO, MASTER, SLAVE)은 아직 고르지 않은 상태이다.

참고. DEFAULT VLAN (PVID) 목록은 스위치가 가진 포트에만 나온다. 컨트롤러가 가진 포트는 통신의 종단이라 PVID와 VLAN 멤버십 항목이 표시되지 않는다. VLAN 멤버십은 이 패널이 아니라 스위치 워크벤치에서 설정한다.

  1. BackboneSwitch의 다른 지점을 우클릭하고 Add CouplingPort 항목으로 포트를 하나 더 만든다. NAME을 Port_1로 바꾼다. 새 포트에는 PORT ROLE이 선택되어 있지 않으므로 STANDARD-PORT를 클릭한다. PHYSICAL LAYER TYPE은 1000BASE-T1로, NEGOTIATION은 AUTO로 고른다.

주의. 새 포트는 우클릭한 지점에서 가장 가까운 노드 경계에 붙는다. 같은 지점을 두 번 우클릭하면 포트 두 개가 완전히 겹쳐 앞에 만든 포트를 다시 클릭할 수 없다. 두 번째 포트는 경계의 다른 위치를 우클릭해 만든다.

  1. Port_0을 우클릭하고 Connect to Port... ▸ HPC_Eth / HPC_Eth_Port를 선택한다.

  2. Port_1을 우클릭하고 Connect to Port... ▸ WestZone_Eth / WestZone_Eth_Port를 선택한다. 연결된 포트 사이에 파란 점선이 그려진다.

    Connect to Port 하위 메뉴

    그림 2-24. 스위치 포트 우클릭 메뉴의 Connect to Port... 하위 메뉴. ① WestZone_Eth / WestZone_Eth_Port. 후보는 노드 이름이 아니라 "포트를 가진 요소 이름 / 포트 이름" 형식으로 표시된다.

  3. Ctrl+S를 눌러 저장한다.

나머지 노드와 채널 추가하기​

앞에서 만든 방법을 그대로 반복해 나머지 요소를 추가한다. 아래 표의 이름과 값을 그대로 쓴다.

  • 노드: 캔버스 빈 곳 우클릭 → Add ECU → 노드 클릭 → NAME 입력
  • 컨트롤러와 커넥터: 노드 안의 빈 곳 우클릭 → Add Controller ▸ CAN / Ethernet, Add Connector ▸ CAN / Ethernet → 각각 클릭해 NAME 입력, 커넥터의 CONTROLLER 지정. CAN 컨트롤러는 모두 CAN FD로 켠다. HPC_Eth_Rear_Conn은 HPC 안에 커넥터를 하나 더 추가하고 CONTROLLER를 같은 HPC_Eth로 지정한다.
  • 클러스터: 그 클러스터에 처음 연결하는 커넥터의 [+] → Create CommunicationCluster [Can] → 클러스터 NAME 입력, BAUDRATE (ARBITRATION, KBPS) 항목에서 500 클릭, CHANNEL NAME 입력
  • 채널 연결: 커넥터의 [+] → Connect to Channel... ▸ 클러스터 ▸ 채널

노드 표​

노드종류컨트롤러커넥터연결할 채널
HPCHPCHPC_Eth (Ethernet)HPC_Eth_Body_Conn, HPC_Eth_Rear_ConnVLAN_Body, VLAN_Rear
WestZoneECU (Zone)WestZone_Eth (Ethernet), WestZone_CanFd (CAN FD)WestZone_Eth_Conn, WestZone_CanFd_ConnVLAN_Body, WestCAN_Channel
SouthZoneECU (Zone)SouthZone_Eth (Ethernet), SouthZone_CanFd (CAN FD)SouthZone_Eth_Conn, SouthZone_CanFd_ConnVLAN_Rear, RearCAN_Channel
EastZoneECU (Zone)EastZone_Eth (Ethernet), EastZone_CanFd (CAN FD)EastZone_Eth_Conn, EastZone_CanFd_ConnVLAN_Body, EastCAN_Channel
DoorCtrl_FLECUDoorCtrl_FL_CanFd (CAN FD)DoorCtrl_FL_CAN_ConnWestCAN_Channel
SeatCtrl_FLECUSeatCtrl_FL_CanFd (CAN FD)SeatCtrl_FL_CAN_ConnWestCAN_Channel
MirrorAct_FLECUMirrorAct_FL_CanFd (CAN FD)MirrorAct_FL_CAN_ConnWestCAN_Channel
WindowSw_FLECUWindowSw_FL_CanFd (CAN FD)WindowSw_FL_CAN_ConnWestCAN_Channel
ParkSensor_RRECUParkSensor_RR_CanFd (CAN FD)ParkSensor_RR_CAN_ConnRearCAN_Channel
TrailerModuleECUTrailerModule_CanFd (CAN FD)TrailerModule_CAN_ConnRearCAN_Channel
TailLamp_RRECUTailLamp_RR_CanFd (CAN FD)TailLamp_RR_CAN_ConnRearCAN_Channel
DoorCtrl_FRECUDoorCtrl_FR_CanFd (CAN FD)DoorCtrl_FR_CAN_ConnEastCAN_Channel
SeatCtrl_FRECUSeatCtrl_FR_CanFd (CAN FD)SeatCtrl_FR_CAN_ConnEastCAN_Channel
MirrorAct_FRECUMirrorAct_FR_CanFd (CAN FD)MirrorAct_FR_CAN_ConnEastCAN_Channel

클러스터 표​

클러스터종류BAUDRATE (ARBITRATION, KBPS)채널 (VLAN ID)연결되는 커넥터
BackboneEthernet—VLAN_Body (100)HPC_Eth_Body_Conn, WestZone_Eth_Conn, EastZone_Eth_Conn
VLAN_Rear (200)HPC_Eth_Rear_Conn, SouthZone_Eth_Conn
WestCANCAN500WestCAN_ChannelWestZone_CanFd_Conn, DoorCtrl_FL_CAN_Conn, SeatCtrl_FL_CAN_Conn, MirrorAct_FL_CAN_Conn, WindowSw_FL_CAN_Conn
RearCANCAN500RearCAN_ChannelSouthZone_CanFd_Conn, ParkSensor_RR_CAN_Conn, TrailerModule_CAN_Conn, TailLamp_RR_CAN_Conn
EastCANCAN500EastCAN_ChannelEastZone_CanFd_Conn, DoorCtrl_FR_CAN_Conn, SeatCtrl_FR_CAN_Conn, MirrorAct_FR_CAN_Conn

스위치 포트 표​

완성 예제의 BackboneSwitch에는 포트 4개가 있고, 각 포트가 HPC와 Zone ECU의 Ethernet 컨트롤러 포트(<노드>_Eth_Port)와 물리적으로 연결되어 있다. 모든 포트의 PHYSICAL LAYER TYPE은 1000BASE-T1, NEGOTIATION은 AUTO이다.

포트역할연결 대상VLAN
Port_0HOSTHPC/HPC_Eth_PortVLAN_Body, VLAN_Rear
Port_1STDWestZone/WestZone_Eth_PortVLAN_Body
Port_2STDSouthZone/SouthZone_Eth_PortVLAN_Rear
Port_3STDEastZone/EastZone_Eth_PortVLAN_Body

PNC 정의와 커넥터 PNC 속성에서 스위치 포트에 PNC를 연결하므로, 포트도 표와 같이 만들어 둔다. 절차는 다음과 같다. 자세한 설명은 IVC Editor의 6.4.3절, 6.4.4절, 6.5.4절에 있다.

  1. 스위치 포트 만들고 연결하기와 같은 방법으로 SouthZone_Eth, EastZone_Eth 컨트롤러에도 포트를 만들고 NAME을 SouthZone_Eth_Port, EastZone_Eth_Port로 바꾼다.
  2. BackboneSwitch에 포트 두 개를 더 만들고 NAME을 Port_2, Port_3으로 바꾼다. 포트마다 경계의 다른 지점을 우클릭한다. PORT ROLE은 Port_0만 HOST-PORT이고 나머지는 STANDARD-PORT로 고른다. 두 포트 모두 PHYSICAL LAYER TYPE은 1000BASE-T1로, NEGOTIATION은 AUTO로 고른다.
  3. 스위치 포트를 우클릭하고 Connect to Port... 하위 메뉴에서 표의 연결 대상 포트를 고른다. 후보는 SouthZone_Eth / SouthZone_Eth_Port처럼 "컨트롤러 이름 / 포트 이름" 형식으로 표시된다.
  4. BackboneSwitch를 더블클릭해 워크벤치를 열고, 포트마다 DEFAULT VLAN (PVID) 값과 VLAN MEMBERSHIP 값을 표의 VLAN으로 설정한다. 기본 VLAN은 Port_2만 VLAN_Rear이고 나머지는 VLAN_Body이다.

모든 요소를 추가했으면 Auto Layout을 실행하고 Ctrl+S로 저장한다.

완성 예제 살펴보기​

완성된 토폴로지는 그림 2-25와 같다. 그림은 완성 예제 프로젝트를 연 화면이므로, 직접 만든 프로젝트와 노드 배치나 루트 이름(PncVehicle)이 다를 수 있다. 노드, 클러스터, 연결 관계가 같으면 된다.

완성 토폴로지 전체 화면

그림 2-25. 완성 예제를 연 System 편집기(툴바의 Fit to View로 전체 보기, 속성 패널 접음). 가운데의 작은 파란 사각형이 Backbone 클러스터, 각 Zone 아래의 보라 사각형이 WestCAN, RearCAN, EastCAN 클러스터이며, 사각형마다 아래에 이름이 표시된다. 실선은 커넥터와 채널의 연결, 파란 점선은 스위치 포트와 Ethernet 컨트롤러 포트의 물리 연결이다.

클러스터 노드는 작은 사각형으로 그려지고, 사각형 아래에 이름이 표시된다. 사각형에 마우스를 올리면 종류와, CAN 클러스터라면 전송 속도도 함께 보인다. Ctrl을 누른 채 마우스 휠을 돌리면 포인터 위치를 중심으로 확대된다.

클러스터 이름 확인

그림 2-26. WestZone 아래의 보라 사각형(①)에 마우스를 올리면 그 위에 "WestCAN (Can, 500 kbps)"처럼 클러스터 이름, 종류, 전송 속도가 표시된다. 사각형 아래에는 이름 WestCAN이 늘 보인다. 아래의 DoorCtrl_FL, SeatCtrl_FL, MirrorAct_FL, WindowSw_FL이 이 클러스터에 연결되어 있다.

참고. 완성 예제에서는 커넥터 아이콘이 노드 이름 일부를 가려 WestZone, DoorCtrl_FL 같은 이름이 잘려 보인다. 이름은 노드를 클릭해 속성 패널의 NAME에서 확인한다.

BackboneSwitch 노드를 더블클릭하면 Ethernet Switch Configuration [BackboneSwitch] 워크벤치가 열린다. 포트를 모두 만들었다면 가운데에 포트 4개와 각 포트의 연결 대상이, 오른쪽 SWITCH 패널에 스위치 설정과 PORTS (4) 요약 표가 보인다. 확인한 뒤 Close로 닫는다.

BackboneSwitch 워크벤치

그림 2-27. BackboneSwitch 워크벤치. SWITCH 패널에 NAME BackboneSwitch, ECU HPC, ETHERNET CLUSTER Backbone, COUPLING TYPE SWITCH, MAC ADDRESS LEARNING INDEPENDENT VLAN이 보인다. PORTS (4) 표에서 Port_0만 ROLE이 HOST이고, Port_2만 VLAN 200이다. 오른쪽 포트의 연결 대상 라벨과 PEER 열은 길이 때문에 잘려 보인다.

왜 백본을 VLAN 둘로 나누는가​

설계 근거. AUTOSAR의 PNC(Partial Network Cluster) 조정 규칙은 두 가지를 함께 요구한다.

  • constr_5093: 한 물리 채널에 PNC 게이트웨이 유형이 active인 커넥터는 최대 1개이다.
  • constr_3781: PNC마다 최상위 PNC 코디네이터가 있어야 한다. 즉, 관련 채널 2개 이상에 연결되고 그 연결이 모두 active인 ECU가 필요하다.

HPC는 AP 머신이라 PNC 게이트웨이가 될 수 없다. 백본이 채널 하나라면 세 Zone 중 한 곳만 active가 될 수 있어, 나머지 Zone의 PNC는 코디네이터를 잃는다. 백본을 Body 도메인(VLAN_Body: West, East)과 Rear 도메인(VLAN_Rear: South)으로 나누면 VLAN마다 active 게이트웨이를 하나씩 둘 수 있다. WestZone은 PNC_Comfort의, SouthZone은 PNC_ParkAssist와 PNC_Trailer의 최상위 코디네이터가 된다. EastZone은 VLAN_Body 쪽 게이트웨이가 passive인 하위 코디네이터가 된다. 게이트웨이 설정은 PNC 정의와 커넥터 PNC 속성에서 입력한다.

확인하기​

  • 창 제목이 PAIO [PNC]이고, EDITOR 뷰의 DESIGN 아래에서 System을 클릭하면 편집기 탭 PNC:System이 열린다.
  • 캔버스에 HPC, Zone ECU 3개(WestZone, SouthZone, EastZone), 말단 ECU 10개가 있다.
  • 모든 CAN 컨트롤러의 CAN CONTROLLER CONFIGURATION에서 CAN FD가 선택되어 있다.
  • WestCAN, RearCAN, EastCAN 클러스터의 BAUDRATE (ARBITRATION, KBPS) 항목에서 500이 선택되어 있고, 각 채널의 Connected Connectors가 클러스터 표와 같다.
  • Backbone 클러스터에 채널 VLAN_Body(VLAN ID 100)와 VLAN_Rear(VLAN ID 200)가 있다.
  • HPC와 Zone ECU 3개의 Ethernet 컨트롤러마다 커플링 포트 <노드>_Eth_Port가 있고, BackboneSwitch의 Port_0~Port_3과 각각 연결되어 파란 점선이 그려진다.
  • BackboneSwitch의 모든 포트에서 NEGOTIATION이 AUTO이다.
  • BackboneSwitch 워크벤치의 SWITCH 패널에서 ECU가 HPC, ETHERNET CLUSTER가 Backbone이다.
  • BackboneSwitch 워크벤치의 PORTS (4) 표가 스위치 포트 표와 같다(Port_0만 HOST, Port_2만 VLAN 200).
  • Ctrl+S로 저장해 탭 이름 옆의 저장 안 됨 점이 없다.

다음 단계​

PNC 정의와 커넥터 PNC 속성에서 PNC 3개를 정의하고, 이 장에서 만든 커넥터에 게이트웨이, 웨이크업, 필터 마스크 같은 PNC 속성을 입력한다.