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