임베디드란?
임베디드 컴퓨팅 시스템은 프로그래밍이 가능한 모든 일반적인 목적을 가지지 않는 즉 특정한 일을 하기 위한 기기라고 보면 된다. 예로 들어서 PC는 그 자체로 임베디드 컴퓨팅 시스템이라고 하지 않지만 임베디드 컴퓨팅 시스템을 빌드해낼 수 있다. 반대로 TV같은 곳에 들어가는 컴퓨터들은 PPT나 그런 것을 실행하거나 할 순 없다. 하지만 우리는 TV에 들어가는 기능들을 프로그래밍해서, 영화를 선택하면 그 영화가 나올 수 있게 하거나 심지어 넷플릭스를 볼 수 있게 해주는 등, 영상과 관련된 일을 할 수 있도록 명령을 내릴 수 있다.
임베디드 시스템은 다음과 같이 그려낼 수 있다.
초록색은 그 자체로 컴퓨터이고, CPU와 IO 그리고 메모리가 버스를 이용해서 연결된다. 이 대 각 Input과 Output은 디지털 또는 아날로그 신호를 입력 받고 출력할 수 있으며, 메모리에는 프로그램이 실행하면서 CPU가 기억하고 있어야할 또는 IO 관련된 것들을 저장하는 기능을 담당한다.
그러면 어떤 제품이 임베디드 시스템을 채택해낼까? 보통 우리가 사용하는 휴대폰, 프린터, 아니면 자동차에서 엔진이나 브레이크, 계기판을 제어하기 위해서 사용하거나, 아니면 비행기에서 엔진, 비행 컨트롤판 등등을 제어하기 위해 사용하며, 위에서 예로 든 TV 또한 사용한다.
임베디드의 역사를 알아보자면, 1940년 말쯤 MIT 서보매커니즘에서 개발한 whirlwind 진공관 컴퓨터를 이용해 실시간으로 비행기를 컴퓨팅 시스템을 이용해서 조절하기 위해서 디자인한 사건부터 시작으로 보고 있다.
그리고 1966년 미니트맨 미사일 용으로 오토네틱스 D-17 가이던스 컴퓨터를 만들면서 세계 최초의 임베디드 컴퓨터가 대량 생산되었다.
이후 1970년 초반 인텔에서 4004라는 최초의 마이크로프로세서가 나왔고 1972년 이를 이용해서 HP-35 계산기를 만들면서 더욱 더 확대되었다.
1970년대부터 자동차들이 엔진을 컨트롤함에 있어 마이크로프로세서를 채택하면서, 좀 더 확장되어왔다. 단 하나의 칩(CPU)를 사용하며, 연료를 조절하고, 기체들의 혼합, 그리고 스파크를 넣는 등의 엔진 타이밍 등등을 조절하며, 그 외에도 예열, 주행, 산을 타는 등등 아웃도어적인 기능들을 탑재하며 좀 더 낮은 배기 배출과, 더 나은 연료 효율성을 보장해주었다.
마이크로프로세서가 발전하면서 사람들은 더 많은 것을 프로그래밍 할 수 있겠다라는 생각을 하며, 많은 변종들을 만들어내는데, 이러한 변종으로는 마이크로 컨트롤러, DSP 등등이 있다.
마이크로 컨트롤러는 IO 장치와 on-board 메모리를 탑제한다. 이들은 다양한 장치에 장착되어 다양한 일을 하는데, 예로 들면 하드 디스크 드라이브에서 시스템 버스에 연결된 컨트롤들과 와 메모리의 통신 및 컨트롤을 담당한다. 그 외 HDD상에서 디스크를 읽는 arm 부분을 어떻게 세밀하게 컨트롤링할 것인가를 담당할 수 있다. 그 외 카메라, TV 등에 들어간다.
DSP(Digital Signal Processor)는 마이크로프로세서가 디지털 신호 프로세싱을 하는데 특화가 된 장치이다. 이 장치는 스피커처럼 아날로그 신호를 사용하는 데에 들어가서 이들을 디지털화 시키는데 특화가 되어있다.
응용 분야의 예시를 좀 더 자세하게 들자면, 전자레인지의 컨트롤 패널 부분처럼 간단한 부분부터 다양한 CPU와 비디오와 오디오를 디코딩할 하드웨어 로직이 담긴, 그리고 심지어 메뉴까지 다뤄야하는 디지털 TV까지 다양하다.
심지어 캐논 EOS 3는 3개의 마이크로프로세서를 탑재했는데, 각 CPU는 32비트의 RISC로 만들어졌으며, 이들은 오토포커싱, 초점 조절 시스템 등을 담당한다.
그리고 자동차의 임베디드 시스템을 좀 더 자세하게 본다면, 이들은 심지어 100개 이상의 마이크로프로세서가 들어가며, 예로들어 4비트 마이크로프로세서를 이용해서 좌석 벨트를 체크하며, 마이크로컨트롤러를 통해서 대시보드 장치를 실행한다. 그리고 16/32비트 마이크로프로세서를 이용해서 엔진을 컨트롤한다.
BMW 850i의 브레이크와 조절 시스템을 살펴보자. 이들은 ABS와 ASC + T라는 컨트롤 시스템을 사용한다.
Anti-lock brake system(ABS)의 경우 미끄러짐을 줄이기 위해 브레이크를 조절하는 기능을 담당하며, Automatic Stability Control(ASC)는 엔진의 안정도를 높이기 위해 엔진을 조절하며, 이 두 시스템을 서로 통신을 해서 안정성을 극한으로 높인다.
'Embedded System' 카테고리의 다른 글
[임베디드] 02. 임베디드 특성 (0) | 2021.10.05 |
---|