이 페이지는 자동 번역을 사용하여 한국어로 표시됩니다. 영어로 보시겠습니까?
이 번역이 도움이 되었나요?
  1. Home

임베디드 소프트웨어

임베디드 소프트웨어는 SoC 또는 IC에 내장된 처리 클러스터에서 실행되는 특수 애플리케이션 또는 펌웨어입니다. 거의 모든 전자 제품에는 오늘날의 자동차, 팩터 플로어 자동화, 항공 전자 공학, 의료 기기 등에서 흔히 볼 수 있는 하나 또는 여러 개의 임베디드 프로세서가 포함될 수 있습니다.

임베디드 소프트웨어에는 어떤 종류가 있나요?

임베디드 소프트웨어 응용 프로그램은 마이크로 칩의 일부 또는 칩 위에 있는 다른 응용 프로그램의 일부로 PC가 아닌 장치 내에서 장치의 특정 기능을 제어하기 위한 특수 프로그래밍입니다. 다양한 컴퓨터 시스템에 설치하고 다양한 수준의 기능을 제공하도록 수정할 수 있는 PC 응용 프로그램과 달리 임베디드 소프트웨어에는 고정된 하드웨어 요구 사항 및 기능이 있습니다. 실행되는 특정 장치를 위해 독점적으로 생성되며 처리 및 메모리 제한이 사양과 직접 연결되어 있습니다. 이 논의의 맥락에서, 임베디드 소프트웨어에는 단일 마이크로프로세서 또는 추가 로직 내에 "임베디드된" 마이크로프로세서 클러스터에서 실행되는 애플리케이션, 펌웨어, 미들웨어 및 운영 체제가 포함됩니다.

embedded-software-is803905696-feature-640x360

임베디드 시스템의 특성과 특징

임베디드 시스템에는 여러 유형이 있지만 모두 동일한 유익한 기능과 설계 특성을 공유합니다.

모든 임베디드 시스템은 작업별로 다릅니다.

사용 가능한 수명 동안 사전 프로그래밍된 동일한 기능을 실행하며 변경할 수 없습니다.

모든 임베디드 시스템은 고효율입니다.

임베디드 소프트웨어의 리소스 요구 사항은 설치된 하드웨어의 용량을 초과해서는 안 되며, 하드웨어 사양은 임베디드 소프트웨어의 최소 요구 사항을 초과해서는 안 됩니다.

안정성을 고려한 설계

모든 임베디드 시스템은 매우 신뢰할 수 있고 안정적으로 설계되었습니다. 그들은 일관된 응답 시간과 기능으로 작업을 수행해야 합니다.

Siemens는 어떤 유형의 임베디드 소프트웨어를 제공합니까?

Siemens는 자동차 임베디드 소프트웨어와 임베디드 소프트웨어 엔지니어링 솔루션을 모두 제공합니다. Siemens는 Sokol, Nucleus 및 Multicore 소프트웨어 제품의 사용 중지와 함께 SoC용 독립형 임베디드 소프트웨어 제공을 중단했습니다.

임베디드 소프트웨어의 다양한 유형과 그 목적은 무엇입니까?

  • 운영 체제 – 가장 일반적인 의미에서 운영 체제(OS)는 사용자가 컴퓨팅 장치에서 다른 응용 프로그램을 실행할 수 있도록 하는 소프트웨어입니다. 운영 체제는 키보드 및 마우스와 같은 입력 장치, 디스플레이 또는 프린터와 같은 출력 장치, 네트워크 연결 및 하드 드라이브 및 메모리와 같은 저장 장치를 포함한 프로세서의 하드웨어 리소스를 관리합니다. OS는 또한 소프트웨어 응용 프로그램의 효율적인 실행 및 관리와 메모리 할당을 용이하게 하는 서비스를 제공합니다.
  • 펌웨어 – 펌웨어는 하드웨어용으로 직접 작성된 소프트웨어 유형입니다. API, 운영 체제 또는 장치 드라이버를 거치지 않고 작동하므로 다른 장치와 통신하거나 기본 작업 및 기능을 의도한 대로 수행하는 데 필요한 지침과 지침을 제공합니다.
  • 미들웨어 – 미들웨어는 응용 프로그램과 운영 체제 사이에 위치한 소프트웨어 계층입니다. 미들웨어는 다음을 제공하여 소프트웨어 개발을 단순화하는 분산 시스템에서 자주 사용됩니다.

    • 분산 응용 프로그램의 복잡성 숨기기
    • 하드웨어, 운영 체제 및 프로토콜의 이질성 마스킹
    • 상호 운용 가능하고 재사용 가능하며 이식 가능한 응용 프로그램을 만드는 데 사용되는 균일하고 높은 수준의 인터페이스를 제공합니다.
    • 중복 작업을 최소화하고 응용 프로그램 간의 협업을 강화하는 공통 서비스 집합 제공
  • 응용 프로그램 – 최종 사용자는 운영 체제에서 실행되고, 미들웨어 및 펌웨어를 사용하거나 상호 작용하며, 임베디드 시스템의 대상 기능의 주요 초점인 최종 소프트웨어 응용 프로그램을 개발합니다. 각 최종 응용 프로그램은 고유하지만 운영 체제와 펌웨어는 장치마다 동일할 수 있습니다.

임베디드 소프트웨어 vs 임베디드 시스템

임베디드 소프트웨어를 실행하는 장치 내의 하드웨어 구성 요소를 "임베디드 시스템"이라고 합니다. 임베디드 시스템에 사용되는 하드웨어 구성 요소의 몇 가지 예로는 전원 공급 회로, 중앙 처리 장치, 플래시 메모리 장치, 타이머 및 직렬 통신 포트가 있습니다. 장치의 초기 설계 단계에서 임베디드 시스템을 구성할 하드웨어와 장치 내 구성이 결정됩니다. 그런 다음 임베디드 소프트웨어가 처음부터 개발되어 정확한 구성으로 해당 하드웨어에서만 실행됩니다. 따라서 임베디드 소프트웨어 설계는 하드웨어 기능과 컴퓨터 프로그래밍에 대한 깊은 지식이 필요한 전문 분야입니다.

임베디드 소프트웨어 기반 기능의 예

회로 기판과 컴퓨터 칩이 있는 거의 모든 장치에는 이러한 구성 요소가 임베디드 소프트웨어 시스템에 배열되어 있습니다. 그 결과, 임베디드 소프트웨어 시스템은 일상 생활의 유비쿼터스이며 소비자, 산업, 자동차, 항공 우주, 의료, 상업, 통신 및 군사 기술 전반에 걸쳐 발견됩니다.

임베디드 소프트웨어 기반 기능의 일반적인 예는 다음과 같습니다.

  • 의료 영상 장비에서 볼 수 있는 이미지 처리 시스템
  • 항공기에서 볼 수 있는 Fly-by-wire 제어 시스템
  • 보안 카메라의 동작 감지 시스템
  • 신호등에서 볼 수 있는 교통 제어 시스템
  • 스마트 홈 장치에서 볼 수 있는 타이밍 및 자동화 시스템

임베디드 시스템에는 어떤 종류가 있나요?

성능 및 기능 요구 사항에 따라 임베디드 시스템에는 5가지 주요 클래스가 있습니다.

  • 실시간 임베디드 시스템은 결정적이고 반복 가능한 방식으로 작업을 완료하며, 이는 운영 체제의 기본 아키텍처 및 스케줄링뿐만 아니라 스레드 성능, 분기 및 인터럽트 지연 시간의 영향을 받습니다. 범용 임베디드 시스템에는 실시간 요구 사항이 포함되어 있지 않으며 완료 시간에 대한 종속성 없이 인터럽트 또는 분기를 관리할 수 있습니다. 그래픽 디스플레이와 키보드 및 마우스 관리는 일반 시스템의 좋은 예입니다.
  • 독립형 임베디드 시스템은 호스트 시스템이나 외부 처리 리소스 없이 작업을 완료할 수 있습니다. 연결된 장치에서 데이터를 출력하거나 수신할 수 있지만 작업을 완료하기 위해 장치에 의존하지는 않습니다.
  • 독립형 임베디드 시스템은 호스트 시스템이나 외부 처리 리소스 없이 작업을 완료할 수 있습니다. 연결된 장치에서 데이터를 출력하거나 수신할 수 있지만 작업을 완료하기 위해 장치에 의존하지는 않습니다.
  • 네트워크로 연결된 임베디드 시스템은 연결된 네트워크에 의존하여 할당된 작업을 수행합니다.
  • 시스템 하드웨어 아키텍처의 복잡성에 따라 임베디드 시스템에는 세 가지 주요 유형이 있습니다. 네트워크로 연결된 임베디드 시스템은 연결된 네트워크에 의존하여 할당된 작업을 수행합니다.

최종 시장이 임베디드 시스템에 미치는 영향

임베디드 시스템 요구 사항 및 구성 요소는 목표 시장의 요구 사항에 따라 다릅니다. 몇 가지 예는 다음과 같습니다.

  • 소비자 – 세탁기, 웨어러블 장치 및 휴대폰과 같은 소비재와 같은 응용 분야에서 임베디드 시스템은 축소된 크기를 강조합니다.
  • 시스템 온 칩, 저전력 소비 또는 배터리 작동 및 그래픽 인터페이스. 이러한 응용 분야에서는 구성 가능한 운영 체제와 설계의 작동하지 않는 "도메인"을 차단할 수 있는 기능이 중요합니다.
  • 네트워킹 – 엔터프라이즈 네트워크의 연결, 통신, 운영 및 관리를 가능하게 하는 애플리케이션입니다. 사용자, 프로세스, 애플리케이션, 서비스 및 외부 네트워크/인터넷 간의 통신 경로와 서비스를 제공합니다. 임베디드 네트워크 애플리케이션은 응답 속도, 패킷 처리 및 주변 장치 하드웨어 경로에 중점을 둡니다.
  • 산업 – 공장 현장 관리, 모터 및 풍차와 같은 애플리케이션의 경우 클라우드 연결 및 결정론적 "실시간" 운영을 보호하는 경향이 있으며 미들웨어에 중점을 둘 수 있습니다.
  • 의료, 자동차 및 항공우주 – 이러한 산업에는 최종 사용자에게 해를 끼치지 않으면서(안전) 필요한 데이터만 시스템에 들어오거나 나가도록 보장(보안)하기 위해 설계의 일부가 서로 격리되는 혼합 안전이 중요한 시스템이 필요합니다. 자동차 및 의료 기기의 자율 주행 시스템을 예로 들 수 있습니다. 이러한 임베디드 시스템은 오픈 소스(Linux)와 결정론적 실시간 운영 체제(RTOS)를 혼합하여 사용할 수 있으며 검증된 미들웨어를 많이 활용합니다.

자동차 임베디드 소프트웨어가 다른 이유는 무엇입니까?

자동차 전자 장치에서는 제동, 조향, 서스펜션, 파워트레인 등과 같은 기능을 각각 제어하는 여러 임베디드 시스템에서 복잡한 실시간 상호 작용이 발생합니다. 각 임베디드 시스템을 포함하는 물리적 하우징을 전자 제어 장치(ECU)라고 합니다. 각 ECU와 임베디드 소프트웨어는 분산 시스템으로 알려진 복잡한 전기 아키텍처의 일부입니다.

차량의 분산 시스템을 구성하는 ECU는 서로 통신함으로써 자동 비상 제동, 어댑티브 크루즈 컨트롤, 스태빌리티 컨트롤, 어댑티브 헤드라이트 등과 같은 다양한 기능을 실행할 수 있습니다. 단일 기능은 여러 네트워킹 프로토콜로 연결된 수많은 ECU에 분산된 20개 이상의 임베디드 소프트웨어 어플리케이션 간의 상호 작용이 필요할 수 있습니다. 임베디드 소프트웨어와 함께 배포된 복잡한 제어 알고리즘은 기능의 적절한 타이밍, 필요한 입력 및 출력, 데이터 보안을 보장합니다.

자동차 소프트웨어 애플리케이션 기반 기능의 일반적인 예는 다음과 같습니다.

  • ADAS(첨단 운전자 보조 시스템) 어댑티브 크루즈 컨트롤, 자동 비상 제동, 차선 유지 보조, 교통 보조, 차선 이탈 경고와 같은 기능
  • 배터리 관리
  • 토크 보상
  • 연료 분사 속도 제어

ECU 소프트웨어 스택

전자 제어 장치(Electronic Control Unit, ECU)는 칩 레벨 하드웨어와 임베디드 소프트웨어 스택이 있는 메인 컴퓨팅 유닛으로 구성됩니다. 그러나 자동차 제조업체들 사이에서는 단일 칩에 여러 컴퓨팅 코어를 포함하는 복잡한 집적 회로가 있는 ECU를 설계하는 추세가 증가하고 있습니다. 이러한 SoC는 하드웨어를 통합하기 위해 다수의 ECU 추상화를 호스팅할 수 있습니다. ECU를 위한 소프트웨어 스택에는 일반적으로 로우 레벨 펌웨어에서 하이 레벨 임베디드 소프트웨어 어플리케이션에 이르기까지 다양한 솔루션이 포함됩니다.

ECU 스택

설명

임베디드 소프트웨어 응용 프로그램

제어 알고리즘, 처리, 서비스

응용 프로그램 프레임워크

보안 및 안전 프레임워크

운영 환경

AUTOSAR 클래식, AUTOSAR Adaptive, 입력/출력 채널

내장된 가상화

실시간 OS, ECU 추상화

펌웨어

부트로더, 보안 스토리지, 보안 스레딩

하드웨어

실리콘 기반 장치, 마이크로 컨트롤러, 단일 또는 다중 레이어 기판

관련 자료

소프트웨어 엔지니어링 솔루션

당사의 소프트웨어 엔지니어링 제품을 사용하면 전체 소프트웨어 개발 주기를 관리할 수 있습니다.

차량용 임베디드 소프트웨어

자동차 임베디드 소프트웨어는 브랜드 경험 창출의 차별화 요소로서 기계 공학을 점점 더 대체하고 있습니다.