회원가입 ID/PW 찾기

하드웨어 설계에 관련한 공개 강좌를 게재하는 공간입니다.
운영진에 의해 강좌글은 편집되며, 공익을 위한 게시글은 '하드웨어 강좌'란으로 이동될 수 있습니다.

콘텐츠 수 129

MCU 기초

용어도 모르겠어요 구매수 0 조회 수 6312 2013.09.14 21:55:22
판매자 아크마 판매 납포인트 무료 평점 1.0점 / 총 2명 참여

마이크로컨트롤러는 프로그램에 의해서 순차적으로 동작하는 디지털 회로 모임의 개념을 가진 IC이다. 즉 여러 가지의 기능(이동, 덧셈, 뺄셈, AND, OR 등의 연산)을 가진 디지털 회로가 모여 있는데 그중에서 프로그램에 의해서 선택된 회로만이 선택되어서 동작하게 되어 있다. 따라서 어떠한 특정한 일을 수행하려 한다면, 동작들을 순차적으로 나열하여 진행되는 순서대로 동작하게 하면 되는데 이렇게 순차적인 동작을 문서화한 것을 프로그램이라고 부른다. 이해를 돕기 위해서 2와 3을 더한 결과를 얻어서 출력하는 과정을 예를 들어서 설명해 보자.

 

① ‘2’를 한 피연산자 메모리 A에 저장한다.

② ‘3’을 다른 피연산자 메모리 B에 저장한다. 

③ 메모리 A와 B를 더하는 연산을 수행한다.

④ 연산의 결과를 메모리 C에 저장한다.

⑤ 결과를 출력하려면 LCD같은 출력장치로 결과를 전송한다.

 

                                                                      

mcu_1.jpg

 

 

 

<마이크로컨트롤러의 개념>

 

위의 그림에서 1번부터 4번까지는 마이크로 컨트롤러 내부에서 일어나는 동작이며, 5는 이후 표시를 위해서 LCD등의 외부장치에 데이터를 전송하는 회로를 동작시켜서 결과를 표시할 수 있도록 하는 동작이다.

 이 예에서 보듯이 마이크로컨트롤러는 이러한 동작들에 필요한 충분한 메모리나 다양한 연산장치들을 장착하고 있으므로 사용자가 각각의 필요에 따라서 골라서 쓸 수 있도록 구성된 회로의 개념인 것이다.

 마이크로컨트롤러는 사용자가 1~5까지의 동작을 구현할 수 있도록 각 동작에 대한 명령들(어셈블리 명령)을 지원하며, 따라서 사용자는 각각의 동작들을 해당 명령들을 이용하여 구현할 수 있으며, 이를 동작의 순서에 따라서 나열하면 프로그램이 되는 것이다. 그래서 프로그램은 사용자가 마이크로컨트롤러에게 하나하나의 동작에 대해서 미주알고주알 써서 내리는 작업 명령서인 셈이다. 이 개념은 모든 마이크로컨트롤러를 망라(널리 받아들여 모두 포함함)하는 것이며, 최신의 펜티엄 프로세서까지도 해당되는 마이크로프로세서라는 이름이 붙은 IC에는 모두 해당되는 중요한 개념이다. 단 여기서 어셈블리 명령들은 마이크로컨트롤러의 종류마다 다 달라서 호환되지 않으므로, 사용자가 사용하는 마이크로컨트롤러에서 지원하는 어셈블리 명령어로 구성된 프로그램만이 해당 마이크로컨트롤러에서 동작할 수 있다는 점에 주의해야 한다.

 아래 그림에서는 CPU core와 주변장치로 구성된 일반적인 마이크로컨트롤러의 내부 구성을 보여주고 있다.

 

mcu_2.jpg

 

                               

 

< 마이크로컨트롤러의 내부 구성>

 

CPU의 동작을 수행하는 부분인 CPU core는 연산을 담당하는 ALU와 데이터를 저장하기 휘한 메모리의 Register, 그리고 이들을 명령에 따라 적절한 연산을 수행시켜 주는 Control Unit으로 구성된다. 그리고 이 외의 타이머나 인터럽트, 입출력장치 및 메모리 등의 주변장치들이 일반적으로 같이 포함되어 한 개의 마이크로컨트롤러를 구성하고 있다.

 

 

※ MPU(Micro Processor Unit)

 

마이크로프로세서는 일반적으로 중앙처리장치(CPU)의 기능을 한다. 중앙처리장치는 아래의 그림과 같이 산술적인 연산과 논리적인 연산을 수행하는 부분(ALU), 데이터를 저장하는 레지스터 세트, 제어부로 이루어진다.

mcu_3.jpg

 

 

 < 중앙처리장치의 주요 부분 >

 

레지스터들은 명령어들을 수행하는 과정에 필요한 여러 종류의 데이터를 저장하는 역할을 한다. 산술논리부(ALU)는 산술적인 연산과 논리적인 연산을 담당함으로써 프로그램 수행에 필요한 명령어 실행을 돕는다. 제어부분은 레지스터들 간의 데이터 전달을 동제하면서 적절한 시기에 산술논리부(ALU)로 하여금 필요로 하는 기능을 수행하도록 한다.

 마이크로 프로세서가 처음 등장한 것은 1970년대 초반이다. 초기의 마이크로프로세서는 4비트의 형태를 취했다. 즉, 데이터의 형태나 연산의 처리가 기본적으로 4비트인 중앙처리장치 기능을 수행하였다. 이후 급격한 속도로 8비트, 16비트 마이크로프로세서가 개발되고, 1980년대에는 32비트 마이크로프로세서가 개발되었다. 최근에는 64비트의 마이크로프로세서가 등장하는 추세이다.


 

★ PIC(Programmable Interrupt Controller)

1개 명령이 처리할 수 있는 작업은 제한적이지만 대단히 빠른 속도로 작업을 수행할 수 있으며, 코드의 크기를 줄일 수 있습니다. PIC 시리즈는 분기 명령만 2개 사이클이 필요할 뿐, 그 외의 명령들은 1개 사이클에 수행된다.

 

★ 8051

 

마이크로컨트롤러 8051은 인텔(Intel)사에서 만든 MCS-51 컨트롤러 중의 하나이다.

MCS-51 패밀리(family)에는 여러 종류가 있다. 그 중에서 80계열에서 가장 기본으로 하는 8비트(bit) 마이크로컨트롤러 중의 한 계열이 8051입니다.

 

★ AVR

 

AVR은 Atmel사에서 만든 RISC 타입의 고속 8비트 마이크로컨트롤러이다. PIC보다 처리속도가 빠르고 8051보다 자원이 풍부하다는 특징이 있어 중소 규모의 산업용 제어기 제작에 적합합니다.

 

 

★ ARM(Advanced RISC Machine)

 

고성능 저전력(High Performance, Low Power) 이라는 아주 막강한 능력을 갖고 있습니다. 이 점에서 요즘 같이 휴대전화, MP3플레이어, PDA 등 휴대용 전자제품들이 난무하는

시대에 가장 걸 맞는 MCU가 아닐까 싶다. ^^

 

★ DSP(Digital Signal Processor)

 

다양한 신호 처리 및 고속 연산에 유리하도록 특별히 제작한 MCU로 하드웨어 적으로 부동 소수점(floating point)을 연산하거나 MAC(multiplication and accumulation, 덧셈과 곱셈을 한 사이클에 수행) 연산 기능, 빠른 외부 메모리 인터페이스 등이 특징입니다.

 특히 영상 처리나 제어기의 동작에 있어 행렬 연산이 많이 필요한데, 행렬 연산의 주된 과정은 각 행렬의 요소끼리 곱셈을 한 후 이를 더하는 과정입니다. 따라서 곱셈과 덧셈을 한 사이클에 수행할 수 있는 MAC 연산 기능이야말로 빠른 연산을 보장하는 DSP의 특징을 두드러지게 나타내 주는 기능입니다.

 

※ 하바드 구조 

프로그램 메모리와 데이터 메모리가 분리된 형태를 의미한다. 하바드 구조는 PIC, AVR이나 DSP와 같은 마이크로 컨트롤러에 사용되며, 프로그램 메모리와 데이터 메모리가 완전히 분리된다. 즉 , 프로그램 메모리와 데이터 메모리에서 주소 버스 및 데이터 버스가 완전히 분리된 것이다. 특히, 프로그램 메모리와 데이터 메모리의 주소 크기, 데이터 크기 등이 완전히 서로 다르다고 할 수 있습니다. 

* 빠숑님에 의해 작성되었습니다.



모르는 것이 무엇인지 스스로 정리하고 질문하는 습관을 가집시다.
무성의/광범위하거나 직접 해보지 않고 올리는 질문은 서로를 피곤하게 합니다.
질문쪽지는 사절이오니 게시판에 글을 남겨주세요. 그래야 다같이 공유할 수 있으니까요.

첨부

profile
보이스365 2014.03.21 16:25
잘읽었습니다
profile
씨욘드 2014.03.28 06:51
잘 보앗습니다
profile
안준호 2014.03.29 21:48
좋은글 감사합니다 ㅎ
profile
여시아빠 2014.04.03 20:08
초보인데 도움되네요!!
profile
nexx 2014.04.22 00:24
감사합니다.
profile
aza133 2014.04.25 08:25
좋은글 감사합니다.
profile
퀸즈맨 2014.04.28 13:50
잘 읽었습니다. 감사합니다.
profile
백만화소 2014.04.30 01:10
잘보았습니다.감사합니다.
profile
캡틴조선 2014.04.30 15:50
좋은 내용 감사드립니다.
profile
haemil 2014.05.08 11:01
감사합니다..
profile
iore 2014.05.16 10:35
잘봤습니다^^
profile
iore 2014.05.16 10:36
잘봤습니다^^
profile
포컬스탈 2014.05.21 02:08
감사합니다.
profile
jazzjazz 2014.05.22 10:41
완전초보인데 .역시 약어..용어들이 생소한것이 많아서^^..도움되었네요^^
profile
늘사랑에목마르다 2014.05.30 08:44
잘 읽었습니다.
profile
Jumong 2014.05.30 14:15
잘 읽었습니다. 이미지 파일이 표시가 안되는데 확인 바랍니다
profile
완소엔쵸 2014.05.31 11:09
좋은글이지만, 이미지가 보이지가 않아요.
profile
푸훗2005 2014.06.02 14:19
좋은 글 감사합니다. ~ ^^
profile
Yongs 2014.06.13 08:38
좋은글 감사합니다!!
profile
공대소년 2014.06.13 13:50
정리가 됩니다 감사합니다
profile
ksgimem 2014.06.18 16:54
좋은글 감사합니다. ^^
profile
NANIkim 2014.06.20 00:13
좋은글 감사합니다.ㅎ
profile
반란의제왕 2014.06.22 13:07
좋은 내용 감사 합니다
profile
김가을 2014.06.26 23:31
좋은정보 감사합니다.
profile
호호아져씨 2014.06.29 09:17
좋은 내용 감사합니다.
profile
ITBOY 2014.06.29 22:53
좋은정보 감사드립니다
profile
초진자 2014.07.14 17:00
좋은 자료입니다.
profile
302s 2014.07.24 08:54
좋은글 감사합니다.
profile
wlswjdgks 2014.07.27 21:57
좋은글 감사해요~
profile
김평식 2014.07.29 07:01
감사합니다.
profile
허허실실 2014.07.29 23:29
좋은 글 감사합니다
profile
패러데이 2014.08.01 03:22
감사합니다. 그동안 궁금했던 점이 풀리네요
profile
싸모 2014.08.01 11:52
알면알수록 어렵네요~ ㅜㅜ
profile
엉뚱이79 2014.08.06 11:17
감사합니다~!
profile
달달이 2014.08.22 01:43
잘읽었습니다.
profile
천년미르 2014.08.26 17:43
감사 합니다.
profile
임성철 2014.09.21 22:52
감사합니다.
profile
james_kim 2014.10.02 06:41
간결 명료한 설명 감사합니다. ^^
profile
열심히합시다 2014.10.05 22:49
좋은글 감사합니다 ㅎㅎ
profile
일뽀자 2014.10.13 10:37
잘보았습니다..
profile
아이뽕 2014.10.13 12:02
좋은글 감사합니다~
profile
gjraligjl 2014.10.16 17:56
좋은 정보 감사합니다
profile
무한땜 2014.10.20 16:55
좋은글 감사합니다.
profile
초심으로zz 2014.10.24 00:03
감사합니다
profile
칸쵸@ 2014.11.11 10:52
좋은 정보 감사합니다.
profile
똘갱이 2014.11.11 13:12
잘 읽었습니다
profile
붉은빛하늘 2014.11.13 22:01
아직많이부족한데 좋은정보감사합니다
profile
이창원 2014.11.14 16:13
감사히 잘 읽었습니다.
profile
ghtjd19 2014.11.24 22:13
좋은 글 잘 봤습니다!
profile
om 2014.12.01 12:02
오랜만에 옛날 기억을 되살려 주셔서 감사드립니다.
search

연재강좌(하드웨어 엔지니어 되기) : (12)
전자 하드웨어 기초 : (14)
8051 어셈블리 강좌(by 허인교수님) : (7)
■ 제3장. 명령어 2019-04-17 14:58
AVR 기반의 라인트레이서(by 아크마) : (9)
용어도 모르겠어요 : (15)
■ 8051이란? 2019-04-17 00:17
■ 아트워크 기초 2019-04-17 14:40
■ MCU 기초 2019-12-19 10:58
■ 펌웨어 기초 2019-04-17 14:44
■ 납땜하기 2019-07-26 09:49
하드웨어 일반 : (15)
■ ASCII Table 2019-04-17 14:19
PCB설계와 제조의 이해 : (7)
■ CAD-Utility 2021-09-02 13:41
EMC 적합성을 고려한 PCB설계 : (43)
PCB의 기초 : (14)
바이패싱과 디커플링 : (9)
ESD 보호 : (3)
■ ESD 보호 - 개요 2017-06-22 10:24
클럭회로 : (17)
PCB 자주 묻는 질문 : (1)
Altium 사용하기 : (6)
ETC
  • 일을 몰고 가라. 그렇지 않으면 일이 너를 몰고 갈 것이다.
    - 프랭클린
  • * 납포인트 정보 *
  • 글 작성 : 3
  • 댓글 작성 : 1
저작권법에 위배되는 콘텐츠는 등록 불가하며, 저작물에 대한 권리는 저작자에게 있습니다.
Copyright 2006-2021 © hardwareis.com, All rights reserved.