본문으로 건너뛰기

LIN 버스

이 장에서 할 일​

이 장에서는 이더넷 버스를 마친 System 편집기에서 노드 ECU 와 SLAVE_ECU 를 LIN 버스로 잇는다. ECU 에는 LIN 마스터 컨트롤러 LinController_Master 와 커넥터 LinConnector_Master 를, SLAVE_ECU 에는 LIN 슬레이브 컨트롤러 LinSlaveController 와 커넥터 LinConnector 를 만든다. 마스터 컨트롤러에는 프로토콜 버전과 타임 베이스를 넣는다. 이어서 SLAVE_ECU 커넥터의 + 배지로 LIN 클러스터 LinCluster 를 만들고, 물리 채널 PhysicalChannel 에 두 커넥터를 연결한다. 참조 설계의 유휴 타임아웃 10 ms 는 System 편집기가 받는 최솟값보다 작으므로, 채널에는 유휴 타임아웃이 들어가지 않는다. LIN 클러스터에는 NM(네트워크 관리)이 없고 TP(전송 프로토콜)는 새 클러스터에서 꺼져 있으므로, 이 장에서는 클러스터 설정 창을 열지 않는다.

이 장을 마치면 System 편집기에 ECU 와 SLAVE_ECU 를 LinCluster 로 이은 설계가 저장되고, VALIDATION 패널에는 No validation issues. 가 보인다.

시작하기 전에​

  • 이더넷 버스를 마친 상태에서 시작한다. ECU 와 ZONE 은 CanCluster 로, ZONE 과 HPC 는 EthernetCluster 로 이어져 있고, SLAVE_ECU 는 아직 비어 있다. VALIDATION 패널에는 No validation issues. 가 보인다.
  • 탭 TopologyDesign:System 이 열려 있지 않으면 EDITOR 뷰의 DESIGN 아래에서 System 을 클릭한다.
  • VALIDATION 패널이 열려 있으면 푸터의 V 아이콘으로 닫아 둔다. 그림은 패널을 닫은 화면이다.
  • 요소를 선택하면 오른쪽에 속성 패널이 열려 캔버스의 오른쪽을 덮는다. 노드 HPC 가 패널에 가려지면 캔버스 아래 툴바의 Fit to View 를 클릭한 뒤 Zoom Out 을 몇 번 클릭해 네 노드가 모두 보이게 한다. 이 장의 그림은 이렇게 축소한 화면이다.

이 장에서 입력하는 값은 다음과 같다. 채널 이름 PhysicalChannel 은 클러스터를 만들 때 자동으로 붙는 기본값이라 입력하지 않는다.

어디서항목값
LIN MASTER 패널 (노드 ECU)NAME / PROTOCOL VERSIONLinController_Master / LIN 2.0 클릭
LIN MASTER 패널 (노드 ECU)TIME BASE / TIME BASE JITTER1 / 1 (단위 ms)
LIN SLAVE 패널 (노드 SLAVE_ECU)NAME / PROTOCOL VERSIONLinSlaveController / LIN 2.0 클릭
LIN CONNECTOR 패널 (노드 ECU)NAME / CONTROLLERLinConnector_Master / LinController_Master 선택
LIN CONNECTOR 패널 (노드 SLAVE_ECU)NAME / CONTROLLERLinConnector / LinSlaveController 선택
LIN CLUSTER 패널NAME / IDLE TIMEOUTLinCluster / 10 (단위 ms). 거부되어 저장되지 않는다
LIN CLUSTER 패널PHYSICAL CHANNELS › CHANNEL NAMEPhysicalChannel (기본값, 그대로 둔다)

참고. 속성 패널의 입력란은 칸에서 빠져나와야 값이 확정된다. 이 장의 값은 모두 속성 패널에 넣으므로, 값을 입력한 뒤 Tab 키를 누른다.

LIN 컨트롤러 만들기​

마스터 컨트롤러 추가하기​

  1. 캔버스에서 노드 ECU 안쪽의 빈 곳을 마우스 오른쪽 버튼으로 클릭한다. 메뉴에 Add Connector, Add Controller, Add Ethernet Switch, Add Gateway, SW Mapping, Extract ECU, Delete 가 보인다.

  2. Add Controller 에 마우스를 올리고 하위 메뉴에서 LIN Master 를 클릭한다.

    노드 ECU 의 우클릭 메뉴에서 Add Controller › LIN Master 를 고르는 화면

    그림 5-1. 노드 ECU 의 우클릭 메뉴. ① Add Controller, ② 하위 메뉴의 LIN Master, ③ 오른쪽 클릭한 노드 ECU. Add Controller 의 하위 메뉴는 Ethernet, CAN, LIN Master, LIN Slave 이다.

  3. 노드 안에 작은 사각형이 생긴다. 이것이 LIN 마스터 컨트롤러이다. 새 컨트롤러는 저절로 선택되지 않으므로 이 사각형을 클릭한다. 오른쪽 속성 패널의 제목은 LIN MASTER 이고, NAME 은 기본 이름 ECU_LinMaster_Controller_0 이다.

    기본 이름의 LIN 마스터 컨트롤러

    그림 5-2. 새 LIN 마스터 컨트롤러. ① 노드 안의 컨트롤러, ② 패널 제목 LIN MASTER, ③ NAME = ECU_LinMaster_Controller_0, ④ 켜진 버튼이 없는 PROTOCOL VERSION, ⑤ 빈 칸인 TIME BASE, ⑥ 빈 칸인 TIME BASE JITTER. 푸터의 V 아이콘에 빨간 배지 1 이 붙어 있다.

LIN MASTER 패널에는 NAME, DESCRIPTION 이 있고, 그 아래 LIN SETTINGS 섹션에 PROTOCOL VERSION, WAKE-UP BY CONTROLLER(YES / NO), TIME BASE, TIME BASE JITTER 가 있다. 맨 아래의 LIN SLAVES 섹션은 접혀 있고 오른쪽에 + 가 있다. 이 장에서는 LIN SLAVES 를 펼치지 않고, WAKE-UP BY CONTROLLER 도 누르지 않는다. V 아이콘의 빨간 배지 1 은 검증 오류 constr_5449(LIN master controller "ECU_LinMaster_Controller_0" on "ECU" has no protocolVersion.)이다. LIN 컨트롤러에는 프로토콜 버전이 있어야 한다. 다음 절에서 LIN 2.0 을 클릭하면 배지가 사라진다.

이름, 프로토콜 버전, 타임 베이스 입력하기​

  1. NAME 칸의 ECU_LinMaster_Controller_0 을 지우고 LinController_Master 를 입력한 뒤 Tab 키를 누른다.

  2. PROTOCOL VERSION 아래에서 LIN 2.0 을 클릭한다. 버튼은 LIN 1.3, LIN 2.0, LIN 2.1, LIN 2.2, ISO 17987 이다. V 아이콘의 빨간 배지가 사라진다.

  3. TIME BASE 오른쪽의 단위 칸을 s 에서 ms 로 바꾼다. 단위 목록은 ns, us, ms, s 이다. 이어서 숫자 칸에 1 을 입력하고 Tab 키를 누른다. 빈 칸에는 안내문 Time Value (≥0) 가 보인다.

  4. TIME BASE JITTER 도 같은 방법으로 단위를 ms 로 바꾸고 1 을 입력한 뒤 Tab 키를 누른다. 이 칸이 비어 있을 때의 안내문은 Time Value (0..0.255) 이다.

    이름, 프로토콜 버전, 타임 베이스를 입력한 LIN 마스터 컨트롤러

    그림 5-3. 값을 입력한 뒤. ① 컨트롤러, ② NAME = LinController_Master, ③ PROTOCOL VERSION = LIN 2.0, ④ TIME BASE = 1 ms, ⑤ TIME BASE JITTER = 1 ms. WAKE-UP BY CONTROLLER 는 비어 있고, V 아이콘에는 배지가 없다.

주의. 단위 칸의 기본값은 s 이다. 단위를 바꾸지 않고 1 을 넣으면 1초가 된다. 숫자를 먼저 넣고 단위를 바꾸면 보이는 숫자가 단위에 맞춰 다시 계산될 수 있으므로, 단위를 먼저 ms 로 바꾼 뒤 숫자를 입력한다.

참고. 1 ms 는 초 단위 값 0.001 로 저장된다. 참조 설계의 LinController_Master 도 타임 베이스와 지터가 모두 0.001 초이다.

SLAVE_ECU 에 슬레이브 컨트롤러 만들기​

  1. 노드 SLAVE_ECU 안쪽의 빈 곳을 오른쪽 클릭한다.

  2. Add Controller 에 마우스를 올리고 하위 메뉴에서 LIN Slave 를 클릭한다.

    노드 SLAVE_ECU 의 우클릭 메뉴에서 Add Controller › LIN Slave 를 고르는 화면

    그림 5-4. 노드 SLAVE_ECU 의 우클릭 메뉴. ① 오른쪽 클릭한 노드 SLAVE_ECU, ② Add Controller, ③ 하위 메뉴의 LIN Slave. 오른쪽 클릭하면 노드 SLAVE_ECU 가 선택되므로 패널에는 NAME 이 SLAVE_ECU 인 ECU 패널이 보인다.

  3. SLAVE_ECU 안에 컨트롤러 사각형이 생긴다. 이 사각형을 클릭하면 패널 제목은 LIN SLAVE 이고, NAME 은 SLAVE_ECU_LinSlave_Controller_0 이다.

  4. NAME 에 LinSlaveController 를 입력하고 Tab 키를 누른다.

  5. PROTOCOL VERSION 아래에서 LIN 2.0 을 클릭한다. 그 아래는 모두 그대로 둔다.

    노드 SLAVE_ECU 의 LIN 슬레이브 컨트롤러

    그림 5-5. 노드 SLAVE_ECU 의 LIN 슬레이브 컨트롤러. ① SLAVE_ECU 안의 컨트롤러, ② NAME = LinSlaveController, ③ PROTOCOL VERSION = LIN 2.0.

LIN SLAVE 패널의 LIN SETTINGS 섹션에는 PROTOCOL VERSION 아래로 WAKE-UP BY CONTROLLER, INITIAL NAD, CONFIGURED NAD, ASSIGN NAD, SUPPLIER ID, FUNCTION ID, VARIANT ID, NAS TIMEOUT 이 있다. TIME BASE 와 TIME BASE JITTER 는 마스터 패널에만 있고 슬레이브 패널에는 없다. 이 장에서는 NAME 과 PROTOCOL VERSION 만 쓴다.

두 컨트롤러의 값을 모으면 다음과 같다.

노드메뉴기본 이름NAMEPROTOCOL VERSIONTIME BASE / TIME BASE JITTER
ECUAdd Controller › LIN MasterECU_LinMaster_Controller_0LinController_MasterLIN 2.01 ms / 1 ms
SLAVE_ECUAdd Controller › LIN SlaveSLAVE_ECU_LinSlave_Controller_0LinSlaveControllerLIN 2.0칸이 없다

LIN 커넥터 만들기​

커넥터 추가하기​

  1. 노드 ECU 안쪽의 빈 곳을 오른쪽 클릭한다.

  2. Add Connector 에 마우스를 올리고 하위 메뉴에서 LIN 을 클릭한다. 하위 메뉴는 Ethernet, CAN, LIN 이다.

    노드 ECU 의 우클릭 메뉴에서 Add Connector › LIN 을 고르는 화면

    그림 5-6. 노드 ECU 의 우클릭 메뉴. ① Add Connector, ② 하위 메뉴의 LIN, ③ 오른쪽 클릭한 노드 ECU. 오른쪽 클릭하면 노드 ECU 가 선택되므로 패널에는 ECU 패널이 보인다. CONNECTORS 에는 CanConnector 가, CONTROLLERS 에는 CanController 와 LinController_Master 가 있다.

  3. 노드 ECU 의 아래 가장자리, CanConnector 의 오른쪽에 커넥터 사각형이 생기고, 그 아래에 초록 + 배지가 붙는다. 커넥터도 저절로 선택되지 않으므로 커넥터 사각형을 클릭한다. 패널 제목은 LIN CONNECTOR 이고, NAME 은 ECU_Lin_Connector_0, CONTROLLER 는 Select controller..., CONNECTED CHANNEL 은 (None) 이다. CONTROLLER 는 필수 입력란이라, 비어 있는 동안 라벨이 빨갛고 안내문 Controller is required 가 보이며, 푸터의 V 아이콘에 빨간 배지 1 이 붙는다.

    기본 이름의 LIN 커넥터

    그림 5-7. 새 LIN 커넥터. ① 노드 아래 가장자리의 커넥터, ② 패널 제목 LIN CONNECTOR, ③ NAME = ECU_Lin_Connector_0, ④ 빨간 라벨과 Controller is required 가 보이는 CONTROLLER = Select controller..., ⑤ 접혀 있는 LIN CONNECTOR SETTINGS 머리글. 푸터의 V 아이콘에 배지 1 이 붙어 있다.

LIN CONNECTOR 패널에는 NAME, CONTROLLER, CONNECTED CHANNEL, DESCRIPTION 아래로 LIN CONNECTOR SETTINGS, PARTIAL NETWORK, TX FRAMES, RX FRAMES 섹션이 이어진다. 이더넷 커넥터와 달리 주소를 넣는 칸은 없다. 접혀 있는 LIN CONNECTOR SETTINGS 섹션에는 INITIAL NAD 와 SCHEDULE CHANGE NEXT TIME BASE 가 있다. 이 장에서는 NAME 과 CONTROLLER 만 쓴다.

이름과 컨트롤러 지정하기​

  1. NAME 에 LinConnector_Master 를 입력하고 Tab 키를 누른다.

  2. CONTROLLER 칸을 클릭하고 목록에서 LinController_Master 를 클릭한다. 목록에는 같은 노드의 LIN 컨트롤러 LinController_Master 하나만 있고, 같은 노드의 CanController 는 나오지 않는다. CONTROLLER 의 빨간 표시와 V 아이콘의 배지가 사라진다.

    CONTROLLER 목록에서 LinController_Master 를 고르는 화면

    그림 5-8. CONTROLLER 목록. ① 커넥터, ② NAME = LinConnector_Master, ③ 아직 컨트롤러를 고르지 않아 빨갛게 보이는 CONTROLLER 칸, ④ 목록의 하나뿐인 항목 LinController_Master.

참고. 커넥터 메뉴에는 마스터와 슬레이브의 구분 없이 LIN 하나만 있다. 커넥터가 마스터 쪽인지 슬레이브 쪽인지는 CONTROLLER 에서 고른 컨트롤러가 정한다.

SLAVE_ECU 에도 커넥터 만들기​

  1. 노드 SLAVE_ECU 안쪽의 빈 곳을 오른쪽 클릭하고 Add Connector › LIN 을 클릭한다. SLAVE_ECU 의 아래 가장자리에 커넥터 사각형이 생긴다. 이 사각형을 클릭하면 LIN CONNECTOR 패널의 NAME 에 SLAVE_ECU_Lin_Connector_0 이 보인다.

  2. NAME 에 LinConnector 를 입력하고 Tab 키를 누른다.

  3. CONTROLLER 목록에서 LinSlaveController 를 클릭한다. 목록 항목은 이것 하나뿐이다. 캔버스에 커넥터와 컨트롤러를 잇는 주황 선이 생긴다.

    노드 SLAVE_ECU 의 LIN 커넥터

    그림 5-9. 노드 SLAVE_ECU 의 LIN 커넥터. ① SLAVE_ECU 의 커넥터, ② NAME = LinConnector, ③ CONTROLLER = LinSlaveController.

두 커넥터의 값을 모으면 다음과 같다.

노드기본 이름NAMECONTROLLER
ECUECU_Lin_Connector_0LinConnector_MasterLinController_Master
SLAVE_ECUSLAVE_ECU_Lin_Connector_0LinConnectorLinSlaveController

LIN 클러스터 만들기​

SLAVE_ECU 커넥터에서 클러스터 만들기​

클러스터를 만든 쪽의 커넥터가 채널의 첫 번째 커넥터가 된다. 참조 설계의 순서(SLAVE_ECU, ECU)와 맞추려고 SLAVE_ECU 의 커넥터에서 클러스터를 만든다.

  1. 노드 SLAVE_ECU 의 LinConnector 아래에 있는 초록 + 배지를 클릭한다.

  2. 열린 메뉴에서 Create CommunicationCluster [Lin] 을 클릭한다. 메뉴 항목은 이것 하나뿐이다.

    + 배지 메뉴의 Create CommunicationCluster [Lin]

    그림 5-10. SLAVE_ECU 커넥터의 + 배지 메뉴. ① + 배지, ② Create CommunicationCluster [Lin].

  3. SLAVE_ECU 의 커넥터 아래에 클러스터 사각형이 생기고, 사각형 밑에 이름 LinCluster_0 이 보인다. 화면에서 보이지 않으면 Fit to View 를 클릭하고, HPC 가 패널에 가려지면 Zoom Out 을 클릭한다.

  4. 클러스터 사각형을 클릭한다. 패널 제목은 LIN CLUSTER 이고, NAME 은 LinCluster_0 이다.

    기본 이름의 LIN 클러스터

    그림 5-11. 새 LIN 클러스터. ① 클러스터 사각형, ② NAME = LinCluster_0, ③ 버튼 2400, 9600, 10400, 19200 가운데 켜진 것이 없는 PROTOCOL › BAUDRATE (BPS), ④ 기본값 PhysicalChannel 이 들어 있는 CHANNEL NAME, ⑤ 안내문 Time Value (≥0.1) 가 보이는 빈 칸 IDLE TIMEOUT. Connected Connectors (1) 아래에 SLAVE_ECU/LinConnector 가 보인다.

  5. NAME 에 LinCluster 를 입력하고 Tab 키를 누른다. 사각형 밑의 이름도 LinCluster 로 바뀐다.

  6. 참조 설계의 유휴 타임아웃을 넣어 이 칸의 한계를 확인한다. IDLE TIMEOUT 오른쪽의 단위 칸을 s 에서 ms 로 바꾸고, 숫자 칸에 10 을 입력한 뒤 Tab 키를 누른다. 칸이 빨갛게 바뀌고 Must be at least 0.1 이 보이며, 값은 저장되지 않는다. BAUDRATE (BPS), PROTOCOL NAME, PROTOCOL VERSION, CHANNEL NAME 은 그대로 둔다.

    이름을 입력하고 유휴 타임아웃 10 ms 가 거부된 LIN 클러스터

    그림 5-12. 값을 입력한 뒤. ① 밑에 LinCluster 가 보이는 클러스터 사각형, ② NAME = LinCluster, ③ 10 ms 를 넣어 빨갛게 바뀌고 Must be at least 0.1 이 보이는 IDLE TIMEOUT.

IDLE TIMEOUT 은 버스가 쉬는 상태로 넘어가기까지의 시간이다. 이 칸은 0.1 초 이상의 값만 받으므로 참조 설계 채널의 값 0.01 초(10 ms)는 넣을 수 없고, 이 튜토리얼의 채널에는 유휴 타임아웃이 들어가지 않는다. 10 을 넣었는데 칸이 빨갛게 바뀌지 않으면 단위 칸이 아직 s 였던 것이므로, 숫자를 지우고 Tab 키를 눌러 칸을 비운다. 패널 아래쪽의 SCHEDULE TABLES 섹션은 손대지 않는다.

참고. BAUDRATE (BPS) 의 버튼은 저장한 뒤 클러스터를 다시 선택해도 하나도 켜져 있지 않지만, 저장된 클러스터에는 보오레이트 19200 이 들어간다. 참조 설계의 클러스터에는 보오레이트가 없다. 익스포트 결과의 차이는 ARXML 익스포트에서 다룬다.

ECU 커넥터를 채널에 연결하기​

  1. 노드 ECU 의 LinConnector_Master 아래에 있는 초록 + 배지를 클릭한다. 이번에는 메뉴에 Create CommunicationCluster [Lin] 과 Connect to Channel... 이 있다.

  2. Connect to Channel... 에 마우스를 올리고, 하위 메뉴의 LinCluster 에 마우스를 올린 뒤, 그 하위 메뉴의 PhysicalChannel 을 클릭한다.

    Connect to Channel... › LinCluster › PhysicalChannel 을 고르는 화면

    그림 5-13. ECU 커넥터의 + 배지 메뉴. ① + 배지, ② Connect to Channel..., ③ LinCluster, ④ PhysicalChannel. 패널에는 그림 5-12 에서 거부된 IDLE TIMEOUT 입력이 아직 보이지만, 저장된 값은 아니다.

주의. 이 메뉴의 Create CommunicationCluster [Lin] 은 새 클러스터를 만드는 항목이다. ECU 의 커넥터는 Connect to Channel... 로 앞에서 만든 채널에 연결한다.

배치 정리하고 저장하기​

  1. 캔버스 아래 툴바의 Auto Layout 을 클릭하고, 이어서 Fit to View 를 클릭한다. HPC 가 패널에 가려지면 Zoom Out 을 클릭한다.

  2. LIN 클러스터 사각형을 클릭해 IDLE TIMEOUT 이 안내문 Time Value (≥0.1) 만 보이는 빈 칸이고 Connected Connectors (2) 아래에 SLAVE_ECU/LinConnector, ECU/LinConnector_Master 가 보이는지 확인한다.

    두 커넥터가 연결된 LIN 클러스터

    그림 5-14. Auto Layout 뒤의 캔버스. ① Auto Layout, ② Fit to View, ③ LIN 클러스터 사각형, ④ CHANNEL NAME PhysicalChannel, 빈 칸인 IDLE TIMEOUT 과 Connected Connectors (2) 의 SLAVE_ECU/LinConnector, ECU/LinConnector_Master. 노드는 위에 ECU 와 HPC, 아래에 SLAVE_ECU 와 ZONE 으로 놓인다.

  3. 노드가 없는 빈 캔버스를 클릭한 뒤 Ctrl+S 를 눌러 저장한다. 탭 TopologyDesign:System 의 파란 점이 사라진다.

연결한 뒤 두 커넥터의 CONNECTED CHANNEL 에는 LinCluster / PhysicalChannel 이 보인다. Auto Layout 뒤의 배치는 그림과 조금 다를 수 있고, ECU 에서 내려오는 CAN 선과 LIN 선이 한 구간에서 겹쳐 보일 수 있다. 배치 결과이며 오류가 아니므로 노드를 옮기지 않아도 된다.

검증 결과 보기​

  1. 푸터의 V 아이콘을 클릭해 VALIDATION 패널을 연다.

    오류가 없는 Validation 패널

    그림 5-15. 저장 뒤의 VALIDATION 패널. ① 푸터의 V 아이콘, ② No validation issues. 행.

검증 결과는 0건으로, 이더넷 버스를 마쳤을 때와 같다. LIN 버스를 더해도 오류가 나오지 않으며, 이 결과는 정상이다.

  • NM 클러스터가 생기지 않는다. LIN 클러스터에는 NM(네트워크 관리)이 적용되지 않는다. LIN 클러스터의 Communication Cluster Configuration 창에는 CLUSTER 와 TRANSPORT PROTOCOL 탭만 있고 NM CLUSTER 탭이 없다.
  • LIN TP 설정이 생기지 않는다. TP(전송 프로토콜)는 CAN 버스의 CanCluster 와 마찬가지로 새 클러스터에서 꺼져 있고, 이 튜토리얼은 꺼 둔 채로 둔다. 참조 설계에도 TP 설정이 없다.

참고. 컨트롤러의 PROTOCOL VERSION 이나 커넥터의 CONTROLLER 가 비어 있는 동안 V 아이콘에는 빨간 배지 1 이 붙었다. 건수가 0으로 돌아오면 배지는 사라지지만, V 아이콘의 툴팁에는 마지막 건수 Validation: 1 error(s), 0 warning(s), 0 info(s) 가 그대로 남는다. 현재 결과는 VALIDATION 패널에서 확인한다.

이 장에서 넣지 않는 값​

참조 설계의 LIN 부분에는 이 장에서 System 편집기에 넣지 않는 값이 있다. 익스포트 결과의 차이는 ARXML 익스포트에서 다룬다.

참조 설계의 값위치System 편집기
WAKE-UP-BY-CONTROLLER-SUPPORTED = trueECU 의 LinController_MasterLIN MASTER 패널의 WAKE-UP BY CONTROLLER(YES / NO). 이 튜토리얼은 누르지 않으므로 저장된 컨트롤러에 값이 없다
BUS-IDLE-TIMEOUT-PERIOD = 0.01LinCluster 의 채널 PhysicalChannelLIN CLUSTER 패널의 IDLE TIMEOUT 은 0.1 초 이상만 받으므로 이 값을 넣을 수 없다

PROTOCOL VERSION 의 LIN 2.0 은 참조 설계의 두 컨트롤러가 가진 PROTOCOL-VERSION 값 LIN20 을 그대로 저장한다. 반대로 참조 설계에 없는데 PAIO 가 저장하는 값이 하나 있다. 클러스터의 보오레이트 19200 이며, 이 장에서 직접 입력하는 값이 아니다.

왜 이렇게 설계하는가​

  • LIN 버스는 ECU 와 SLAVE_ECU 를 잇는다. 참조 설계의 LinCluster 채널 PhysicalChannel 에는 SLAVE_ECU 의 LinConnector 와 ECU 의 LinConnector_Master 가 이 순서로 붙어 있다. 클러스터를 SLAVE_ECU 쪽에서 만드는 것은 이 순서를 맞추기 위해서이다.
  • ECU 가 마스터, SLAVE_ECU 가 슬레이브이다. LIN 버스에서는 마스터 하나가 통신 일정을 정하고 슬레이브가 따른다. 참조 설계는 ECU 에 LIN 마스터 LinController_Master 를, SLAVE_ECU 에 LIN 슬레이브 LinSlaveController 를 둔다.
  • 타임 베이스는 마스터에만 넣는다. 참조 설계의 LinController_Master 에는 타임 베이스와 지터가 0.001 초로 들어 있고, LinSlaveController 에는 프로토콜 버전만 있다.
  • 유휴 타임아웃은 비워 둔다. 참조 설계의 채널 PhysicalChannel 에는 버스 유휴 타임아웃 0.01 초가 들어 있지만, IDLE TIMEOUT 은 AUTOSAR 가 LIN 인터페이스 파라미터 LinIfBusIdleTimeoutPeriod 에 정한 범위대로 0.1 초 이상만 받는다.
  • NAD, 스케줄 테이블, 프레임은 만들지 않는다. 참조 설계에는 슬레이브 설정, LIN 스케줄 테이블, LIN 프레임이 없다.

확인하기​

  • 노드 ECU 에 LIN 마스터 컨트롤러 LinController_Master(PROTOCOL VERSION LIN 2.0, TIME BASE 1 ms, TIME BASE JITTER 1 ms)와 LIN 커넥터 LinConnector_Master(CONTROLLER = LinController_Master)가 있다.
  • 노드 SLAVE_ECU 에 LIN 슬레이브 컨트롤러 LinSlaveController(PROTOCOL VERSION LIN 2.0)와 LIN 커넥터 LinConnector(CONTROLLER = LinSlaveController)가 있다.
  • 클러스터 LinCluster 를 선택하면 CHANNEL NAME 이 PhysicalChannel, IDLE TIMEOUT 이 빈 칸이고, Connected Connectors (2) 아래에 SLAVE_ECU/LinConnector, ECU/LinConnector_Master 가 이 순서로 보인다.
  • 두 LIN 커넥터의 CONNECTED CHANNEL 이 LinCluster / PhysicalChannel 이다.
  • 탭 TopologyDesign:System 에 수정됨 표시가 없다.
  • VALIDATION 패널에 No validation issues. 가 보인다.

다음 단계​

검증에서 완성한 토폴로지를 검증하고, VALIDATION 패널의 오류 행에서 해당 요소를 찾아가는 방법을 알아본다.