아두 이노 vs 마이크로 프로세서 vs 마이크로 컨트롤러


답변:


21

마이크로 프로세서 :

일반적으로 데스크탑 PC 또는 랩톱에 있으며 CPU 및 외부 메모리 인터페이스와 SPI, I2C, UART, USB, LCD 등과 같은 외부 세계에 연결하기위한 다양한 I / O 버스가 포함되어 있습니다. 마이크로 프로세서에는 클럭을 제공하는 외부 크리스탈도 있습니다.

대부분의 마이크로 프로세서에는 칩에 읽기 전용 메모리가 없습니다. 대신 초기 부팅 코드가있는 마더 보드에 외부 칩이 있습니다. 인텔 기반 PC에서는이를 기본 입출력 시스템 (BIOS)이라고하며 초기 부팅 코드 외에 I / O 루틴도 포함합니다. 부팅 코드는 POST ( Power-On Self Test )를 시작하여 시작한 다음 하드 드라이브, CD 또는 플로피 디스크에서 부팅 코드의 다음 단계를로드 할 위치를 찾습니다. 그런 다음이 2 단계 부팅은 운영 체제를로드합니다. (일부 시스템에는 3 단계의 부팅 코드가있을 수 있습니다.)

일부 마이크로 프로세서 (일반적으로 부팅 옵션이 제한된 스마트 폰 및 태블릿을 대상으로하는 것)에는 초기 부팅 코드가 포함 된 소량의 읽기 전용 메모리가 있습니다.

부팅 코드를 읽기 전용이라고합니다. 실제로 일부 시스템에서는 업데이트 할 수 있습니다. 그러나 이것은 상당히 위험합니다. 문제가 발생하면 시스템이 더 이상 부팅되지 않을 수 있습니다.

읽기 전용 메모리에서 프로그램을 실행하는 마이크로 컨트롤러와 달리, 마이크로 프로세서를 부팅 한 후 프로그램을 외부 RAM에로드하여 거기서 실행합니다.

마이크로 컨트롤러 :

반면에 CPU, 프로그램을 저장하는 읽기 전용 메모리, 프로그램 실행에 사용되는 변수를 저장하는 RAM 및 외부 세계에 연결하기위한 다양한 I / O 버스를 포함하는 독립형 단일 칩 IC입니다. SPI, I2C, UART 및 기타로 자체적으로 외부 인터페이스를 통해 PC에 프로그래밍하지 않고는 프로그램을 실행할 수 없습니다. 마이크로 컨트롤러는 클록을 제공하기 위해 외부 크리스털이 필요할 수도 있지만, 일부는 내부 클록을 가지고 있습니다.

일부 마이크로 컨트롤러 (예 : Microchip의 PIC32)에는 두 섹션의 플래시 메모리가 있습니다. 하나는 초기화 (부팅) 코드를 보유하고 다른 하나는 응용 프로그램을 저장합니다. 따라서 응용 프로그램 코드를 제자리에서 쉽게 업데이트 할 수 있습니다.

목적에 따라 마이크로 프로세서가 아닌 마이크로 컨트롤러를 사용하려고합니다. 마이크로 컨트롤러를 사용하려면 자체 보드를 설계하거나 일종의 개발 보드를 구입해야합니다.

아두 이노 :

이러한 보드는 마이크로 컨트롤러, ATmega8, ATmega168, ATmega328, ATmega1280 및 ATmega2560과 같은 8 비트 AVR과 다양한 주변 보드와의 인터페이스를위한 전원 공급 장치, 크리스탈 및 암 헤더를 포함합니다.

이 주변 장치 보드는 실드 라고 하며 서로 위에 쌓 이도록 설계되었습니다 (보드 하단에 Arduino 자체 또는 다른 실드에 연결하기위한 수 핀이 있고 상단에 수 핀이 있습니다. 그 위에 쌓인 방패).

실드의 예는 모터 제어 보드, 일반 I / O 보드, 릴레이 보드, 이더넷 보드 및 LCD이며 일반적으로 터치 스크린이 있습니다. 그러나 나는 단지 LCD없이 감지를 위해 사용될 저항성 터치 스크린을 모른다.

위에서 설명한 하드웨어 외에도 Arduino에는 Java로 작성된 크로스 플랫폼 통합 개발 환경 (IDE)이 제공됩니다. BASIC 언어가 50 년 전에했던 것처럼 아티스트와 다른 초보자에게 프로그래밍을 소개하도록 설계되었습니다. Arduino를위한 프로그램을 스케치 라고합니다 .

Arduino 프로그램은 C 또는 C ++로 작성되었지만 많은 세부 사항은 사용자에게 숨겨져 있습니다. 지속적으로 반복되는 프로그램 (일반적으로 임베디드 프로그램)을 만들기 위해 두 개의 함수 (시스템에서 호출) 만 정의하면됩니다.

setup(): a function run once at startup that performs initialization
loop(): a function called repeatedly until the board powers off

IDE에는 일반적인 입출력 작업에 사용할 수있는 "배선"이라는 소프트웨어 라이브러리가 제공됩니다.


25 년 동안 하드웨어를 더 이상 설계하지는 않았지만 읽기 전용 메모리가 포함 된 데스크톱 컴퓨터 용 프로세서, 컴퓨터를 부팅 할 수있는 메모리는 훨씬 적습니다.
Rob

@Rob 당신은 내가 알고있는 모든 데스크탑 PC가 외부 부트 칩을 사용하는 것이 옳다. 그러나 TI의 OMAP3 아키텍처는 내부 부팅 ROM이있는 마이크로 프로세서의 예입니다. 여기에서 Linux를 다시 부팅 하는 설명 에서 첫 번째 줄은 "전원을 켤 때 OMAP3 장치가 내부 부팅 ROM에서 부팅을 시작합니다.이 코드는 제조 과정에서 수정되어 변경할 수 없습니다. 부팅 ROM은 부팅 구성 핀을 읽습니다 (SW4 부트 ROM에 첫 번째 외부 부트 로더를 찾을 위치를 알려줍니다. " 내 답변을 업데이트했습니다.
tcrosley

10

아두 이노

Arduino는 Atmel AVR 마이크로 컨트롤러를 포함하고 표준 패턴으로 일련의 커넥터를 제공하는 PCB입니다. 마이크로 컨트롤러에는 일반적으로 PC에서 TTY 직렬 연결 (또는 USB를 통한 가상 직렬 연결)을 통해 프로그램 ( "스케치"라고 함)을 마이크로 컨트롤러에로드 할 수있는 "부트 로더"프로그램이 사전 프로그래밍되어 있습니다.

마이크로 프로세서

마이크로 프로세서는 중앙 처리 장치 (CPU) 만 포함하는 IC입니다. IC에는 RAM, ROM 또는 기타 주변 장치가 없습니다. IC는 캐시 메모리를 포함 할 수 있지만 외부 메모리없이 사용할 수 있도록 설계되지 않았습니다.

마이크로 프로세서는 내부적으로 프로그램을 저장할 수 없으므로 일반적으로 전원을 켤 때 소프트웨어를로드합니다. 일반적으로 외부 ROM에서 "펌웨어"가로드되고 다른 스토리지 미디어 (예 : 하드 디스크)에서 운영 체제가로드되는 복잡한 다단계 "부팅"프로세스가 포함됩니다. ).

일반적으로 개인용 컴퓨터에 있습니다.

마이크로 컨트롤러

마이크로 컨트롤러는 CPU 및 일부 또는 RAM, ROM 및 기타 주변 장치를 포함하는 IC입니다. 마이크로 컨트롤러는 외부 메모리 나 스토리지없이 작동 할 수 있습니다.

일반적으로 마이크로 컨트롤러는 PCB에 납땜되기 전에 프로그래밍되거나 개인용 컴퓨터에 부착 된 특수한 "프로그래머"장치를 통해 시스템 내 프로그래밍 (ISP 또는 ICSP) 커넥터를 사용하여 프로그래밍 할 수 있습니다.

일반적인 마이크로 컨트롤러는 일반적인 마이크로 프로세서보다 훨씬 간단하고 느리지 만 차이점은 대부분 규모와 응용 프로그램 중 하나라고 생각합니다.

예를 들어 기본 세탁기와 같은 간단한 기기에서 찾을 수 있습니다.


2

"Arduino"는 소프트웨어 개발 환경 소프트웨어 환경이 프로그램을 개발할 수있는 여러 마이크로 컨트롤러 보드입니다. 대부분의 보드는 Atmel AVR 마이크로 컨트롤러를 사용합니다.


2

Arduino는 마이크로 컨트롤러 기반 플랫폼입니다 (UNO의 경우 ATMEGA 328). 일반적으로 마이크로 컨트롤러는 입력 감지가 필요한 모든 것에 마이크로 프로세서보다 더 적합합니다. ATMEGA 328과 같은 마이크로 컨트롤러는 전압을 감지하기 위해 아날로그-디지털 변환기 (ADC)를 가지고 있으며 PWM 출력과 디지털 I / O도 가지고 있기 때문입니다.

Arduino를 사용하면 초보자를 위해 쉽게 프로그래밍 할 수 있고 지원 및 라이브러리를위한 커뮤니티가 좋은 Arduino Dev 시스템도 있습니다.

저항 막 방식 터치 스크린은 전위차계처럼 작동합니다. 하나는 x와 하나는 y입니다. Arduino 아날로그 입력에 넣을 수 있습니다. 여기를 참조하십시오 세부 사항 .

또 다른 옵션은 이와 같은 방법 으로 SPI 또는 I2C로 변환 하고 Arduino로 읽는 것입니다.

어느 쪽이든 Arduino가 좋은 선택이라고 생각합니다.


@tcrosley 또는 다른 오랜 회원 .. 이와 같은 다운 투표를 피하는 것과 같은 새로운 기고자에게 조언이 있습니까? 내 답변은 정확하고 질문에 답변하며 저항 막 방식 터치 스크린에 인터페이스하기위한 추가 정보를 제공합니다. 그 밖에 포함해야 할 것이 있습니까?
akellyirl

3
다운 투표를 너무 심각하게 생각하지 마십시오. 나는 당신의 첫 문장이 약간 부정확하다고 생각합니다. Arduino는 하드웨어와 소프트웨어로 구성된 플랫폼과 비슷합니다. Arduino 보드는 마이크로 컨트롤러가 아니라 마이크로 컨트롤러를 중심으로 설계된 보드입니다.
Rev1.0

1
Rev1.0과 같이 : "Arduino는 마이크로 컨트롤러입니다"는 사실이 아닙니다. Arduino는 SBC (Single Board Computer)입니다.
flup

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.