闲说开源硬件

本文的英文版发布于我的英文博客,On Open Source Hardware

最近了解了一些开源硬件平台,觉得很有意思,简单记录如下。本文更多是作为自己的一段笔记,会不停更新,且不保证内容完全正确。

RISC-V指令集架构

RISC-V指令集架构(ISA)是目前开源硬件领域最接近底层的项目,它由RISC指令集风格的开创者们领衔制定。截至本文写作时,已有275个公司或学术机构加入了RISC-V基金会,包括Google、Nvidia、阿里巴巴和Qualcomm等老牌科技企业,多所大学,以及SiFive等芯片创业公司。

RISC-V基金会部分会员
RISC-V基金会部分会员

GCC工具链和Linux内核已实现对RISC-V架构的支持。

如其他的ISA一样,RISC-V也仅仅规定了处理器与软件之间的接口规范,具体如何实现芯片功能,还需各个芯片设计公司进行大量的工作。已有很多公司设计出了基于RISC-V的IP核(可以交给台积电等代工厂生产芯片)和软核(可以运行在FPGA上),其中部分公司已有实体芯片面世。

目前,市面上可以买到的RISC-V实体芯片还不多。

RISC-V芯片领域的明星创业公司SiFive,没有芯片公开出售,但提供了两款和Arduino类似的开发板,以及一款可运行Linux的开发板,然而三者的售价均不便宜。

世界上第一款可运行Linux操作系统的HiFive Unleashed开发板--图片来自于www.sifive.com
世界上第一款可运行Linux操作系统的HiFive Unleashed开发板–图片来自于www.sifive.com

加密货币挖矿机的生产商嘉楠公司,于2018年9月发布了Kendryte K210。K210芯片可单独买到。第三方Sipeed等出品了多款开发板,价格较为实惠。K210的软件生态已经相当完备,有了FreeRTOS操作系统、Arduino平台和MicroPython运行环境的移植,以及基于VS Code的集成开发环境。

基于Kendryte K210的Sipeed MAIX Bit开发板
基于Kendryte K210的Sipeed MAIX Bit开发板

印度理工学院Madras分校( IIT-Madras)于2018年底发布了Shakti处理器和相关的SDK,但随后就没有什么消息了。

阿里巴巴旗下的半导体部门(平头哥)于2019年7月25日发布了一款名为“玄铁910”的芯片,号称性能极强,但未明确是否为实体芯片。

江苏沁恒的官网上列出了型号为CH572的RISC-V微控制器,不知道是否已正式生产。

此外,深圳和广州也有不少公司涉足RISC-V软核,可以运行于价格低廉的FPGA开发板上。

2019年8月22日,兆易创新发布了全球第一款32位RISC-V微控制器,含14个型号。据悉,该公司的RISC-V内核授权自芯来科技。

Raspberry Pi

Raspberry Pi(树莓派)是由英国的Eben Upton等人创建的软硬件平台,号称35美元电脑,最初的目标是教育领域。由于其强劲的性能和低廉的价格,Raspberry Pi被众多爱好者青睐。Raspberry Pi已经销售了约2000万台,是销量最高的英国电脑品牌。

硬件方面,Raspberry Pi集成了Broadcom的Cortex-A系列SoC、大容量的RAM内存、图形处理器,以及USB、WiFi、蓝牙、显示器接口、相机接口和GPIO。历经多次硬件升级后,2019年7月开始销售的Raspberry Pi 4将SoC升级到了BCM2711B0(四个Cortex-A72核心,1.5 GHz频率),可选1GB/2GB/4GB DDR4内存,双Micro HDMI输出。

Raspberry Pi 3B
Raspberry Pi 3B

如果购买的是Raspberry Pi单机,还需要另购一张TF卡,以及鼠标、键盘和显示器(含连接线)。当然,也可以通过SSH或VNC等远程访问Raspberry Pi,这样就可以省去额外的鼠标、键盘和显示器了。

软件方面,Raspberry Pi具备运行桌面操作系统的能力。它支持多种操作系统,包括Raspbian、Fedora、RISC OS、Windows 10 IoT Core和其它系统。官方的Raspbian基于Debian进行定制,带有轻量级的桌面环境,内置丰富的编程和教育软件,如BlueJ(Java IDE)、Thonny(Python IDE)、Mathematica(数学软件)。Raspbian还可以运行在X86机器上。

Raspbian操作系统
Raspbian操作系统

Raspberry Pi基金会提供了极其丰富的学习资源,涵盖了编程、硬件知识和大量有趣的项目。在教育贡献方面,Raspberry Pi可谓无出其右。

Arduino

Arduino是非常流行的电子开发平台。与Raspberry Pi相比,Arduino的性能没那么强大,不能运行桌面级操作系统,而是偏向于电子积木方面。

说到Arduino,不得不先提及Wiring。在2004年左右,就读于Ivrea交互设计学院的硕士研究生Hernando Barragán设计了wiring,使得电子开发板的易用性得到了巨大的提升,成本也下降到学生可接受的程度。2005年,该学院的几个老师以Wiring为基础,创建了后来风靡世界的Arduino。

Arduino对底层的硬件进行了封装,提供了统一的C/C++接口。只需数行代码,即可调用开发板的各种功能,如GPIO、串口通讯和闪存读写等。与传统的微控制器编程相比,对Arduino编程不用关心外设寄存器映射、时钟配置等极为繁琐的细节。

在硬件方面,Arduino支持多个处理器架构。最经典的Arduino开发板基于Atmel AVR架构,如ATmega328p、ATmega2560。有些开发板基于Arm Cortex-M架构。此外还有基于Intel Quark的Galileo和Edison,以及基于RISC-V架构的第三方移植。

Arduino开发板,左为基于Arduino uno R3,右为Arduino DUE
Arduino开发板,左为基于Arduino uno R3,右为Arduino DUE

Arduino开发板上带有丰富的GPIO和其它接口,以及丰富的扩展板和外设。

除了官方出品的开发板以外,还有很多兼容品牌,如Adafruit、Seeed和DFRobot等。在淘宝上,可以买到很便宜的无品牌克隆版,最低价是9.7元的Arduino uno R3克隆版。

Arduino的开发环境为Arduino IDE,既有跨平台的安装版,也有Web版。官方IDE的编辑器较弱,无自动完成功能。第三方IDE如PROGRAMINO IDE和PlatformIO提供了更强的功能、更好的体验。

Arduino IDE
Arduino IDE

STM32

STM32系列微控制器由意法半导体(ST)设计和生产,基于Arm Cortex-M处理器IP核,在各种电子产品中运用得极为广泛。尽管STM32本身是私有产品,它的生态中却有开源的影子。

得益于ARM公司对开源的支持,STM32微处理器可以使用GCC编译套件。随着ST收购Atollic,Atollic旗下的TrueStudio集成开发环境改头换面,以STM32CubeIDE的名称登场,免费提供给用户使用。TrueStudio和STM32CubeIDE是基于Eclipse和GCC两大开源部件的。STM32CubeIDE集成开发环境与STM32CubeMX图形化配置/代码生产工具一道,使STM32的开发变得如Arduino一样容易。从此,爱好者们再也不必购买的商业IDE,如Keil MDK和IAR Embedded Workbench。

STM32CubeMX
STM32CubeMX
STM32CubeIDE
STM32CubeIDE

Arm公司支持的mbed物联网操作系统,也可以用于STM32芯片。

STM32的流行,还源于百花齐放的开发板。官方出品的Discovery系列和Nucleo系统十分便宜,从80元的F0系列到200元的H7系列,功能特性和性能上的选择极为丰富。国内数家STM32开发板生产商,如野火和原子,则提供了外设极其丰富的板子。ST官方和国内的板子生产商,制作了大量视频教程、电子书籍和例程。这些开发板对应的学习资料,即使不用购买板子也能免费下载,颇有开源的味道。

STM32官方开发板,左为STM32F0Discovery,右为Nucleo-F030R8
STM32官方开发板,左为STM32F0Discovery,右为Nucleo-F030R8

一些国内生产的STM32最小系统,没有品牌标志,通过阿里巴巴速卖通和ebay销往国外。其低廉的价格,吸引了众多国外极客。因其独特的颜色和长条形外观,被用户亲切地成为蓝片(Blue Pill)和黑片(Black Pill)。

ESP8266与ESP32

ESP8266是上海乐鑫生产的微控制器,具有丰富的片内资源,且自带WiFi功能,售价便宜。ESP8266推出后默默无闻,后来偶然被国外极客发现,随即风靡全球。Arduino和Lua等易用的开发平台迅速被移植到ESP8266上。

基于ESP8266的开发板
基于ESP8266的开发板

ESP32是ESP8266的升级版。目前,ESP8266与ESP32均有丰富的开发板和模块出售。一些Arduino板子上也集成了ESP8266,以提供WiFI通讯功能。

MicroPython

MicroPython是运行于微处理器上的Python环境。它是由英国剑桥大学的物理学家Damien George开发的。

通过USB线连接到PC后,MicroPython开发板会在PC上以U盘的形式存在。用户可以通过编辑main.py文件,实现对开发板的编程。

MicroPython开发板的Python环境还可通过串口进入,然后像普通的Python解释器一样进行脚本编程。

目前已有多种MicroPython开发板问世,包括官方的PYBoard、国内生产的TPYBoard,以及上述Sipeed提供的K210开发板。

国产TPYBoard开发板
国产TPYBoard开发板

Adafruit提供了一个MicroPython的增强版,叫做CircuitPython。

Micro:bit

Micro:bit是英国广播公司(BBC)联合多家科技巨头,专门为英国儿童打造的编程教育平台。Micro:bit开发板极为小巧,带有两个按键、简单的GPIO接口、LED阵列,以及多种传感器和通讯接口。

Micro:bit的硬件资源--图片来自于microbit.org
Micro:bit的硬件资源–图片来自于microbit.org

Micro:bit有多种开发语言,如Python。官方提供了Web版的开发环境,一个可以从Microsoft Store下载的官方IDE。还有一个叫做Mu的第三方IDE,十分好用。小孩子也可以用图形化的编程语言进行开发。

Mu集成开发环境
Mu集成开发环境

已有国内厂家生产的Micro:bit克隆版。

其他平台

除了以上较为知名者,还有几个开源硬件平台,这里略微提一下。

较为著名的是基于TI处理器的BeagleBone Board,种类很多,板载资源强大,可以运行Linux系统。

此外,还有基于全志、炬芯、联发科、瑞芯微等公司的SoC的,如Banana Pi,Orange Pi,CubieBoard,pcDuino。


更新日志:

  • 20190729:初版
  • 20190801:补充CircuitPython和mbed内容
  • 20190826:补充兆亿创新RISC-V微处理器

发表评论