开源硬件指与自由及开放原始码软件相同方式设计的计算机和电子硬件。开源硬件开始考虑对软件以外的领域开源,是开源文化的一部分。其中,Arduino的诞生可谓开源硬件发展史上的一个新的里程碑。
说到开源硬件,大家不一定很了解,但是说到创客大家最近一年应该耳闻了很多。开源硬件这个东西,在现在,几乎是和创客绑定在一起的。
几乎所有的开源硬件社区都是由创客组成。开源硬件几乎可以算是创客的工具箱,给创客提供了大量的方便。
开源硬件是像开源软件学习的。把原理图开源初衷就是给大家一个模板,使得更多的东西能被复用,就好像编程里的对象,做好一个类,一个库,大家只需要修修补补就行,不用再付出重复的劳动。
开源硬件,以Arduino为例,带来的是什么呢?
1.接口的标准化。
Arduino定义了很多标准的接口。如Arduino UNO,Arduino Mega,Arduino Nano,以及xbee接口。在Arduino中包括SPI接口以及I2C接口的位置都是标准化的。这些标准化带来的好处就是,对于Arduino兼容模块的设计者来说,只要设计兼容这些接口的硬件。那么客户拿到手的模块使用会非常简单。扩展板直接插上就可以用,模块看清楚数字口或者模拟口就行,I2C,SPI设备接的位置都一样。非常方便使用。
2、使用流程的标准化。
对于开源硬件来说,接口的标准化使得使用流也可以标准化。选择一个Arduino模块的流呈一般是想一个功能(idea)-》百度(或论坛)查询使用传感器》淘宝开源硬件店询问合适模块-》查看模块使用方式- 》购买》收到模块后下载程序库文件- 》打开库里的demo例程烧录程序》插上模块运行-》修改程序为自 己所用。
3.教育的标准化
流程的标准化使得硬件的入门门槛被大幅度的降低。包括出现的一些图开化编程软件sketch等使得门槛被进一步降低门槛低,东西又标准化,那么低龄教学,便成为可能。那么门槛到底有多低呢?小学生也可以学。目前由于创客风流行,很 多中小学老师也加入创客行列,使得创客的工具Arduino也可以被中小学生认识。目前使用Arduino教学的中小学主要还是集中在上海及周边地区,但根据老师的反馈,确实效果不错。开源硬件是一个桥梁,他连接了硬件和软件,让硬件工程师,在不了解库的具体实现的情况下能使用很多人编写的库。再也不用过多的纠结于各种不同 的通信协议,各种驱动的编写。如果创客能够改变世界,那开源硬件一定是他背后的那个默默付出的她。
开源硬件优势
1. 开源硬件降低了硬件领域的门槛,更多的人可以参与
开源硬件提供大量经过大家验证和持续改进的模块,可以让设计硬件像做加法、搭积木那样简单,让更多地人更容易的参与进来。这里面,模块化、标准化和接口化非常的重要,这个Arduino就做的很好,所以非常多的艺术家、设计师参与进来,带来了非常多的创意。
有了很多人的参与,就可能有人像Mark Zuckerberg利用开源软件建立facebook那样,利用开源硬件设计出非常优秀的产品。
2. 开源硬件可以促进硬件模块化、标准化和接口化,提高硬件开发的速度和效率
3. 开源硬件可以降低硬件的BOM成本
优秀的开源硬件设计会被更多的采用,其中采用的物料、IC会被大量的使用。长远来说,降低的ROM成本是可观的。
硬件工程相对于软件工程而言,有着以下几个本质的区别
1. 模块化,标准化,以及修改的便捷性
软件产品都有着定义完整,并且可以随时调整的输入输出。一旦一个软件模块编写运行测试通过,那么这个模块就可以被视作黑盒子,被另外一个完整定义的模块调用运行。只要软件之间的接口不变,那么各个模块之间的逻辑就不会发生变化,这就使得软件的开发人员之间可以仅仅通过定义好的接口来互相合作,而无论这些开发人员身处何处。
而在硬件领域,工程师们就没有那么幸运了。首先,这个世界上不存在只要知道接口就可以加入设计使用的硬件。硬件的选型是一件很麻烦的事情,即使工作很多年的硬件设计师,在选用从未使用过的硬件设备时,也很有可能在接口电压或是时钟频率的匹配这种“小事情”上栽跟头——随便哪里冒出来的一个接触电阻和寄生电容就可能把整个电路给弄砸了。硬件设计师们没有强大的IDE,没有美好的编译器和解释器,所有硬件工程师都在第一堂EDA设计课上被告知:软件仿真是不可靠的,只能作为参考。硬件设计唯一能依靠的就是扎实的理论基础和反复的实验检测。像是“一个中国工程师和一个美国工程师远距离合作开发出来一个信号采集器”这种在开源软件看来很正常的合作模式在硬件领域是不可能发生的。硬件设计师们必须坐在一起跑仿真,测芯片,焊板子。
2. 生产和发布成本
在软件开发过程中,一旦某个模块的接口需要改变,那么软件工程师所要做的就是坐在电脑前修改代码然后使用短信,电话,email或是git,svn这些工具通知所有需要使用这个模块的人,大家一起调试通过后修改就完成了。这个过程的沟通成本和修改成本,除了人力以外,基本为零。发布软件的成本那就更低了,以前好歹还需要用软盘光盘这样的载体,现在有了互联网,那基本都是零成本了。
硬件开发的情景则相反,当硬件工程师千辛万苦跑了无数仿真做出来的电路送到工厂花了不少钞票制作出来之后,示波器,逻辑分析和频谱分析仪(他们都价值不菲)会用严酷的事实告诉你:这个东西不对。如果你做的是板级电路,那么恭喜你,运气好的话rework其中的某些器件能够拯救你的设计。如果你做的是芯片级设计,那么就准备好再花个几十万做剖面,X光,FIB等找出问题,重新流片看看老天爷是不是能保佑你吧。硬件的设计修改成本实在是太高了,这也是为什么现在Arduino之类的通用板和IP core的市场这么火的原因。另外,等做出产品热卖了,那么随之而来的仓储,货运,分销,售后等体系的建设,绝对也是花钱如流水。在硬件产品公司中,开发人员的成本往往只是很小的一部分。
3. 入行门槛
在软件业极度发达的今天,任何具有良好逻辑思维能力的人只要感兴趣,就可以通过互联网获得足够的教育从而称为一名软件开发人员。而所有的投资仅仅只是一台可以上网的电脑。这就使得现在的程序员数量不断上升,你总是可以碰到几个闲着找事的程序员一起来合作一些有趣的事情。
而硬件这行当,至今仍然还需要科班出身的专业人员来进行设计开发,我没有见过自学成才的电子硬件设计工程师。培养一名合格的硬件设计工程师,需要大量物理和电子方面的基础理论学习,并且伴随大量使用各种仪器的实习工作,这其中的时间和材料成本是非常高的。硬件工程师数量不多,加上之前提到的协作的困难,使得找一批搞硬件的聚到一起做风险很高的开源工作很不容易。
总而言之,硬件的开源要做起来,就需要克服设计非标准化,成本高,入行门槛高这几个问题。而在我看来,这些问题很难在短时间内被解决。或许像Arduino和IP core这样的解决方案能够在某些领域获得突破,但就总体的电子电路设计而言,我看不到很好的开源模式。
上一篇:开源硬件_最流行的几个开源硬件平台_Ardurino开源硬件平台
下一篇:prolog中文教程及语法规则
推荐阅读最新更新时间:2024-05-03 02:16