본문으로 건너뛰기

PNC 다이얼로그 — PNC별 바인딩

이 장에서 할 일​

이 장에서는 PNC 다이얼로그에서 PNC(Partial Network Cluster)마다 필요한 참조를 연결(바인딩)한다. PNC 하나에 VFC(Virtual Function Cluster), I-PDU Group, 물리 채널, 서비스 인스턴스, 웨이크업 프레임을 한 화면에서 묶는다.

PNC_ParkAssist를 예로 들어 섹션마다 따라 한다. 웨이크업 프레임은 PNC_Trailer에서 입력한다. PNC_Comfort와 PNC_Trailer의 나머지 값은 값 표와 완성 화면으로 제공한다.

이 장을 마치면 다음 상태가 된다.

  • PNC_ParkAssist에 VFC_ParkAssist, 그룹 RearCAN_PNC_ParkAssist_Rx/_Tx, 채널 RearCAN_Channel과 VLAN_Rear, 서비스 인스턴스 ParkDistance_Provider와 ParkDistance_Consumer가 바인딩되어 있다.
  • PNC_Trailer의 WAKEUP FRAMES에 RearCAN_NmFrame_TrailerModule이 있다.
  • 변경 내용이 저장되어 있다.

시작하기 전에​

  • VFB와 VFC(PortGroup)를 마쳐야 한다.
  • 이 장은 앞 장에서 이어진다. 앞 장까지의 결과가 모두 모델에 들어 있어야 하며, 시작 상태는 다음과 같다.
    • PNC 3개(PNC_Comfort 17, PNC_ParkAssist 18, PNC_Trailer 19)가 있다(PNC 정의와 커넥터 PNC 속성).
    • I-PDU Group 8개가 SIGNAL 모델에 있고, 4장에서 만들 때 각각 해당 PNC에 바인딩되었다(신호·PDU·프레임과 I-PDU Group). PNC_ParkAssist에는 RearCAN_PNC_ParkAssist_Rx(ParkDistance_Pdu 1개)와 RearCAN_PNC_ParkAssist_Tx(PDU 없음)가 들어 있다.
    • SOME/IP 서비스 인스턴스 7개가 커넥터에 바인딩되어 있다(인터페이스와 SOME/IP 서비스).
    • 원자 SWC의 PortGroup VFC_Comfort, VFC_ParkAssist, VFC_Trailer가 있고, 컴포지션과 루트에 같은 이름의 PortGroup이 자동으로 생겨 있다. 아직 어느 PNC에도 바인딩되어 있지 않다(VFB와 VFC(PortGroup)).
    • 컴포지션과 응용 AA의 PortGroup 멤버 포트(OUTER PORTS)는 아직 비어 있다. 이 장의 SWC HIERARCHY에서 채운다.
  • 이 장의 그림 7-2부터 7-9까지와 그림 7-14, 7-15는 PNC에 아무것도 바인딩되지 않은 상태에서 찍었다. 4장을 따라 한 프로젝트에서는 PNC GROUPS에 그룹 2행이 이미 보인다. 차이가 나는 자리는 해당 절에서 다시 알려 준다.

이 장에서 PNC_ParkAssist에 입력하는 값은 다음과 같다.

섹션값
VIRTUAL FUNCTION CLUSTERS (VFC)VFC_ParkAssist
PNC GROUPSRearCAN_PNC_ParkAssist_Rx(ParkDistance_Pdu), RearCAN_PNC_ParkAssist_Tx(PDU 없음)
PHYSICAL CHANNELSCAN RearCAN / RearCAN_Channel, ETHERNET Backbone / VLAN_Rear (VLAN 200)
SERVICE INSTANCESParkDistance_Provider, ParkDistance_Consumer
WAKEUP FRAMES없음

PNC 다이얼로그 열기​

  1. 왼쪽 EDITOR 뷰의 DESIGN 아래에서 System을 눌러 System 편집기(탭 PNC:System)를 연다.

  2. 캔버스 왼쪽 가장자리의 세로 아이콘 줄에서 두 번째(아래쪽) 아이콘을 누른다. 마우스를 올리면 Partial Network (PNC) 툴팁이 나타난다.

    System 편집기의 PNC 버튼

    그림 7-1. System 편집기. ① EDITOR 뷰 DESIGN 아래의 System. ② PNC 버튼. 캔버스 왼쪽 가장자리 세로 아이콘 줄의 두 번째(아래쪽) 아이콘이다.

    Partial Network (PNC) Configuration 다이얼로그가 열린다.

  3. 왼쪽 PARTIAL NETWORKS 목록에서 PNC 18 PNC_ParkAssist를 누른다.

    PNC_ParkAssist를 선택한 PNC 다이얼로그

    그림 7-2. PNC 18 PNC_ParkAssist를 선택한 화면. ① 목록 항목 PNC 18 PNC_ParkAssist. ② VIRTUAL FUNCTION CLUSTERS (VFC) 섹션. 아직 "No VFC bound. Click [+] to bind or create a PortGroup."이 표시된다. PNC GROUPS, SERVICE INSTANCES, WAKEUP FRAMES도 비어 있고, PHYSICAL CHANNELS에는 체크가 없다.

화면 구성​

다이얼로그는 세 영역으로 나뉜다.

영역내용
왼쪽 PARTIAL NETWORKSPNC 목록. 항목은 PNC <식별자> <이름> 형식이다. 머리글의 +/− 버튼으로 PNC를 추가, 삭제한다(PNC 정의와 커넥터 PNC 속성).
가운데 상세선택한 PNC의 섹션이 위에서 아래로 나온다: PARTIAL NETWORK CLUSTER(PNC IDENTIFIER, NAME) → VIRTUAL FUNCTION CLUSTERS (VFC) → PNC GROUPS → PHYSICAL CHANNELS → SERVICE INSTANCES → WAKEUP FRAMES. 각 섹션 머리글 오른쪽의 + 버튼으로 항목을 추가한다. 내용이 길어지면 가운데 상세를 세로로 스크롤한다.
오른쪽 뷰어PDU GROUPS, MATRIX, NM VECTOR 탭. 이 장에서는 PDU GROUPS 탭만 쓴다. 나머지 탭은 PDU GROUPS·MATRIX·NM VECTOR 검토에서 다룬다.
  • 저장하지 않은 변경이 있으면 다이얼로그 제목 앞에 ● 표시가 붙는다.
  • 저장은 Ctrl+S로 한다. 다이얼로그 아래에는 Close 버튼만 있다.

VFC 바인딩하기​

  1. VIRTUAL FUNCTION CLUSTERS (VFC) 머리글 오른쪽의 + 버튼을 누른다(툴팁 Bind or create a VFC (PortGroup)).

    메뉴가 열린다. 맨 위의 New VFC (PortGroup)... 항목은 새 PortGroup을 만들고, 구분선 아래는 이미 있는 VFC 목록이다.

  2. 메뉴에서 VFC_ParkAssist를 누른다.

    VFC 추가 메뉴

    그림 7-3. + 메뉴. New VFC (PortGroup)... 아래에 VFC_Comfort, VFC_ParkAssist, VFC_Trailer가 있다. ① 고를 항목 VFC_ParkAssist.

    VFC 표에 행이 생긴다. 제목 앞에 ● 표시가 붙는다.

    VFC_ParkAssist가 바인딩된 모습

    그림 7-4. ① 새 행: PORT GROUP VFC_ParkAssist, MEMBERS HPC, SouthZone, ParkSensor_RR, PORTS 4 ports.

    참고. MEMBERS는 루트 컴포지션 PncVehicle의 직계 프로토타입 중 같은 이름의 PortGroup(VFC_ParkAssist)을 가진 것이다. 이름이 다르면 멤버로 세지 않는다(VFC 패밀리 규칙).

  3. VFC_ParkAssist 행을 눌러 펼친다.

    VFC_ParkAssist 행을 펼친 모습

    그림 7-5. 펼친 행의 VFC (PORT-GROUP) 영역. ① CATEGORY. PARTIAL_NETWORKING이 선택되어 있다. ② SWC HIERARCHY 표(열 COMPONENT/PORT, 체크, TYPE). 루트 PncVehicle 아래 직계 프로토타입 14개가 모두 나오고, 체크가 끝나면 HPC, SouthZone, ParkSensor_RR 세 행만 체크된 상태가 된다.

  4. SWC HIERARCHY에서 이 VFC에 참여하는 컴포지션과 포트를 체크한다. VFC_ParkAssist는 HPC, SouthZone, ParkSensor_RR 세 컴포지션이다. 컴포지션 행을 체크한 뒤 그 행을 펼쳐, VFB와 VFC(PortGroup)의 ECU 컴포지션 표에 적힌 OUTER PORTS를 포트 행에서 체크한다.

    컴포지션체크할 포트
    HPCParkDistanceSvc
    SouthZoneParkDistance, ParkDistanceSvc
    ParkSensor_RRParkDistance

    HPC 안의 응용 AA ParkAssistApp의 포트(ParkDistanceSvc, VehicleStateSvc)도 같은 방법으로 체크한다. AA에는 PortGroup을 만드는 전용 화면이 없으므로, 이 표가 AA의 PortGroup을 만드는 유일한 자리이다.

  5. 행을 다시 눌러 접는다.

주의. SWC HIERARCHY의 체크박스는 누르는 즉시 SWC 모델(.swc.io.model)에 기록된다. Ctrl+S를 기다리지 않는다. 컴포지션 행의 체크는 그 컴포지션 타입에 같은 이름의 PortGroup을 만들거나 지우고, 펼친 포트 행의 체크는 그 PortGroup의 멤버 포트를 넣거나 뺀다. 체크를 잘못 풀면 그 컴포지션의 PortGroup이 지워지므로, 표에 없는 행은 건드리지 않는다.

참고. VFC 행 오른쪽의 ×(툴팁 Unbind VFC from this PNC (the PortGroup itself is kept))는 PNC와의 연결만 끊는다. PortGroup 자체는 남는다.

PNC GROUPS 확인하기​

PNC GROUPS에는 이 PNC에 바인딩된 I-PDU Group이 나온다. 신호·PDU·프레임과 I-PDU Group에서 PNC GROUPS의 + 버튼으로 그룹을 만들었고, **+**로 만든 그룹은 만들 때 선택되어 있던 PNC에 바로 바인딩된다. 그래서 PNC_ParkAssist에는 이미 두 행이 있다.

PNC GROUPS에 RearCAN_PNC_ParkAssist_Rx(RX, 1 PDU)와 RearCAN_PNC_ParkAssist_Tx(TX, 0 PDUs)가 있는지 확인한다. 결과는 그림 7-10의 PNC GROUPS와 같다.

이 절의 나머지는 그룹을 바인딩하는 두 번째 방법이다. 오른쪽 PDU GROUPS 표에서 PDU에 PNC를 지정하는 방법으로, 아직 어느 PNC에도 들어가지 않은 PDU를 넣을 때 쓴다. 예제에서는 4장에서 이미 넣었으므로 읽고 화면만 확인한다.

PNC GROUPS의 + 버튼(툴팁 Add I-PDU group to this PNC)은 새 그룹을 만드는 메뉴(New Rx group..., New Tx group...)만 연다. 이미 있는 그룹 이름을 입력하면 "A group with this name already exists"로 거부된다. 그래서 이미 있는 그룹에 PDU를 더 넣을 때는 오른쪽 PDU GROUPS 표를 쓴다. PNC에 Rx 그룹이나 Tx 그룹이 하나도 없을 때 PDU 하나를 PNC에 지정하면, <클러스터>_<PNC>_Rx/_Tx 쌍이 PNC에 새로 만들어져 바인딩된다. 같은 이름의 그룹이 이미 있으면 새로 만들지 않고 그 그룹을 쓴다.

참고. 그림 7-6부터 7-9까지는 그룹이 아직 바인딩되지 않은 상태에서 찍었다. 4장을 따라 했다면 그림 7-6의 PNC MEMBERSHIP 칸에 "Assign PNCs..." 대신 PNC_ParkAssist가 이미 표시되고, 그림 7-9의 RearCAN_PNC_ParkAssist_Tx는 CONTAINED PDUS가 비어 있다. 아래 3단계와 7단계는 그래서 이미 반영된 상태이며, 다시 하지 않는다.

  1. 오른쪽 PDU GROUPS 탭의 검색칸에 ParkDistance를 입력한다. 표에 ParkDistance_Pdu 한 행만 남는다.

  2. 가운데 상세와 오른쪽 뷰어 사이의 경계선을 왼쪽으로 끌어 뷰어를 넓힌다. 기본 폭에서는 PNC MEMBERSHIP 열이 오른쪽 끝에서 잘려, 칸의 드롭다운 화살표가 보이지 않는다.

    PDU GROUPS 표의 PNC MEMBERSHIP 열

    그림 7-6. 뷰어를 넓힌 PDU GROUPS 표. ① 검색칸에 ParkDistance 입력. 남은 행은 ParkDistance_Pdu / RearCAN_ParkDistance CAN 0x401 / RearCAN CAN이다. ② PNC MEMBERSHIP 칸("Assign PNCs...").

  3. PNC MEMBERSHIP 칸을 누른다. 체크 목록이 열리면 PNC_ParkAssist를 체크한다.

    PNC MEMBERSHIP에서 PNC_ParkAssist 체크

    그림 7-7. PNC MEMBERSHIP 체크 목록(PNC_Comfort, PNC_ParkAssist, PNC_Trailer). ① PNC_ParkAssist를 체크한 모습.

  4. Esc를 눌러 체크 목록을 닫는다. 다이얼로그는 닫히지 않는다. 목록을 닫을 때 지정이 반영된다.

    PNC GROUPS에 그룹 쌍이 바인딩된 모습

    그림 7-8. ① PNC GROUPS에 RearCAN_PNC_ParkAssist_Rx(RX, 1 PDU)와 RearCAN_PNC_ParkAssist_Tx(TX, 1 PDU)가 바인딩되었다. ② ParkDistance_Pdu 행이 강조되고, PNC MEMBERSHIP에 PNC_ParkAssist가 표시된다.

    그림 7-8에서 Tx 그룹도 1 PDU이다. PDU를 PNC에 지정하면, 그 PDU를 보내는 노드와 받는 노드가 모두 있을 때 Rx 그룹과 Tx 그룹 양쪽에 들어간다. 버스 PDU는 보통 보내는 노드와 받는 노드가 모두 있으므로 양쪽에 들어간다. 그룹 방향은 Zone(게이트웨이) 관점이고 ParkDistance_Pdu는 SouthZone이 받는 PDU이므로, 예제에서는 Rx 그룹에만 둔다(명명 규약). 다음 단계에서 Tx 그룹의 ParkDistance_Pdu를 뺀다.

  5. 뷰어 경계선을 오른쪽으로 끌어 원래 폭으로 되돌린다.

  6. PNC GROUPS에서 RearCAN_PNC_ParkAssist_Tx 행을 눌러 펼친다. GROUP(PDU GROUP, DIRECTION)과 CONTAINED PDUS 표가 나타난다.

  7. CONTAINED PDUS의 ParkDistance_Pdu 행 오른쪽 끝에 있는 ×(툴팁 Remove contained element)를 누른다.

    Tx 그룹에서 ParkDistance_Pdu 빼기

    그림 7-9. 펼친 RearCAN_PNC_ParkAssist_Tx. DIRECTION은 TX이다. ① CONTAINED PDUS의 ParkDistance_Pdu 행(RearCAN_ParkDistance, CAN 0x401, RearCAN). ② 누를 × 버튼.

    Tx 그룹 행의 PDUS가 0 PDUs로 바뀐다.

  8. RearCAN_PNC_ParkAssist_Tx 행을 다시 눌러 접는다.

  9. PDU GROUPS 탭의 검색칸을 비운다.

주의. CONTAINED PDUS 행의 × 버튼과 그룹 행(RearCAN_PNC_ParkAssist_Tx 행) 오른쪽 끝의 × 버튼을 헷갈리지 않는다. 그룹 행의 ×(툴팁 Delete group (removes it from the SIGNAL model and every reference))는 바인딩만 끊는 것이 아니라 그룹 자체를 삭제한다.

물리 채널 선택하기​

PHYSICAL CHANNELS 표에는 프로젝트의 모든 물리 채널이 나온다. 열은 체크, PROTOCOL, CLUSTER, CHANNEL, CONNECTED ECUS, GATEWAY이다.

  1. 다음 두 행의 체크박스를 켠다.

    • CAN / RearCAN / RearCAN_Channel
    • ETHERNET / Backbone / VLAN_Rear (VLAN 200)

    PHYSICAL CHANNELS에서 채널 선택

    그림 7-10. ① RearCAN_Channel 행 체크. ② VLAN_Rear (VLAN 200) 행 체크. ③ GATEWAY 열. 두 채널 모두 SouthZone (A)이다. PNC GROUPS의 Tx 그룹은 0 PDUs이다.

참고. GATEWAY 열은 표시 전용이다. 각 채널에서 PNC 게이트웨이 역할을 하는 노드를 보여 주며, (A)는 ACTIVE, (P)는 PASSIVE이다. 값은 커넥터의 PNC 속성(PNC 정의와 커넥터 PNC 속성)에서 온다. 기본 폭에서는 VLAN_Body 행의 WestZone (A), EastZone (P)처럼 긴 값이 잘린다. 셀에 마우스를 올리면 툴팁으로 전체 값을 볼 수 있다.

주의. 물리 채널은 자동으로 채워지지 않는다. 그룹이나 PDU를 바인딩해도 채널 체크는 바뀌지 않는다. PNC가 걸치는 채널은 사람이 직접 체크한다.

서비스 인스턴스 추가하기​

  1. SERVICE INSTANCES 머리글 오른쪽의 +(툴팁 Add service instance reference)를 누른다. 검색칸이 있는 후보 목록이 열린다. 후보 아래에 역할과 노드가 작게 표시된다(예: SOME/IP provider on SouthZone).

  2. 검색칸에 ParkDistance를 입력한다. 후보 7개가 2개로 좁혀진다.

  3. ParkDistance_Provider를 누른다.

    SERVICE INSTANCES 후보 목록

    그림 7-11. SERVICE INSTANCES의 후보 목록. ① 검색칸에 ParkDistance 입력. ② 고를 항목 ParkDistance_Provider(SOME/IP provider on SouthZone). 위의 ParkDistance_Consumer는 SOME/IP consumer on HPC이다.

  4. 다시 + 버튼을 누르고 ParkDistance를 입력한 뒤 ParkDistance_Consumer를 누른다.

    카드 2개가 생긴다. 카드에는 SOME/IP 배지, 역할 배지(P 제공자, C 소비자), 인스턴스 이름이 표시된다.

  5. (확인만) ParkDistance_Provider 카드를 누르면 상세가 펼쳐진다.

    서비스 인스턴스 카드

    그림 7-12. ① SERVICE INSTANCES 섹션. 펼친 ParkDistance_Provider 카드에 OWNING NODE SouthZone (SouthZone_Eth_Conn), ROLE Provider, SERVICE INTERFACE SVC_ParkDistance, INSTANCE ID 1, SERVICE ID 4097, ENDPOINT 192.168.200.12, UDP 30502가 표시된다. 아래는 ParkDistance_Consumer 카드이다.

참고. 카드 오른쪽의 ×(툴팁 Remove reference)는 PNC의 참조만 지운다. 서비스 인스턴스 자체는 남는다.

저장하기​

  1. Ctrl+S를 누른다.

    제목 앞의 ● 표시가 사라진다.

    저장 후의 PNC_ParkAssist

    그림 7-13. 저장 후의 PNC 18 PNC_ParkAssist. ① 다이얼로그 제목. 앞에 ● 표시가 없다. VFC 1개, 그룹 2개(RX 1 PDU, TX 0 PDUs), 채널 2개, 서비스 인스턴스 2개가 바인딩되어 있고, 맨 아래 WAKEUP FRAMES에는 카드가 없다.

참고. 다이얼로그에서 저장하면 PNC 바인딩은 SYSTEM 모델(SYSTEM.io.model)에, 그룹 내용은 SIGNAL 모델(SIGNAL.io.model)에 기록된다. System 편집기 탭(PNC:System)은 바뀌지 않는다. 저장하지 않고 Close를 누르면 저장 여부를 묻는 창이 나타난다.

웨이크업 프레임 추가하기​

PNC_ParkAssist에는 웨이크업 프레임이 없다. 웨이크업 프레임은 PNC_Trailer에서 입력한다.

  1. 왼쪽 목록에서 PNC 19 PNC_Trailer를 누른다.

  2. WAKEUP FRAMES 머리글 오른쪽의 +(툴팁 Add wakeup frame reference)를 누른다. CAN 프레임 29개가 후보로 나온다. 후보 아래에 CAN ID와 클러스터/채널이 표시된다.

  3. 검색칸에 TrailerModule을 입력한다. 후보 29개가 1개로 좁혀진다.

  4. RearCAN_NmFrame_TrailerModule을 누른다.

    WAKEUP FRAMES 후보 목록

    그림 7-14. ① PNC 19 PNC_Trailer. ② 검색칸에 TrailerModule 입력. ③ 고를 항목 RearCAN_NmFrame_TrailerModule(0x512 RearCAN/RearCAN_Channel).

    CAN 배지가 붙은 카드가 생긴다.

  5. (확인만) 카드를 누르면 상세가 펼쳐진다.

    웨이크업 프레임 카드

    그림 7-15. ① 펼친 RearCAN_NmFrame_TrailerModule 카드. PROTOCOL CAN, FRAME ID 0x512, CLUSTER RearCAN, CHANNEL RearCAN_Channel, TX NODES TrailerModule, RX NODES —.

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

  7. Close를 눌러 다이얼로그를 닫는다. 저장한 뒤이므로 확인 창 없이 닫힌다.

참고. PNC에 Rx 그룹이 바인딩되어 있으면, 후보 목록 위쪽에 PNC RX FRAMES 머리글과 함께 그 그룹의 PDU를 싣는 프레임이 먼저 나온다. 그림 7-14의 PNC_Trailer에는 바인딩된 그룹이 없으므로 29개가 한 목록으로 나온다. 4장을 따라 했다면 RearCAN_PNC_Trailer_Rx가 이미 바인딩되어 있으므로, 목록이 이 머리글과 그 그룹의 PDU를 싣는 프레임으로 시작한다.

나머지 PNC의 값​

PNC_Comfort와 PNC_Trailer도 같은 방법으로 입력한다. 다음 장은 세 PNC의 바인딩이 모두 끝난 상태에서 시작한다.

PNC GROUPS 열은 4장에서 그룹을 만들 때 이미 바인딩된 값이므로 확인만 한다. 새로 입력하는 것은 VFC, PHYSICAL CHANNELS, SERVICE INSTANCES, WAKEUP FRAMES 네 가지이다. VFC를 바인딩한 뒤에는 행을 펼쳐 SWC HIERARCHY에서 아래 MEMBERS 표의 컴포지션과 그 포트를 체크한다.

PNCVFCPNC GROUPSPHYSICAL CHANNELSSERVICE INSTANCESWAKEUP FRAMES
PNC 17 PNC_ComfortVFC_ComfortWestCAN_PNC_Comfort_Rx, WestCAN_PNC_Comfort_Tx, EastCAN_PNC_Comfort_Rx, EastCAN_PNC_Comfort_TxEastCAN_Channel, WestCAN_Channel, VLAN_Body (VLAN 100)ComfortControl_Provider_West(P), ComfortControl_Provider_East(P), ComfortControl_Consumer(C)WestCAN_NmFrame_DoorCtrl_FL(0x511), EastCAN_NmFrame_DoorCtrl_FR(0x511)
PNC 18 PNC_ParkAssistVFC_ParkAssistRearCAN_PNC_ParkAssist_Rx, RearCAN_PNC_ParkAssist_TxRearCAN_Channel, VLAN_Rear (VLAN 200)ParkDistance_Provider(P), ParkDistance_Consumer(C)없음
PNC 19 PNC_TrailerVFC_TrailerRearCAN_PNC_Trailer_Rx, RearCAN_PNC_Trailer_TxRearCAN_Channel, VLAN_Rear (VLAN 200)VehicleState_Provider(P), VehicleState_Consumer(C)RearCAN_NmFrame_TrailerModule(0x512)

그룹별 CONTAINED PDUS는 신호·PDU·프레임과 I-PDU Group의 그룹 표와 같다. VFC별 멤버와 PORTS 표시는 다음과 같다.

VFCMEMBERS(SWC HIERARCHY에서 체크된 직계 프로토타입)PORTS
VFC_ComfortHPC, WestZone, EastZone, DoorCtrl_FL, SeatCtrl_FL, MirrorAct_FL, WindowSw_FL, DoorCtrl_FR, SeatCtrl_FR, MirrorAct_FR (10개)28 ports
VFC_ParkAssistHPC, SouthZone, ParkSensor_RR (3개)4 ports
VFC_TrailerHPC, SouthZone, TrailerModule, TailLamp_RR (4개)8 ports

참고. 그룹을 만들지 않고 PDU GROUPS 표에서 PNC_Trailer의 그룹을 만들려면(4장을 건너뛴 경우), TrailerStatus_Pdu, TailLampStatus_Pdu, TrailerCmd_Pdu, TailLampCmd_Pdu 네 PDU에 각각 PNC_Trailer를 지정한다. PDU마다 Rx 그룹과 Tx 그룹 양쪽에 들어가므로, 그림 7-9와 같이 CONTAINED PDUS의 × 버튼으로 RearCAN_PNC_Trailer_Tx에서 TrailerStatus_Pdu, TailLampStatus_Pdu를 빼고, RearCAN_PNC_Trailer_Rx에서 TrailerCmd_Pdu, TailLampCmd_Pdu를 뺀다. 결과는 Rx 2 PDUs, Tx 2 PDUs이다. PNC MEMBERSHIP의 체크를 끄면 그 PNC의 모든 그룹에서 PDU가 빠지므로, 한쪽 그룹에서만 뺄 때는 체크를 끄지 않는다.

주의. PNC_Comfort처럼 버스가 둘 이상인 PNC에는 PDU GROUPS 표의 지정 방법을 쓰지 않는다. 첫 버스(예: WestCAN)의 그룹 쌍이 바인딩된 뒤에는 다른 버스의 PDU를 지정해도 새 쌍이 생기지 않고, 이미 바인딩된 그룹에 들어간다.

완성 화면​

완성 예제의 PNC_Comfort 위쪽

그림 7-16. 완성 예제의 PNC 17 PNC_Comfort(위쪽). ① 목록 항목 PNC 17 PNC_Comfort. ② VFC VFC_Comfort(28 ports). ③ PNC GROUPS 4개: WestCAN_PNC_Comfort_Rx(RX, 4 PDUs), WestCAN_PNC_Comfort_Tx(TX, 2 PDUs), EastCAN_PNC_Comfort_Rx(RX, 3 PDUs), EastCAN_PNC_Comfort_Tx(TX, 2 PDUs). ④ PHYSICAL CHANNELS에서 EastCAN_Channel, WestCAN_Channel, VLAN_Body (VLAN 100) 체크. 오른쪽 PDU GROUPS 표에서는 이 PNC에 속한 PDU가 강조된다.

완성 예제의 PNC_Comfort 아래쪽

그림 7-17. 같은 화면을 아래로 스크롤한 모습. ① SERVICE INSTANCES: ComfortControl_Provider_West(P), ComfortControl_Provider_East(P), ComfortControl_Consumer(C). ② WAKEUP FRAMES: WestCAN_NmFrame_DoorCtrl_FL, EastCAN_NmFrame_DoorCtrl_FR.

VFC_Comfort의 SWC HIERARCHY

그림 7-18. VFC_Comfort 행을 펼친 모습. ① CATEGORY PARTIAL_NETWORKING. ② SWC HIERARCHY. HPC, WestZone, EastZone, DoorCtrl_FL 등은 체크되어 있고 SouthZone은 체크되어 있지 않다. ③ 펼친 WestZone. 포트 7개가 모두 체크되어 있다: P ComfortCmd(SRI_ComfortCmd), P MirrorCmd, R DoorStatus, R SeatStatus, R MirrorStatus, R WindowSwitch, P ComfortControlSvc(SVC_ComfortControl). 행 앞의 > 표시를 누르면 포트 단위로 펼칠 수 있다.

완성 예제의 PNC_ParkAssist

그림 7-19. 완성 예제의 PNC 18 PNC_ParkAssist. ① 목록 항목 PNC 18 PNC_ParkAssist. ② SERVICE INSTANCES: ParkDistance_Provider(P), ParkDistance_Consumer(C). 이 장에서 입력한 결과(그림 7-13)와 같다.

완성 예제의 PNC_Trailer

그림 7-20. 완성 예제의 PNC 19 PNC_Trailer(아래로 스크롤). ① 목록 항목 PNC 19 PNC_Trailer. 가운데 상세에는 VFC VFC_Trailer(8 ports), RearCAN_PNC_Trailer_Rx(RX, 2 PDUs)와 RearCAN_PNC_Trailer_Tx(TX, 2 PDUs), 채널 RearCAN_Channel과 VLAN_Rear (VLAN 200), 서비스 인스턴스 VehicleState_Provider(P)와 VehicleState_Consumer(C). ② WAKEUP FRAMES: RearCAN_NmFrame_TrailerModule.

왜 이렇게 설계하는가​

  • 한 화면에서 PNC 하나를 완성한다. AUTOSAR의 PNC 매핑은 VFC, I-PDU Group, 물리 채널, 서비스 인스턴스, 웨이크업 프레임을 모두 참조한다. 이 참조를 PNC 단위로 모아 보여 주므로 빠진 곳을 바로 알 수 있다.
  • 물리 채널은 사람이 정한다. PNC가 어느 채널에 걸치는지는 그룹이나 PDU에서 자동으로 유도하지 않는다. 체크 하나가 SYSTEM 모델의 물리 채널 참조 한 줄이 된다.
  • PNC_ParkAssist에는 웨이크업 프레임이 없다. 이 PNC는 버스 프레임이 아니라 HPC의 FunctionGroup 상태(후진 기어)로 요청된다(AP 머신 — NM 핸들과 FunctionGroup).
  • PNC_Trailer는 트레일러 모듈의 NM 프레임으로 깨어난다. RearCAN_NmFrame_TrailerModule(0x512)은 웨이크업 필터 블록 0x500..0x5FF 안에 있다.

확인하기​

  • PNC 18 PNC_ParkAssist의 VFC 표에 VFC_ParkAssist(HPC, SouthZone, ParkSensor_RR, 4 ports)가 있다.
  • PNC GROUPS에 RearCAN_PNC_ParkAssist_Rx(RX, 1 PDU)와 RearCAN_PNC_ParkAssist_Tx(TX, 0 PDUs)가 있다.
  • PHYSICAL CHANNELS에서 RearCAN_Channel과 VLAN_Rear (VLAN 200)만 체크되어 있다.
  • SERVICE INSTANCES에 ParkDistance_Provider(P)와 ParkDistance_Consumer(C)가 있다.
  • PNC 19 PNC_Trailer의 WAKEUP FRAMES에 RearCAN_NmFrame_TrailerModule이 있다.
  • VFC_ParkAssist 행을 펼치면 SWC HIERARCHY에 HPC, SouthZone, ParkSensor_RR 세 행만 체크되어 있다.
  • PNC_Comfort와 PNC_Trailer에도 VFC, 물리 채널, 서비스 인스턴스, 웨이크업 프레임이 나머지 PNC의 값의 표대로 들어가 있다.
  • 다이얼로그 제목 앞에 ● 표시가 없다.

다음 단계​

PDU GROUPS·MATRIX·NM VECTOR 검토에서 오른쪽 뷰어의 세 탭으로 PNC 설계를 교차 검토한다.