Arduino 및 Raspberry Pi 개발 기판 믹스에 약간의 FPGA 추가하기

Arduino 및 Raspberry Pi 개발 기판은 엔지니어가 내장형 시스템을 개발하는 방식을 혁신하는 과정의 정점에 있습니다. 예전에는 하드웨어로 시작해 내장형 시스템을 개발했으며 대체적인 프로젝트 단계는 다음과 같았습니다.

  1. 처리 속도 및 I/O 요구 사항에 대한 대략적인 예상치를 포함한 시스템 요구 사항의 사양을 계획합니다.
  2. 전력, 성능, 가격 요구 사항을 충족하는 적합한 마이크로 컨트롤러나 마이크로 프로세서를 선택합니다.
  3. 하드웨어 프로토타입의 전선을 연결합니다.
  4. 하드웨어 프로토타입을 디버깅합니다. 라인 조절에 필요할 경우 약간의 구동기 코드를 작성합니다.
  5. 하드웨어를 실행한 후 슬링 코드를 실행합니다.
  6. 코드를 디버깅합니다.
  7. 출하합니다.

이제는 일이 그렇게 간단하지 않습니다. 우선, 말 그대로 수많은 제공업체가 제공하는 수천 가지의 프로세서 및 마이크로 컨트롤러 중에서 선택해야 하는데, 이 모든 대안을 고려하기는 불가능합니다.

둘째로, 30년 전에 세계는 표면 실장 기술로 진화했기에 위의 항목 번호 3(하드웨어 프로토타입 전선 연결)의 경우 실제로 큰 문제가 됩니다. 1970년대에 시제품 제작 기법으로 널리 퍼져 있던 수동 배선과 전선 래핑 기술은 전기 공학 업계 내 대장간 기술로 보 수 있습니다. 요즘은 찾아보기 힘들죠. 더 나은(더 빠르고 비용은 저렴한) 대안이 있다면 누가 시간을 들여 프로토타입 PC 기판을 설계하고, 제작하고 납땜을 할까요?

이러한 상황으로 인해 위의 1부터 4단계를 단축하는 개발 기판이 만들어지게 되었습니다. 오늘날 시장에서 가장 유명한 개발 기판 중 두 가지는 ArduinoUno(및 수많은 변형) 및 Raspberry Pi입니다. 가장 최신 모델의 Raspberry Pi는 Raspberry Pi 3 Model B+입니다. 바로 연이어서 언급되는 경우가 많기는 하지만 Arduino와 Raspberry Pi 개발 기판은 전혀 유사하지 않습니다.

Arduino는 오픈 소스 컴퓨터 하드웨어 및 소프트웨어 회사, 오픈 소스 커뮤니티 프로젝트, Arduino 개발 기판, 통합 개발 환경(IDE), 실제 Arduino 마이크로 컨트롤러 기판 자체를 설계 및 제조하는 사용자 커뮤니티의 이름입니다. (Arduino라는 이름은 Arduino 프로젝트의 원래 설립자들이 모이던 이탈리아 이브레아에 있는 한 술집 이름에서 따온 것임)

그림 1: 몇몇 단순한 I/O 기능을 갖춘, 8비트 Atmel 마이크로 컨트롤러 기반의 입문 수준 개발 기판인 Arduino Uno는 고성능이 필요하지 않은 내장형 설계를 위한 개발 플랫폼 역할을 합니다. (이미지 출처: Arduino)

최초의 Arduino 개발 기판은 AtmelAVR 마이크로 컨트롤러를 기반으로 했습니다. Arduino IDE를 사용해 코드를 개발하고 코드를 컴파일하고 이를 온보드 마이크로 컨트롤러의 플래시 메모리로 다운로드했습니다. Arduino IDE는 Arduino IDE에 고유한 규칙을 구성하는 특수 코드와 함께 C 및 C++ 언어를 지원합니다. Arduino 개념이 엄청나게 성장했으므로 최근의 Arduino 변형 제품은 더 향상된 성능을 위해 32비트 Arm® Cortex®-M0 기반의 마이크로 컨트롤러로 발전되었습니다(그림 1).

이러한 제품은 비교적 단순한 내장형 시스템을 제어하기 위한 입문용 마이크로 프로세서 개발 기판으로 설계되었으므로 Arduino 개발 기판에는 매우 단순한 I/O 기능이 탑재되어 있습니다. 단순한 디지털 I/O 및 아날로그 입력 핀과 몇몇 0.1인치 헤더와 함께 Arduino Uno 개발 기판에는 USB 포트와 온보드 점멸 LED 몇 개가 달려 있습니다. 이게 다입니다. I/O 핀은 소프트웨어로 제어되므로 성능과는 큰 관계가 없습니다.

Raspberry Pi로 발전

내장형 설계에 더 높은 성능이 필요하다면 Arduino 다음으로 고려해 볼 수 있는 옵션은 Raspberry Pi 3 B+ 개발 기판입니다(그림 2). 주요 특징은 다음과 같습니다.

  • Broadcom BCM2837B0, Cortex®-A53 (Arm®v8) 64비트 SoC @ 1.4 GHz
  • 1GB LPDDR2 SDRAM
  • 2.4GHz 및 5GHz IEEE 802.11.b/g/n/ac 무선 LAN, Bluetooth 4.2, BLE
  • USB 2.0를 통한 기가비트 이더넷(최대 처리량 300Mbps)
  • 확장 40핀 GPIO 헤더
  • 전체 크기 HDMI
  • USB 2.0 포트 4개
  • 확장 40핀 GPIO 헤더
  • Raspberry Pi 카메라 연결용 CSI 카메라 포트
  • Raspberry Pi 터치스크린 디스플레이 연결용 DSI 디스플레이 포트
  • 4폴 스테레오 출력 및 복합 비디오 포트
  • 운영 체제 로딩 및 데이터 저장용 마이크로 SD 포트
  • 5V/2.5A DC 전원 입력
  • 이더넷을 통한 전력 공급(PoE) 지원(별도 PoE HAT 필요)

그림 2: Raspberry Pi 3 Model B+는 쿼드 코어, 64비트 Arm 응용 프로세서, 1Gbyte SDRAM, 확장 I/O 기능을 갖춘 탁월한 내장형 하드웨어 개발 플랫폼 역할을 합니다. (이미지 출처: Raspberry Pi)

그 정도로 강력한 처리 성능, 메모리 및 I/O 기능이라면 많은 작업을 수행할 수 있습니다. Raspberry Pi 3 B+ 개발 기판은 Linux를 실행하며 제품과 관련한 대규모 지원 커뮤니티가 있습니다. 저렴한 가격을 고려하면 Raspberry Pi 3 Model B+는 수많은 내장형 개발 프로젝트에 적합한 탁월한 하드웨어 플랫폼입니다.

빠른 속도가 필요할 때는 어떻게 합니까?

Raspberry Pi 3 Model B+가 내장형 시스템 설계 요구 사항을 모두 충족한다면 한 단계 더 나아가셔야 합니다. 이 탁월한 성능의 개발 기판이 가격까지 저렴하다면 굳이 왜 바꿔야 할까요? 하지만 내장형 시스템에 Raspberry Pi Model 3 B+의 괜찮은 I/O 리소스 수준을 벗어나는 특수한 I/O 기능이 필요하다면 어떻게 하시겠어요?

이 질문은 소프트웨어만을 사용해 정의된 새로운 유형의 고속 인터페이스를 정의할 수 있도록 돕는 데 탁월한, 고성능 FPGA 기능이 필요할 경우를 가정한 하나의 예입니다. 추가 배선이 필요하지 않습니다. 또한 Trenz ElectronicTE0726-03M 개발 기판인 ZynqBerry를 이용하면 이미 Raspberry Pi Model 2의 폼 팩터에 내장된 FPGA 기능을 활용할 수 있습니다(그림 3).

그림 3: Trenz TE0726-03M ZynqBerry 개발 기판은 추가적인 I/O 성능이 필요한 내장형 설계를 위해 XilinxZynq Z-7010 SoC를 Raspberry Pi Model 2 폼 팩터의 패키지로 구성합니다. (이미지 출처: Trenz Electronic)

ZynqBerry는 이중 코어 Arm® Cortex®-A9 32비트 마이크로 프로세서를 FPGA와 융합해 프로세서 하나(또는 1.4GHz에서 실행되는 프로세서 4개)로 할 수 있는 것보다 훨씬 더 많은 고성능 작업을 처리할 수 있는 장치를 만드는 Xilinx Zynq Z-7010 SoC를 토대로 제작됩니다. 여러분은 소프트웨어(프로세서) 및 하드웨어(FPGA) 측의 Zynq SoC 모두를 위한 IDE를 제공하는, 다운로드 가능한 Xilinx Vivado 도구 제품군으로 Trenz ZynqBerry를 프로그래밍합니다.

Arduino 폼 팩터를 선호하시나요?

하지만 Arduino Uno의 폼 팩터를 선호한다면 어떻게 될까요? Trenz Electronic은 TE0723-03M ArduZynq을 통해 이 문제까지 해결합니다(그림 4).

그림 4: Trenz Electronic의 TE0723-03M ArduZynq는 더 많은 프로세서와 I/O 성능이 필요한 Arduino 프로젝트를 위해 Xilinx Zynq SoC를 Arduino 개발 기판 폼 팩터에 넣습니다. (이미지 출처: Trenz Electronic)

Trenz ZynqBerry와 같이, 다운로드할 수 있는 Xilinx Vivado 도구 제품군으로 Trenz ArduZynq를 프로그래밍하세요.

Arduino Uno와 Raspberry Pi와 같은 기판은 수많은 내장형 개발 선택을 단순화해주지만 모든 내장형 설계 과제를 해결할 수는 없습니다. 현재 요구 사항이 이러한 기판의 기능 범위를 벗어난다 해도 기판 폼 팩터를 바꿀 필요는 없습니다. 이 믹스에 약간의 FPGA를 추가하기만 하면 됩니다.

작성자 정보

Image of Steve Leibson Steve Leibson은 HP와 Cadnetix에서 시스템 엔지니어로 근무한 후, EDN 및 Microprocessor Report에서 편집장을 역임했습니다. 또한 "The Next Wave with Leonard Nimoy”에 기술 전문가로서 2회 출연한 바 있습니다. 그는 33년 동안 설계 엔지니어가 보다 빠르고 효율적이며 신뢰성이 뛰어난 시스템을 개발할 수 있도록 지원해 왔습니다.
More posts by Steve Leibson