[Classic AUTOSAR] UDP Network Management(NM) 3. 기능 사양 (6) Communication Scheduling
NM Message 송출
참고: 이 장에서 설명하는 전송 메커니즘은 NM 메시지 전송 기능이 활성화된 경우에만 관련이 있습니다.
[SWS_UdpNm_00072] NM 메시지의 전송은 UdpNmPassiveModeEnabled를 통해 구성되어야 합니다.
참고: 수동 노드는 NM 메시지를 전송하지 않습니다. 즉, 종료 결정에 능동적으로 영향을 줄 수 없지만 동기적으로 종료할 수 있도록 NM 메시지를 수신합니다.
참고: 이 장에서 설명하는 전송 메커니즘은 UdpNmPassiveModeEnabled가 FALSE인 경우에만 관련이 있습니다.
[SWS_UdpNm_00237] UdpNm 모듈은 주기적 전송 모드를 제공해야 합니다. 이 전송 모드에서 UdpNm 모듈은 주기적으로 네트워크 관리 PDU를 전송해야 합니다.
참고: 주기적 전송 모드는 "Repeat Message State" 및 "Normal Operation State"에서 사용됩니다.
[SWS_UdpNm_00005] 반복 메시지 상태가 UdpNm_NetworkRequest를 통해 입력되지 않거나 UdpNmImmediateNmTransmissions가 0이면 반복 메시지 상태에 들어간 후 NM PDU의 전송이 UdpNmMsgCycleOffset만큼 지연됩니다.
참고: 이 요구 사항은 Repeat Message 요청 또는 비트(SWS_UdpNm_00111, SWS_UdpNm_00112, SWS_UdpNm_00119, SWS_UdpNm_00120 참조)로 인해 Network Operation 상태 또는 Ready Sleep 상태에서 Repeat Message 상태가 입력되는 경우에도 적용됩니다. 이는 이 경우 즉각적인 전송이 사용되지 않음을 의미합니다(UdpNmImmediateNmTransmissions > 0이고 UdpNmPnHandleMultipleNetworkRequests의 구성과 독립적인 경우에도). 즉, UdpNmMsgCycleOffset이 항상 적용됩니다. 이 메커니즘은 NM 메시지의 버스트를 방지합니다.
[SWS_UdpNm_00334] UdpNm_NetworkRequest()(active wakeup)로 인해 Bus Sleep 모드 또는 Prepare Bus Sleep 모드에서 반복 메시지 상태로 들어갈 때 UdpNmImmediateNmTransmissions가 0보다 큰 경우 NM PDU는 UdpNmImmediateNmCycleTime을 주기 시간으로 사용하여 전송됩니다. 첫 번째 NM PDU의 전송은 가능한 한 빨리 트리거되어야 합니다. 전송 후 메시지 주기 타이머는 UdpNmImmediateNmCycleTime으로 다시 로드됩니다. 이 경우 UdpNmMsgCycleOffset이 적용되지 않습니다.
[SWS_UdpNm_00006] Ready Sleep State에서 Normal Operation State가 되면 NM PDU의 전송은 즉시 시작되어야 한다.
[SWS_UdpNm_00454] UdpNmPnHandleMultipleNetworkRequests가 TRUE로 설정되면 UdpNm_NetworkRequest는 Network Mode에서 Repeat Message 상태로 상태 전환을 트리거해야 합니다. PDU 전송 능력이 활성화되면 NM PDU는 UdpNmImmediateNmCycleTime을 주기 시간으로 사용하여 전송되어야 합니다. 첫 번째 NM PDU의 전송은 가능한 한 빨리 트리거되어야 합니다. 전송 후 메시지 주기 타이머는 UdpNmImmediateNmCycleTime으로 다시 로드됩니다. 이 경우 UdpNmMsgCycleOffset이 적용되지 않습니다.
참고: UdpNmImmediateNmTransmissions는 이 경우 ECUC_UdpNm_00075로 인해 0보다 커야 합니다.
[SWS_UdpNm_00330] NM PDU가 UdpNmImmediateNmCycleTime과 함께 전송되어야 하는 경우(SWS_UdpNm_00334 및 SWS_UdpNm_00454 참조), UdpNm은 UdpNmImmediateNmTransmissions를 포함하여 성공적으로 요청된 UdpNmImmediateNmTransmissions SoAd에 대한 전송 요청이 실패하면(E_NOT_OK가 반환됨) UdpNm은 다음 주 기능에서 전송 요청을 다시 시도합니다. 그 후 UdpNm은 UdpNmMsgCycleTime을 사용하여 NM PDU를 계속 전송해야 합니다.
참고: UdpNmImmediateNmCycleTime을 사용하여 NM PDU를 전송하는 동안 다른 Nm PDU는 전송되지 않습니다(즉, UdpNmMsgCycleTime 전송 주기가 중지됨).
[SWS_UdpNm_00032] NM PDU의 전송이 시작되고 UdpNm 메시지 사이클 타이머가 만료되면 NM PDU는 SoAd_IfTransmit을 호출하여 SoAd를 통해 전송되어야 합니다.
[SWS_UdpNm_00040] UdpNm 메시지 주기 타이머가 만료되면 UdpNmMsgCycleTime으로 다시 시작해야 합니다.
[SWS_UdpNm_00051] NM PDU의 전송이 중단된 경우 UdpNm 메시지 주기 타이머는 취소되어야 합니다.
[SWS_UdpNm_00007] 매개변수 UdpNmRetryFirstMessageRequest(ECUC_UdpNm_00085 참조)가 TRUE이고 버스 슬 립에서 메시지 반복 상태로의 전환 후 첫 번째 전송 요청이 SoAd에 의해 수락되지 않으면 메시지 요청은 하나의 전송 요청이 수락될 때까지 다음 주 기능에서 반복되어야 합니다. SoAd에 의해.
참고: 이 기능은 부분 네트워크 웨이크업 필터의 경우 수동 시작 및 첫 번째 메시지 요청이 그렇지 않은 경우 모든 메시지의 차단을 피하기 위해 사용할 수 있습니다.
EthSM으로 인해 SoAd에 의해 허용된 것은 전송 경로를 충분히 빠르게 활성화할 수 없습니다(예: 비동기 트랜시버 처리의 경우).
[SWS_UdpNm_00379] UdpNm_SoAdIfTxConfirmation이 결과 E_NOT_OK와 함께 호출되면 UdpNm은 함수 Nm_TxTimeoutException을 호출해야 합니다. (SRS_Nm_00137)
수신
NM 메시지가 성공적으로 수신되면 SoAd는 UdpNm_SoAdIfRxIndication을 호출합니다.
[SWS_UdpNm_00035] UdpNm_SoAdIfRxIndication의 호출 시 UdpNm 모듈은 기능 매개변수에서 참조하는 네트워크 관리 PDU의 데이터를 내부 버퍼에 복사해야 합니다.
[SWS_UdpNm_00037] NM PDU가 수신되면 UdpNmPduRXIndicationEnabled(구성 매개변수)가 TRUE인 경우 Nm 기능 Nm_PduRxIndication이 호출됩니다.