티스토리 뷰
마이크로컨트롤러는 조그마한 컴퓨터와 같다고 할 수 있습니다.
따라서 마이크로컨트롤러 보기에 앞서 컴퓨터에 대해서 알아보도록 하겠습니다.
컴퓨터는 연산 장치와 제어장치로 이루어진 중앙처리장치(CPU)와 입출력 장치, 데이터 저장을 위한 주기억 장치와 보조 기억 장치로 구성됩니다.
CPU를 하나의 IC(Integrated Circuit) 칩으로 구현한 반도체 소자를 마이크로프로세서(microprocessor)라고 부릅니다.
그러한 마이크로프로세서 중 "중앙 처리 장치의 기능 + 일정 용량의 메모리 + 입출력 인터페이스 + α" 를 내장한 것을 '마이크로컨트롤러' 라고 합니다.
이제 마이크로컨트롤러의 대해서 알아보도록 하겠습니다.
빨간 네모 안에 있는 것이 마이크로컨트롤러 입니다.
1. 마이크로컨트롤러의 특징
- 작고 가볍다.
- 마이크로프로세서와 비교하였을 때 가격이 저렴하다.
- 제어 장치 설계 및 제작 과정이 단순하며, 개발 비용 및 시간이 단축된다.
- 고장이 적고 유지 보수가 쉽다.
- 기능의 변경이나 확장을 적절히 대응할 수 있다.
- 마이크로프로세서와 비교하였을 때 처리 능력이 낮다.
2. 전송방법
마이크로컨트롤러는 마이크로컨트롤러의 핀을 이용해서 디지털 데이터인 '0'과 '1' 을 이용해 데이터를 주고 받으며, 해당 핀마다 1비트씩 교환이 가능합니다.
마이크로컨트롤러는 데이터 교환 시 '시리얼방식(하나의 선을 선을 통해 여러 번에 걸쳐 데이터를 교환하는 방식)' 을 선호합니다.
시리얼 방식에 대한 내용은 아래 접은글을 확인해주세요!
시리얼(Serial)은 '직렬'이라는 의미로, 시리얼 통신은 병렬 데이터를 직렬로 전환하여 전송하는 방식입니다.
직렬 전송은 '동기 방식'과 '비동기 방식'으로 나누거나 '전이중 방식'과 '반이중 방식'으로 나누는 방법이 있습니다.
1. 동기 방식
동기 방식은 동작하는 타이밍 신호를 주는 '클록'을 사용하여 데이터를 보내는 방식을 말합니다.
+) 클록 : 논리상태 H(High, 논리 1)와 L(Low, 논리 0)이 주기적으로 나타나는 방형파 신호
출처 : https://ko.wikipedia.org/wiki/%ED%81%B4%EB%9F%AD_%EC%8B%A0%ED%98%B8
![](https://blog.kakaocdn.net/dn/cmUrWL/btraCSzk73B/pgc1Gd6chXomLa3SWu3uaK/img.png)
클록 신호가 상승하는 순간마다 데이터 신호가 변화하게 되는데, 이처럼 클록은 동작의 타이밍을 조절해줍니다.
2. 비동기 신호
비동기 신호는 별도의 클록 신호 없이 데이터를 보내는 방식을 말합니다.
비동기 신호에는 별도의 신호가 없기 때문에 수신측과 송신측의 속도를 먼저 일치시켜 주어야합니다.
3. 전이중 방식
2개의 데이터 선을 이용하는 방식으로, 연결된 두 개의 장치는 동시에 서로 데이터를 주고 받을 수 있습니다.
4. 반이중 방식
1개의 데이터 선을 이용하는 방식으로, 연결된 두 개의 장치는 데이터를 주고 받을 수는 있지만 동일한 시간에는 불가합니다.
동기 방식 | 비동기 방식 | |
전이중 방식 | SPI | UART |
반이중 방식 | I2C | 1-Wire |
<간단히 시리얼 방식 살펴보기>
UART : - 송수신에 두 개의 데이터 핀을 연결하여 사용하면서 동시에 송수신이 가능하다.
- 비동기 방식이므로 송수신측 속도를 동일하게 설정해야 한다.
- 1 : 1 통신 방식이다.
SPI : - 짧은 거리에서 고속의 정보 교환을 위한 통신 방식
- 데이터 전송 핀 3개(2개는 데이터 전송, 1개는 클록 신호)와 제어 핀 1개 총 4개의 핀을 사용한다.
- 1 : n 통신 방식이다.
I2C : - 짧은 거리에서 저속의 정보 교환을 위한 통신 방식
- 2개의 데이터 핀만을 사용한다. (1개는 데이터 전송, 1개는 클록 신호 -> 반이중 방식)
- 1 : n 통신 방식이다.
3. 프로그램 작성 방법
프로그램을 작성하고자 할 때, 마이크로컨트롤러에서 바로 하기에는 입출력 장치도 없고, 저장 메모리가 너무 부족합니다 ㅠ.ㅠ
따라서 개발은 컴퓨터(개발 시스템)에서 하고, 실행 파일만 마이크로컨트롤러(목적 시스템)로 업로드하여 설치하는 '교차 개발 환경'을 이용하게됩니다.
개발 시스템에 설치된 교차 컴파일러를 이용해서 목적 시스템에서 실행가능한 기계어 파일을 생성해줍니다.
(앞으로 공부할 ATmega2560은 HEX 확장자를 가지고 있다.)
생성한 기계어 파일을 목적 시스템에 전달해서 사용하게 되는데 그 전달 과정을 개발 시스템 입장에서는 '업로드' , 그리고 목적 시스템 입장에서는 '다운로드'라고 합니다.
4. 마이크로컨트롤러 CPU구조
앞으로 공부할 ATmega2560을 포함하여 마이크로 컨트롤러의 CPU는 RISC 구조를 사용하는 경우가 많습니다.
해당 구조에 대한 내용은 아래 접은글을 확인해주세요!
<CISC / RISC>
CPU는 기계어 명령의 길이와 형식에 따라서 CISC와 RISC로 구분할 수 있다.
CISC : 복잡한 명령어들을 가지고 있는 구조로, 명령어 해독에 시간이 많이 걸린다는 단점이 존재한다.
하지만 다양한 종류의 연산과 주소 지정모드 등이 제공되면서 자유로운 프로그램이 가능하다는 장점이 존재한다.
RISC : 고정된 길이의 짧은 명령어를 사용하며 명령어의 종류가 상대적으로 적다. 따라서 명령어 수행속도가 빠른 편이며, 단순하기 때문에 설계 비용이 적다는 장점이 있다.
또한 적은 수의 명령어를 이용하기 때문에 보다 쉽게 프로그램을 개발 할 수 있으며, 파이프 라인 성능에 최적화 될 수 있다.
하지만 적은 수의 명령어로 작성하다보니 길이가 길어지고 메모리도 많이 차지하게 된다.
--> CISC 구조에서 자주 사용되는 간단한 명령어 만으로 만들어진 것이 'RISC'
+) '파이프라인' : 한 데이터 처리 단계의 출력이 다음 단계의 입력으로 이어지는 형태로 연결된 구조
![](https://blog.kakaocdn.net/dn/NxTRG/btraps1YLVK/k025adZvhK9Vr2PYojwZJk/img.png)
그리고 마이크로컨트롤러는 RISC 와 함께 하버드 구조도 사용하고 있습니다.
하버드 구조는 명령어 버스와 데이터 버스를 물리적으로 분리해서 저장하는 방법입니다.
하버드 구조를 이용하게 되면 명령어와 데이터를 동시에 읽을 수 있어 시간을 단축할 수 있다는 장점이 있습니다.
참고 자료 : 따라하면서 배우는 마이크로컨트롤러(ATmega2560으로 프로그래밍하기), 허경용 저, 한빛아카데미, 2019
'마이크로컨트롤러' 카테고리의 다른 글
Microchip Studio 을 이용해 LED 키기 / 글자 출력하기 (ATmega2560) (0) | 2021.08.04 |
---|---|
[시리얼 통신] UART (0) | 2021.08.02 |
Microchip Studio 다운로드 방법 (0) | 2021.08.02 |