싱글보드 마이크로컨트롤러

Single-board microcontroller
ATMel AT91을 탑재한 Make Controller KitSAM7X256(ARM) 마이크로컨트롤러

싱글보드 마이크로컨트롤러는 단일 인쇄회로기판 위에 내장된 마이크로컨트롤러입니다.이 보드는 유용한 제어 작업에 필요한 모든 회로(마이크로프로세서, I/O 회로, 클럭 제너레이터, RAM, 저장된 프로그램 메모리 및 필요한 지원 IC)를 제공합니다.이 보드는 컨트롤러 하드웨어 개발에 시간과 노력을 들일 필요 없이 애플리케이션 개발자에게 즉시 도움이 됩니다.

싱글보드 마이크로컨트롤러는 일반적으로 저비용이며 특히 개발비용이 낮기 때문에 교육 분야에서 오랫동안 인기가 있었습니다., 새로운 프로세서 패밀리의 실전 경험을 얻을 수 있는 수단으로서도 인기가 있습니다.

오리진스

싱글보드 마이크로컨트롤러는 1970년대 후반에 등장하여 6502Z80[1]같은 초기 마이크로프로세서가 등장하면서 하나의 기판에 전체 컨트롤러를 구축하는 것이 실용화되었고 컴퓨터를 비교적 작은 작업에 사용할 수 있게 되었습니다.

1976년 3월 인텔8080 마이크로프로세서에 필요한 모든 지원 컴포넌트와 1킬로바이트의 RAM, 4킬로바이트의 사용자 프로그래밍 가능한 ROM, 48라인의 병렬 디지털 I/O와 라인 드라이버를 통합한 싱글보드 컴퓨터 제품을 발표했습니다.이 보드는 버스 커넥터를 통해 확장할 수도 있지만 추가 하드웨어가 필요하지 않은 경우 확장 카드 케이지 없이 사용할 수 있습니다.이 시스템의 소프트웨어 개발은 인텔의 Intellec MDS 마이크로컴퓨터 개발 시스템에서 진행되었습니다.이것에 의해, 어셈블러와 PL/M 의 서포트가 제공되어 [2]디버깅을 위한 회로내 에뮬레이션이 가능하게 되었습니다.

이 시대의 프로세서에서는 프로세서 외부에 다수의 서포트 칩을 탑재할 필요가 있었습니다.RAMEPROM은 분리되어 있어 동적 메모리의 메모리 관리 또는 리프레시 회로가 필요한 경우가 많습니다.I/O 처리는 8255와 같은 단일 칩에 의해 수행될 수 있지만 종종 몇 개의 칩이 더 필요합니다.

싱글보드 마이크로컨트롤러는 범용 사용자 인터페이스와 대용량 스토리지 인터페이스가 없다는 점에서 싱글보드 컴퓨터와 다릅니다.마이크로프로세서 개발 보드에 비해 마이크로컨트롤러 보드는 일부 제어 시스템에 대한 디지털 및 아날로그 제어 상호 연결을 강조하지만, 개발 보드는 이산형 또는 아날로그 입출력 장치만 있거나 아예 없을 수 있습니다.개발 보드는 특정 프로세서 패밀리를 소개하거나 훈련하기 위해 존재하므로 외부 기능보다 내부 구현이 더 중요합니다.

내부 버스

Z806502와 같은 초기 싱글 보드 장치의 버스는 보편적으로 Von Neumann 아키텍처였습니다.프로그램용 ROM과 데이터용 RAM 등 근본적으로 다른 유형의 메모리에 저장되었지만 프로그램과 데이터 메모리는 동일한 공유 버스를 통해 액세스되었습니다.이 버스 아키텍처는 프로세서의 유비쿼터스 이중 인라인 IC 패키지에 사용할 수 있는 제한된 40개의 핀 수를 절약하기 위해 필요했습니다.

일반적으로 확장 커넥터를 통해 내부 버스에 액세스하거나 적어도 커넥터를 납땜할 수 있는 공간을 제공합니다.이는 저비용 옵션이었고 거의 사용되지 않더라도 확장 가능성을 제공했습니다.일반적인 확장으로는 I/O 디바이스 또는 추가 메모리가 있습니다.테이프나 디스크 스토리지, CRT 디스플레이 등의 주변기기를 추가하는 것은 드문 일이었습니다.

나중에 8048과 같은 싱글마이크로 컨트롤러가 출시되었을 때, 칩 패키지 내에서 필요한 모든 메모리를 제공할 수 있었기 때문에 버스는 더 이상 패키지 외부에 노출될 필요가 없었습니다.이 세대의 프로세서는, 각각 다른 프로그램과 데이터·버스가 있는 하버드·아키텍처를 사용하고 있었습니다.이것들은 모두 칩에 내장되어 있습니다.이러한 프로세서의 대부분은 수정된 Harvard 아키텍처를 사용했으며, 프로그램 데이터 공간에 대한 쓰기 액세스가 가능하여 회로 내 프로그래밍이 가능했습니다.이러한 프로세서는 싱글보드 마이크로컨트롤러에 걸쳐 Harvard 버스를 필요로 하거나 지원하지 않습니다.주변기기 확장을 위한 버스를 지원할 때는 I²C, 1-Wire 또는 다양한 시리얼 버스 등의 전용 I/O 버스가 사용되었습니다.

외부 버스 확장

범용 마이크로프로세서를 사용하는 일부 마이크로컨트롤러 보드에서는 프로세서의 주소와 데이터 버스를 확장 커넥터에 연결하여 메모리 또는 주변기기를 추가할 수 있습니다.이를 통해 단일 보드 시스템에는 아직 존재하지 않는 리소스가 제공됩니다.시스템에 따라서는 확장이 필요 없기 때문에 커넥터는 옵션이며, 필요에 따라 사용자가 설치 위치를 지정할 수 있습니다.

입출력

Atmel ATMEGA168 탑재 Arduino Diecimila

마이크로컨트롤러 시스템은 여러 형태의 입력 및 출력 신호를 제공하여 애플리케이션 소프트웨어가 외부 "실제" 시스템을 제어할 수 있도록 합니다.이산 디지털 I/O는 단일 비트(온/오프)를 제공합니다.온도 또는 압력과 같은 연속 가변 범위를 나타내는 아날로그 신호는 마이크로 컨트롤러의 입력 및 출력이 될 수도 있습니다.

개별 디지털 입력 및 출력은 주소 지정 가능한 래치에 의해서만 마이크로프로세서 데이터 버스로부터 버퍼링되거나 Intel 8255 또는 Motorola 6821 병렬 입출력 어댑터와 같은 전용 입출력 IC에 의해 동작할 수 있습니다.이후 싱글칩 마이크로컨트롤러는 입력 및 출력 핀을 사용할 수 있습니다.이러한 입력/출력 회로는 일반적으로 램프나 모터와 같은 장치를 직접 작동하기에 충분한 전류를 제공하지 않으므로, 솔리드 스테이트 릴레이는 마이크로 컨트롤러 디지털 출력에 의해 작동하고 입력은 신호 조절 레벨 시프트 및 보호 회로에 의해 격리됩니다.

아날로그 멀티플렉서 및 공통 아날로그-디지털 컨버터를 갖춘 하나 이상의 아날로그 입력이 일부 마이크로컨트롤러 보드에 있습니다.아날로그 출력은 디지털-아날로그 변환기를 사용하거나 일부 마이크로컨트롤러에서는 펄스 폭 변조에 의해 제어될 수 있습니다.개별 입력의 경우 입력을 스케일링하거나 브리지 들뜸 또는 냉접점 보상 등의 기능을 제공하기 위해 외부 회로가 필요할 수 있습니다.

컴포넌트 비용을 제어하기 위해 많은 보드는 추가 하드웨어 인터페이스 회로를 갖추고 있지만 이들 회로용 컴포넌트는 설치되지 않은 상태로 설계되어 보드가 비어 있습니다.회선은 배송 시 옵션으로 추가되었거나 나중에 장착될 수 있습니다.

일반적으로 보드는 "프로토타이핑 영역"을 포함하며, 보드의 영역은 납땜 가능한 브레드보드 영역으로 배치되며, 버스 및 파워 레일은 사용 가능하지만 정의된 회로가 없습니다.여러 컨트롤러, 특히 교육용 컨트롤러에는 나중에 프로젝트를 위해 변경 또는 제거할 수 있는 추가 I/O 회로를 쉽게 프로토타이핑할 수 있도록 플러그가 가능한 재사용 가능한 브레드보드도 포함되어 있습니다.

통신 및 사용자 인터페이스

통신 인터페이스는 마이크로 컨트롤러 시스템의 사용 기간에 따라 달라집니다.초기 시스템에서는 시리얼 포트를 구현하여 RS-232 또는 전류 루프를 제공할 수 있습니다.시리얼 포트는 응용 프로그램에서 사용하거나 모니터 ROM과 함께 마이크로 컨트롤러 메모리에 프로그램을 전송하기 위해 사용할 수 있습니다.현재의 마이크로 컨트롤러는 USB, 무선 네트워크(Wi-Fi, ZigBee 등)를 지원하거나 이더넷 연결을 제공할 수 있습니다.또한 TCP/IP 프로토콜 스택을 지원할 수 있습니다.일부 장치에는 웹 서버를 구현하는 데 사용할 수 있는 펌웨어가 있어 애플리케이션 개발자가 웹 지원 기기 또는 시스템을 신속하게 구축할 수 있습니다.

프로그래밍

많은 초기 시스템은 프로그래밍을 위한 내부 설비가 없었고, 이 작업을 위해 별도의 "호스트" 시스템에 의존했습니다.이 프로그래밍은 일반적으로 어셈블리 언어로 실행되며, 때로는 C 또는 PL/M으로 실행되며, 그 후 호스트에서 교차 어셈블리 또는 교차 컴파일됩니다.일부 싱글보드 마이크로컨트롤러는 BASIC 언어 시스템을 지원하므로 대상 하드웨어에서 프로그램을 개발할 수 있습니다.호스트형 개발에서는 데스크톱 컴퓨터의 모든 스토리지와 주변기기를 사용할 수 있으므로 더욱 강력한 개발 환경을 제공할 수 있습니다.

EPROM 쓰기

초기 마이크로 컨트롤러는 애플리케이션 프로그램을 유지하기 위해 EPROM(Erasable Programmable Read-Only Memory) 장치에 의존했습니다.호스트 시스템으로부터의 오브젝트코드는 EPROM [3]프로그래머의해 EPROM에 「쓰기」됩니다.이 EPROM은 보드에 물리적으로 연결되어 있습니다.EPROM은 프로그램 개발 중에 여러 번 분리 및 교체되므로 마모나 손상을 방지하기 위해 ZIF 소켓을 설치하는 것이 일반적이었습니다.EPROM을 UV 지우개로 지우는 것은 상당한 시간이 걸리기 때문에 개발자가 한 번에 여러 EPROM을 유통시키는 것도 일반적이었습니다.

일부 마이크로컨트롤러 디바이스는 온보드 EPROM과 함께 사용할 수 있습니다.또한 이들은 별도의 버너에 프로그래밍된 후 대상 시스템의 소켓에 삽입됩니다.

EPROM 소켓을 사용하면 오류를 수정하거나 업데이트된 기능을 제공하기 위해 응용 프로그램 필드 업데이트가 가능했습니다.

키패드 모니터

육각 키패드와 7 세그먼트 디스플레이를 갖춘 싱글 보드 컴퓨터

싱글보드 컨트롤러가 전체 개발 환경(일반적으로 교육 분야)을 형성할 때 보드에는 단순한 16진수 키패드, 계산기 스타일의 LED 디스플레이 및 "모니터" 프로그램 세트가 ROM에 영구적으로 포함되어 있을 수 있습니다.이 모니터에서는, 키보드를 개입시켜 머신 코드 프로그램을 직접 입력해, RAM 에 보존할 수 있습니다.이 프로그램들은 어셈블리 언어도 아닌 기계어로 되어 있었고 입력되기 전에 손으로 종이 위에 조립되는 경우가 많았다.손으로 조립하는 프로세스와 바이트 단위로 입력하는 프로세스 중 어느 프로세스가 더 시간이 많이 걸리고 오류가 발생하기 쉬운 프로세스인지에 대해서는 논란이 있습니다.

이러한 유형의 싱글보드 "키패드 및 계산기 디스플레이" 마이크로컨트롤러는 KIM-1이나 마이크로페서 [4]I과 같은 당시의 로우엔드 마이크로컴퓨터와 매우 유사했습니다.이러한 마이크로프로세서 「트레이너」시스템 중 일부는, 하드웨어 프로그래밍 [5]레벨에서 마이크로프로세서를 매우 저비용으로 도입하기 위해서, 오늘날에도 아직 생산되고 있습니다.

호스트 개발

처음에는 CP/M 또는 Apple II, 나중에는 IBM PC와 호환성이 있는 데스크톱 PC가 등장하면서 호스트 개발로 전환되었습니다.하드웨어가 저렴해졌고 RAM 용량이 확장되어 시리얼 포트를 통해 프로그램을 다운로드하여 RAM에 저장할 수 있게 되었습니다.새로운 버전의 프로그램을 테스트하는 데 소요되는 사이클 시간이 크게 단축됨에 따라 개발 속도도 크게 향상되었습니다.

이 프로그램 메모리는 여전히 휘발성이 있어 전원이 차단되면 손실됩니다.플래시 메모리는 아직 합리적인 가격에 구입할 수 없었습니다.완성된 컨트롤러 프로젝트는 보통 비휘발성이기 때문에 프로젝트의 마지막 단계는 EPROM에 굽는 것이었습니다.

싱글칩 마이크로컨트롤러

온보드 UV EPROM 탑재 8048 시리즈 마이크로 컨트롤러, 8749
PIC 패밀리 디바이스용 개발 보드

인텔 8748과 같은 싱글 칩 마이크로 컨트롤러는 이전 보드의 많은 기능을 하나의 IC 패키지로 통합했습니다.싱글칩 마이크로컨트롤러는 메모리(RAM과 ROM 모두)를 패키지로 통합하기 때문에 IC 패키지의 핀을 통해 데이터 및 주소 버스를 노출시킬 필요가 없습니다.이 핀은 I/O 회선에 사용할 수 있습니다.또, 이러한 변경에 의해, 프린트 기판에 필요한 면적이 감소해, 싱글 보드 마이크로 컨트롤러의 설계가 심플하게 됩니다.싱글 칩 마이크로 컨트롤러의 예는 다음과 같습니다.

프로그램 메모리

임베디드 시스템으로서 실가동용으로 온보드 ROM은 칩 공장에서 마스크 프로그래밍되거나 개발자에 의해 PROM으로 1회 프로그래밍(OTP)되었습니다.PROM에서는 칩에 동일한 UV EPROM 기술을 사용하는 경우가 많았지만 투명한 삭제창이 없는 저렴한 패키지로 되어 있었습니다.프로그램 개발 중에는 EPROM을 구울 필요가 있었습니다.이 경우 컨트롤러 IC 전체, 즉 ZIF 소켓이 제공됩니다.

저렴한 EEPROM과 플래시 메모리의 개발로 컨트롤러를 보드에 영구적으로 연결하고 시리얼 연결을 통해 호스트 컴퓨터에서 프로그램 코드를 다운로드하는 것이 실용화되었습니다.이를 "회선 내 프로그래밍"이라고 합니다.오래된 프로그램의 삭제는 새로운 다운로드로 덮어쓰거나 (EEPROM의 경우) 일괄 삭제하여 수행되었습니다.후자의 방법은 더 느리지만 현장에서 실행할 수 있었다.

컨트롤러 보드의 주요 기능은 이 직렬용 지원 회로 또는 이후 보드에서는 USB 인터페이스를 반송하는 것이었습니다.개발 중 편리함을 더하기 위해 많은 보드는 I/O 라인의 LED 모니터나 기판에 장착된 리셋 스위치와 같은 저비용 기능도 갖추고 있었습니다.

현재 싱글보드 마이크로컨트롤러

드웬고 보드

이제 마이크로 컨트롤러용 회로 기판을 설계하는 것이 저렴하고 간단하다.특히 오픈 소스 소프트웨어를 사용할 경우 개발 호스트 시스템도 저렴합니다.상위 레벨의 프로그래밍 언어는 하드웨어의 세부사항을 추상화하므로 특정 프로세서 간의 차이가 애플리케이션 프로그래머에게 명확하지 않습니다.적어도 프로그램 개발 중에는 쓰기 가능한 플래시 메모리가 느린 프로그래밍 사이클을 대체했습니다.따라서 현재 거의 모든 개발은 PC로부터의 크로스 컴파일을 기반으로 하며 프로그램은 시리얼과 같은 인터페이스를 통해 컨트롤러 보드에 다운로드되며, 일반적으로 호스트에게는 USB 장치로 나타납니다.

심플한 보드 구현에 대한 시장의 당초 요구는 마이크로 컨트롤러에 비해 더 이상 적절하지 않습니다.싱글보드 마이크로컨트롤러는 여전히 중요하지만 다음과 같은 점에 초점을 맞추고 있습니다.

  • 아티스트, 디자이너, 취미 활동가, 인터랙티브한 오브젝트 또는 [6]환경 작성에 관심이 있는 기타 등, 종래의 「비프로그래머」그룹을 대상으로 한, 간단하게 액세스 할 수 있는 플랫폼.2011년의 대표적인 프로젝트에는 DMX 무대 조명 및 특수 효과 백업 제어, 멀티 카메라 제어, 자율 전투 로봇, 컴퓨터 또는 [7]스마트폰에서 블루투스 프로젝트 제어, LED 및 멀티플렉싱, 디스플레이, 오디오, 모터, 기계 및 전원 [8]제어가 포함됩니다.이러한 컨트롤러는 물리 컴퓨팅 프로젝트의 일부를 구성하기 위해 내장될 수 있습니다. 작업에는 Arduino,[9] Dwengo[7][10] 또는 와이어링이 [11][12]널리 사용됩니다.
  • 혁신적인 프로세서 또는 주변기기용 테크놀로지 데모 보드:


「 」를 참조해 주세요.

레퍼런스

  1. ^ Peter Grigson; David Harris (August–October 1983). "'Marvin' - Z80 Control Computer". Electronics Today International.
  2. ^ 인텔 SBC 80/10 싱글보드 컴퓨터 카탈로그, 1976
  3. ^ Mike Bedford (August–September 1983). "Universal EPROM Programmer". Electronics Today International: 45–51, 37–39.
  4. ^ "KIM 1". Old Computers.com. {{cite web}}:외부 링크 publisher=(도움말)
  5. ^ "Microprofessor Training System". Flite Electronics International. Archived from the original on 9 May 2008.
  6. ^ Arduino 홈페이지
  7. ^ a b "Project homepage". Dwengo. {{cite web}}:외부 링크 publisher=(도움말)
  8. ^ Arduino 사용자 포럼
  9. ^ "Project homepage". Arduino project. {{cite web}}:외부 링크 publisher=(도움말)
  10. ^ 티모시 L. 워너'해킹 라즈베리 파이' 2013. 페이지 12.
  11. ^ Wiring.org의 배선 개발 플랫폼 홈페이지
  12. ^ "Wiring: Hardware". Wiring project. {{cite web}}:외부 링크 publisher=(도움말)