程序员

开源硬件的前世今生

作者:admin 2021-08-16 我要评论

1、序言 在互联网爆发式增长了几十年的今天,越来越多的末端硬件设备已经具备连接网络的能力,业态也越来越丰富,这就是今天所说的物联网。 作为一个08年就开始...

在说正事之前,我要推荐一个福利:你还在原价购买阿里云、腾讯云、华为云服务器吗?那太亏啦!来这里,新购、升级、续费都打折,能够为您省60%的钱呢!2核4G企业级云服务器低至69元/年,点击进去看看吧>>>)

1、序言

在互联网爆发式增长了几十年的今天,越来越多的末端硬件设备已经具备连接网络的能力,业态也越来越丰富,这就是今天所说的物联网。

作为一个08年就开始玩“开源硬件”的骨灰玩家,本着执古御今,严谨治学的态度,笔者觉得有必要再回头捋一捋,究竟是什么力量在驱使行业飞速发展。

2、开源硬件及生态介绍

2.1、简介

开源硬件是指,与自由及开放源代码软件相同方式设计的计算机和电子硬件。
image.png
(图片来源于互联网)

开源硬件其实是源于开源软件的,开发开源硬件的工具和运行在开源硬件上的软件,一般都是开源软件,其实是一种非强制的开源文化。开发硬件过程中的详细设计材料,如原理图(Schematic)、原料清单(BOM)、布局图(PCB Layout)等,也都会完全开放。尤其是开源许可证,一般会直接与配套的开源软件保持一致。
image.png
当然,要聊开源硬件,就少不了开源硬件的鼻祖 - Arduino.

2.2、Arduino

2.2.1、硬件

Arduino 最初在 2005 年被引入学校,用作微控制器编程教学。那时只是一个很普通的开发板,唯一特殊之处是定义了一套简单易用的IO接口。

Arduino is the world’s leading open-source hardware and software ecosystem.
-- arduino.cc
image.png
(图片来源于互联网)

后来 Arduino 因为硬件接口极其简单易用,许多人开始为它开发扩展硬件模块(原名Shield,俗称扩展板或扣板),尤其是在2008年以后,因Arduino开发板和扩展模块成本都极其低廉,开始在国内大量生产。
image.png
(图片来源于互联网)

有了硬件,就少不了需要驱动软件,于是很多爱好者开始为 Arduino 写可重用的软件。直到今天,Arduino 的软件生态异常庞大,市面上常见的包括传感器的各类IO硬件,都有了统一规范的软件支持,集成在 Arduino 软件生态中。

这是 Arduino 对 IoT 领域 2021 年出货规模的预测。

Arduino has become the number one choice for electronics makers, especially for developing solutions for the IoT marketplace, which has been predicted to become a $6 trillion market by 2021.
-- arduino.cc

单纯使用 Arduino 的短板也很明显:

基于 Arduino 开发,需要遵循 Arduino 的许可证和相关 Policy,直接将在 Arduino 基础上构建的应用商业化有一些限制。
Arduino 自身的开发工具比较单一,仅适合初学者学习之用
阻塞式单线程运行,完成复杂工程需要清晰的状态机设计,性价比并不高
所以后来出现了各类 Arduino 变种硬件及软件,让整个软硬件生态开始多样化,同时其实又是有些“分裂”的。

2.2.2、软件

Arduino的软件设计特别“傻”,一个初始化入口,一个大循环,就是整个应用开发的全部。
然而正是因为这种极简的设计,让非常多非电子工程科班出身的开发人员,得以发挥他们的创造力。

在这种框架下,Arduino编程语言采用了C++最精要的部分,面向对象设计,对硬件原子能力进行抽象,从而使得大量的第三方开发人员可以将其开发适配的各类外设,对接到Arduino软件框架的标准接口上,提供给开源生态使用,再次极大推动了生产力提升。

Arduino Framework 架构图
image.png
2.3、Platform IO

大约2014年开始,出现了 PlatformIO ,早期这个开源软件以Arduino生态为阵地,通过“爬取”各个社区和团队产出的硬件和软件库,整合到一套开发工具和生态中,使得 Arduino 系列的生态以及后来的其他嵌入式框架和软件,对于用户而言又归于统一。
image.png
(图片来源于互联网)

现在的 PlatformIO 已支持包括 ST, NXP, Espressif 等10+家厂商的1000多种各类开发板,其中绝大多数是基于 Arduino 及其派生的 framework 来支持 Arduino 模式的应用开发,可以使用其生态中囊括的约11000多个硬件驱动、中间件的软件库。

为什么重点提到PlatformIO呢?因为它类似一个流量入口,把开发硬件的工具和软件生态收敛在一个地方,在Arduino生态的基础上,又形成了更加高效创新力。

2.4、更多

不仅板级硬件能开源,芯片架构和指令集也可以开源,比如 RISC-V.

2010年UC Berkerly启动的RISC-V项目迅速引爆了业内的关注,很快几年内就有了相应软硬件产品面世。
image.png
3、阿里云与开源硬件

3.1、HaaS

在开源生态的贡献中,阿里从来都是大手笔投入。除了捐给Apache基金会的众多开源软件,也有阿里云捐赠给开放原子开源基金会的AliOS Things.
在开源硬件上,自然也有戏份。

HaaS是硬件即服务的缩写,旗下有多款开源硬件,比如HaaS100,HaaS600和刚发布的HaaS EDU K1.
image.png
3.2、轻应用

如果说HaaS硬件就像Arduino主板,HaaS轻应用则对应Arduino Framework.

和Arduino Framework一样,为了让更多开发人员能够用起来,HaaS轻应用支持JavaScript和Python这类全栈语言,快速在嵌入式硬件上进行应用开发。

同样,HaaS轻应用也是一套开源软件:
Github: https://github.com/aliyun/haas-mini-program
Gitee: https://gitee.com/alios-things/haas-mini-program

结语:开源硬件畅想

聊了这么多开源硬件,可以发现它的发展轨迹是始于开源软件,也终于开源软件的。

回到本文开头的思考,到底是什么推动了行业飞速发展?原因似乎很容易理解,开源并非免费,开源是更多的资源互换,催生更多的交易,从而让整个社会的协作效率大大提升,实与“让天下没有难做的生意”有异曲同工之妙。

自由开放即生产力。


本文转自网络,原文链接:https://developer.aliyun.com/article/787133

版权声明:本文转载自网络,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本站转载出于传播更多优秀技术知识之目的,如有侵权请联系QQ/微信:153890879删除

相关文章
  • 十月更新修复了Windows 10的Ping of De

    十月更新修复了Windows 10的Ping of De

  • Windows10 UAC弹窗太烦但又不能关?教

    Windows10 UAC弹窗太烦但又不能关?教

  • 老大手把手教我玩 Git 变基!

    老大手把手教我玩 Git 变基!

  • 在Linux终端中展示幻灯片

    在Linux终端中展示幻灯片

腾讯云代理商
海外云服务器