第1章 Arduino项目设计基础
1.1 开源硬件简介
电子电路是人类社会发展的重要成果,在早期的硬件设计和实现上都是公开的,包括电子设备、电器设备、计算机设备以及各种外围设备的设计原理图,大家认为公开是十分正常的事情,所以,早期公开的设计图并不称为开源。1960年前后,很多公司根据自身利益选择了闭源,由此也就出现了贸易壁垒、技术壁垒、专利版权等问题,不同公司之间也出现了互相起诉的情形。例如,国内外的IT公司之间由于知识产权而诉诸法律,屡见不鲜。虽然这种做法在一定程度上有利于公司自身的利益,但是,不利于小公司或者个体创新者的发展。特别是,在互联网进入Web 2.0的个性化时代背景下,更加需要开放、免费和开源的开发系统。
因此,在“大众创业,万众创新”的时代背景下,Web 2.0时代的开发者思考硬件是否可以重新进行开源。电子爱好者、发烧友及广大的创客一直致力于开源的研究,推动开源的发展,最初从很小的物品发展到现在,已经有3D打印机、开源的单片机系统等。也就是说,开源硬件是指与开源软件采取相同的方式,进行设计各种电子硬件的总称。也就是说,开源硬件是考虑对软件以外的领域进行开源,是开源文化的一部分。开源硬件是可以自由传播硬件设计的各种详细信息,例如,电路图、材料清单和开发板布局数据,通常使用开源软件来驱动开源的硬件系统。本质上,共享逻辑设计、可编程的逻辑元件重构也是一种开源硬件,通过硬件描述语言代码实现电路图共享。硬件描述语言通常用于芯片系统,也用于可编程逻辑阵列或直接用在专用集成电路中,这在当时也称之为硬件描述语言模块或IP核。
众所周知,Android就是开源软件之一。开源硬件和开源软件类似,通过开源软件可以更好地理解开源硬件,就是在之前已有硬件的基础之上进行二次开发。二者也有差别,体现在复制成本上,开源软件的成本几乎是零,而开源硬件的复制成本较高。另外,开源硬件延伸着开源软件代码的定义,包括软件、电路原理图、材料清单、设计图等都使用开源许可协议,自由使用分享,完全以开源的方式去授权,避免了以往DIY分享的授权问题。同时,开源硬件把开源软件常用的GPL、CC等协议规范带到硬件分享领域,为开源硬件的发展提供了标准。