Autosar에서 정리되어 있는 BSW 영역의 Nm 관련 Stack은 다음과 같다.

AUTOSAR_SWS_NetworkManagementInterface(4.2.2)

 

여기서 알 수 있듯, CanNm위에 Nm이 존재하고, 또한 Nm 위에는 ComM이 존재 한다.

따라서 사용자는 CanNm의 API를 직접 호출하는 방법 보다는, ComM을 통해 Nm을 제어 하고, Nm이 CanNm을 제어하는 것이 알맞는 접근 방법이다.

그럼 이제 앞서 배운 Nm State Machine을 제어 하기 위해 필요한 CanNm API를 직접 호출하지 않고, ComM을 통해 호출하는 방법과 그 이유에 대해 알아 보도록 하자.

 

 

1. NetworkRequest

Local Wakeup Event(IGN On등)가 감지된 경우 동작 

ComM의 Sequence Diagram

 

해당 Sequence Diagram을 살펴 보면 다음과 같이 동작 한다.

  1. User가 Rte를 통해 ComM에게 ComM_RequestComMode(COMM_FULL_COMMUNICATION)을 요청
  2. ComM이 Nm에게 Nm_NetworkRequest()를 요청

 

2. Passive Startup

Remote Wakeup Event(Nm Message 수신 등)가 감지된 경우의 동작

ComM의 Sequence Diagram

 

해당 Sequence Diagram을 살펴 보면 다음과 같이 동작 한다.

  1. Remote Wakeup 인지 한 경우, Nm이 ComM에게 ComM_Nm_NetworkStartIndication()을 호출
  2. 이로 인해, ComM이 Nm에게 Nm_PassiveStartup()를 호출

다만, 이전 장에서 언급 하였듯, Power Off상태에서 깨어나, Bus Sleep이 된 경우에는 사용자가 직접 호출 해야 한다.

따라서, Bus Sleep에서는 사용자가 ComM_Nm_NetworkStartIndication() 호출이 필요하다.

 

3. Network Release

System이 Normal Operation에서 동작 하다가, 스스로 꺼질 시점이라고 판단 되면, Network Release를 해야 한다.

Figure 15: Network shutdown (CAN)

해당 Sequence Diagram을 살펴 보면 다음과 같이 동작 한다.

  1. 사용자가 Rte를 통해, ComM_RequestComMode(COMM_NO_COMMUNICATION)을 호출
  2. 이로 인해, ComM이 Nm에게 Nm_NetworkRelease()를 호출

 

4. ComM API 정리

  ComM API 의도한 Nm State Machine 동작
  ComM_RequestComMode( COMM_FULL_COMMUNICATION ) Network Request
  ComM_Nm_NetworkStartIndication() Passive Startup
  ComM_RequestComMode( COMM_NO_COMMUNICATION ) Network Release

 

'Com Stack in ClassicAUTOSAR > NetworkManagement' 카테고리의 다른 글

2. NM State Machine - Overall  (0) 2024.09.18
1. Introduce of Network Management  (0) 2024.06.09

1. NM State Machine - Overall

NM State Machine은 NM을 이해하는 가장 중요하고 기본적인 부분이다.

CanNm에서 다음과 같이 State Machine이 정의 되어 있다.

 

이중, 사용자가 고려하여할 구현 Point는 다음과 같다.

Condition Description
Power On Power On시, MCU 전원 인가 및 Software가 처음 시작 하게 되며,
이 시점에 CanNm_Init() 을 호출 해야 함.

CanNm_Init()을 호출하면, CanNm은 Bus Sleep Mode에 있게 됨.
이때 사용자는 Wakeup Event의 종류(Locak Wakeup 혹은 Remote Wakeup)를 감지하여,
Repeat Mode State로 천이를 해야 한다.
Network Mode로 진입 1
- CanNm_PassiveStartup()
만약 Remote Wakeup(CAN Wakeup Pattern, Frame 등)에 의해 깨어난 경우,
사용자는 CanNm_PassiveStartup()을 호출 해야 한다.
이 호출을 통해 Nm State Machine은 Repeat Message State로 천이 해야 한다.
이 경우, Network 상태는 "Network Released" 가 유지 된다.
Network Mode로 진입 2
- CanNm_NetworkRequest()
만약 Local Wakeup(Ignition On 등)에 의해 깨어난 경우,
사용자는 CanNm_NetworkRequest()을 호출 해야 한다.
이 호출을 통해 Nm State는 Repeat Message State로 천이 해야 한다.

이 경우, Network 상태는 "Network Request" 로 변경 된다.
CanNm_NetworkRelease() "Network Request"상태로 Normal Operation State에서 동작하다가,
Network Release 및 System 종료가 필요한 경우, 
사용자가 CanNm_NetworkRelease()를 호출 하게 된다.
이 호출을 통해 Nm State Machine은 Ready Sleep State로 천이 하며,
Network 상태는 "Network Released" 상태로 변경 된다.

 

2. Power On to Bus Sleep Mode

Power On 시점에 대한 동작은 추가적인 정보가 필요 하기 때문에, 이번 장에서 좀더 알아보도록 한다.

 

NM 사양을 적용하는 System의 경우에는 보통 특정 CAN Pattern에 의해 Wakeup이 가능한 Trcv를 사용 한다.

Wakeup 회로 Diagram

 

이 경우, Regulator는 아래 두가지에 의해 Enable된다.

  • Trcv가 특정 Wakeup Patten(혹은 Frame)을 인지하는 경우, INH을 High로 설정하여 Regulator를 Enable
  • IGN에 의해 Regulator를 Enable

Regulator가 MCU의 전원을 인가 하게 되면, Software가 동작을 시작하고, Software는 초기 다음 동작을 수행한다.

  1. Software가 처음 시작시, CanNm_Init()를 호출
  2. 이로 인해(초기 시작으로 인해), Nm State가 Bus Sleep으로 천이 된 경우, 다음 동작 수행
    1. INH에 의해 Wakeup된 경우에는 CanNm_PassiveStartup() 함수를 호출
    2. IGN에 의해 Wakeup된 경우에는 CanNm_NetworkRequest() 할수를 호출

 

이번 장에서는 NM State Machine의 Overall Concept과 필요한 API 함수에 대해 알아 보았다.

다만 이번 장에서 기술한 NM API는 Autosar Layered Architecture상 사용자가 직접 호출하는 것이 권장 되지 않으며,

ComM의 API를 통해서 간접적으로 호출 되어야 안정적으로 동작이 가능 하다.

 

이후의 장에서는 다음 내용에 대해 기술할 예정 이다.

  •  Nm API를 호출하기 위해 필요한 ComM API와 그 이유(Autosar 문서 기반)
  • 나머지 Nm State Machine에 대한 자세한 서술

 

자동차 시장에서 F-OTA기술은 점점 필수 기능으로 되어 가고 있으며,

개인적으로 Network Management 기술은 F-OTA기술을 지원하기 위한 가장 필수적인 기술이라 생각 합니다.

 

이번 포스팅에서는 AUTOSAR의 Network Management관련된 SWS문서를 분석하면서, Network Management(이하 NM) 기술이란 무엇이고, 어떤 특징을 가지고 있는지 살펴보도록 하겠습니다.

 

우선 들어가기에 앞서, 미리 알고 있어야 할 개념 몇가지를 설명하도록 하겠습니다. 

 

KL30 Base System, KL15 Base System

  • KL30 Base System
    Battery에 연결 되어 있는 Node로, Battery 탈거 전까지는 해당 Node는 항상 켜져 있으며 동작하게 됩니다. 

  • KL15 Base System
    IGN에 의해 Node의 Operation Cycle이 정해 지게 됩니다.
    즉 IGN On되면 해당 Node는 Power On되어 동작 하게 되며, IGN Off되면 해당 Node는 Power Down이 되고,
    이때 한번의 Operation Cycle이 종료되게 됩니다.

 

과거 KL15 Base System에서 F-OTA를 하는 방법은 다음과 같은 절차로 진행 되었습니다.

  1. End User가 운행 종료 및 IGN Off. 이때 Pop-Up으로 F-OTA 수행 여부를 고객에게 문의
  2. End User가 동의하는 경우, 필요 Node들이 Download 수행
  3. 다운로드 완료 이후, Node Power Down

 

이 경우, 다음과 같은 제한 사항이 존재 하게 됩니다.

  1. IGN Off 시점에 End User가 동의한 경우에만 F-OTA가 가능하므로,
    차량이 이미 Sleep에 있는상태(주로 End User가 자고 있는 새벽)에서 Download는 불가능 함.
  2. F-OTA가 필요한 모든 Node들은 다 깨어나서 Download를 대기 해야 하기 때문에, 필요없는 전력이 낭비 될수 있음.

 

NM 기술 소개

다음은 NM 기술을 이용하여, 이러한 한계를 개선 하는 내용을 설명 하고 있으며,

NM은 크게 NM Network Node, Partial Network Node로 세부 구분하며, 그  차이를 같이 설명 합니다.

 

1. Remote Wakeup

NM 기술을 적용한 Node들은, IGN이 Off되어 있는 상태더라도, NM 제어기가 송출하는 특정 Message에 의해

Wakeup이 가능 합니다.

다만 NM Network Node로 개발된 경우, 전체 Node Wakeup만 가능하지만,

Partial Network Node로 개발된 경우, 특정 Node만 Wakeup하는 Selective Wakeup 기능이 가능 합니다.

 

2. Sleep

Wakeup된 Node들은 NM 제어기가 원하면, Sleep으로 빠지지 못하고, 대기 하게 됩니다.

이후 NM 제어기가 더이상 Node를 원하지 않으면, 각 Node들은 Power Down상태로 진입 할 수 있습니다.

다만 NM Network Node로 개발된 경우, 전체 Node Sleep만 가능하지만,

Partial Network Node로 개발된 경우, 특정 Node만 Sleep하는 Selective Sleep 기능이 가능 합니다.

 

이를 정리하면 다음과 같습니다.

  Remote Wakeup Sleep
NM Network 전체 Wakeup만 가능 전체 Sleep만 가능
Partial Network Selective Wakeup 가능 Selective Sleep 가능

 

 

 

 

 

 

 

 

+ Recent posts