Siemens는 자동차 임베디드 소프트웨어와 임베디드 소프트웨어 엔지니어링 솔루션을 모두 제공합니다. Siemens는 2023년 11월 Nucleus, Nucleus Hypervisor, Nucleus ReadyStart, Sokol Flex Linux, Sokol Omni Linux 및 Sourcery CodeBench 제품(관련 추가 기능 포함)의 폐기와 함께 SoC용 독립형 임베디드 소프트웨어 제공을 중단했습니다. 이러한 제품에 대한 기존 지원 계약은 여전히 유효합니다. 자세한 내용은 Siemens 지원 센터에 문의하십시오.
임베디드 소프트웨어의 유형과 목적은 무엇일까요?
- 운영 체제 – 가장 일반적인 의미에서 OS(운영 체제)는 사용자가 컴퓨팅 장치에서 다른 애플리케이션을 실행할 수 있도록 하는 소프트웨어입니다. 운영 체제는 키보드 및 마우스와 같은 입력 장치, 디스플레이 또는 프린터와 같은 출력 장치, 네트워크 연결, 그리고 하드 드라이브 및 메모리와 같은 저장 장치를 포함하는 프로세서의 하드웨어 리소스를 관리합니다. OS는 또한 소프트웨어 애플리케이션의 효율적인 실행 및 관리와 메모리 할당을 용이하게 하는 서비스를 제공합니다.
- 펌웨어 – 펌웨어는 하드웨어에 대해 직접 작성된 소프트웨어 유형입니다. API, 운영 체제 또는 장치 드라이버를 거치지 않고 작동하므로 다른 장치와 통신하거나 기본 작업 및 기능을 의도한 대로 수행하는 데 필요한 지침과 가이드를 제공합니다.
- 미들웨어 – 미들웨어는 애플리케이션과 운영 체제 사이에 위치한 소프트웨어 계층입니다. 미들웨어는 다음과 같은 기능을 제공하여 분산 시스템에서 소프트웨어 개발을 단순화하는 데 자주 사용됩니다.
- 분산된 애플리케이션의 복잡성 숨기기
- 하드웨어, 운영 체제 및 프로토콜의 이질성 마스킹
- 상호 운용 가능하고, 재사용 가능하며, 휴대 가능한 애플리케이션을 만들기 위한 통일되고 높은 수준의 인터페이스 제공
- 중복 작업을 최소화하고 애플리케이션 간의 협업을 강화하는 일련의 공통 서비스 제공
- 애플리케이션 – 최종 사용자는 운영 체제에서 실행되고, 미들웨어와 펌웨어를 사용하거나 이와 상호 작용하며, 임베디드 시스템의 타겟 기능의 주요 초점인 최종 소프트웨어 애플리케이션을 개발합니다. 각 최종 애플리케이션은 고유하지만, 운영 체제와 펌웨어는 장치마다 동일할 수 있습니다.
임베디드 소프트웨어와 임베디드 시스템 비교
임베디드 소프트웨어를 실행하는 장치 내의 하드웨어 컴포넌트를 '임베디드 시스템'이라고 합니다. 임베디드 시스템에 사용되는 하드웨어 컴포넌트의 몇 가지 예로는 전원 공급 회로, 중앙 처리 장치, 플래시 메모리 장치, 타이머 및 직렬 통신 포트가 있습니다. 장치의 초기 설계 단계에서 임베디드 시스템을 구성할 하드웨어와 장치 내 구성이 결정됩니다. 그런 다음 임베디드 소프트웨어가 해당 하드웨어에서만 정확한 구성으로 실행되도록 처음부터 개발됩니다. 따라서 임베디드 소프트웨어 설계는 하드웨어 기능과 컴퓨터 프로그래밍에 대한 깊은 지식이 필요한 전문 분야입니다.
임베디드 소프트웨어 기반 기능의 예시
회로 기판과 컴퓨터 칩이 있는 거의 모든 장치에는 이러한 컴포넌트가 임베디드 소프트웨어 시스템으로 배열되어 있습니다. 그 결과, 임베디드 소프트웨어 시스템은 일상 생활 중 어디서나 흔히 볼 수 있으며 소비자, 산업, 자동차, 항공우주, 의료, 상업, 통신 및 군사 기술 전반에 걸쳐 사용됩니다.
임베디드 소프트웨어 기반 기능의 일반적인 예는 다음과 같습니다.
- 의료 영상 장비의 이미지 처리 시스템
- 항공기의 플라이-바이-와이어(Fly-by-wire)제어 시스템
- 보안 카메라의 모션 감지 시스템
- 신호등의 교통 관제 시스템
- 스마트 홈 장치의 타이밍 및 자동화 시스템
임베디드 시스템에는 어떤 유형이 있을까요?
성능 및 기능 요구사항에 따라 임베디드 시스템에는 5가지 주요 클래스가 있습니다.
- 실시간 임베디드 시스템은 결정적이고 반복 가능한 방식으로 작업을 완료하며, 이는 운영 체제의 기본 아키텍처 및 스케줄링, 스레드 성능, 분기 및 인터럽트 지연 시간의 영향을 받습니다. 범용 임베디드 시스템에는 실시간 요구사항이 없으며 완료 시간에 대한 종속성 없이 중단 또는 분기를 관리할 수 있습니다. 그래픽 디스플레이와 키보드 및 마우스 관리는 일반 시스템의 좋은 예입니다.
- 독립형 임베디드 시스템은 호스트 시스템이나 외부 처리 리소스 없이도 작업을 완료할 수 있습니다. 연결된 장치에서 데이터를 출력하거나 수신할 수 있지만, 작업을 완료하기 위해 장치에 의존하지는 않습니다.
- 독립형 임베디드 시스템은 호스트 시스템이나 외부 처리 리소스 없이도 작업을 완료할 수 있습니다. 연결된 장치에서 데이터를 출력하거나 수신할 수 있지만, 작업을 완료하기 위해 장치에 의존하지는 않습니다.
- 네트워크로 연결된 임베디드 시스템은 할당된 작업을 수행하기 위해 연결된 네트워크에 의존합니다.
- 시스템 하드웨어 아키텍처의 복잡성에 따라 세 가지 주요 임베디드 시스템 유형이 있습니다. 네트워크로 연결된 임베디드 시스템은 할당된 작업을 수행하기 위해 연결된 네트워크에 의존합니다.
최종 시장이 임베디드 시스템에 미치는 영향
임베디드 시스템 요구사항 및 컴포넌트는 타겟 시장의 수요에 따라 다릅니다. 몇 가지 예를 들면 다음과 같습니다.
- 소비자 – 세탁기, 웨어러블 장치, 휴대전화 등의 소비재 응용 분야에서 임베디드 시스템은
- SoC(시스템 온 칩)의 소형화, 저전력 소비 또는 배터리 작동, 그래픽 인터페이스를 강조합니다. 이러한 응용 분야에서는 구성 가능한 운영 체제와 설계에서 작동하지 않는 '영역'을 차단할 수 있는 기능이 중요합니다.
- 네트워킹 – 엔터프라이즈 네트워크의 연결, 통신, 운영 및 관리를 가능하게 하는 애플리케이션. 사용자, 프로세스, 애플리케이션, 서비스 및 외부 네트워크/인터넷 간의 커뮤니케이션 경로 및 서비스를 제공합니다. 임베디드 네트워크 애플리케이션은 응답 속도, 패킷 처리 및 주변 하드웨어 경로에 중점을 둡니다.
- 산업 – 공장 현장 관리, 모터, 풍차와 같은 애플리케이션의 경우, 클라우드 연결과 결정적 '실시간' 운영을 보호하는 데 중점을 두는 경향이 있으며 미들웨어에 크게 집중할 수 있습니다.
- 의료, 자동차 및 항공우주 – 이러한 산업에서는 설계의 일부를 서로 격리하여 필요한 데이터만 시스템에 들어오거나 나가도록 보장(보안)하며, 최종 사용자에게 해를 끼치지 않도록 보장(안전)하는 혼합 안전이 중요한 시스템이 필요합니다. 이러한 예로는 자동차의 자율 주행 시스템과 의료기기가 있습니다. 이러한 임베디드 시스템은 오픈 소스(Linux)와 결정적 RTOS(실시간 운영 체제)를 혼합하여 사용할 수 있으며 검증된 미들웨어를 많이 활용합니다.
자동차 임베디드 소프트웨어가 다른 이유는 무엇일까요?
자동차 전장품에서는 제동, 조향, 서스펜션, 파워트레인 등과 같은 기능을 각각 제어하는 여러 임베디드 시스템에 걸쳐 복잡한 실시간 상호 작용이 이루어집니다. 각 임베디드 시스템을 포함하는 물리적 하우징을 ECU(전자 제어 장치)라고 합니다. 각 ECU와 임베디드 소프트웨어는 분산형 시스템으로 알려진 복잡한 전기 아키텍처의 일부입니다.
차량의 분산형 시스템을 구성하는 ECU는 서로 통신함으로써 자동 비상 제동, 어댑티브 크루즈 컨트롤, 차체 자세 제어, 어댑티브 헤드라이트 등과 같은 다양한 기능을 실행할 수 있습니다. 하나의 기능이 실행되기 위해서는 여러 네트워킹 프로토콜로 연결된 수많은 ECU에 분산된 20개 이상의 임베디드 소프트웨어 애플리케이션 간의 상호 작용이 필요할 수 있습니다. 임베디드 소프트웨어와 함께 배포되는 복잡한 제어 알고리즘은 기능의 적절한 타이밍, 필요한 입력 및 출력, 데이터 보안을 보장합니다.
자동차 소프트웨어 애플리케이션 기반 기능의 일반적인 예는 다음과 같습니다.
- 어댑티브 크루즈 컨트롤, 자동 비상 제동, 차선 유지 지원, 교통 상황 보조, 차선 이탈 경고와 같은 ADAS(첨단 운전자 보조 시스템) 기능
- 배터리 관리
- 토크 보정
- 연료 분사 속도 제어
ECU 소프트웨어 스택
전자 제어 장치 또는 ECU는 칩 수준의 하드웨어가 포함된 메인 컴퓨팅 장치와 임베디드 소프트웨어 스택으로 구성됩니다. 그러나 자동차 제조업체들 사이에서는 단일 칩에 여러 컴퓨팅 코어를 포함하는 복잡한 집적 회로가 있는 ECU를 설계하는 추세가 증가하고 있습니다. 이를 SoC(시스템 온 칩)라고 합니다. 이러한 SoC는 하드웨어를 통합하기 위해 다양한 ECU 추상화를 호스팅할 수 있습니다. ECU를 위한 소프트웨어 스택은 일반적으로 하위 수준 펌웨어에서 상위 수준 임베디드 소프트웨어 애플리케이션에 이르기까지 다양한 솔루션을 포함합니다.
ECU 스택 | 설명 |
임베디드 소프트웨어 애플리케이션 | 제어 알고리즘, 처리, 서비스 |
애플리케이션 프레임워크 | 보안 및 안전 프레임워크 |
운영 환경 | AUTOSAR Classic, AUTOSAR Adaptive, 입력/출력 채널 |
임베디드 가상화 | 실시간 OS, ECU 추상화 |
펌웨어 | 부트 로더, 보안 스토리지, 보안 스레딩 |
하드웨어 | 실리콘 기반 장치, 마이크로컨트롤러, 단일 또는 다중 레이어 기판 |