부록
이 장에서 할 일
이 부록은 따라 하는 장이 아니라 찾아보는 자료이다. ARXML 익스포트까지 마친 뒤 내 설계를 점검하거나, 어느 값을 어느 장에서 넣었는지 다시 찾을 때 쓴다.
- 완성된 설계 점검표 — 7장까지 마친 설계에서 화면에 보여야 하는 것
- 값 표 모음 — 1~6장에서 입력한 값 전부
- 프로젝트 파일 구성 —
design/아래의 파일과 그 파일을 쓰는 장 - 참조 설계와 다른 곳 — 내 익스포트가 참조 설계
System_Design.arxml과 다른 곳과 이유 - 자주 겪는 문제 — 검증 메시지와 증상, 고치는 장
시작하기 전에
- 이 부록의 값은 1~7장의 본문과 같다. 값이 다르게 보이면 해당 장의 본문을 따른다.
- 완성된 설계는 검증과 ARXML 익스포트를 마친 상태이다. VALIDATION 패널에는
No validation issues.가 보인다.
완성된 설계 점검표
노드와 시스템
- System 편집기(탭
TopologyDesign:System)에 노드ECU,ZONE,SLAVE_ECU,HPC가 있다. 앞의 셋은 패널 제목이 ECU,HPC는 HPC 이다. -
ECU,ZONE,SLAVE_ECU를 각각 선택하면 POWER MANAGEMENT 의 SLEEP MODE SUPPORTED 와 WAKE-UP OVER BUS 가 둘 다 켜져 있다. -
HPC를 선택하면 POWER MANAGEMENT 섹션이 없다. - SYSTEM 패널의 VERSION 이
1.0.0;POPCORNSAR이고, ECU MAPPING 에ECU,ZONE,SLAVE_ECU,HPC네 행이 있다.
CAN 버스
-
ECU에 CAN 컨트롤러CanController(CAN 켜짐, 비트 타이밍 네 칸0)와 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 탭 이름 앞에 빈 동그라미가 있다.
이더넷 버스
-
ZONE에 이더넷 컨트롤러EthernetCommController(MAC ADDRESS11:22:ee:44:55:66)와 이더넷 커넥터EthernetConnector(CONTROLLER =EthernetCommController, UNICAST IPV4 ADDRESS192.168.0.19, FIXED)가 있다. -
HPC에 이더넷 컨트롤러EthernetController(MAC ADDRESS00:11:22:33:44:55)와 이더넷 커넥터EthernetConnector(CONTROLLER =EthernetController, UNICAST IPV4 ADDRESS192.168.0.11, FIXED, MULTICAST IPV4 ADDRESS224.0.0.1)가 있다. - 두 이더넷 컨트롤러의 MAC LAYER TYPE 은 세 값이 모두 꺼져 있다.
- 클러스터
EthernetCluster의 CHANNEL NAME 이PhysicalChannel, VLAN ID 가13이고, Connected Connectors (2) 가ZONE/EthernetConnector,HPC/EthernetConnector순서이다. - Communication Cluster Configuration [EthernetCluster] 의 NM CLUSTER, TIME DOMAIN 탭 이름 앞에 빈 동그라미가 있다.
LIN 버스
-
ECU에 LIN 마스터 컨트롤러LinController_Master(PROTOCOL VERSIONLIN 2.0, TIME BASE1ms, TIME BASE JITTER1ms)와 LIN 커넥터LinConnector_Master(CONTROLLER =LinController_Master)가 있다. -
SLAVE_ECU에 LIN 슬레이브 컨트롤러LinSlaveController(PROTOCOL VERSIONLIN 2.0)와 LIN 커넥터LinConnector(CONTROLLER =LinSlaveController)가 있다. - 클러스터
LinCluster의 CHANNEL NAME 이PhysicalChannel, IDLE TIMEOUT 이 빈 칸이고, Connected Connectors (2) 가SLAVE_ECU/LinConnector,ECU/LinConnector_Master순서이다.
검증과 익스포트
- VALIDATION 패널에
No validation issues.가 보이고, 푸터의 V 아이콘에는 배지가 없다. -
export폴더에TopologyDesign_COM.arxml,TopologyDesign_DataType.arxml,TopologyDesign_SWC.arxml,TopologyDesign_System.arxml네 개가 있고, XML 편집기로 연TopologyDesign_System.arxml과TopologyDesign_COM.arxml의 상태 표시줄이Schema: R25-11과✓ No problems이다. -
TopologyDesign_COM.arxml의HPC커넥터가/System/MachineDesign/HPC/EthernetController와HPC_EthernetConnector_Endpoint를 가리킨다. - 탭
TopologyDesign:System에 수정됨 표시가 없다.

그림 8-1. 완성된 설계의 System 편집기 캔버스(LIN 버스의 그림 5-14). 위에 ECU 와 HPC, 아래에 SLAVE_ECU 와 ZONE 이 있고, 가운데 줄의 클러스터 사각형은 왼쪽부터 LinCluster, CanCluster, EthernetCluster 이다. ① Auto Layout, ② Fit to View, ③ LinCluster, ④ CHANNEL NAME PhysicalChannel, 빈 칸인 IDLE TIMEOUT 과 Connected Connectors (2). 노드와 클러스터의 위치는 Auto Layout 결과에 따라 다를 수 있으며 설계 값이 아니다. 그림은 Ctrl+S 를 누르기 전 상태라서 탭에 아직 수정됨 표시가 있다.
값 표 모음
프로젝트와 시스템 (1장, 2장)
| 항목 | 값 | 장 |
|---|---|---|
| 프로젝트 이름 | TopologyDesign | 1 |
| 시스템 이름 | System (새 프로젝트의 기본값, 바꾸지 않음) | 1 |
| SYSTEM 패널 VERSION | 1.0.0;POPCORNSAR (기본값 1.0.0) | 2 |
| SYSTEM 패널 ECU MAPPING | ECU, ZONE, SLAVE_ECU, HPC (모두 No composition mapped, 확인만 함) | 2 |
노드와 전원 관리 (1장, 2장)
| 추가 순서 | 오른쪽 클릭 위치 | 메뉴 항목 | 기본 이름 | NAME | 패널 제목 | SLEEP MODE SUPPORTED / WAKE-UP OVER BUS |
|---|---|---|---|---|---|---|
| 1 | 캔버스 왼쪽 위 | Add ECU | ECU_0 | ECU | ECU | 켬 / 켬 |
| 2 | 캔버스 오른쪽 위 | Add ECU | ECU_0 | ZONE | ECU | 켬 / 켬 |
| 3 | 캔버스 왼쪽 아래 | Add ECU | ECU_0 | SLAVE_ECU | ECU | 켬 / 켬 |
| 4 | 캔버스 오른쪽 아래 | Add HPC | HPC_0 | HPC | HPC | 섹션 없음 |
추가 순서 ECU → ZONE → SLAVE_ECU → HPC 를 지킨다. 노드는 오른쪽 클릭한 자리에 생기고, Auto Layout 은 CAN 버스부터 쓴다.
| 참조 설계의 파티션 | EXEC-IN-USER-MODE | 이 튜토리얼 |
|---|---|---|
ECU_Partition0 (ECU) | true | 만들지 않는다. System 편집기에 입력란이 없다 |
ECU_Partition1 (ECU) | false | 만들지 않는다. System 편집기에 입력란이 없다 |
컨트롤러 (3장~5장)
| 노드 | 메뉴 | 패널 제목 | 기본 이름 | NAME | 그 밖의 값 | 장 |
|---|---|---|---|---|---|---|
ECU | Add Controller › CAN | CAN CONTROLLER | ECU_Can_Controller_0 | CanController | CAN 켜짐, SYNC JUMP WIDTH, PROPAGATION SEGMENT, TIME SEGMENT 1, TIME SEGMENT 2 모두 0 | 3 |
ZONE | Add Controller › CAN | CAN CONTROLLER | ZONE_Can_Controller_0 | CanCommController | CAN 켜짐, 비트 타이밍 네 칸은 비워 둠 | 3 |
ZONE | Add Controller › Ethernet | ETHERNET CONTROLLER | ZONE_Ethernet_Controller_0 | EthernetCommController | MAC ADDRESS 11:22:EE:44:55:66 입력(11:22:ee:44:55:66 으로 저장), MAC LAYER TYPE 누르지 않음 | 4 |
HPC | Add Controller › Ethernet | ETHERNET CONTROLLER | HPC_Ethernet_Controller_0 | EthernetController | MAC ADDRESS 00:11:22:33:44:55, MAC LAYER TYPE 누르지 않음 | 4 |
ECU | Add Controller › LIN Master | LIN MASTER | ECU_LinMaster_Controller_0 | LinController_Master | PROTOCOL VERSION LIN 2.0, TIME BASE 1 ms, TIME BASE JITTER 1 ms, WAKE-UP BY CONTROLLER 누르지 않음 | 5 |
SLAVE_ECU | Add Controller › LIN Slave | LIN SLAVE | SLAVE_ECU_LinSlave_Controller_0 | LinSlaveController | PROTOCOL VERSION LIN 2.0. 그 아래 칸은 비워 둠 | 5 |
TIME BASE 와 TIME BASE JITTER 는 단위 칸을 먼저 ms 로 바꾼 뒤 1 을 입력한다. 저장값은 초 단위 0.001 이다.
커넥터 (3장~5장)
| 노드 | 메뉴 | 기본 이름 | NAME | CONTROLLER | 클러스터 / 채널 | 장 |
|---|---|---|---|---|---|---|
ECU | Add Connector › CAN | ECU_Can_Connector_0 | CanConnector | CanController | CanCluster / PhysicalChannel | 3 |
ZONE | Add Connector › CAN | ZONE_Can_Connector_0 | CanConnector | CanCommController | CanCluster / PhysicalChannel | 3 |
ZONE | Add Connector › Ethernet | ZONE_Ethernet_Connector_0 | EthernetConnector | EthernetCommController | EthernetCluster / PhysicalChannel | 4 |
HPC | Add Connector › Ethernet | HPC_Ethernet_Connector_0 | EthernetConnector | EthernetController | EthernetCluster / PhysicalChannel | 4 |
ECU | Add Connector › LIN | ECU_Lin_Connector_0 | LinConnector_Master | LinController_Master | LinCluster / PhysicalChannel | 5 |
SLAVE_ECU | Add Connector › LIN | SLAVE_ECU_Lin_Connector_0 | LinConnector | LinSlaveController | LinCluster / PhysicalChannel | 5 |
연결한 뒤 이더넷 커넥터의 CONNECTED CHANNEL 은 EthernetCluster / PhysicalChannel (VLAN: 13), LIN 커넥터는 LinCluster / PhysicalChannel 이다.
클러스터와 채널 (3장~5장)
| 클러스터 | 만든 곳 | 기본 이름 | 패널 제목 | CHANNEL NAME | 채널 값 | Connected Connectors 순서 | 장 |
|---|---|---|---|---|---|---|---|
CanCluster | ZONE 의 CanConnector › + › Create CommunicationCluster [Can] | CanCluster_0 | CAN CLUSTER | PhysicalChannel (기본값) | — | ZONE/CanConnector, ECU/CanConnector | 3 |
EthernetCluster | ZONE 의 EthernetConnector › + › Create CommunicationCluster [Ethernet] | EthernetCluster_0 | ETHERNET CLUSTER | PhysicalChannel (기본값) | VLAN ID 13 | ZONE/EthernetConnector, HPC/EthernetConnector | 4 |
LinCluster | SLAVE_ECU 의 LinConnector › + › Create CommunicationCluster [Lin] | LinCluster_0 | LIN CLUSTER | PhysicalChannel (기본값) | IDLE TIMEOUT 빈 칸(10 ms 는 거부됨) | SLAVE_ECU/LinConnector, ECU/LinConnector_Master | 5 |
두 번째 커넥터는 + › Connect to Channel... › 클러스터 이름 › PhysicalChannel 로 연결한다. 이더넷 채널은 메뉴에 PhysicalChannel (VLAN: 13) 으로 보인다. 보오레이트는 입력하지 않는다. CAN CLUSTER 패널의 BAUDRATE (ARBITRATION, KBPS) 와 LIN CLUSTER 패널의 BAUDRATE (BPS) 는 버튼이 하나도 켜져 있지 않지만, PAIO 가 CanCluster 에 500000, LinCluster 에 19200 을 저장한다.
엔드포인트와 VLAN (4장)
| 참조 설계의 요소 | 값 | 넣는 곳 | 익스포트 이름 |
|---|---|---|---|
ZONE_Endpoint | 192.168.0.19 (FIXED) | ZONE 커넥터의 UNICAST IPV4 ADDRESS, ADDRESS SOURCE 의 FIXED | ZONE_EthernetConnector_Endpoint |
HPC_Endpoint | 192.168.0.11 (FIXED) | HPC 커넥터의 UNICAST IPV4 ADDRESS, ADDRESS SOURCE 의 FIXED | HPC_EthernetConnector_Endpoint |
SOMEIP_SD_Multicast | 224.0.0.1 | HPC 커넥터의 MULTICAST IPV4 ADDRESS. MULTICAST PORT 는 비워 둠 | HPC_EthernetConnector_Multicast |
Vlan_13 | VLAN-IDENTIFIER 13 | 채널의 VLAN ID | VLAN_13 |
NM 클러스터와 TP 설정 (3장~5장)
NM(네트워크 관리), TP(전송 프로토콜), 타임 도메인은 클러스터를 더블클릭하면 열리는 Communication Cluster Configuration 창의 탭에서 Enable 로 클러스터마다 켠다. 새 클러스터에서는 모두 꺼져 있다. 참조 설계에는 NM 도 TP 도 없으므로 이 튜토리얼은 모두 꺼 둔 채로 두고, 설계에는 NM 클러스터도 TP 설정도 없다.
| 클러스터 | 창의 탭 | 꺼 둔 탭 | 장 |
|---|---|---|---|
CanCluster | CLUSTER, NM CLUSTER, TRANSPORT PROTOCOL, TIME DOMAIN | NM CLUSTER, TRANSPORT PROTOCOL, TIME DOMAIN (이름 앞에 빈 동그라미) | 3 |
EthernetCluster | CLUSTER, NM CLUSTER, TIME DOMAIN | NM CLUSTER, TIME DOMAIN (이름 앞에 빈 동그라미) | 4 |
LinCluster | CLUSTER, TRANSPORT PROTOCOL | TRANSPORT PROTOCOL. 5장에서는 창을 열지 않는다 | 5 |
LIN 에는 NM 이 적용되지 않으므로 LIN 클러스터에는 NM CLUSTER 탭이 없다.
검증 장의 결함 (6장)
검증은 아래 결함 세 개가 들어 있는 설계에서 시작해 원래 값으로 되돌린다. 고친 설계는 LIN 버스를 마친 설계와 같다.
| 위치 | 결함 값 | 고친 값 | 검증 오류 |
|---|---|---|---|
HPC 의 EthernetConnector › UNICAST IPV4 ADDRESS | 224.0.0.1 | 192.168.0.11 | constr_3288 |
SLAVE_ECU 의 LinConnector › CONTROLLER | 빈 값(Select controller...) | LinSlaveController | constr_5398 |
SLAVE_ECU 의 LinSlaveController › PROTOCOL VERSION | 빈 값(켜진 버튼 없음) | LIN 2.0 | constr_5449 |
프로젝트 파일 구성
7장까지 마친 프로젝트의 파일은 다음과 같다. 오른쪽은 그 파일을 만들거나 고치는 장이다.
TopologyDesign/
├── TopologyDesign.io.prj
├── design/
│ ├── IVC.io.model 1장~6장
│ ├── SYSTEM.io.model 1장, 2장
│ └── VFB.io.model 1장
└── export/
├── TopologyDesign_COM.arxml 7장
├── TopologyDesign_DataType.arxml 7장
├── TopologyDesign_SWC.arxml 7장
└── TopologyDesign_System.arxml 7장
- 노드, 컨트롤러, 커넥터, 클러스터는 모두 System 편집기가 편집하는 모델
IVC.io.model하나에 저장된다. 이 설계에는 NM, TP 설정이 없다. 노드 위치와 캔버스 배율 같은 보기 상태도 이 파일에 함께 저장되며, ARXML 로 내보내지 않는다. SYSTEM.io.model에는 VERSION 같은 시스템System의 정보가 들어간다. ECU 속성에서 VERSION 을 입력하면 SYSTEM 패널이 키를 누를 때마다 이 파일에 바로 쓴다. ECU MAPPING 은 캔버스의 노드를 보여 줄 뿐 이 파일에 저장되지 않는다.VFB.io.model은 새 프로젝트가 만드는 파일이며, 이 튜토리얼은 고치지 않는다.- 익스포트는
design/의 파일을 바꾸지 않고export/에만 쓴다. - 프로젝트 폴더에는 이 밖에
doc,code,workflow,import폴더가 있다. 이 튜토리얼은 쓰지 않는다.
참조 설계와 다른 곳
내 익스포트는 참조 설계 파일 System_Design.arxml 과 설계 내용이 거의 같다. 노드 네 개와 컨트롤러, 커넥터, 슬립과 버스 웨이크업 설정, 클러스터 세 개와 채널, 엔드포인트 세 개의 주소, VLAN ID, 시스템 버전이 모두 들어 있다. 요소째 빠지는 것은 파티션 두 개뿐이다.
| 참조 설계 | 내 익스포트 | |
|---|---|---|
| 파일 | 1 | 4 |
| 이름이 있는 요소(패키지 제외) | 29 | 79 |
| 경로가 같은 요소 | 1 | 1 |
| 다른 패키지로 옮겨진 요소 | 22 | 22 |
| 같은 자리에서 이름이 바뀐 요소 | 4 | 4 |
| 참조 설계에만 있는 요소 | 2 | — |
| 내 익스포트에만 있는 요소 | — | 52 |
짝이 있는 요소 27개 가운데 14개는 값이나 참조가 다르고, 13개는 값과 참조가 같다. 요소 하나하나의 줄 번호와 이유는 ARXML 익스포트의 "내 익스포트와 참조 설계의 차이" 절에 있다.
튜토리얼이 일부러 다르게 한 곳
| 차이 | 이유 | 장 |
|---|---|---|
HPC 의 EthernetConnector 에 COMM-CONTROLLER-REF(/System/MachineDesign/HPC/EthernetController)가 더 있고, 유니캐스트 엔드포인트가 ZONE_Endpoint 대신 HPC_EthernetConnector_Endpoint(192.168.0.11)임 | 참조 설계의 이 커넥터는 컨트롤러가 없고 ZONE 의 주소를 가리킨다. 그대로 따르면 두 커넥터가 같은 주소 192.168.0.19 를 갖고, HPC_Endpoint 는 어느 커넥터도 쓰지 않는다 | 4, 7 |
두 이더넷 컨트롤러에 MAC-LAYER-TYPE X-MII 가 없음 | MAC LAYER TYPE 의 XMII 를 누르면 스키마에 없는 값 XMII 가 익스포트되고, XML 편집기의 스키마 검사가 이것을 오류로 알린다 | 4 |
PAIO 의 이름 규칙
| 차이 | 내용 |
|---|---|
| 노드 패키지 | /System/VehicleTopology/Ecu/<노드> 가 /System/EcuInstance/<노드> 로 바뀐다. HPC 노드는 MACHINE-DESIGN 으로 /System/MachineDesign/HPC 에 놓인다 |
| 클러스터 패키지 | /System/VehicleTopology/Cluster/… 가 /System/CommunicationCluster/Can/…, /System/CommunicationCluster/Ethernet/…, /System/CommunicationCluster/Lin/… 로 바뀐다 |
| 시스템 종류 | SYSTEM 의 CATEGORY SYSTEM_DESCRIPTION 이 SYSTEM_DESIGN_DESCRIPTION 으로 바뀐다 |
| 엔드포인트 이름 | ZONE_Endpoint, HPC_Endpoint, SOMEIP_SD_Multicast 가 ZONE_EthernetConnector_Endpoint, HPC_EthernetConnector_Endpoint, HPC_EthernetConnector_Multicast 로 바뀐다 |
| VLAN 이름 | Vlan_13 이 VLAN_13 으로 바뀐다. VLAN-IDENTIFIER 13 은 같다 |
| MAC 주소 표기 | 11:22:EE:44:55:66 이 소문자 11:22:ee:44:55:66 으로 나간다. 같은 주소이다 |
| 빈 CAN 컨트롤러 | CanCommController 에는 빈 CAN-COMMUNICATION-CONTROLLER-CONDITIONAL 이 없다. 설계 내용은 같다 |
PAIO 가 스스로 넣는 요소
| 요소 | 내용 | 장 |
|---|---|---|
BAUDRATE 500000, 19200 | PAIO 가 새 CAN 클러스터와 새 LIN 클러스터에 저장하는 값이다 | 3, 5 |
HPC 의 SERVICE-DISCOVERY-CONFIGS, SD 소켓 2개 | HPC 커넥터에 MULTICAST IPV4 ADDRESS 를 넣으면 익스포트가 SD 설정과 소켓 HPC_EthernetConnector_Multicast_Socket, APPLICATION-ENDPOINT ApplicationEndpoint 를 만든다 | 4 |
멀티캐스트 엔드포인트의 ASSIGNMENT-PRIORITY 0, TTL 0 | 익스포트가 멀티캐스트 엔드포인트에 넣는 값이다 | 4 |
| 기본 데이터 타입 49개 | TopologyDesign_DataType.arxml 의 SW-BASE-TYPE, IMPLEMENTATION-DATA-TYPE 같은 데이터 타입 요소이다. 이 설계는 쓰지 않는다 | 7 |
루트 컴포지션 System | 새 프로젝트의 시스템이 갖는 ROOT-SW-COMPOSITION-PROTOTYPE 이다 | 1 |
이 설계는 NM 과 TP 를 켤 수 있는 모든 클러스터에서 둘 다 꺼 두므로, 익스포트에는 NM 요소와 TP 요소가 없다.
화면으로 만들지 않는 값
| 참조 설계의 값 | 위치 | 내 익스포트 | 장 |
|---|---|---|---|
ECU_Partition0(EXEC-IN-USER-MODE true), ECU_Partition1(false) | ECU | 없음. System 편집기에 파티션을 넣는 칸이 없다 | 2 |
PROTOCOL-NAME CAN-FD | CanCluster | 없음. CAN CLUSTER 패널의 PROTOCOL NAME 은 비워 둔다 | 3 |
PROTOCOL-NAME IEEE 802.3 | EthernetCluster | 없음. ETHERNET CLUSTER 패널에 PROTOCOL 섹션이 없다 | 4 |
CATEGORY WIRED | 이더넷 채널, 컨트롤러 2개, 커넥터 2개 | 없음. 칸이 없다 | 4 |
WAKE-UP-BY-CONTROLLER-SUPPORTED false | HPC 의 EthernetController | 없음. ETHERNET CONTROLLER 패널에 칸이 없다 | 4 |
WAKE-UP-BY-CONTROLLER-SUPPORTED true | LinController_Master | 없음. LIN MASTER 패널의 WAKE-UP BY CONTROLLER 는 누르지 않는다 | 5 |
BUS-IDLE-TIMEOUT-PERIOD 0.01 | LinCluster 의 PhysicalChannel | 없음. IDLE TIMEOUT 은 0.1 초 이상만 받는다 | 5 |
CREATE-ECU-WAKEUP-SOURCE false | HPC 의 EthernetConnector | 없음. 커넥터의 PARTIAL NETWORK › CREATE ECU WAKEUP SOURCE 를 건드리지 않아 값이 없고, 값이 없는 항목은 익스포트에서 빠진다 | 7 |
참조 설계 쪽의 결함
| 차이 | 내용 |
|---|---|
HPC 의 EthernetConnector | COMM-CONTROLLER-REF 가 없고, 유니캐스트 엔드포인트가 ZONE 의 주소 ZONE_Endpoint(192.168.0.19)이다. HPC_Endpoint(192.168.0.11)는 어느 커넥터도 쓰지 않는다. 커넥터에 컨트롤러가 없다는 오류 constr_5398 은 ECU 노드의 커넥터만 검사하므로, 참조 설계를 그대로 PAIO 로 임포트해 검증해도 No validation issues. 이다 |
이 밖에 참조 설계에는 이름이 있는 요소 33개 모두에 UUID 속성이 있고 내 익스포트에는 없다. 요소 순서도 다르다. 네임스페이스 http://autosar.org/schema/r4.0 와 스키마 AUTOSAR_00054.xsd 는 같다.
자주 겪는 문제
| 증상 또는 검증 메시지 | 원인 | 해결 | 장 |
|---|---|---|---|
Connector "EthernetConnector" unicast IPv4 "224.0.0.1" is not in the unicast range (first octet 224 > 223). (constr_3288) | HPC 커넥터의 UNICAST IPV4 ADDRESS 에 멀티캐스트 주소가 들어 있다. 행을 클릭하면 ZONE 의 커넥터가 선택된다 | HPC 의 커넥터를 캔버스에서 직접 클릭해 UNICAST IPV4 ADDRESS 에 192.168.0.11 을 넣고 Ctrl+S | 이더넷 버스, 검증 |
Connector "LinConnector" on "SLAVE_ECU" has no commController reference; each CommunicationConnector shall reference exactly one communication controller. (constr_5398) | 커넥터의 CONTROLLER 가 비어 있다. 행을 클릭하면 이 커넥터가 선택된다 | CONTROLLER 목록에서 LinSlaveController 를 고른 뒤 Ctrl+S | LIN 버스, 검증 |
LIN slave controller "LinSlaveController" on "SLAVE_ECU" has no protocolVersion. (constr_5449) | PROTOCOL VERSION 에 켜진 버튼이 없다. 행을 클릭하면 노드 SLAVE_ECU 가 선택된다 | 노드 안의 컨트롤러 사각형을 클릭하고 PROTOCOL VERSION 에서 LIN 2.0 을 클릭한 뒤 Ctrl+S | LIN 버스, 검증 |
| TIME BASE 가 1초, IDLE TIMEOUT 이 10초가 됨 | 단위 칸의 기본값이 s 이다 | 단위 칸을 먼저 ms 로 바꾼 뒤 숫자를 입력한다. IDLE TIMEOUT 은 숫자를 지우고 Tab 키를 눌러 칸을 비운다 | LIN 버스 |
| 클러스터가 하나 더 생김 | 두 번째 커넥터의 + 배지에서 Create CommunicationCluster 를 클릭했다 | 두 번째 커넥터는 + 배지의 Connect to Channel... 로 앞에서 만든 채널에 연결한다 | CAN 버스, 이더넷 버스, LIN 버스 |
| Connected Connectors 의 순서가 참조 설계와 반대임 | 클러스터를 만든 쪽의 커넥터가 채널의 첫 번째 커넥터가 된다 | CAN 과 이더넷 클러스터는 ZONE 의 커넥터에서, LIN 클러스터는 SLAVE_ECU 의 커넥터에서 만든다 | CAN 버스, 이더넷 버스, LIN 버스 |
익스포트한 이더넷 컨트롤러에 XMII 가 들어가고, XML 편집기가 스키마 오류를 알림 | MAC LAYER TYPE 의 XMII 를 눌렀다. 스키마의 값은 X-MII 이다 | MAC LAYER TYPE 은 누르지 않는다 | 이더넷 버스 |
| ADDRESS SOURCE 의 세 값이 모두 꺼져 있음 | FIXED 를 클릭하지 않았다 | 두 이더넷 커넥터에서 ADDRESS SOURCE 의 FIXED 를 클릭한다 | 이더넷 버스 |
| 대문자로 넣은 MAC ADDRESS 가 소문자로 보임 | PAIO 는 MAC 주소를 소문자로 저장한다 | 고칠 필요가 없다. 같은 주소이다 | 이더넷 버스 |
| 속성 패널에 넣은 값이 반영되지 않음 | 속성 패널의 입력란은 칸에서 빠져나와야 값이 확정된다 | 값을 입력한 뒤 Tab 키를 누른다 | CAN 버스, 이더넷 버스, LIN 버스 |
| 빈 캔버스를 클릭해도 선택이 풀리지 않음 | 캔버스 가장자리, 특히 아래 툴바 근처를 클릭했다 | 노드가 없는 캔버스 가운데를 클릭한다 | 프로젝트와 노드 만들기 |
| ARXML 익스포트에 나오는 줄 번호가 내 익스포트와 맞지 않음 | 노드를 다른 순서로 추가했다. ECU 노드는 추가한 순서대로 저장되고 익스포트된다 | 노드를 ECU → ZONE → SLAVE_ECU → HPC 순서로 추가한다 | 프로젝트와 노드 만들기 |
HPC 커넥터의 + 배지를 누르기 어렵거나, 세 번째 메뉴가 앞의 메뉴를 덮음 | HPC 커넥터의 배지는 작고, 화면 오른쪽 끝에서는 메뉴가 왼쪽으로 펼쳐진다 | 화면을 확대한 뒤 클릭하거나, 메뉴를 닫고 Zoom Out 을 한 번 더 클릭한 뒤 다시 연다 | 이더넷 버스 |
확인하기
- "완성된 설계 점검표" 의 항목이 모두 맞다.
- 값 표 모음의 값이 내 설계의 화면 값과 같다.
-
design/아래 파일이 "프로젝트 파일 구성" 과 같다. - 내 익스포트와 참조 설계의 차이가 "참조 설계와 다른 곳" 에 있는 것뿐이다.
다음 단계
설계를 바꾸고 싶으면 해당 장으로 돌아가 값을 고친 뒤 검증과 ARXML 익스포트를 다시 따라간다. 처음부터 다시 보려면 네트워크 토폴로지 설계 튜토리얼로 돌아간다.