Automotive Software

업데이트 및 형상 관리자 (UCM : Update and Configuration management) 기초 본문

아답티브 오토사 (Adaptive AUTOSAR)/업데이트 및 형상 관리자 (Update and Configuration)

업데이트 및 형상 관리자 (UCM : Update and Configuration management) 기초

AutoSW 2024. 1. 31. 18:10

아답티브 오토사 환경에서의 소프트웨어 업데이트

  1. 개관
    • 클래식 오토사에서는 진단 프로토콜을 통한 소프트웨어의 업데이트가 지원되었지만, 이는 서비스 센터나 공장 라인과 같은 정적인 환경에서 진단기를 통해서만 가능하였다.
    • 아답티브 오토사에서는 OTA (Over the Air)와 같은 동적인 환경에서의 소프트웨어 업데이트를 추가 지원하기 위해 업데이트 및 형상 관리자 (UCM)를 정의하고 관련 서비스 인터페이스 및 기능을 제공하고 있다.
    • 업데이트를 위한 서비스 인터페이스는 ara::com을 통해 메서드와 필드 형태로 제공되므로 이를 사용하는 클라이언트의 위치(동일 머신 또는 원격지)에 대한 제한은 없다.
    • 시스템 구성은
      • UCM Subordinate (UCMS) : 아답티브 머신상의 소프트웨어 업데이트를 위한 서비스 제공 및 실제 업데이트 수행
      • UCM Client : UCMS에서 제공되는 서비스 (UCM PackageManagement)를 이용하여 업데이트를 요청하는 애플리케이션으로 상기 그림에서 묘사된 Diagnostic application 또는 UCM Master (UCMM) 이 해당
        • Diagnostic application : UDS와 같은 진단 프로토콜을 통해 전달받은 소프트웨어 데이터를 소프트웨어 패키지로 변환하여 UCMS에 제공
        • UCM Master  : 외부 통신망 (OTA) 을 통해 전달받은 소프트웨어 데이터를 소프트웨어 패키지로 변환하여 UCMS에 제공
  2. 주요 기능
    • 주요 업데이트 절차 진행
      • 전송 (Transfer) :  UCM 클라이언트들에서 업데이트할 소프트웨어 패키지를 UCM Subordinate의 내부 버퍼로 전달하는 절차
      • 처리 (Processing) : 실제 업데이트 (설치, 갱신, 삭제)를 수행하는 절차
      • 활성화 (Activation) : 업데이트 종료 전 관련 소프트웨어 클러스터들의 (재)실행 여부 확인 절차
    • 실행 의존성 확인
      • 명시된 소프트웨어 클러스터 내 다중 실행 개체들간의 의존성 관계는 신규 업데이트 후 활성화전 UCM에 의해 점검
    • 업데이트 범위 정의
      • 기본적으로 Adaptive application, Functional cluster 그리고 하위 OS를 업데이트할 수 있지만, 구현에 따라 추가적인 범위를 구현 가능
    • 소프트웨어 패키지 전송 관리 (Transfer)
      • 전달된 각 소프트웨어 패키지는 UCM에 의해 생성된 ID와 함께 내부적으로 각각의 상태가 관리됨
      • 전송 준비 시 : 전송될 데이터의 전체 크기가 클라이언트에 의해 제공되면 UCM은 해당 패키지에 대한 ID와 한 번에 전송 가능한 최대 바이트 개수를 전달함
      • 전송 시 : 0x01에서부터 시작하는 블록 카운터를 제공하여 순차적인 전송이 이루어지는지 확인
      • 전송 후 : 전송받은 패키지의 인증 (Authentication) 진행
      • 다중 패키지의 병렬 전송 지원
      • 스트리밍(Stream) 전송 지원
    • 소프트웨어 패키지 처리 (Processing)
      • 시스템의 일관성 확보를 위해 다중 패키지의 병렬 처리 불가능
      • 처리 진행 정보, 취소, 복구(Revert) 등에 대한 메서드 제공
        • 복구는 오직 패키지 활성화전에 수행 가능
    • 활성화 (Activation)
      • 처리된 패키지(들)를 동시에 또는 각각 활성화 가능
      • 필요시 상태 관리자에게 시스템 리셋을 요청
    • 복구 (Rollback)
      • 활성화 후 에러 보고 시 이전 버전으로의 복구 (Rollback) 기능이 지원
      • A/B 파티션과 같이 하드웨어 적인 백업 솔류션이 시스템에 설계된 경우 가능
    • 종료 (Finishing)
      • 활성화 또는 복구 후 임시 데이터 삭제등의 후처리 진행
    • 다른 FC와의 소통
      • State Manager
        • ECU가 업데이트 가능한 상태인지를 확인하기 위해
        • 시스템 제어(재시작) 요청을 위해
      • Crypto : 클라이언트로부터 전달된 소프트웨어 패키지의 보안성 확인을 위해
  3. 소프트웨어 패키지 (Software Package)
    • 업데이트 데이터의 기본적인 하드웨어적인 단위로 각 패키지는 요소로써 하나의 소프트웨어 클러스터를 포함
    • 소프트웨어 클러스터 (Software Cluster)
      • 소프트웨어의 논리적인 묶음으로 단일 또는 연관된 다중 실행 개체(애플리케이션) 또는 데이터가 포함될 수 있으며 그에 해당하는 매니페스트 파일을 포함 할 수 있음
      • 카테고리
        • APPLICATION_LAYER : UCM에 의해 삭제될 수 있는 소프트웨어 클러스터
        • PLATFORM_CORE : 삭제 시 시스템에 영향을 주므로 UCM에 의해 삭제될 수 없는 소프트웨어 클러스터
        • PLATFORM : 플랫폼 소프트웨어 이긴 하나 UCM에 의해 삭제될 수 있는 소프트웨어 클러스터
      • 버전
        • 내용 변경 시마다 업버전(상위 버전으로 변경)이 필요
          • UCM Subordinate은 상위 버전의 패키지만 허용
        • 상위 버전의 소프트웨어에 문제 발생 시 동작 가능한 하위 버전의 소프트웨어를 업버전 후 업데이트 필요