killusa 发表于 2014-3-7 22:51:43

开源硬件综述

开源硬件(Open Source Hardware)指与自由及开源软件相同方式设计的计算机和电子硬件。开源硬件也是开源文化的一部分,并且将这一概念延伸到更多样的领域中。通常开源硬件会公布详细的硬件设计信息(包括机械图、电路图、BOM清单、PCB版图、HDL源码和IC版图)以及与开源软件相关的驱动软件。
1.开源硬件的由来
软件通常指源代码和执行文件,而开源软件运动的目的就是开发者开放软件的源代码,使用者可以免费的拷贝、学习和开发利用。硬件的包括范围更广,可以指产品,也可以指产品的设计信息。因此硬件开源并不是免费使用,你不可能免费的拷贝硬件。开源硬件运动的目的是开发者公开硬件的所有设计信息,使得使用者能够学习和进一步开发。
为什么硬件要开源?Richard Stallman 在他的经典文章“Why Software Should be Free”中指出的限制软件拷贝所带来的3个层面的损害:1)越来越少的人使用程序;
2)没有人能够改编或者修正程序;3)其他开发者不能够从中学习并运用到新的程序中。

同样的这几个方面在某种程度上对硬件也是同样适用的。
1)硬件开源,其他的制造商能进行二次开发,这在有些时候对于打破垄断是非常好的办法。比如SUN公司的SPARC开源微处理器。
2)硬件开源这样使用者可能对产品进行维修,而爱好者们可以在此基础上改编出自己喜欢的东西。如果这样社会和环境资源的节约也是影响很大的。
3)这也是最重要的硬件开源使得其他开发者能够从中学习,加快知识的传播和积累。
2.开源硬件的历史
开源硬件的概念是受开源软件的启发而来,但是硬件开放确是可以追溯到很久之前。随着集成电路的发展硬件的开放也经过了3个时期的发展:
1)第一波浪潮出现在60到70年代,出现了大批的无线电爱好者,主要目的就是为了社区交流,传播思想。而此时中等规模甚至大规模TTL集成电路的出现,使得搭建电路变得简单而且便宜。
2)第二波浪潮出现在80年代,此时出现了超大规模集成电路,硬件的设计门槛变得越来越高。硬件的设计方法也发生了很大变化,出现了自动化设计。这一时期出现了很多免费的EDA设计软件。
3)第三波浪潮出现在90年代末,此时才出现了开源硬件的概念。随着FPGA的发展和SoC的设计出现,硬件设计需要更多的模块库,出现了大量免费IP。而且开源软件的流行和其取得的巨大商业成功,刺激了开源硬件的产生。同时嵌入式系统市场的快速扩张,使得电子爱好者手中又有了简单便宜的工具,可以搭建自己喜欢的平台。
3.开源硬件的发展
在 1998 年初,Delft 大学的了一群学生、教师和工程师创建了因特网上的Open Design Circuits组,致力于开发开放电路并在 Web 上发布开发成果。FPGA的出现使得免费交流拷贝硬件设计成了可能,但是如同商业软件版权阻止了软件的传播,越来越多需要付费的IP核也成为了开放硬件设计的障碍。ODC并没有考虑生产实际的产品,但是它构成了开源硬件社区的雏形。第一次有很多人聚集在一起讨论免费的硬件设计的问题,虽然ODC已不再活动,但一些工程师和学生从这个组得到了灵感,他们继续完善自己的开放硬件社区并促进这个领域的发展。
ODC的创建者Reinoud Lamberts之后创立了opencores.org开源社区,致力于关注数字模块中的IP核部分。opencores是目前世界最大的开源硬件IP核社区,总共汇集了将近900个项目(IP),opencores也开发出了著名的完全开源的处理器OpenRISC1000。同时出现了很多开源的微处理器项目,其中比较著名的有F-CPU和LEON处理器(欧洲航天总局下开源项目)。
半导体产业的特殊性,尽管开源IC设计在技术上已经实现,但是流片和生产的成本太高,芯片的成本降低需要靠规模生产来实现,因而开源的成本优势不复存在。F-CPU项目在2004年就结束,opencores还是一直在致力于FPGA平台的IP核开发,在传统的IC芯片产业实现开源设计太困难。但是还是有部分先行者一直在研究,考虑用更便宜的材料代替硅工艺,或者设计“Good Enough”应用。
目前一些开源硬件参与者起草制定了开源硬件规范(Open Source Hardware Definition),而开源硬件峰会(Open Hardware Summit)已经成功举行了两届,开源硬件的思想已经渗透到了硬件设计的各个层面,各种大大小小的社区不断涌现。
4.开源硬件的现状
最近几年开源硬件取得了令人惊喜的成就,这得益于电子技术的不断进步,比如移动技术、FPGA工艺和嵌入式设计的普及等等。更多的厂商投入到开源硬件设计中来,而大厂商也看到了开源硬件中的机会,毕竟越多的人使用市场越广。从超大系统级设计到芯片SoC设计,从移动平台到单片机平台,从具体的应用产品到模块化产品都能够看到开源硬件的项目。这里介绍一些开源硬件代表性的项目或技术。
1)开源运算项目(Open Computer Project)
2011年4月,Facebook建成自己了首个性能最先进的数据服务中心,同时向全球公开了其服务器和数据中心核心技术。任何人可以在Open Compute Project的网站上看到服务器和数据中心的CAD图纸设计。OCP由Facebook牵头,与惠普、戴尔、AMD和英特尔公司共同合作,它包括数据中心和服务器两部分。其中,数据中心包括整体电力供应,整体温度控制(主要是指机房冷却控制),备用电池以及三联机柜。而服务器则由机箱、主板和电力供应组成。

OCP计划宣布之后马上吸引了大批的行业巨头参加,2011年10月,Facebook于纽约召开了OCP峰会,讨论OCP的发展规划。Facebook宣布成立支持开源计算项目的基金会,引导OCP的前进方向,鼓励更多企业分享数据中心技术。同时OCP发布了一系列OCP计划的使命和指导守则,并且公布了OCP计划的官方合作伙伴的名单。OCP将确立系统级硬件设计的标准以加快大规模计算中心硬件设计上的创新,Red Hat已经在OCP系统上验证了企业级Linux系统,证明了OCP系统的兼容性。OCP峰会还确立了由5个不同的技术工作室负责系统不同部分的标准制定,包括数据中心设计、系统级管理、机械设计以及电源分布、存储部分和虚拟IO部分。
OCP计划已经形成了一个大规模计算处理设计的生态系统,随着更多服务器厂商、系统级软件厂商以及各种用户的加入,OCP可以称为有史以来最大规模的开源项目。
2)开源嵌入式开发平台
随着移动产业的发展以及Andriod系统的流行,对于众多软件开发者来说,拥有一款开源硬件的嵌入式开发平台也是一个不错的选择。TI公司也大力的推广并支持了多个开源硬件的项目,其中比较著名的有BeagleBoard项目和PandaBoard项目。
BeagleBoard   是全世界第一款硬件开源的ARM开发板,专门为开源社区(Open Source Community)设计的开发平台。以TI公司的OMAP3 SoC处理器建立的一个最小开发平台,通过制定标准的接口使其获得相当于个人计算机的扩展性。BeaglBoard是一款具有超低成本、高性能以及低功耗的开源开发平台,完全公开所有相关文件,包括原理图、PCB图、BOM清单,无需得到许可即可无限制的复制该开发板。OMAP3处理器包含一个 ARM Cortex-A8 内核、Texas Instruments C64x+ 数字信号处理器和板载2D/3D图形化引擎,支持Linux操作系统。完全开源的设计使得开发人员能得到最强大的技术支持。目前包括WE、Ubuntu、RISC OS、Symbian以及Android等多个操作系统的支持项目已经在BeaglBoard上展开。

PandaBoard同样也是TI公司资助下的一个开源硬件项目。PandaBoard的核心采用了OMAP4 SoC移动处理器平台,其目的是为开源社区建立一个移动的开发平台。PandaBoard也是采用硬件开源模式,所有原理图、PCB图、BOM清单以及相关软件资源也完全对用户开放。PandaBoard也延续了超低成本、高性能和低功耗的特点。TI公司强大的OMAP4 SoC移动处理器包含双核 ARM Cortex-A9 内核、Texas Instruments C64x+ 数字信号处理器、两个ARM Cortex-M3 处理器、图形引擎和高清视频处理。PandaBoard还配备了1GB DDR2 SDRAM,作为移动开发平台与BeaglBoard不同的是它配备了WiLink 6.0模块支持802.11b/g/n以及Bluetooth2.1。

3)OpenMoko开源手机项目
Openmoko是一个开源手机项目,目的是建立全球第一个自由的移动通讯操作系统平台,此平台运行在X server之上,并能运行大多数的X应用程序。而OpenMoko硬件系统也是完全开放的,允许开发者对软件和硬件任意定制。Openmoko的Software Stack将GTK+、EFL与Qtopia整合在一起,无论使用哪一种手机UI技术,都能在Neo FreeRunner上表现。OpenMoko曾经造成巨大反响,给开源社区的人带来无限希望,不过由于移动市场剧烈变动以及竞争,OpenMoko与2009年终止了该项目。但是在2011年8月,Openmoko社区和德国Openmoko分销商Golden Delicious Computer合作,让开源智能手机涅磐重生,他们将合作开发Openmoko GTA04,而且已经制造了原型

4)可编程逻辑芯片
ZYNQ-7000    2011年3月Xilinx宣布推出业界第一个可扩展处理平台Zynq-7000系列。Zynq-7000 系列将业界标准的ARM 双核Cortex-A9 MPCore 处理系统与赛灵思可扩展的28nm 可编程逻辑架构完美整合在一起,可支持双核Cortex-A9 处理器系统以及可编程逻辑中定制加速器和外设的并行开发。这种以处理器为核心的架构不但能够实现FPGA 的高度灵活性和可扩展性,同时还能带来类似于ASIC 的高性能和低功耗,以及ASSP的易用性。
Zynq-7000系列标志着Xilinx进入了嵌入式处理器市场,不同于一般的FPGA,其可编程逻辑是与ARM处理系统通过“互连”模块连接在一起,这样可以提供用户自定义的任意逻辑功能,从而扩展处理系统的性能及功能。处理系统不仅能在开机时启动,而且还可根据需要配置可编程逻辑。软件开发人员可充分利用 Eclipse 环境、Xilinx Platform Studio 软件开发套件 (SDK)、ARM Development Studio 5 (DS-5™) 和ARM RealView 开发套件 (RVDS™),或 ARM互联社区和赛灵思联盟计划生态系统的领先厂商提供的编译器、调试器和应用。利用Xilinx ISE 设计套件所提供的综合而全面的硬件开发环境,Zynq-7000 系列的可编程逻辑可以通过定制最大化系统级性能和满足特定应用的各种需求。

PSoC   Cypress的PSoC系列混合信号阵列是可编程嵌入式片上系统,其集成了微控制器、存储器以及可编程配置的模拟和数字模块。采用一个微控制器,一个PSoC器件最多可集成100种外设功能,采用Cypress的免费开发工具使设计人员能够自由选择所需的外设功能模块,包括放大器、ADC、DAC、滤波器及比较器等模拟功能以及定时器、计数器、PWM、SPI和UART等数字功能。
Cypress提供了一套可视化的集成开发环境,甚至无需任何汇编语言和C语言编程知识也能开发,PSoC的所有功能都可以通过拖放图标来实现。最早的PSoC1系列集成了M8C微处理器,之后推出了基于8051微处理器的PSoC3系列,2009年更进一步推出了ARM Cortex M3微处理器的PSoC5系列,同时提供了更多的模拟和数字模块。

5)Arduino
近年来在全世界极客中最流行的开源硬件项目无疑就是Arduino。从2005来诞生于意大利开始,Arduino吸引了无数的追随者,大量以它为基础的项目和社区蓬勃发展。Arduino的需求快速增长,全球的出货量超过了30万套,还不包括大量兼容产品。

Arduino是基于AVR ATmega系列 8位单片机的GPIO控制板,经过几年发展已经推出了USB、Ethernet和Bluetooth等各种接口的版本以及大量扩展功能板。2011年11月30号,Arduino工作组正式发布了Arduino的软件集成开发环境Arduino1.0。同时Arduino也迈进了32位微处理器,发布了基于Atmel的ARM Cortex M3核的SAM3U微处理器的新版Arduino Due。在2011年Google I/O 大会上,Google宣布在Android 3.1版本中新增一个特性,称为Android Open Accessory,并宣称采用Arduino作为Android Open Accessory的标准,“Arduino & Android, Infinite Possibilities”。
Arduino的开放设计使得众多爱好者开发出了各种不同特点的兼容版本,极大丰富了使用者选择余地,以下介绍几种强大的兼容平台:
Maple——为了更好的处理性能,MIT的一个小组开发了Maple项目。Maple的处理器核心是32位ARM Cortex M3核的STM32F103微处理器,同样友好的开发环境和与Arduino兼容的设计使得能够非常容易过渡。Maple最大特点是使用了微处理器内置的USB口进行编程以及模拟串口,这更精简了硬件的设计。Maple小组推出了多个不同版本以适应不同应用,其还计划推出微处理器+Spartan3E FPGA的开发平台 ,性能和应用范围将更加广泛。
chipKIT—— Digilent公司最新推出的开源硬件平台包括标准的chipKIT Uno32和大量IO口的chipKIT Max32。chipKIT是基于32位PIC32MX微处理器,同样友好的软件集成开发环境,运算速度和系统资源都大大增加。chipKIT的尺寸与Arduino完全相同,接口也完全兼容,因此熟悉Arduino的开发者可以无缝过渡到chipKIT。同时chipKIT也完全兼容Microchip的微处理器开发工具MPLAB® IDE和PICKit3 在线编程调试工具,这样熟悉PIC微处理器开发环境的设计者也能更容易进行设计。
Pinguino——与Arduino几乎同时开始的开源硬件项目,因为在某些地区可能难买到AVR微处理器。Pinduino也是与Arduino完全兼容,只是更加灵活,采用了PIC8位或32位微处理器。其USB接口也是由微处理器内置的USB控制器完成。
Netduino——也是一个与Arduino兼容开源的平台,采用了32位的ARM7核微处理器。Netduino的开发环境是采用了.net Micro Framework,对于熟悉高级语言编程的开发者来说非常适合。
6)3D打印机
漂亮新奇的3D打印机正显示开源硬件运动影响越来越广泛,MAKE杂志在2009年度开源硬件项目报告中列举19个类别中共有超过129个开源硬件项目,比2008年的60个项目高出一倍。开源硬件也能生产令人惊奇的产品。
Egg-Bot   是一个开源的机器它能在球形或者蛋形的物体上画画,比如乒乓球、灯泡甚至鸡蛋,大小大约直径3-10cm。Egg-bot是为了在那些看起来不可能的球形物体上打印图案。组装Egg-not非常简单,只需要十字和一字螺丝起子,完全不用焊接,当然还需要一台USB接口的控制计算机。

MakerBot   是一个开源的桌面3D打印机。MakerBot的使用非常简单,通过USB接口连接上计算机后,当你想打印时不用再去调整XYZ轴,机器会自动回位,加热然后开始打印。更方便的是MakerBot能够自动的连续打印。

5.开源硬件的挑战
开放源码硬件从诞生到现在将近十多年了,很多人为它的发展付出了大量的努力,但是并没有像开放源码软件那样深入人心,很多项目也以失败告终。究其原因,开源硬件面临挑战主要有:
1)免费的EDA工具   尽管有Alliance 和gEDA 等EDA工具可供使用,但它的功能和易用性和商业EDA软件相比还是不能相提并论。现代电子设计中越来越依靠EDA工具,如果能有更加强大的开源EDA工具,对硬件设计会产生重要的影响。
2)许可证   目前开源硬件的授权条款大部分是承接开源软件的GPL,如opencores采用了LGPL。但是因为硬件与软件不同,开源软件的授权有版权法律保护,而硬件产品只有专利法律才能保护。目前出现了多个新的许可证目的是为了解决具体的硬件设计问题。
3)成本    尽管开源硬件可能不包括研发成本,但是硬件本身的生产成本与规模是紧密相关的。你永远不可能得到免费的硬件,所以可负担的成本应该是可以接受的。通过选择FPGA平台或者便宜充足的芯片也能大幅降低成本。
4)质量    开源硬件的一个优点就是设计公开后,会被更多的人验证和测试,但是这需要一个庞大的社区和支持者。目前开源硬件社区还不够大,开发者还不够多,就像opencores这样的社区影响也还有限。但是随着开源硬件的推广会吸引越来越多开发者,如同开源软件Linux一样开发出高质量的硬件也是完全可能的。
5)产品    电子产品种类繁多、更新换代非常快,开源硬件从设计到实施会有许多困难。但是开源硬件的优势是项目是由需求推动的,而不是由公司的市场部门决定,因此设计受欢迎的开源硬件产品还是可能的。
6)厂商支持   开源软件Linux的发展离不开大公司的支持一样,开源硬件也需要大公司的支持。由于开源硬件的发展,越来越多的公司也开始关注。芯片厂商是最乐于推进开源硬件的发展,这会提高它们产品的市场占有率。
7)商业模式   如果开源硬件的开发者不能获利,那么开源硬件也很难持续下去。开源软件能产生RedHat那样成功的大公司,而开源硬件的商业模式目前都是在试验阶段。不过Arduino项目的成功对于中小企业还是很有借鉴意义,开源硬件也是能够成功的。
6.开源硬件的展望
尽管目前开源硬件还面临各种各样的困难,但是随着技术的进步以及无数爱好者的努力,相信开源硬件一定会一直发展下去,毕竟开源是大势所趋。
首先,开源硬件运动本身就具有非常重大的意义,无数的爱好者聚集在一起学习交流。知识的传播光是这一点就决定了开源硬件一定会生生不息。
其次,摩尔定律不会永远持续下去,半导体工艺的发展已经已经快接近极限。人们不会再被电子产品牵引疲于更换手中的硬件,这时产品的生命周期以及可维修性就变得重要起来。而开源硬件正是在这方面有着无可比拟的优越性。
再次,FPGA的集成度、功耗和速度等各方面在不断进步,越来越接近ASIC定制产品。越来越多的设计可以集成到FPGA开发平台,这在某种程度上会促进更多的IP核的开放,也能更一步降低硬件的开发成本。也许将来能“下载硬件”到我们手中的产品而实现不同的功能。
最后,无线技术、嵌入式系统以及物联网的兴起,电子产品会走向模块化和功能化。当人们手中的产品都能够无线联网,也许此时人们不会再那么轻易地丢弃它,会有越来越多的人对硬件产生兴趣。开源硬件也许能够大显身手。
总之,加快知识的传播,借助协作加速创新,开源硬件一定会和开源软件一样流行,也许开源硬件的春天才刚刚来临。



lisper 发表于 2014-3-8 18:38:12

"下载硬件"比较强大

killusa 发表于 2014-3-8 18:47:17

lisper 发表于 2014-3-8 18:38
"下载硬件"比较强大

你是玩儿lisp语言的?

lisper 发表于 2014-3-11 09:20:19

killusa 发表于 2014-3-8 18:47
你是玩儿lisp语言的?

是啊~

Angelo 发表于 2014-3-11 12:34:21

期待有一天,FPGA和硬件描述语言能够像现在的Arduino一样被开源社区接收~

lisper 发表于 2014-3-11 21:34:11

lisper 发表于 2014-3-11 09:20
是啊~

我玩的是common lisp

Holiday 发表于 2014-3-12 18:18:07

涨知识了。还有这么多的开源硬件品牌。。。

Rockets 发表于 2014-3-16 16:26:38

其实开源硬件的关键是分享合作。

Youyou 发表于 2014-3-19 17:06:30

Angelo 发表于 2014-3-11 12:34
期待有一天,FPGA和硬件描述语言能够像现在的Arduino一样被开源社区接收~

那就真的碉堡了,很期待这一天
页: [1]
查看完整版本: 开源硬件综述