반응형

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

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

 

 

네트워크 상태(즉, 'requested' 및 'released')는 상태 머신과 병렬로 존재하는 AUTOSAR UdpNm 상태 머신의 두 가지 추가 상태입니다. 

 

네트워크 상태는 소프트웨어 구성 요소가 버스에서 통신해야 하는지 여부를 나타냅니다(네트워크 상태는 'requested'됨). 또는 소프트웨어 구성 요소가 버스에서 통신할 필요가 없는지 여부(버스 네트워크 상태는 'released'됨) 네트워크가 해제된 경우 다른 ECU가 여전히 네트워크를 요청하기 때문에 ECU는 여전히 통신할 수 있습니다.


[SWS_UdpNm_00104] ⌈UdpNm_NetworkRequest 함수 호출은 네트워크를 요청해야 합니다. 즉. UdpNm 모듈은 네트워크 상태를 'requested'으로 변경합니다.

 

[SWS_UdpNm_00105] ⌈ UdpNm_NetworkRelease 함수 호출은 네트워크를 해제합니다. 즉. UdpNm 모듈은 네트워크 상태를 'released'로 변경합니다.

반응형
반응형

[Classic AUTOSAR] UDP Network Management(NM) 3. 기능 사양 (2)Operational Modes

 

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

 

이번에는 AUTOSAR UdpNm 조정 알고리즘의 작동 모드를 설명합니다.

 

[SWS_UdpNm_00092] AUTOSAR UdpNm은 모듈 인터페이스에서 볼 수 있는 세 가지 작동 모드를 포함해야 합니다.
Network Mode
Prepare Bus-Sleep Mode
Bus-Sleep Mode
[SWS_UdpNm_00093] AUTOSAR UdpNm 작동 모드의 변경은 콜백 기능을 통해 상위 계층에 알려야 합니다.

 

Network Mode

[SWS_UdpNm_00094] 네트워크 모드는 세 가지 내부 상태로 구성됩니다.
Repeat Message State
Normal Operation State
Ready Sleep State

 

[SWS_UdpNm_00095] Network Mode가 Bus-Sleep Mode또는 Prepare Bus-Sleep Mode에서 기본적으로 입력되면 반복 메시지 상태로 들어갑니다.


[SWS_UdpNm_00096] Network Mode로 들어가면 NM-Timeout Timer가 시작됩니다.
[SWS_UdpNm_00097] Network Mode로 진입하면 UdpNm은 Nm_NetworkMode를 호출하여 상위 계층에 알려야 한다.
[SWS_UdpNm_00098] Network Mode에서 NM PDU(UdpNm_SoAdIfRxIndication 호출)를 성공적으로 수신하면 NM 타임아웃 타이머가 다시 시작됩니다.
[SWS_UdpNm_00099] Network Mode에서 NM PDU(E_OK와 함께 UdpNm_SoAdIfTxConfirmation 호출) 전송 시 NM-Timeout 타이머가 다시 시작되어야 합니다.
참고: SoAd 또는 TCP/IP 스택에서 전송 확인을 사용할 수 없으므로 각 네트워크 관리 PDU 전송 요청이 성공적인 네트워크 관리 PDU 전송을 가져온다고 가정합니다.
[SWS_UdpNm_00206] NM-Timeout Timer는 시작되거나 다시 시작될 때마다 재설정되어야 합니다.

 

1) Repeat Message State

[SWS_UdpNm_00100] Bus-Sleep Mode, Prepare-Bus-Sleep Mode, Normal Operation State 또는 Ready Sleep State에서 Repeat Message State가 입력되면 Passive 모드가 활성화되지 않는 한 NM 패킷의 전송이 (재) 시작됩니다.

[SWS_UdpNm_00101] 반복 메시지 상태에서 NM-Timeout 타이머가 만료되면 NM-Timeout 타이머를 다시 시작해야 합니다.

[SWS_UdpNm_00102] NM은 UdpNmRepeatMessageTime(구성 매개변수)에 의해 결정된 구성 가능한 시간 동안 반복 메시지 상태에 있어야 합니다. 그 시간 이후에는 반복 메시지 상태가 남습니다.


[SWS_UdpNm_00103] 반복 메시지 상태가 남아 있을 때 네트워크가 요청되면 정상 작동 상태로 들어갑니다(SWS_UdpNm_00104 참조).


[SWS_UdpNm_00106]반복 메시지 상태가 남아 있을 때 네트워크가 해제된 경우 준비 슬립 상태가 됩니다(SWS_UdpNm_00105 참조).


[SWS_UdpNm_00107] UdpNmNodeDetectionEnabled가 TRUE로 설정되면 UdpNm은 반복 메시지 상태를 떠날 때 반복 메시지 비트를 지웁니다.


[SWS_UdpNm_00137] UdpNm_RepeatMessageRequest 서비스가 Repeat Message State, Prepare Bus-Sleep Mode or Bus-Sleep Mode에서 호출되면 UdpNm 모듈은 서비스를 실행하지 않고 E_NOT_OK를 반환합니다.

 

2) Normal Operation State

정상 작동 상태는 네트워크 기능이 필요한 한 모든 노드가 NM 클러스터를 활성 상태로 유지할 수 있도록 합니다.
[SWS_UdpNm_00116] Ready Sleep State에서 Normal Operation State가 되면 Passive 모드가 활성화되거나 NM 메시지 전송 기능이 비활성화되지 않는 한 NM PDU의 전송이 시작됩니다.

[SWS_UdpNm_00117] NM-Timeout Timer가 정상 동작 상태에서 만료되면 NM-Timeout Timer를 다시 시작해야 합니다.

 

[SWS_UdpNm_00118] 네트워크가 해제되고 현재 상태가 Normal Operation State인 경우 Normal Operation State는 그대로 있고 Ready Sleep 상태는 진입한다(SWS_UdpNm_00105 참조).

 

[SWS_UdpNm_00119] UdpNmNodeDetectionEnabled가 TRUE로 설정되고 정상 작동 상태에서 반복 메시지 요청 비트가 수신되면 UdpNm은 반복 메시지 상태로 들어갑니다. (SRS_Nm_00153)

 

[SWS_UdpNm_00120] UdpNmNodeDetectionEnabled가 TRUE로 설정되고 정상 작동 상태에서 UdpNm_RepeatMessageRequest 함수가 호출되면 UdpNm은 반복 메시지 상태로 들어갑니다. (SRS_Nm_00153)

 

[SWS_UdpNm_00121] UdpNmNodeDetectionEnabled가 TRUE로 설정되고 정상 작동 상태에서 UdpNm_RepeatMessageRequest 함수가 호출되면 UdpNm은 반복 메시지 비트를 설정해야 합니다. (SRS_Nm_00153)

 

3) Ready Sleep State

Ready Sleep State는 다른 노드가 NM 클러스터를 활성화 상태로 유지하는 한 NM 클러스터의 모든 노드가 Prepare Bus-Sleep Mode로의 전환과 함께 대기하도록 합니다.

 

[SWS_UdpNm_00108] Repeat Message State 또는 Normal Operation State에서 Ready Sleep State로 진입하면 NM PDU의 전송을 중지한다.

 

참고: 수동 모드가 활성화된 경우 NM PDU가 전송되지 않으면 조치가 필요하지 않습니다.

[SWS_UdpNm_00109] NM-Timeout Timer가 Ready Sleep 상태에서 만료되면 Ready Sleep State는 남아 있고 Prepare Bus-Sleep Mode로 들어갑니다.

 

[SWS_UdpNm_00110] 네트워크가 요청되고 현재 상태가 Ready Sleep State이면 Ready Sleep State는 그대로 Normal Operation State로 진입한다(SWS_UdpNm_00104 참조).

 

[SWS_UdpNm_00111] UdpNmNodeDetectionEnabled가 TRUE로 설정되고 준비 슬립 상태에서 반복 메시지 요청 비트가 수신되면 UdpNm은 반복 메시지 상태로 들어갑니다. (SRS_Nm_00153)

 

[SWS_UdpNm_00112] UdpNmNodeDetectionEnabled가 TRUE로 설정되고 Ready Sleep 상태에서 UdpNm_RepeatMessageRequest 함수가 호출되면 UdpNm은 반복 메시지 상태로 들어갑니다.(SRS_Nm_00153)

 

[SWS_UdpNm_00113] UdpNmNodeDetectionEnabled가 TRUE로 설정되고 UdpNm_RepeatMessageRequest 함수가 Ready Sleep 상태에서 호출되면 UdpNm은 반복 메시지 비트를 설정해야 합니다. (SRS_Nm_00153)

 

 

Prepare Bus-Sleep Mode

Prepare Bus Sleep 상태의 목적은 Bus Sleep 상태가 되기 전에 모든 노드가 네트워크 활동을 중지할 시간을 갖도록 하는 것입니다. 버스 활동이 진정되고(즉, 모든 Tx 버퍼를 비우기 위해 대기 중인 메시지가 전송됨) 마지막으로 버스 대기 모드에서 버스 활동이 없습니다.

[SWS_UdpNm_00114] Prepare Bus-Sleep Mode로 진입하면 UdpNm은 Nm_PrepareBusSleepMode를 호출하여 상위 계층에 알려야 한다.

[SWS_UdpNm_00115] NM은 UdpNmWaitBusSleepTime(구성 매개변수)에 의해 결정된 구성 가능한 시간 동안 Prepare Bus-Sleep 모드를 유지해야 합니다. 그 시간 이후에는 Prepare Bus Sleep 모드가 종료되고 Bus Sleep 모드로 들어갑니다.

[SWS_UdpNm_00124] Prepare Bus-Sleep Mode에서 NM PDU를 성공적으로 수신하면 Prepare Bus-Sleep Mode가 남아 있고 Network Mode로 들어갑니다. 기본적으로 반복 메시지 상태가 입력됩니다(SWS_UdpNm_00095 참조).

[SWS_UdpNm_00123] 네트워크가 Prepare Bus-Sleep 모드에서 요청되면 Prepare Bus-Sleep 모드가 남아 있어야 하고 네트워크 모드로 들어갑니다. 기본적으로 반복 메시지 상태가 입력됩니다(SWS_UdpNm_00095 참조).

[SWS_UdpNm_00122] Prepare Bus-Sleep Mode에서 네트워크가 요청되고(SWS_UdpNm_00104 참조) UdpNm 모듈이 네트워크 모드로 진입하고 UdpNmImmediateRestartEnabled(구성 매개변수)가 TRUE인 경우 UdpNm 모듈은 네트워크 관리 PDU를 전송해야 합니다.

근거: 클러스터의 다른 노드는 여전히 Prepare Bus-Sleep 모드 준비에 있습니다. 위에서 설명한 예외적인 상황에서 버스 슬립 모드로의 전환은 피해야 하고 버스 통신은 가능한 한 빨리 복구되어야 합니다.
UdpNm의 네트워크 관리 PDU에 대한 전송 오프셋으로 인해 반복 메시지 상태에서 첫 번째 네트워크 관리 PDU의 전송이 크게 지연될 수 있습니다. 네트워크의 지연된 재시작을 피하기 위해 네트워크 관리 PDU의 전송을 즉시 요청할 수 있습니다.

참고: UdpNmImmediateRestartEnabled가 TRUE이고 웨이크업 라인이 사용되는 경우 모든 네트워크 노드가 버스 절전 모드 준비에서 네트워크 요청을 받으면 네트워크 관리 PDU 버스트가 발생합니다.

 

Bus-Sleep Mode

Bus-Sleep 상태의 목적은 메시지를 교환하지 않을 때 노드의 전력 소비를 줄이는 것입니다.

통신 컨트롤러가 슬립 모드로 전환되고 각각의 웨이크업 메커니즘이 활성화되고 최종적으로 버스 슬립 모드에서 전력 소비가 적절한 수준으로 감소됩니다.
UdpNmTimeoutTime + UdpNmWaitBusSleepTime(두 구성 매개변수)에 의해 결정된 구성 가능한 시간이 네트워크 관리 클러스터의 모든 노드에 대해 동일하게 구성되면 AUTOSAR NM 알고리즘의 사용으로 조정되는 네트워크 관리 클러스터의 모든 노드는 다음으로 전환을 수행합니다. 

참고: 매개변수 UdpNmTimeoutTime 및 UdpNmWaitBusSleepTime은 NM 클러스터의 모든 네트워크 노드 내에서 동일한 값을 가져야 합니다.
특정 구현에 따라 Bus-Sleep 모드로의 전환은 거의 동시에 발생합니다. 이 전환에 대해 발생하는 시간 지터는 다음 요인에 따라 다릅니다.
내부 클록 정밀도(발진기의 드리프트), NM 작업 주기 시간(작업이 글로벌 시간과 동기화되지 않은 경우), Tx-queue에서 NM PDU 대기 시간(전송 요청 직후 전송 확인이 이루어진 경우).

최상의 경우 추정을 위해 UdpNmTimeoutTime + UdpNmWaitBusSleepTime(두 구성 매개변수 모두) 값에 의해 결정되는 구성 가능한 시간에 대해 오실레이터 드리프트만 고려해야 합니다.

[SWS_UdpNm_00126] 버스 슬립 모드에 들어가면 UdpNm은 Nm_BusSleepMode를 호출하여 상위 계층에 알려야 합니다. Bus-Sleep인 경우에는 그렇지 않습니다. 모드는 초기화 시 기본적으로 입력됩니다.

[SWS_UdpNm_00127] UdpNm 모듈이 버스 슬립 모드(UdpNm_SoAdIfRxIndication 호출)에서 네트워크 관리 PDU를 성공적으로 수신하면, UdpNm 모듈은 Nm_NetworkStartIndication 콜백 함수를 호출하여 상위 계층에 알려야 합니다.
근거: 네트워크와 모드 관리 간의 경쟁 조건 및 상태 불일치를 피하기 위해 UdpNm은 버스 절전 모드에서 네트워크 모드로의 전환을 자동으로 수행하지 않습니다. UdpNm은 깨우기 결정을 내려야 하는 상위 계층에게만 알려줍니다. Bus-Sleep 모드에서 NM 패킷 수신은 ECU 종료 또는 시작 프로세스의 현재 상태에 따라 처리되어야 합니다.

[SWS_UdpNm_00128] UdpNm_PassiveStartUp이 버스 슬립 모드 또는 버스 슬립 모드 준비에서 호출되면 UdpNm 모듈은 네트워크에 진입해야 합니다.
방법; 기본적으로 반복 메시지 상태가 입력됩니다(SWS_UdpNm_00095 및 SWS_UdpNm_00104 참조).

참고: 버스 통신이 명시적으로 요청되지 않는 한 준비 버스 휴면 모드 및 버스 휴면 모드에서는 네트워크가 해제된 것으로 가정합니다.

[SWS_UdpNm_00129]: 네트워크가 버스 절전 모드에서 요청되면 UdpNm 모듈은 네트워크 모드로 들어갑니다. 기본적으로 UdpNm 모듈은 반복 메시지 상태를 입력해야 합니다(SWS_UdpNm_00095 및 SWS_UdpNm_00104 참조).

반응형
반응형

[Classic AUTOSAR] UDP Network Management(NM) 3. 기능 사양 (1)Coordination algorithm

 

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

 

AUTOSAR UdpNm은 분산형 직접 네트워크 관리 전략을 기반으로 하므로 모든 네트워크 노드가 자체적으로 활동을 수행합니다. 통신 시스템 내에서 수신 및/또는 전송된 UDP 패킷에만 의존합니다. AUTOSAR UdpNm 조정 알고리즘은 브로드캐스트 전송을 통해 클러스터의 모든 노드에서 수신하는 주기적인 NM 패킷을 기반으로 합니다. NM 패킷의 수신은 송신 노드가 NM 클러스터를 깨어 있는 상태로 유지하기를 원한다는 것을 나타냅니다. 버스 슬립 모드로 전환할 준비가 된 노드가 있으면 NM 패킷 전송을 중지하지만 다른 노드에서 NM 패킷을 수신하는 한 버스 슬립 모드로의 전환을 연기합니다. 마지막으로 NM 패킷이 더 이상 수신되지 않아 전용 타이머가 경과하면 모든 노드가 버스 슬립 모드로의 전환을 시작합니다.

 

NM 클러스터의 노드가 버스 통신을 필요로 하는 경우 NM 패킷을 전송하여 NM 클러스터를 활성 상태로 유지할 수 있습니다.  AUTOSAR UdpNm 조정 알고리즘의 주요 개념은 다음 두 가지 핵심 요구 사항으로 정의할 수 있습니다.

 

[SWS_UdpNm_00087] 모든 네트워크 노드는 버스 통신이 필요한 한 주기적 NM PDU를 전송해야 합니다. 그렇지 않으면 NM PDU를 전송하지 않습니다. 

 

[SWS_UdpNm_00088] 버스 통신이 해제되고 UdpNmTimeoutTime + UdpNmWaitBusSleepTime(두 구성 매개변수)에 의해 결정된 구성 가능한 시간 동안 버스에 NM PDU가 없으면 버스 슬립 모드로 전환해야 합니다.

 

AUTOSAR UdpNm 조정 알고리즘의 전체 상태 머신은 다음과 같이 정의할 수 있습니다.

[SWS_UdpNm_00089] ⌈ AUTOSAR UdpNm 상태 머신은 NM 클러스터의 단일 노드 관점에서 볼 때 AUTOSAR UdpNm 조정 알고리즘에 필요한 상태, 전환 및 트리거를 포함해야 합니다.

반응형
반응형

[Classic AUTOSAR] UDP Network Management(NM) 2. 파일 구성

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

 

File 용도
UdpNm_Lcfg.c 링크 시간 구성 가능한 매개변수용
UdpNm_PBcfg.c 빌드 후 구성 가능한 매개변수용
UdpNm.h 제공된 인터페이스 기능의 선언용
UdpNm_Cbk.h 제공된 콜백 함수의 선언용
UdpNm_Cfg.h 사전 컴파일 시간 구성 가능한 매개변수용
ComStack_Types.h: Std_Types.h, Platform_Types.h, Compiler.h 포함
Std_Types.h AUTOSAR standard 타입
Platform_Types.h platform specific 타입
Compiler.h 컴파일러 특정 언어 확장용
UdpNm.h 제공된 인터페이스 기능의 선언용
Nm_Cbk.h 일반 네트워크 관리 인터페이스에 대한 UdpNm 특정 콜백
Det.h DET의 인터페이스용 - DET가 구성된 경우에만 옵션이 포함됨
NmStack_Types.h 일반적인 네트워크 관리 유형용
SchM_UdpNm.h 기본 소프트웨어 스케줄러 서비스용
UdpNm_MemMap.h 메모리 매핑용
SoAd_Cfg.h PDU ID 및 소켓 연결용
Nm_Cfg.h Nm에서 파생된 구성 항목의 경우
반응형

+ Recent posts