본문 바로가기

stm32 레지스터 직접 접근 (0. Microcontroller와 ARM )

반응형

관련 글


잡동사니 세상 :: stm32 레지스터 직접 접근 (소개) (tistory.com)

잡동사니 세상 :: stm32 레지스터 직접 접근 (1. STM32F10x란) (tistory.com)

잡동사니 세상 :: stm32 레지스터 직접 접근 (2. 프로그램 설치) (tistory.com)

잡동사니 세상 :: stm32 레지스터 직접 접근 (3. RCC) (tistory.com)

잡동사니 세상 :: stm32 레지스터 직접 접근 (4. GPIO [Output]) (tistory.com)

잡동사니 세상 :: stm32 레지스터 직접 접근 (4. GPIO [Input]) (tistory.com)

잡동사니 세상 :: stm32 레지스터 직접 접근 (5. Exception / Interrupt [설명 & 코드 Part 01]) (tistory.com)

잡동사니 세상 :: stm32 레지스터 직접 접근 (5. Exception / Interrupt [인터럽트 설정 Part 02]) (tistory.com)

stm32 레지스터 직접 접근 (5. Exception / Interrupt [중요 레지스터들 Part 03]) (tistory.com)


서론


이번 장에서는 Microcontroller가 무엇이고, 무엇을 할 수 있으며, 일반적인 컴퓨터와는 무엇이 다른지, 또 어디에 사용할 수 있는지 등을 다룰 예정이며, 더 나아가 ARM이라는 회사는 뭘 하는지 등을 알아볼 예정입니다.

순서는 다음과 같습니다.


Microcontroller가 뭐지?

   이걸로 무엇을 할  수 있지?

   일반 컴퓨터와 다른 점은?

ARM


최대한 쉽게 설명하기 위해 기존의 정확한 개념과는 다른 부분이 있을 수 있지만, 전체적인 맥락을 기준으로 풀어 쓰는 글이기 때문에 이점 양해해 주시면 감사하겠습니다.

 

Microcontroller가 뭐지?


Microcontroller는 아두이노와 같은 개념의 소형 컴퓨터라고 할 수 있습니다.

아두이노를 사용해 보신 분들이라면 쉽게 와 닿는 단어이기도 할 것입니다.

아두이노에 부착 되어 있는 기다란 검은색의 칩, 또는 정사각형 모양의 작은 칩 모두 Microcontroller에 속하며, 

특별히 [Microcontroller 칩]이라는 단어 대신, MicroController Unit 줄여서 MCU라고 부릅니다. (마블 아님)

 

이걸로 무엇을 할 수 있지?

정답이라고 할 수는 없지만, 세상 모든 전자기기를 제어할 수 있다고 생각하시면 됩니다.

가까운 곳인 집에 있는 냉장고, 에어컨, TV 리모컨, 모니터, 핸드폰부터 

자동차를 관리하는 시스템, 전기차 시스템, 드론, 공유기, 3D 프린터, IoT 기기 기타 등등

여러분이 알고 계신 모든 전자제품을 제어할 수 있다는 것입니다.

 

개발자인 여러분이 저런 기기들을 제어할 수 있다는 것입니다.

아직은 '어떻게 그런 것들을 다루지?' 라는 생각이 드실 수 있겠지만, 앞으로 다룰 내용을 전부 보신다면

여러분들도 저런 것들을 제어할 수 있고, 다른 분야와 손을 잡는다면 직접 만들 수도 있습니다.

 

일반 컴퓨터와 다른 점은?

여러분들은 이미 집에 데스크탑(또는 컴퓨터)라고 부르는 장비가 있을 것입니다.

이걸로 인터넷도 보고, 유튜브도 보고, 게임도 하고 동시에 음악을 듣기도 하고 이러한 다양한 일을 수행합니다.

이러한 컴퓨터는 CPU라는 중앙처리 장치와, 흔히 램(또는 램카드)라고 부르는 것으로 이뤄져 있습니다.

CPU는 직접적으로 프로그램을 수행하는 곳이고, 램은 임시적으로 데이터를 저장하는 곳(예를 들면 Ctrl+C로 복사한 내용 등)입니다.

더보기

CPU를 책상 위에 앉은 사람, 램은 책상 위에 있는 종이라고 할 수 있습니다.

여러분은 19 * 19 +121 * 43라는 계산을 하고 종이에 적어야 방을 탈출할 수 있는 임무가 있습니다.

 

1. 일단 CPU에 해당하는 사람은 19 * 19를 머릿속으로 암산할 것입니다. (CPU 연산)

2. 19 * 19 암산이 끝났다면 그 결과를 다음과 같이 종이에 잠시 적을 것입니다. (RAM에 연산 결과 저장)

    361 + 121 * 43

3. 그런 다음 CPU는 다음 작업인 121 * 43을 계산할 것입니다. (암산한다고 가정) (CPU 연산)

4. 121 * 43 암산을 끝냈다면 그 결과를 다음과 같이 종이에 다시 적을 것입니다. (RAM에 연산 결과 저장)

    361 + 5203

5. 마지막으로 CPU는 361 + 5203이라는 계산을 끝낼 것입니다. (CPU 연산)

6. 끝으로 여러분은 종이에 다음과 같이 연산 결과를 종이에 적고 방을 탈출할 것입니다. (RAM에 연산 결과 저장)

    5564

 

이처럼 RAM은 적당히 끝낸 연산의 결과가 저장될 수 있는 공간입니다.

여러분이 인터넷 창을 20개씩 열면 프로그램도 20개이고, 각각의 프로그램마다 중간에 끝낸 연산 결과물(예를 들면 인터넷 창에서 로그인 버튼의 위치 등)도 20배가 될 것이기 때문에 RAM의 공간을 많이 차지할 것입니다.

 

기존에 큰 판에 CPU와 RAM을 꽂은 컴퓨터를 한 칩에 담은 것이 MCU라고 할 수 있습니다. (여기에 추가 기능이 있죠)

성능을 포기한 대신에 작은 크기를 택하여 한 칩 안에 들어갈 수 있도록 한 것이죠. 

여러분이 쓰는 그런 컴퓨터만큼의 성능은 안 나와서 어쩔 땐 게임하고, 어쩔 땐 음악 듣고 이렇게 여러 작업을 할 수는 없지만 어떤 MCU는 3D 프린터를 제어한다던지, 또 어떤 MCU는 드론을 제어한다던지 등의 한 가지 기능은 수행할 수 있습니다. 

성능은 안 좋지만, 개발자의 프로그램에 맞게 이런 목적성 있는 MCU의 특성으로 정해진 시스템을 만들 수 있는 것입니다. (비교적 싸기도 하고) 여기에 다른 장치(모터나 센서)등을 직접적으로 제어할 수 있는 기능이 내포되어 있기 때문에 여러 분야에서 활용될 수 있습니다.

 

 

ARM


ARM은 여러분들이 알고 계신 것처럼 CPU를 제조하는 회사입니다.

정확히는 CPU 자체를 제조하는 것이 아닌, CPU의 도면이라고 할 수 있는 아키텍처를 설계하는 회사이죠.

최근에 나온 ARM사의 아키텍처는 Cortex라는 이름으로 크게 3가지로 분류할 수 있습니다.

타입 설명 용도 예시
A형 고성능 어플리케이션을 위한 아키텍처 Ryzen같은 곳에서 사용됨 Cortex-A5
R형 실시간 처리가 요구되는 임베디드 시스템을 위한 아키텍처 비행기나, 원자로 등 정확한 시간이 요규되는 곳에서 사용됨 Cortex-R4
M형 임베디드 MCU 시스템을 위한 아키텍처 MCU에 사용됨 Cortex-M3

 

ARM의 특징은

RISC로 설계되어 있으며, 저전력 구동을 위한 Sleep모드, 작은 사이즈 등이 있습니다.(추후 필요할 때마다 더 알려드리겠습니다.)

RISC로 설계되어 있기 때문에 복잡한 동작을 수행하는 명령어는 없지만, 주소 기반의 외부 기능 제어, C언어로 구현할 수 있는 인터럽트 등이 큰 장점이라고 할 수 있습니다.(이 또한 추후 다시 다루겠습니다.)

 

 

 

 

STM32F103ZET6는 이러한 ARM Cortex-M3 기반으로 충분한 양의 I/O 포트와 PWM, Timer 등의 특수기능까지 탑재된 MCU입니다.

반응형