Siemens는 둘 다 제공해요 자동차 임베디드 소프트웨어 그리고 임베디드 소프트웨어 엔지니어링 솔루션들.지멘스는 뉴클리어스, 뉴클리어스 하이퍼바이저, 뉴클리어스 레디스타트, 소콜 플렉스 리눅스, 소콜 옴니 리눅스, 소서리 코드벤치 제품 (관련 애드온 포함) 이 2023년 11월에 은퇴하면서 SOC용 독립형 임베디드 소프트웨어 제공을 중단했어요.이들 제품에 대한 기존 지원 계약은 여전히 유효해요. Siemens에 문의하세요. 지원 센터 자세한 정보를 원해요.
임베디드 소프트웨어의 종류와 목적은 뭐예요?
- 운영 체제 — 가장 일반적인 의미의 운영 체제 (OS) 는 사용자가 컴퓨팅 기기에서 다른 애플리케이션을 실행할 수 있게 해주는 소프트웨어예요.운영 체제는 키보드와 마우스 같은 입력 장치, 디스플레이나 프린터 같은 출력 장치, 네트워크 연결, 하드 드라이브와 메모리 같은 저장 장치를 포함한 프로세서의 하드웨어 자원을 관리해요.OS는 또한 소프트웨어 응용 프로그램의 효율적인 실행과 관리, 메모리 할당을 용이하게 하는 서비스를 제공해요.
- 펌웨어 — 펌웨어는 하드웨어용으로 직접 작성된 일종의 소프트웨어예요.API, 운영 체제 또는 장치 드라이버를 거치지 않고 작동하여 다른 기기와 통신하거나 기본 작업과 기능을 의도한 대로 수행하는 데 필요한 지침과 지침을 제공해요.
- 미들웨어 — 미들웨어는 애플리케이션과 운영 체제 사이에 위치한 소프트웨어 계층이에요.미들웨어는 다음을 제공하여 소프트웨어 개발을 단순화하는 분산 시스템에서 자주 사용돼요.
- 복잡한 분산 애플리케이션 숨기기
- 하드웨어, 운영 체제, 프로토콜의 이질성 감추기
- 상호 운용 가능하고 재사용 가능한 휴대용 애플리케이션을 만드는 데 사용되는 균일하고 높은 수준의 인터페이스를 제공해요.
- 중복 작업을 최소화하고 애플리케이션 간 협업을 강화하는 일련의 공통 서비스 제공
- 애플리케이션 — 최종 사용자는 운영 체제에서 실행되고 미들웨어 및 펌웨어를 사용하거나 상호 작용하는 최종 소프트웨어 애플리케이션을 개발하며 임베디드 시스템의 목표 기능의 주요 초점입니다.각 최종 애플리케이션은 고유하지만 운영 체제와 펌웨어는 장치마다 동일할 수 있어요.
임베디드 소프트웨어 vs 임베디드 시스템
임베디드 소프트웨어를 실행하는 장치의 하드웨어 구성 요소를 “임베디드 시스템”이라고 해요.임베디드 시스템에 사용되는 하드웨어 구성 요소의 몇 가지 예로는 전원 공급 회로, 중앙 처리 장치, 플래시 메모리 장치, 타이머, 직렬 통신 포트 등이 있어요.장치의 초기 설계 단계에서 임베디드 시스템을 구성할 하드웨어와 장치 내 구성이 결정돼요.그러면 임베디드 소프트웨어는 처음부터 정확한 구성의 해당 하드웨어에서만 실행되도록 개발돼요.따라서 임베디드 소프트웨어 설계는 하드웨어 기능과 컴퓨터 프로그래밍에 대한 깊은 지식이 필요한 전문 분야가 돼요.
임베디드 소프트웨어 기반 함수 예시
회로기판하고 컴퓨터 칩이 있는 거의 모든 장치에는 이러한 부품들이 내장된 소프트웨어 시스템에 배열되어 있어요.그 결과 임베디드 소프트웨어 시스템은 일상 생활 어디에나 있고 소비자, 산업, 자동차, 항공 우주, 의료, 상업, 통신 및 군사 기술 전반에 걸쳐 발견돼요.
임베디드 소프트웨어 기반 기능의 일반적인 예로는 다음이 포함돼요.
- 의료 영상 장비에서 사용되는 이미지 처리 시스템이에요.
- 항공기에 있는 플라이 바이 와이어 제어 시스템들
- 보안 카메라의 동작 감지 시스템이에요.
- 신호등에 있는 교통 통제 시스템들이에요.
- 스마트 홈 디바이스에 있는 타이밍 및 자동화 시스템이에요.
임베디드 시스템에는 어떤 종류가 있어요?
성능 및 기능 요구 사항을 기준으로 하면 임베디드 시스템에는 크게 다섯 가지 종류가 있어요.
- 실시간 임베디드 시스템은 결정적이고 반복 가능한 방식으로 작업을 완료해요. 이는 운영체제의 기본 아키텍처와 스케줄링, 스레드 성능, 분기, 인터럽트 레이턴시의 영향을 받죠.범용 임베디드 시스템은 실시간 요구 사항이 없고 완료 시간에 의존하지 않고 인터럽트나 브랜칭을 관리할 수 있어요.그래픽 디스플레이와 키보드 및 마우스 관리가 일반 시스템의 좋은 예예요.
- 독립형 임베디드 시스템은 호스트 시스템이나 외부 처리 리소스 없이 작업을 완료할 수 있어요.연결된 장치에서 데이터를 출력하거나 받을 수 있지만 작업을 완료하는 데 기기에 의존하지는 않아요.
- 독립형 임베디드 시스템은 호스트 시스템이나 외부 처리 리소스 없이 작업을 완료할 수 있어요.연결된 장치에서 데이터를 출력하거나 받을 수 있지만 작업을 완료하는 데 기기에 의존하지는 않아요.
- 네트워크 임베디드 시스템은 할당된 작업을 수행하기 위해 연결된 네트워크에 의존해요.
- 시스템 하드웨어 구조의 복잡성에 따라 임베디드 시스템에는 크게 세 가지 유형이 있어요. 네트워크 임베디드 시스템은 지정된 작업을 수행하기 위해 연결된 네트워크에 의존해요.
최종 시장이 임베디드 시스템에 미치는 영향
임베디드 시스템 요구 사항과 구성 요소는 대상 시장의 요구에 따라 달라질 거예요.몇 가지 예로는 다음이 포함돼요.
- 소비자 — 세탁기, 웨어러블 기기, 휴대폰 같은 소비재 같은 애플리케이션에서 임베디드 시스템은 크기를 줄인 것을 강조해요
- 시스템온칩, 저전력 소비 또는 배터리 작동과 그래픽 인터페이스.이러한 애플리케이션에서는 구성 가능한 운영 체제와 설계에서 작동하지 않는 “도메인”을 차단하는 기능이 중요해요.
- 네트워킹 — 기업 네트워크의 연결, 통신, 운영 및 관리를 가능하게 하는 애플리케이션이에요.사용자, 프로세스, 애플리케이션, 서비스, 외부 네트워크/인터넷 간의 통신 경로와 서비스를 제공해요.임베디드 네트워크 애플리케이션은 응답 속도, 패킷 처리 및 주변 하드웨어 경로에 초점을 맞춥니다.
- 산업용 — 공장 현장 관리, 모터, 풍차 같은 애플리케이션의 경우 클라우드 연결성과 결정론적 “실시간” 운영을 보호하는 데 중점을 두는 경향이 있고 미들웨어에 주로 초점을 맞출 수 있어요.
- 의료, 자동차, 항공우주 — 이런 산업에는 혼합 안전에 중요한 시스템이 필요해요. 설계의 일부가 서로 격리되어 필요한 데이터만 시스템에 들어오고 나가도록 (보안), 최종 사용자에게 해를 끼치지 않도록 (안전) 해요.자동차하고 의료기기의 자율 주행 시스템을 예로 들 수 있어요.이러한 임베디드 시스템은 오픈소스 (Linux) 와 결정론적 실시간 운영 체제 (RTOS) 를 혼합하여 사용할 수 있고 검증된 미들웨어를 많이 활용해요.
자동차 임베디드 소프트웨어가 왜 다른가요?
자동차 전자 장치에서는 제동, 조향, 서스펜션, 파워트레인 등 각 기능을 제어하는 여러 임베디드 시스템에서 복잡한 실시간 상호 작용이 일어나요. 각 내장 시스템이 들어 있는 물리적 하우징을 전자 제어 장치 (ECU) 라고 해요.각 ECU와 임베디드 소프트웨어는 분산 시스템이라고 하는 복잡한 전기 아키텍처의 일부예요.
차량의 분산 시스템을 구성하는 ECU가 서로 통신해서 자동 긴급 제동, 어댑티브 크루즈 컨트롤, 스태빌리티 컨트롤, 어댑티브 헤드라이트 등등 다양한 기능을 실행할 수 있어요.단일 기능에는 여러 네트워킹 프로토콜로 연결된 수많은 ECU에 분산되어 있는 20개 이상의 임베디드 소프트웨어 애플리케이션 간의 상호 작용이 필요할 수 있어요.임베디드 소프트웨어와 함께 배포되는 복잡한 제어 알고리즘은 기능의 적절한 타이밍, 필요한 입출력, 데이터 보안을 보장해요.
자동차 소프트웨어 애플리케이션 기반 기능의 일반적인 예로는 다음이 포함돼요.
- ADAS (첨단 운전자 보조 시스템) 기능들이 어댑티브 크루즈 컨트롤, 자동 긴급 제동, 차선 유지 보조, 교통 보조, 차선 이탈 경고 같은 거예요
- 배터리 관리
- 토크 보상
- 연료 분사 속도 제어
ECU 소프트웨어 스택
전자 제어 장치, 즉 ECU는 칩 레벨 하드웨어가 있는 메인 컴퓨팅 유닛과 임베디드 소프트웨어 스택으로 구성돼요.하지만 자동차 제조업체들 사이에서는 단일 칩에 여러 컴퓨팅 코어가 포함된 복잡한 집적 회로를 갖춘 ECU를 설계하는 추세가 늘고 있어요. 이를 SoC (System on a Chip) 라고 해요.이 SoC는 하드웨어를 통합하기 위해 수많은 ECU 추상화를 호스팅할 수 있어요.ECU용 소프트웨어 스택에는 보통 저수준 펌웨어부터 고수준 임베디드 소프트웨어 애플리케이션에 이르기까지 다양한 솔루션이 포함돼요.
ECU 스택 | 설명 |
임베디드 소프트웨어 애플리케이션 | 제어 알고리즘, 처리, 서비스 |
애플리케이션 프레임워크 | 보안 및 안전 프레임워크 |
운영 환경 | AUTOSAR 클래식, AUTOSAR 어댑티브, 입력/출력 채널 |
임베디드 가상화 | 실시간 OS, ECU 추상화 |
펌웨어 | 부트 로더, 보안 스토리지, 보안 스레딩 |
하드웨어 | 실리콘 기반 디바이스, 마이크로 컨트롤러, 단일 또는 다중 레이어 보드 |