반응형

[Classic AUTOSAR] TimeSyncOverEthernet - 2. 기능 사양 2) 초기화

 

참조 : Specification of Time Synchronization over Ethernet (autosar.org)

 

이더넷을 통한 글로벌 시간 동기화는 EthTSyn_Init()를 통해 초기화됩니다.
EthTSyn_GetVersionInfo() 및 EthTSyn_Init()를 제외하고 EthTSyn 모듈의 API 함수는 모듈이 제대로 초기화된 경우에만 호출할 수 있습니다.

[SWS_EthTSyn_00006]
EthTSyn_Init()에 대한 호출은 모든 내부 변수를 초기화하고 EthTSyn 모듈을 초기화된 상태로 설정합니다.
(SRS_BSW_00101)

[SWS_EthTSyn_00008]
EthTSyn_Init()가 초기화 상태에서 호출되면 EthTSyn 모듈은 내부 변수를 다시 초기화해야 합니다.
(SRS_BSW_00101)

[SWS_EthTSyn_00010]
EthTSyn_Init()가 초기화된 상태에서 호출되면 EthTSyn 모듈은 각 포트별 Pdelay 값을 0으로 설정해야 합니다.
(RS_TS_20048)

반응형
반응형

[Classic AUTOSAR] TimeSyncOverEthernet - 2. 기능 사양 1) Overview

 

참조 : Specification of Time Synchronization over Ethernet (autosar.org)

 


이 장은 이더넷을 통한 시간 동기화를 담당하는 모듈 EthTSyn의 동작을 정의합니다. 

모듈 EthTSyn은 이더넷 네트워크에서 동기화된 시간 정보의 수집 및 배포를 보장합니다. 그리고 StbM과 상호 작용하고 모든 이더넷 관련 기능을 StbM에 제공합니다.

[SWS_EthTSyn_00148]
매개변수 EthTSynFramePrio(ECUC_EthTSyn_00034 : )가 존재하는 경우 EthTSynGlobalTimeEthIfRef(ECUC_EthTSyn_00065 : )는 VLAN을 나타내는 가상 이더넷 컨트롤러를 참조해야 합니다.
(RS_TS_20048)

[SWS_EthTSyn_00162]
Time Slave 및 Time Master는 호출 시 EthTSynFramePrio(ECUC_EthTSyn_00034 : ) 값을 우선순위 파라미터로 사용합니다. EthIf_ProvideTxBuffer().
(RS_TS_20048)

반응형
반응형

[Classic AUTOSAR] TimeSyncOverEthernet - 1.소개 및 기능 개요

 

참조 : Specification of Time Synchronization over Ethernet (autosar.org)

 

EthTSyn 모듈은 [1, PRS-TimeSyncProtocol]에 지정된 대로 이더넷에서 시간 동기화 프로토콜을 처리합니다.
[1, PRS 시간 동기화 프로토콜]에 명시된 것 외에도 EthTSyn 모듈은 다음 기능을 지원합니다.
• 우선 순위가 높은 PDU가 우선 순위가 낮은 PDU를 차단하지 않도록 Timesync PDU의 Debouncing
• Time Master와 Time Slave의 빠른 (재) 동기화를 위한 시간 동기화 메시지의 "즉시" 전송

 

EthTSyn은 Synchronized Time-Base Manager(StbM; [2, SWS-SynchronizedTimeBaseManager] 참조)와 긴밀하게 연결되어 있으며, 이는 해당 시간 기준에 대한 2개의 연속 동기화 메시지 수신 사이에 동기화된 시간 기준을 보간(로컬 인스턴스)하는 역할을 합니다.

 

해당 타임 베이스에 대한 동기화 메시지. StbM은 또한 시간 동기화를 위한 서비스 인터페이스를 애플리케이션에 제공합니다. 그림 1은 AUTOSAR Layered Architecture의 시간 동기화 관련 모듈을 보여줍니다.

 

 

EthTSyn(Global Time Synchronization over Ethernet)에는 StbM(Synchronized Time-Base Manager), EthIf(Ethernet Interface), BswM(Basic Software Mode Manager) 및 DET(Default Error Tracer)에 대한 인터페이스가 있습니다.

 

StbM – Get and set the current time value 
EthIf – Receiving and transmitting messages
BswM – Coordination of network access
DET – Reporting of development error

반응형
반응형

[Classic AUTOSAR] UDP Network Management(NM) 3. 기능 사양 (8) Partial Networking

참조 : https://www.autosar.org/fileadmin/user_upload/standards/classic/4-/AUTOSAR_SWS_UDPNetworkManagement.pdf

 

1. NM PDU의 RX 처리

[SWS_UdpNm_00328]UdpNmPnEnabled가 FALSE이면 UdpNm은 정상적인 수신 표시 처리를 수행하고 부분 네트워킹 확장은 비활성화됩니다.

[SWS_UdpNm_00329]UdpNmPnEnabled가 TRUE이고 수신된 NM-PDU의 PNI 비트가 0이고 UdpNmAllNmMessagesKeepAwake가 TRUE인 경우 UdpNm 모듈은 부분 네트워킹에 대한 확장을 생략하고 정상적인 Rx 표시 처리를 수행해야 합니다.

[SWS_UdpNm_00462]UdpNmPnEnabled가 TRUE이고 수신된 NM-PDU의 PNI 비트가 0이고 UdpNmAllNmMessagesKeepAwake가 FALSE이면 UdpNm 모듈은 수신된 NM-PDU를 무시합니다.

[SWS_UdpNm_00331] {OBSOLETE replace by SWS_UdpNm_00486 } UdpNmPnEnabled가 TRUE이고 수신된 NM-PDU의 PNI 비트가 1이면 UdpNm 모듈은NM-PDU의 부분 네트워킹 정보를 처리해야 합니다.

[SWS_UdpNm_00486] {DRAFT} UdpNmPnEnabled가 TRUE로 설정되면 수신된 NM-PDU의 PNI 비트가 1로 설정되고 PNSR 비트가 0으로 설정되면 UdpNm 모듈은 부분 네트워크 구성(해당 NM 채널의 NmPncBitVectorOffset 및 NmPncBitVectorLength)으로 이동하고 Nm_PncBitVectorRxIndication⌋(RS_Nm_02546, RS_Nm_02519, RS_Nm_02547)을 호출하여 PNC 비트 벡터를 전달합니다.

[SWS_UdpNm_00487] {DRAFT} UdpNmPnEnabled가 TRUE로 설정되고 Nm_PncBitVectorRxIndication이 호출된 경우 수신된 NM PDU는 다음 조건 하에서만 추가 처리를 위해 고려됩니다.
- UdpNmAllNmMessagesKeepAwake가 TRUE로 설정되거나
- RelevantPncRequestDetectedPtr의 출력 값이 TRUE ⌋(RS_Nm_02546, RS_Nm_02527)로 설정됩니다.

참고:
- UdpNmAllNmMessagesKeepAwake는 게이트웨이가 모든 종류의 NM-PDU에서 깨어 있는 상태를 유지하는 데 필요합니다.
- SWS_UdpNm_00487의 결과로 모든 메시지가 ECU를 깨우지 않거나 관련 PN 정보가 감지되지 않은 경우 NM PDU는 추가 처리를 위해 고려되지 않습니다.
예시:
- UdpNmPduCbv위치 = 0
- UdpNmPduNidPosition = 1
- NmPncBitVectorOffset = 4
- NmPncBitVectorLength = 4
- 사용자 데이터 범위의 계산된 길이 = 2
NM PDU의 바이트 2와 바이트 3에는 사용자 데이터가 포함되고 NM PDU의 바이트 4~바이트 7에는 PNC 비트 벡터가 포함됩니다.


이 예에서는 4개의 NmPnFilterMaskBytes가 정의되어야 합니다. PN 필터 마스크의 값은 부분 네트워크 설계에 따라 사용됩니다. 

예:
- NmPnFilterMaskByteIndex = 0, NmPnFilterMaskByteValue = 0x01
- NmPnFilterMaskByteIndex = 1, NmPnFilterMaskByteValue = 0x97
- NmPnFilterMaskByteIndex = 2, NmPnFilterMaskByteValue = 0x00
- NmPnFilterMaskByteIndex = 3, NmPnFilterMaskByteValue = 0x00
참고: PNC 비트 벡터의 오프셋은 Nm 모듈(NmPncBitVectorOffset)에서 파생됩니다. PNC 비트 벡터 길이는 NM 채널당 Nm 모듈(NmPncBitVectorLength)에서 파생됩니다. Nm 모듈에서 찾아 사용되는 PN 필터 마스크(NmPnFilterMaskByteIndex 및 NmPnFilterMaskByteValue)입니다.

[SWS_UdpNm_00473] {DRAFT} UdpNmSynchronizedPncShutdownEnabled가 TRUE이면 수신된 NM-PDU의 PNI 비트는 1이고 수신된 NM-PDU의 PNSR 비트는 1이며 UdpNmComMNetworkHandleRef를 통해 구성된 해당 ComMChannel은 이 NM-PDU가 능동적으로 수신된 곳입니다. 조정된 경우(ComMPncGatewayType이 COMM_GATEWAY_TYPE_ACTIVE로 설정됨) UdpNm 모듈은 수신된 NM-PDU를 무시해야 합니다. 또한 UdpNm 모듈은 다음을 수행해야 합니다.
- 런타임 오류 UDPNM_E_INVALID_PN_SYNC_SHUTDOWN_REQUEST를 기본 오류 추적기에 보고합니다.
- UdpNmPnSyncShutdownErrorReactionEnabled가 TRUE로 설정된 경우 영향을 받는 UdpNm-Channel의 다음 주 기능 호출에서 최신 PN 정보가 있는 NM-PDU의 전송을 요청합니다.

[SWS_UdpNm_00488] {DRAFT} UdpNmSynchronizedPncShutdownEnabled가 TRUE이면 수신된 NM-PDU의 PNI 비트가 1로 설정되고 PNSR 비트가 1로 설정되면 UdpNm 모듈은 부분 네트워크 구성(해당 NM 채널의 NmPncBitVectorOffset 및 NmPncBitVectorLength) 및 Nm_ForwardSynchronizedPncShutdown을 호출하여 PNC 비트 벡터를 전달합니다. 
참고: 1로 설정된 PNSR 비트는 동기화된 PNC 종료가 요청된 경우에만 가능합니다. 동기화된 PNC 종료는 PN 토폴로지에서 처리해야 합니다. 따라서 모든 코디네이터가 동기화된 PNC 종료를 활성화했거나 모든 코디네이터가 동기화된 PNC 종료를 비활성화했다고 가정합니다. 두 가지를 혼합하면 동기화되지 않은 PNC 종료가 발생하므로 이를 방지해야 합니다.

 

2. NM PDU의 TX 처리

[SWS_UdpNm_00332]UdpNmPnEnabled가 TRUE인 경우 UdpNm 모듈은 CBV에서 전송된 PNI 비트의 값을 1로 설정해야 합니다.
참고: 부분 네트워킹을 사용하는 경우 CBV를 사용해야 합니다.

[SWS_UdpNm_00333] UdpNmPnEnabled가 FALSE이면 UdpNm 모듈은 CBV에서 전송된 PNI 비트의 값을 항상 0으로 설정해야 합니다.


[SWS_UdpNm_00489] {DRAFT} UdpNmPnEnabled가 TRUE이면 NM-PDU 가 SoAd(SoAdBswModules /SoAdIfTriggerTransmit이 FALSE로 설정됨)에서 트리거된 전송에 대해 구성되지 않고 동기화된 PNC 종료에 대한 요청이 보류되지 않고 NM-PDU가 전송되어야 합니다. UdpNm 모듈은 지정된 순서대로 다음 작업을 수행합니다.
- Nm_PncBitVectorTxIndication(<NM-channel>, <집합된 내부 PNC 요청의 필터링되지 않은 PNC 비트 벡터를 저장하는 버퍼>)을 호출하여 전송 요청을 표시하고 내부 PNC 요청을 검색합니다.
- 내부 PNC 요청을 위한 수신된 PNC 비트 벡터를 해당 NM 채널의 NmPncBitVectorOffset 및 NmPncBitVectorLength를 고려하여 NM-PDU에 복사
- 사용자 데이터가 활성화된 경우 사용 가능한 데이터(UdpNmComUserDataSupport가 활성화된 경우 Com 또는 내부 저장소에서)를 가져와 NM-PDU의 사용자 데이터 범위에 있는 데이터를 복사합니다.
- SoAd_IfTransmit RS_Nm_02546, RS_Nm_02519, RS_Nm_02547을 호출하여 NM-PDU의 전송을 트리거합니다.

 

[SWS_UdpNm_00474] {DRAFT} UdpNmSynchronizedPncShutdownEnabled가 TRUE로 설정되고 UdpNm 모듈이 UdpNm_RequestSynchronizedPncShutdown을 통해 표시되는 경우 UdpNm 모듈은 주어진 UdpNm-Channel에 대한 PNC(pncId)를 저장해야 합니다.
참고: 동기화된 PNC 종료 및 PN 종료 메시지(CBV의 PNSR 비트를 1로 설정)로 전송을 위해 요청된 모든 PNC의 집계는 해당 UdpNm_Mainfunction의 컨텍스트에서 비동기적으로 수행됩니다.

[SWS_UdpNm_00475] { OBSOLETE replace by SWS_UdpNm_00490 } UdpNmSynchronizedPncShutdownEnabled가 TRUE로 설정된 경우 동기화된 PNC 종료 요청이 보류 중이며 전송 확인(UdpNm_TxConfirmation을 통해 표시됨)이 전송 확인이 되지 않으면 이전 호출의 모듈 Udm 요청이 보류됩니다. 대응하는 NM-채널의 호출은 SoAd_IfTransmit을 호출함으로써 NM 메시지의 전송이다. NM-PDU가 SoAd에서 트리거된 전송에 대해 구성되지 않은 경우(SoAdBswModules/SoAdIfTriggerTransmit = FALSE), UdpNm은 이 메시지에 대해 일반 데이터 아래에 다음 데이터를 추가로 설정해야 합니다.
- CBV의 PNSR 비트를 1로 설정
- 동기화된 PNC 종료에 대한 보류 요청으로 저장된 PNC ID에 해당하는 비트를 1로 설정하고 다른 모든 비트를 0으로 설정하여 사용자 데이터의 PN 정보를 덮어씁니다(NM 사용자 데이터를 가져온 후 UdpNmComUserDataSupport가 활성화된 경우).

 

[SWS_UdpNm_00490] {DRAFT} UdpNmSynchronizedPncShutdownEnabled가 TRUE로 설정되면 동기화된 PNC 종료에 대한 요청이 보류되고 이전 호출의 전송 확인(UdpNm_TxConfirmation을 통해 표시됨)이 보류 중인 경우 UdpNm 모듈은 다음 주 기능 호출에서 a를 요청해야 합니다. SoAd_IfTransmit를 호출하여 NM-PDU를 PN 종료 메시지로 전송합니다. NM-PDU가 SoAd에서 트리거된 전송을 위해 구성되지 않은 경우(SoAdBswModules/SoAdIfTriggerTransmit = FALSE), UdpNm은 이 메시지에 대해 일반 데이터 아래에 다음 데이터를 추가로 설정해야 합니다.
- CBV의 PNSR 비트를 1로 설정
- 사용자 데이터가 활성화된 경우 사용 가능한 데이터(UdpNmComUserDataSupport가 활성화된 경우 Com 또는 내부 저장소에서)를 가져와 NM-PDU의 사용자 데이터 범위에 있는 데이터를 복사합니다.
- 동기화된 PNC 종료에 대한 보류 요청으로 저장된 PNC ID에 해당하는 비트를 1로, 다른 모든 비트를 0으로 설정하여 해당 NM 채널의 NmPncBitVectorOffset 및 NmPncBitVectorLength에 대한 PNC 비트 벡터 쓰기 
참고: UdpNm 모듈은 동기화된 PNC 종료에 대해 표시된 모든 PNC를 집계하고 pncId를 바이트 배열(PNC 비트 벡터)로 전송해야 합니다. PNC 비트 벡터의 각 비트(PNC 비트)는 특정 PNC를 나타냅니다. PNC 비트의 PNC 비트 벡터 내의 byteIndex 및 bitindex는 다음과 같이 결정됩니다.
- byteIndex = (PncId div 8) - NmPncBitVectorOffset
- bitIndex = (PncId 모드 8)

[SWS_UdpNm_00481] UdpNmPnShutdownMessageRetransmissionDuration이 구성되고 PN 종료 메시지 전송이 처음으로 요청되면(SWS_UdpNm_00475 참조), PN 종료 메시지에 대한 해당 재전송 타이머는 UdpNmPnShutdownMessageRetransmissionRetransmissionRetransmission.NmPnDurationRetransmission에 의해 시작되어야 합니다.

[SWS_UdpNm_00476] {DRAFT} UdpNmSynchronizedPncShutdownEnabled가 TRUE로 설정된 경우 UdpNm 모듈은 NM-PDU의 전송을 PN 종료 메시지로 요청했습니다(SWS_UdpNm_00490 참조). 해당 NM 채널의 동기화된 PNC 종료에 대한 보류 중인 요청을 완료하고 저장소에서 제거합니다. 또한 UdpNmPnShutdownMessageRetransmissionDuration이 구성되면 UdpNm은 영향을 받는 NM 채널의 PN 종료 메시지에 대한 재전송 타이머를 취소해야 합니다. RS_Nm_02545 )
참고: UdpNm은 동기화된 PNC 종료에 대한 새 요청(UdpNm_RequestSynchronizedPncShutdown을 통해 표시됨)이 PN 종료 NM 프레임의 진행 중인 전송 중에 손실되지 않도록 해야 합니다.

 

[SWS_UdpNm_00477] {DRAFT} UdpNmSynchronizedPncShutdownEnabled가 TRUE로 설정되고 UdpNmPnShutdownMessageRetransmissionDuration이 구성된 경우 UdpNm 모듈이 동기화된 PNC 종료로 인해 전송을 요청했거나(SWS_UdpNm_004475 UdpTPN iso가 있는 종료 요청에 대한 SWS_UdpNm_00dpTPN_OK 호출 결과)
메시지가 수락되지 않은 경우(SoAd_IfTransmit가 E_NOT_OK를 반환함) UdpNm 모듈은 동기화된 PNC 종료에 대한 보류 중인 요청으로 저장된 해당 PNC ID를 유지하고 다음 주 기능에서 재전송을 수행해야 합니다. RS_Nm_02545 )

 

참고:
- PN 종료 메시지의 전송이 하위 계층에 의해 확인되지 않은 경우(E_NOT_OK 또는 UdpNm_SoAdIfTxConfirmation이 호출되지 않은 경우) UdpNm은 해당하는 주요 기능 호출의 컨텍스트에서 PN 종료 메시지에 대한 재시도 전송 처리를 수행해야 합니다. 재시도 하위 계층이 Nm 메시지를 전송할 수 없는 경우 전송 요청은 오류 사례를 다루어야 합니다. 최악의 경우 UdpNmMsgCycleTime으로 전송된 연기된 NM 메시지와 충돌합니다(SWS_UdpNm_00472 참조). 그러나 어떤 경우에도 NM 메시지 전송 기능이 PN 재설정 시간(EIRA) 내에 복구되지 않으면 PNC가 동기화되지 않고 종료되어 애플리케이션에서 시간 초과 오류가 발생할 수 있습니다.

- 하위 계층이 나타내는 보류 중인 전송 확인에 대한 종속성은 신뢰할 수 있는 통신을 지원해야 합니다. 예를 들어 하위 계층의 대기열이 구성된 경우 PN 종료 메시지가 네트워크에서 전송되었는지 확인하거나 오래된 PN 종료 메시지의 전송을 피하십시오.

[SWS_UdpNm_00482] UdpNmSynchronizedPncShutdownEnabled가 TRUE로 설정되고 UdpNm 모듈이 동기화된 PNC 종료에 대한 보류 중인 요청으로 PNC ID를 저장한 경우 UdpNm은 외부 또는 내부적으로 다시 요청되는 해당 PNC ID를 저장소에서 제거해야 합니다.
- UdpNm은 외부에서 요청한 PNC가 수신된 경우 NM 메시지 수신을 확인해야 합니다.
- UdpNm은 해당 ComPdu에서 내부 PNC 요청을 파생하여 내부 PNC 요청을 사용할 수 있는 경우 PN 종료 메시지의 각 전송에 앞서 확인해야 합니다(UdpNmTxUserDataPduRef 참조).

[SWS_UdpNm_00483] UdpNmSynchronizedPncShutdownEnabled가 TRUE로 설정되고 UdpNmPnShutdownMessageRetransmissionDuration이 구성되지 않은 경우 UdpNm 모듈이 동기화된 PNC 종료로 인해 전송을 요청했습니다(SWS_UdpNm_00475 참조). (SoAdIf_Transmit가 E_NOT_OK를 반환함), UdpNm은 해당 NM 채널의 동기화된 PNC 종료에 대한 보류 중인 요청으로 저장된 PNC ID를 제거하고 런타임 오류 UDPNM_E_TRANSMISSION_OF_PN_SHUTDOWN_MESSAGE_FAILED를 DET에 보고합니다.

[SWS_UdpNm_00484] UdpNmSynchronizedPncShutdownEnabled가 TRUE로 설정되고 PN 종료 메시지에 대한 재전송 타이머(ECUC_UdpNm_00098 참조)가 만료되면 UdpNm은 동기화된 PNC 종료에 대한 보류 요청을 제거하고 오류 저장소에서 해당 NM 채널의 런타임을 보고합니다.

 

3. 내부 요청된 Partial Network 클러스터 처리

모든 내부 PNC 요청은 ComM에서 관리합니다. ComM은 채널당 집계된 내부 PNC 요청을 NmIf에 PNC 비트 벡터로 전달합니다. 이 PNC 비트 벡터는 소위 "Internal Request Array"을 전달합니다. UdpNm은 NM_PDU가 전송될 때마다 NmIf에서 최신 IRA를 검색해야 합니다. NmIf는 UdpNm에 IRA 정보를 제공하고 PNC 재설정 타이머를 업데이트합니다(관련 PNC가 전송될 때마다 PNC 재설정 타이머가 다시 시작됨).
참고: UdpNmPnEnabled가 TRUE로 설정된 모든 구성된 NM 채널의 경우 UdpNm은 Nm_PncBitVectorTxIndication(<NM-channel>, <집계된 내부 PNC 요청의 필터링되지 않은 PNC 비트 벡터를 저장하는 버퍼>)을 호출합니다. 전송을 표시하고 구성된 NmPncBitVectorLength에 대한 PNC 비트 벡터로 현재 내부 PNC 요청을 검색합니다. UdpNm은 수신된 내부 PNC 요청을 NM-PDU의 PNC 비트 벡터 바이트로 복사합니다.

 

4. NM PDU Filter Algorithm

[SWS_UdpNm_00335] {OBSOLETE} 수신된 NM-PDU에서 PN 요청 정보(PN Info Range)를 포함하는 범위(바이트)는 바이트 0에서 시작하는 UdpNmPnInfoOffset(바이트) 및 UdpNmPnInfoLength(바이트)로 정의됩니다. 이 범위를 PN 정보 범위라고 합니다.

예시:
- UdpNmPnInfoOffset = 3
- UdpNmPnInfoLength = 2
NM 메시지의 Byte 3 및 Byte 4에만 PN 요청 정보가 포함됩니다.

[SWS_UdpNm_00336] {OBSOLETE} PN 정보 범위의 모든 비트는 하나의 부분 네트워크를 나타냅니다. 비트가 1로 설정되면 부분 네트워크가 요청됩니다. 비트가 0으로 설정되면 이 PN에 대한 요청이 없습니다.

[SWS_UdpNm_00337] {OBSOLETE} 구성 매개변수 UdpNmPnFilterMaskByte를 통해 UdpNm은 ECU와 관련된 PN과 그렇지 않은 PN을 감지할 수 있습니다.

UdpNmPnFilterMasskByte의 각 비트는 다음과 같은 의미를 갖습니다.
0) PN 요청은 ECU와 관련이 없습니다. 이 비트가 수신된 NM-PDU에 설정되어 있으면 ECU의 통신 스택이 깨어 있는 상태로 유지되지 않습니다.

1) PN 요청은 ECU와 관련이 있습니다. 이 비트가 수신된 NM-PDU에 설정되어 있으면 ECU의 통신 스택이 깨어 있는 상태로 유지됩니다.

[SWS_UdpNm_00338] {OBSOLETE} 각 PN 필터 마스크 바이트는 NM 메시지의 PN 정보 범위에 있는 해당 바이트에 매핑(비트 AND)해야 합니다.

[SWS_UdpNm_00339] {OBSOLETE replace by SWS_UdpNm_00487 } 수신된 NM-PDU의 PN 정보 범위 내의 적어도 하나의 비트가 NM 필터 마스크의 비트와 일치하는 경우 PN 요청 정보는 ECU와 관련됩니다.

[SWS_UdpNm_00460] {OBSOLETE replace by SWS_UdpNm_00487 } 수신된 NM-PDU에 관련 PN이 요청되지 않고
UdpNmAllNmMessagesKeepAwake가 FALSE이면 PDU가 추가 처리에서 삭제됩니다.

[SWS_UdpNm_00461] {OBSOLETE replace by SWS_UdpNm_00487 } 수신된 NM-PDU에 관련 PN이 요청되지 않고
UdpNmAllNmMessagesKeepAwake가 TRUE이면 PDU가 추가 Rx 표시 처리에서 삭제되지 않아야 합니다.

 

5. 내부 및 외부 요청된 Partial Network 집계

참고: 이 기능은 Partial Network의 활동으로 인해 I-PDU-그룹을 전환해야 하는 모든 ECU에서 사용됩니다. (예: 잘못된 타임아웃을 방지하기 위해) I-PDU-그룹은 해당 PN이 내부 또는 외부에서 요청되는 경우 켜야 합니다. I-PDU-그룹은 해당 PN에 대한 모든 내부 및 외부 요청이 해제될 때까지 꺼지지 않습니다.

 

IPDU 그룹을 전환하기 위한 논리는 ComM에 의해 구현됩니다. UdpNm은 PN이 요청되었는지 여부만 정보를 제공합니다. COM 모듈은 데이터를 상위 계층으로 전송하는 데 사용됩니다.

 

모든 직접 연결된 ECU에서 I-PDU-그룹을 동기적으로 전환하기 위해 UdpNm은 모든 ECU에서 (거의) 동일한 시간에 상위 계층에 요청 변경 정보를 제공해야 합니다. 이것이 재설정 타이머가 수신된 모든 NM 메시지와 전송된 모든 NM 메시지에서 다시 시작되는 이유입니다(아래 참조).
내부/외부 요청 PN의 집계된 상태를 EIRA(External Internal Requests Aggregated)라고 합니다.

[SWS_UdpNm_00344] {OBSOLETE} UdpNmPnEiraCalcEnabled가 TRUE인 경우 UdpNm은 모든 관련 채널(UdpNmPnEnabled가 TRUE인 모든 UdpNm 채널)을 통해 결합된 외부 및 내부 요청 PN을 저장할 가능성을 제공해야 합니다. 초기화 시 모든 PN의 값은 0으로 설정되어야 합니다(요청되지 않음).

[SWS_UdpNm_00347] {OBSOLETE} 만약
- UdpNmPnEiraCalcEnabled가 참인 경우
- NM-PDU가 수신된 경우
- 이 메시지 내에서 PN이 요청된 경우(비트는 1로 설정됨)
- 그리고 요청된 PN이 [구성된 PN 필터 마스크] 내에서 1로 설정되면 UdpNm은 이러한 PN에 대한 요청 정보(값 1)를 저장해야 합니다.

[SWS_UdpNm_00348] {OBSOLETE} 만약
- UdpNmPnEiraCalcEnabled가 참인 경우
- NM-PDU가 UdpNM에서 보내도록 요청된 경우
- 이 메시지 내에서 PN이 요청된 경우(비트는 1로 설정됨)
- 그리고 요청된 PN이 [구성된 PN 필터 마스크] 내에서 1로 설정되면 UdpNm은 이러한 PN에 대한 요청 정보(값 1)를 저장해야 합니다.

[SWS_UdpNm_00345] {OBSOLETE} UdpNmPnEiraCalcEnabled가 TRUE이면 UdpNm 모듈은 이 PN이 관련 채널 중 적어도 하나에서 여전히 외부 또는 내부적으로 요청되는 경우 각 PN을 모니터링할 가능성을 제공해야 합니다.

참고: 즉, 연결된 여러 물리적 채널에서 하나의 PN을 처리하는 데 하나의 타이머만 필요합니다. 예: 6개의 물리적 채널과 8개의 부분 네트워크가 있는 게이트웨이의 요청을 처리하려면 8개의 EIRA 재설정 타이머만 필요합니다.
이는 PN PDU-그룹의 전환이 물리적 채널에 종속되지 않고 ECU에 대해 전역적으로 수행되기 때문에 가능합니다.

[SWS_UdpNm_00349] {OBSOLETE} UdpNmPnEiraCalcEnabled가 TRUE이고 메시지 수신 또는 전송에 의해 PN이 요청되는 경우(SWS_UdpNM_00347 및 SWS_UdpNm_00348 참조) 이 PN에 대한 모니터링은 UdpnResetTime과 관련하여 다시 시작되어야 합니다.

참고: UdpNmPnResetTime은 UdpNmMsgCycleTime보다 큰 값으로 구성되어야 합니다. UdpNmPnResetTime이 UdpNmMsgCycleTime보다 작은 값으로 구성되고 하나의 ECU만 PN을 요청하는 경우 요청 상태가 EIRA에서 토글됩니다.

참고: UdpNmPnResetTime은 NM이 이미 버스 슬립 준비로 변경된 후 타이머가 경과할 수 있는 것을 피하기 위해 UdpNmTimeoutTime보다 작은 값으로 구성되어야 합니다.

[SWS_UdpNm_00351] {OBSOLETE} UdpNmPnEiraCalcEnabled가 TRUE이고 UdpNmPnResetTime 내에 PN이 다시 요청되지 않으면 이 PN에 해당하는 저장된 값을 0으로 설정해야 합니다(요청되지 않음).

[SWS_UdpNm_00352] {OBSOLETE} UdpNmPnEiraCalcEnabled가 TRUE이고 PN에 대한 저장된 값이 요청됨으로 설정되거나 다시 요청되지 않음으로 설정되는 경우(SWS_UdpNm_00347, SWS_UdpNm_00347 참조, SWS_UdpNm_00348 및 SWS_035NmR에 대해 구성된 SWS_UdpNm_00348 및 SWS_UdpNmR을 호출하여 SWS_UdpNm_R을 알립니다. 즉, 변경된 EIRA 정보는 COM에 전달됩니다).

참고: PN 종료 메시지가 수신되면(PNSR이 1로 설정됨) 해당 PNC 상태 머신이 COMM_PNC_READY_SLEEP에 있어야 하기 때문에 특별한 처리가 필요하지 않습니다. ERA PDU만 다른 방식으로 처리됩니다(SWS_UdpNm_00478 참조).

[SWS_UdpNm_00372] {OBSOLETE} UdpNmPnEiraCalcEnabled가 TRUE이고 UdpNmPnEraCalcEnabled가 TRUE인 경우 PN 상태 정보는 EIRA 및 ERA 정보에 대해 별도로 저장되어야 합니다(SWS_UdpNM_00344 및 SWS_00345와 비교).

 

7. UdpNm_NetworkRequest를 통한 NM-PDU의 자발적 전송

[SWS_UdpNm_00362]⌈ UdpNm_NetworkRequest가 호출되면 UdpNmPnHandleMultipleNetworkRequests는 TRUE로 설정되고 UdpNm은 준비 슬립 상태, 정상 작동 상태 또는 반복 메시지 상태, UdpNm은 반복 메시지 상태로 변경하거나 다시 시작해야 합니다.


참고: UdpNmPnHandleMultipleNetworkRequests가 TRUE로 설정된 경우 UdpNm 기능 '즉시 전송'은 필수입니다.
참고: PNC 제어 모듈(예: ComM)은 PNC 비트가 변경되는 경우 UdpNm_NetworkRequest를 호출합니다.

반응형

+ Recent posts