硬件开源为什么如此之难?

硬件开源为什么如此之难?

2015-10-01 16:31 原创 喵酱

4条评论

【编者按】本文来自知乎,由作者@Dee ne 授权转载。

开源硬件会像开源软件给软件业带来的影响那样,也给硬件相关技术(以及硬件团队自身)带来巨大发展吗?这也许是每一个硬件工程师(当然也包括软件工程师)都会思考的问题。硬件与软件毕竟不一样,本文主要从硬件开源与软件开源的区别的角度,来简单说说硬件开源为什么那么难。

首先我们要明确的是:硬件的开源工作远远要比软件复杂。

为什么呢?因为硬件工程相对于软件工程而言,有着以下几个本质的区别:

1、模块化,标准化,以及修改的便捷性

软件产品都有着定义完整,并且可以随时调整输入输出。一旦一个软件模块编写运行测试通过,那么这个模块就可以被视作黑盒子,被另外一个完整定义的模块调用运行。只要软件之间的接口不变,那么各个模块之间的逻辑就不会发生变化,这就使得软件的开发人员之间可以仅仅通过定义好的接口来互相合作,而无论这些开发人员身处何处。

而在硬件领域,工程师们就没有那么幸运了。这个世界上不存在只要知道接口就可以加入设计使用的硬件。硬件的选型是一件很麻烦的事情,即使工作很多年的硬件设计师,在选用从未使用过的硬件设备时,也很有可能在接口电压或是时钟频率的匹配这种“小事情”上栽跟头 —— 随便哪里冒出来的一个接触电阻和寄生电容就可能把整个电路给弄砸了。

硬件设计师们没有强大的IDE(Integrated Development Environment,集成开发环境),没有美好的编译器和解释器,所有硬件工程师都在第一堂EDA(Electronic Design Automation,电子设计自动化)设计课上被告知:“软件仿真是不可靠的,只能作为参考。”硬件设计唯一能依靠的就是扎实的理论基础和反复的实验检测。像是“一个中国工程师和一个美国工程师远距离合作开发出来一个信号采集器”这种在开源软件看来很正常的合作模式,在硬件领域是不可能发生的。硬件设计师们必须坐在一起跑仿真,测芯片,焊板子。

有的人可能就问了:“为什么硬件不能像软件那样标准化,提供接口刷一下rom呢?”

那是因为我们身处的这个物理世界是没办法标准化的。硬件直接和物理世界打交道,老天爷没把这世界做的标准化,我们也没办法。现在硬件模块化已经做的很好了,尤其是数字电路这块。问题主要是模拟电路,电容电感电阻,这些量无处不在,电路的几何形状,材料,加工工艺都会影响这几个参数,实在是没法在设计时标准化。比如,两根导线之间距离的不同所产生的互感和电容差值就可能导致电路无法正常工作,这玩意我觉得实在是很难标准化。设计模块的时候总不可能把所有引脚的线长、线宽、线距都规定好吧?这种问题到了高频和小尺度的时候就会特别明显。

2、生产和发布成本

在软件开发过程中,一旦某个模块的接口需要改变,那么软件工程师所要做的就是坐在电脑前修改代码然后使用短信,电话,email或是git,svn这些工具通知所有需要使用这个模块的人,大家一起调试通过后,修改就完成了。这个过程的沟通成本和修改成本,除了人力以外,基本为零。发布软件的成本那就更低了,以前好歹还需要用软盘光盘这样的载体,现在有了互联网,那基本都是零成本了。

硬件开发的情景则相反,硬件工程师先是千辛万苦跑了无数仿真做出来电路,送到工厂再花不少钞票制作出来之后,示波器、逻辑分析和频谱分析仪(他们都价值不菲)会用严酷的事实告诉你:你这个东西不对。如果你做的是板级电路,那么恭喜你,运气好的话rework其中的某些器件也许就能够拯救你的设计。如果你做的是芯片级设计,那么就准备好再花个几十万做剖面、X光、FIB等找出问题,重新流片看看老天爷是不是能保佑你吧。

硬件的设计修改成本实在是太高了,这也是为什么现在Arduino之类的通用板和IP core的市场这么火的原因。

另外,等做出产品热卖了,那么随之而来的仓储、货运、分销、售后等体系的建设,绝对也是花钱如流水。在硬件产品公司中,开发人员的成本往往只是很小的一部分。

3、入行门槛

在软件业极度发达的今天,任何具有良好逻辑思维能力的人只要感兴趣,就可以通过互联网获得足够的教育从而称为一名软件开发人员。而所有的投资仅仅只是一台可以上网的电脑。这就使得现在的程序员数量不断上升,你总是可以碰到几个闲着找事的程序员一起来合作一些有趣的事情。

而硬件这行当,至今仍然还需要科班出身的专业人员来进行设计开发,我没有见过自学成才的优秀电子硬件设计工程师。为什么呢?仪器耗材只是原因之一;另一方面,硬件设计需要扎实的物理和数学基础。无论是麦克斯韦的电磁理论,还是香农的信息论,亦或是傅立叶/拉普拉斯变换,都不是一朝一夕能够搞明白的,没有大量的时间深入学习和实践,真的很难达到实用的水平。相比之下,hello world和实战之间的距离实在是很近。硬件工程师的培养周期很长,光凭兴趣,靠自学真的很难坚持下去。

就算你只是把硬件买回来组装,自己只是搭板子,其难度也取决于硬件工程师自身的基础和设计目标之间的距离。比如Arduino对新手来说已经算是足够简单了,但要玩转Arduino也至少要懂C、懂单片机、懂各种板级接口。如果要上传感器或电机伺服器的话,至少还得懂点ADC和马达/PID。

培养一名合格的硬件设计工程师,需要大量物理和电子方面的基础理论学习,并且伴随大量使用各种仪器的实习工作,这其中的时间和材料成本是非常高的。硬件工程师数量不多,加上之前提到的协作的困难,使得找一批搞硬件的聚到一起做风险很高的开源工作很不容易。

总而言之,硬件的开源要做起来,就需要克服设计非标准化、成本高、入行门槛高这几个问题。而在我看来,这些问题很难在短时间内被解决。或许像Arduino和IP core这样的解决方案能够在某些领域获得突破,但就总体的电子电路设计而言,我尚未看到很好的开源模式。不过物联网应该是个缓慢持续地将整个社会数字化的过程,我个人认为这个过程将会持续相当长的一段时间(10年以上),这期间会发生什么,还是拭目以待吧。

时间: 2024-10-03 20:05:30

硬件开源为什么如此之难?的相关文章

智能硬件开源平台都有哪些

智能硬件开源平台:http://www.kaifakuai.com/ 开发快为解决物联网服务器.设备终端.移动端.PC端等实时互联互通的物联网应用需求而提出了物联网联接通信服务解决方案.它能够有效的帮助传统开发团队应对"软硬云"开发困境,它为用户提供成熟稳定.可管可控的软硬云通信链路服务.私有云作为方案中不可或缺的一环,在2016年6月30日在聚丰众筹第一次跟大众见面,命名ET-iLink私有云. 面向对象有: 1.传统产品转型智能产品的企业 2.物联网行业解决方案提供商 3.Wi-F

2013 年最不可思议的 10 个硬件开源项目

这篇文章是总结 2013 年发布的最令人不可思议的开源硬件项目,大部分都是众筹项目,这也说明了在 2013 年,开源业界的创新发展很繁荣,受到很大的关注.与此同时,很多大公司,创业公司和个人开发者都开始对开源创新给予很高的关注度,展望 2014,开源创新将会发展到另一个更高的高度! 五月: 开源实验仪器 Red Pitaya 源代码: 尚未公布 可 以肯定的是,购买实验室器材设备是笔很昂贵的开销,这也是为什么 Red Pitaya 项目组决定要创建一个硬件来改造手机,平板或者是电脑来作为实验的设

Atitit 硬件 软件 的开源工作 差异对比

Atitit 硬件 软件 的开源工作 差异对比 1.1. 模块化,标准化,以及修改的便捷性1 1.2. 生产和发布成本 1 1.3.   3. 入行门槛搞2 1.4.  在软件业极度发达的今天,任何具有良好逻辑思维能力的人只要感兴趣,就可以通过互联网获得足够的教育从而称为一名软件开发人员.2 1.5. Sdx软件定义一切2 1.1. 模块化,标准化,以及修改的便捷性 1. 软件产品都有着定义完整,并且可以随时调整的输入输出. ,这就使得软件的开发人员之间可以仅仅通过定义好的接口来互相合作,而无论

C轮魔咒:智能硬件为什么融资难

据相关媒体不完全统计,2015年完成融资的智能硬件公司集中在A轮和B轮,但能挺进C轮的少之又少.对智能硬件创业的年终盘点也显示,此前比较热门的手环.智能家居等主要单品在去年明显出现了回落.陷入C轮魔咒的智能硬件行业,在狂飙突进之后,终于遇到了自己的瓶颈. 智能硬件的C轮融资难,其实不在于资本寒冬来临.毕竟智能硬件才刚刚起步,未来前景无限,只要产品足够优秀,总会受到投资者青睐.之所以遇到这样的困难,更多的是产品本身没有解决消费者痛点,而且缺乏整合产业链的能力. 陷入C轮桎梏 智能硬件由生到死 智能

其他主流开源硬件简介BeagleBone Black快速入门

其他主流开源硬件简介BeagleBone Black快速入门 1.3 其他主流开源硬件简介 开源硬件种类繁多,但主要有两款开源硬件常与BeagleBone比较.它们就是Arduino和Raspberry Pi(即树莓派).之所以常拿他们来比较,是因为他们有共同点也有不同点.在笔者看来,他们之间可以互相补充,但是均是不可替代的.下面就来简单介绍一下这两种开源硬件本文选自BeagleBone Black快速入门教程. 1.3.1  Arduino Arduino常被用来称呼Arduino的硬件控制器

对比开源ERP与SaaS ERP系统实施便利性的差异

传统的商业ERP 由于传统的ERP需要在实施前设置服务器,数据库,IT硬件设施,比如机房等设备,这导致其实施周期十分漫长,成本又高. 实施传统的商业ERP对于远程地理位置尤其具备挑战性.员工需要通过特别建立的虚拟专用网络来远程进入系统.这一过程的部署十分复杂,而且员工通过远程连接系统的速度十分缓慢,日常系统运行的稳定性很差. 技术层面的专业性要求和ERP系统的软硬件维护增加了实施的时间成本.实施的风险性很大,成本很高.如果实施没有按计划履行,在硬件和软件上的初始投资则石沉大海.ERP的失败实施甚

分析开源OpenERP与其他ERP系统实施是否方便!

传统的商业ERP 由于传统的ERP需要在实施前设置服务器,数据库,IT硬件设施,比如机房等设备,这导致其实施周期十分漫长,成本又高. 实施传统的商业ERP对于远程地理位置尤其具备挑战性.员工需要通过特别建立的虚拟专用网络来远程进入系统.这一过程的部署十分复杂,而且员工通过远程连接系统的速度十分缓慢,日常系统运行的稳定性很差. 技术层面的专业性要求和ERP系统的软硬件维护增加了实施的时间成本.实施的风险性很大,成本很高.如果实施没有按计划履行,在硬件和软件上的初始投资则石沉大海.ERP的失败实施甚

走向开放新纪元:革命,让更多女性走进开源

原文地址:http://www.wired.com/2014/07/openhatch/ 最近来自Facebook和Google的报道证实了一件广为周知的事:大量的技术工作中存在多样性[注]的问题.但是在开源的世界中,这个问题更严重. 通过去年开展的一个调查来看,开源贡献者中仅有11%的女性.另外,根据劳工统计局的数据,计算机程序员中女性占23%,而在web开发者中这个数字是39.5%. 当你认为技术公司越来越偏爱有开源经验的开发者的时候,这是特别让人担心的.这意味着如何解决开源界的多样性问题也

SDN开源,从你的全世界路过

近些年,以Linux领衔的开源项目在IT界出尽了风头,涌现了很多的优秀开源项目.如今人人都在讲开源,在刚理解了软件开源之后,又听说了硬件开源,仿佛现在不说开源就不够Bigge.So,为什么要开源呢?在网络数通领域也掀起了开源热潮,我们今天就围绕SDN.NFV来捋一捋开源到底干了什么. 传统网络做了什么 在传统的网络行业中,标准制定和厂商具体的技术实现并不是很合拍.像IETF这些机构会对网络和存储的相关标准进行定义,供应商也会相应地实现他们的解决方案,但这看似两个正常的工作过程往往会由于实现的多样