ECU SW programming 개발 환경
- Hardware : MCU(Micro Control Unit)
- Software : Bare metal Programming, Embedded Operating System(Real Time OS), AUTOSAR Platform, Adaptive AUTOSAR Platform
What is an Embedded System?
- A computer system dedicated to a particular function within a larger mechanical or electrical system.
-> 기계적인 혹은 전자적인 시스템 속에서 수행되는 어떤 특정 기능에 초점된 컴퓨터 시스템이다.
- system : 하드웨어와 소프트웨어의 mix
- particular function : not really/fully programmable, does 1 thing
- Information processing systems embedded into a larger product.
-> 특정 제품에 들어가서 정보를 처리하는 시스템이다.
- embedded system은 독자적으로 돌아가는 것이 아니다.
- external system : embedded system에 내장되어 있는 전체 시스템(ex. 자동차, 공장, 건물, 기차 등), 외부에서 동작하는 전기적인 시스템
- human interface : 인간과 상호작용
- sensor, actuators : 자기가 속해있는 external process와 연동할 수 있게한다.
- Sensors : 외부로부터 데이터를 받아들이는 것(상태를 받아들이기 위한것)
- Actuators : external process를 구성하고 있는 장치들을 동작시키기 위한 신호를 내보내기 위한 것
- Reactive system : perform "everlasting" interaction with the environment
- Real-Time systems : must react "instantaneously" with respect of a particular enviromnent
- Cyber-physical system(CPS) : emphasize the difference between the system(digital, discrete time) and its environment(physical, continuous time)
- control engineering systems
Characteristics
- Must be dependable -> Dependability
믿고 의지할 수 있느냐
- Reliability(신뢰성)
일정 단위 시간동안 시스템이 정상적으로 동작하는 확률
- Maintainability(유지보수)
어떤 특정 시스템을 업그레이드 시키기 위해 걸리는 시간과 비용
- Availability
특정 시간에 프로그램이 정상적으로 동작할 수 있는 확률
- Safety(안정성)
시스템이 고장나서 생기는 데미지가 높으냐 안높으냐(ex.에어백, 브레이크)
- Security(보안)
- Must be efficient
- Energy efficient
- Memory efficient(especially for systems on a chip)
- Processor efficient
- Weight, spac efficient
- Cost efficient
- Many ES must meet real-time constraints
반응시간이 보장되어야 한다.
- Real-Time Programming Problems
- Safety Problems
- Criticity : faults may be irreparable(lives, environment), or just very expensive
- 인증제도가 있다.
- Railways : IEC 62279
- Automotive : ISO 26262
- Medial Devices : IEC 62304
- Centralized or Distributed Systems?
- centralized systems는 distributed systems보다 단순하다. 하지만 distribution이 요구된다.
- Distributed real-time programming is very hard.
- Main Difficulties for the Design of Embedded Systems
- Real-time parallel and distributed programming
- control enineering(제어공학, 제어기술)
- HW, application SW, and OS or middleware 간에 복잡한 의존관계
- Certification authorities(인증체계)
- Several degrees of dynamicity
ex. OTA(Over The Air)
- Industrial Practice
- "Hand-craft" : use general purpose tools and languages(JAVA/C++...)
- Domain Specific Languages : real-time features(multi-tasks, timers, synchro), specific device operation(sensor/actuator libraries)
ex. AUTOSAR
- Model-based designe : more radical, continuity between high level design and implementation
Great overview of embedded systems! For those interested in delving deeper into embedded software development, this resource might be helpful: https://www.cleveroad.com/blog/embedded-software-outsourcing/