본문 바로가기
Embedded SW/[Infineon] TC275 Lite Project

임베디드 SW, MCU에 대한 정리 (feat. 임베디드 SW 비전)

by 방구석 임베디드 2021. 10. 30.
반응형

안녕하세요.

오랜만에 다시 SW글을 적어보려고 합니다.

 

오늘은 임베디드 SW가 무엇인지 정의를 하고,

MCU는 무엇인지, 

그리고 임베디드 SW가 과연 비전이 있는지를 이야기 해보도록 하겠습니다.

 

우선 임베디드 SW란 무엇일까요?

 

1. 임베디드 SW란 무엇일까?

임베디드 SW를 이해하기 위해서는 Embedded의 어원에 대해서 먼저 이해할 필요가 있습니다.

Embedded는 내장형이라는 뜻을 가지고 있습니다.

결국 내장되어 있는 SW라는 것을 의미하고 있다는 것을 알 수 있습니다.

 

예를들어 보도록 하겠습니다.

세탁기에는 임베디드 SW가 들어가 있습니다.

세탁기는 우리가 다양한 모드를 설정하여 동작을 수행합니다.

즉, 세탁기 안에 컴퓨터가 들어있고 우리가 작동버튼을 누르는 것에 따라서

세탁기는 동작을 하는 것입니다.

세탁기 안에는 아래와 같은 보드가 들어 있습니다.

아래 초록색물건처럼 보이는 것이 보드 입니다.

ECU (Electric Control Unit) 이라고도 부르고 있습니다.

 그리고 저 초록색 ECU 안에는 아래와 같은 검은색 칩이 들어가 있습니다.

이 칩 이름을 MCU(Micro Control Unit)이라고 부릅니다.

이 칩이 정말 중요합니다.

바로 세탁기가 동작하는 SW를 저 검은색 Chip안에 집어 넣는 것입니다.

저 Chip안에는 CPU라는 연산기가 들어가 있습니다.

그래서, 다양한 연산을 수행하여 미리 지정된 세탁기의 동작일을 수행합니다.

 

Embedded SW는 바로 ECU(Electric Control Unit)안에 들어가는

MCU안에 집어 넣는 SW를 의미합니다.

그리고 그 SW는 세탁기에 내장되어 있습니다.

그래서 세탁기를 돌리기 위한 SW만이 들어가 있습니다.

 

Embedded SW를 명확히 알기 위해서,

우리가 노트북에서 사용하는 엑셀, 파워포인트를 생각해 보겠습니다.

이것은 Embedded SW라고 부르지 않습니다.

노트북에서 SW를 저장하는 곳이 있습니다.

메모리가 있지요.

그런데 우리는 노트북을 엑셀과 파워포인트만을 사용하기 위해 사용하지 않습니다.

범용적으로 사용하고 있지요.

그리고 원한다면, 엑셀과 파워포인트 프로그램을 제거하고

다른 프로그램을 깔아서 사용하기도 합니다.

곰TV를 깔아서 동영상을 보기도 하고,

음악 프로그램을 깔아서 음악을 듣기도 하지요.

 

다시 Embedded SW로 돌아가 보도록 하겠습니다.

지금 아래에 보이는 저 아래에 보이는 초록색 ECU(Electric Conrol Board)안에 있는

저 검은색 MCU안에 들어가는 SW는 오직 세탁기를 돌리기 위해서만 사용되고 있습니다.

범용적이지 않고, 확실한 목적성을 가지고 있습니다.

그렇기 때문에 지나치게 큰 메모리도 필요 없습니다.

오직 세탁기를 돌리기 위한 크기의 메모리만 있으면 됩니다.

CPU가 너무 뛰어날 필요도 없습니다.

세탁기를 돌리기 위한 정도의 CPU 연산 속도만 있으면 됩니다.

그렇다면 이제 명확히 정의를 할수 있을것 같습니다.

 

Embedded SW는 내장된 SW로서,

특정 목적을 위해 기계안에 내장되어져 있는 SW이다.

 

그런데, Embedded SW를 이해하기 위해서는 우리는 MCU(Micro Control Unit)에 

대해서 조금더 이해를 해야합니다.

2. MCU란 무엇인가?

위에서 이야기한 것과 같이 MCU는 Electric Control Unit 안에 들어가 있는

Chip입니다.

MCU를 조금더 확대해 보도록 하겠습니다.

MCU안에는 SW를 넣기 위한 Memory가 존재 합니다.

그리고, SW를 읽어드려서 연산하기 위한 CPU도 들어가 있습니다.

그 밖에 ADC, SPI ,GPIO, CAN... 이러한 장치들도 들어가 있습니다.

이러한 장치들을 주변장치(peripheral)라고 부릅니다.

주변장치!

많이 들어보셨나요?

우리가 노트북을 사용할때,

키보드 및 마우스도 우리는 주변장치라고 부릅니다.

키보드는 우리가 타입핑을 할수 있도록 도와주는 장치이고

마우스는 커서를 움직일수 있도록 도와줍니다.

LCD판은 우리에게 영상을 보여줄수 있도록 해주는

주변장치입니다.

 

MCU안에 들어 있는 ADC, SPI, CAN, GPIO도 특정 목적을 가진 주변장치 입니다.

그리고 이러한 장치는 무언가를 제어하기 위하여 필요한 주변장치 입니다.

무언가를 제어한다!

'제어'라는 용어가 나오게 되었습니다.

 

MCU의 용어를 살펴보면

Micro Control Unit

아주작은 제어 장치

 

다시 세탁기를 살펴 보도록 하겠습니다.

세탁기는 삶기 기능을 선택하여 세탁을 한다면

일정한 물온도를 유지하며 세탁을 해야합니다.

 

그리고, 탈수를 할때는 일정한 회전조건으로 제어하여

탈수를 해야합니다.

 

표준세탁을 선택한다면

일정한 시간안에 세탁, 헹굼, 탈수를 할수 있도록 제어를 해야합니다.

 

결국 Embedded SW는 무언가를 제어하기 위한 SW라는 것을알수 있습니다.

그리고 이러한 제어를 수행하기위해 필요한 장치가

MCU안에 들어가 있습니다.

하나의 패키지로 판매를 하는 것이지요.

 

그러하면 마지막으로 다시 정리를 해보도록 하겠습니다.

 

* Embedded SW는 내장된 SW로서,

특정 목적을 위해 기계안에 내장되어져 있는 SW이다.

 

* Embedded SW는 내장된 SW로서,

무언가를 제어하는데 사용되며,

이러한 제어를 수행하기 위해 MCU안에는 다양한 주변장치가 들어가 있다.

 

그렇다면 이제 Embedded SW도 알게 되었고, MCU도 알게 되었습니다.

Embedded SW의 목적에 대해서도 알게 되었습니다.

그렇다면! 이거 비전이 있는 걸까요?

3. 임베디드 SW에 비전이 있는가?

아마도 이 글을 읽으시는 분들 중에는 대학교에서 수업을 하다가 

발표자료를 위해 검색하시는 분들도 있으실 것이고

자율주행자동차가 요즘 많이 이야기가 되고 있으니까

검색을 하시는 분들도 있을 것이라고 생각이 됩니다.

 

저는 Embedded SW개발 업무를 수행한지 한 10년정도가 되었습니다.

정말 Embedded SW개발이 비전이 있는지, 스스로에게 물어보았습니다.

정말 이거 비전이 있나?

저는 Embedded SW에는 분명한 비전이 있는 분야라고 이야기 하고 싶습니다.

 

첫번째로 Embdded SW는 정말 우리의 삶과 밀접하게 연결이 되어 있습니다.

세탁기, TV, 냉장고는 물론이고

자동차안에도 다양한 Embedded SW가 들어가 있습니다.

자율주행 자동차는 물론이고요.

 

앞으로 4차산업이 더욱 중요한 산업업이 될것이라고 예상하고 있습니다.

그리고, AI를 통해서 앞으로 대부분의 직업들이 사라질 것이라고 예상하고 있습니다.

컴퓨터에 의해서 대체될수 있는 직업들은 저는 비전이 없다고 생각합니다.

하지만, 컴퓨터를 이해하고, 자동화를 설계할수 있는

Embedded SW기술을 가지고 있다면 앞으로 4차산업시대에 부합한 인재가 될것이라고 생각합니다.

 

그리고, 앞으로 이러한 인력들을 사회에서 더 많이 필요로 할것입니다.

현재도 좋은 Embdded SW개발자를 찾는것아 정말 어렵습니다.

그리고 좋은 Embdded SW개발자로 성장하는 과정에서도 7~8년정도는 필요하다고 생각합니다.

 

저는 스타크래프트를 좋아합니다.

어떠한 빌드를 선택하냐에 따라서, 승패가 좌우되는 모습을 보면서 참 재미를 느낌니다.

시간은 한정이 되어 있고,

우리에게 필요한 것은 선택과 집중입니다.

 

저는 앞으로 4차산업을 생각했을때, 

자율주행 자동차, 로봇, 사물인터넷 IOT 등등 앞으로 우리 실생활에 더욱 Embdded SW가 자리잡을 것이라고 생각합니다.

또한 이곳은 정말 실력을 쌓고 또 쌓아고 쌓을것이 많은 분야입니다.

그렇기 때문에 재미가 있습니다.

저도 하루하루 배워나가는 것이 참 재미가 있습니다.

그렇기 때문에 진입장벽이 높습니다.

어떠한 일을 선택할 경우, 진입장벽이 높은 일을 선택하라는 

저의 교수님의 말씀이 생각이 납니다.

 

그렇다면 지금 이글을 보고 계신 분들이 있다면

나도 임베디드 SW를 한번 해보고 싶은데

어디서 부터 시작하면 좋을까?

하시는 분들이 있을 것 같습니다.

어디서 부터 시작하면 좋을 까요?

 

사실 초보자들은 

아두이노보드를 사셔서 시작하는 것을 권장합니다.

아두이노 보드를 통해 8비트 MCU부터 동작시키는 것이 초보자들에게는 필요합니다.

 

그리고 중급자가 되시는 분들은

NXP와 Infineon을 추천 드립니다.

자동차 회사에서 많이 사용하는 MCU이기도 하고

수요가 많은 MCU입니다.

 

사실 MCU 2개정도를 깊게 파면

모든 MCU의 동작이 비슷하다는 것을 알 수 있게 됩니다.

 

저는 앞으로 이 블로그에서 인피니언 MCU를 사용하여 임베디드 SW를

누구가 쉽게 접할수 있도록 블로그를 올리려고 합니다.

MCU는 누가나 부담없는 가격에서 살수 있는 MCU로 구매를 할 계획입니다.

아직 MCU를 사지는 않았지만 다음 글에서 MCU를 어떻게 사는지

그 과정을 설명하면서 저도 구매를 하려고 합니다.

 

우리는 열심히 하는 것 보다 줄을 잘 서는 것이 중요할 때가 있습니다.

임베디드 SW쪽으로 줄을 서는것이 줄을 잘 서는 것일까요?

저는 잘서는 것이라고 확신합니다.

반응형

댓글