在过去的几年中,我们注意到的一种发展趋势是,从少数技术爱好者搭建硬件设计和编写软件,转向更大范围活跃的全球“创客(maker)”社区。由此出现的新一代“数字工匠”包括业余爱好者、小发明家、学生、大发明家和平面设计师等群体,人们认识到创客和小型初创企业正在帮助推动物联网技术的采纳。通过采用数字电子技术、软件、机器人和3D打印,结合更传统的工程技术,企业家们正在构建创新的产品。在某种程度上,这可以看作是对大公司生产的封闭式“黑匣子”产品的回应,其产品内部的设计在很大程度上是未知的,且无法访问,因而这些产品经常被替换掉而不是被修复。
通过采用低成本和开源的微控制器开发板,免费提供的软件和易于使用的编程语言,使得创客开发的势头得到进一步加强。本文将探讨这种技术大众化背后的历史。
传统的开发系统
微处理器制造商一直在为他们的产品提供开发系统。但在过去,这些开发系统的价格很高,通常只供大客户使用,原因是它们主要作为教学工具和用来支持软件开发过程。这些开发系统也过于庞大且昂贵,无法用作实际产品开发的基础,因此公司需要经验丰富的工程师团队,且他们必须拥有广泛的技能,才可以创建新产品开发项目所需的硬件和软件。
软件开发工具由于使用了专有的编译器和调试硬件,因而也很昂贵。所需要的过程包括在线仿真(ICE),其中目标硬件中的处理器可以用来自开发系统的带状电缆代替。这样就可以监控微处理器的内部状态和外部信号,并在程序运行时触发断点(breakpoints),这是一个强大的工具,但价格肯定不便宜。
起源
谈及技术能够较大规模获取的时间,可以追溯到20世纪90年代,当时开源运动已经开始,半导体器件的集成度不断提高,导致低成本的系统级芯片(SoC)产品。在软件方面,免费和开源软件运动的开始则更早,可进一步追溯到20世纪80年代后期(虽然直到1998年才采用“开源”这个名称)。 GNU工具和Linux从开源运动中诞生,现在已经成为主要的桌面和嵌入式操作系统之一。在某种程度上,这是因为开源模型可以快速响应新硬件和不断变化的需求,它还可以利用众人的力量快速查找和修复错误,并确定任何安全问题。在硬件方面,在普通芯片上可以集成越来越多的组件功能,导致从集成了系统一些主要功能的昂贵专用集成电路(ASIC)转向成本更低的商用SoC,而SoC几乎不需要外部元件。
半导体代工行业的崛起使得能够为特定应用更加经济地制造SoC器件,几乎任何公司都可以使用先进的半导体制造技术,半导体公司不再需要自己进行大量投资,而是可以利用代工厂的投入。
半导体公司除了能够不再考虑制造工艺外,作为硅知识产权(IP)的组件也越来越多,其中包括处理器内核、存储器、标准接口和应用加速器等。通过重用这些经过良好测试的组件,模块化的设计方法使得复杂器件的设计实现更加迅速,所节省的成本可以直接让客户受益。
新一代开发系统
SoC微控制器包含一个或多个处理器内核、闪存和SRAM存储器、外设以及各种行业标准接口。微控制器产品系列通常包括具有不同处理器内核、时钟速度、存储器大小、接口、引脚等参数的多种变体,可以使客户根据他们的需求选择最具性价比的解决方案。
微控制器通常还具有片上的支持用来进行系统调试,可通过JTAG或SWD接口访问。这样可以看到微处理器的内部状态,并且能够以最低的额外成本提供许多与传统ICE系统相同的功能,例如记录执行的指令跟踪以及在特定数据或地址值上设置断点。
由于持续受益于半导体制造业的规模经济效应,微控制器产品的价格已经急剧下降,因而能够创建低成本的开发板。这些开发板通常包含微控制器和一些外部组件,用于标准通信接口(USB,以太网,蓝牙等)以及环境传感器(例如温度和加速度传感器),还可提供软件库和中间件,使这些开发板板能够成为适于各种应用的完整参考平台。除了用于开发和原型设计外,这些电路板通常很小且价格便宜,因而可用于小批量生产。
在最早的单板计算机中,其中的一台是于2011年发布的BeagleBone,由于它体积小,易于连接和不到100美元的低价格,很快就在业余开发者中间受到广泛欢迎。这款产品随后提供了名为“披肩(capes)”的各种附加板,以扩展功能。另一个开源微控制器开发板是Arduino,由于其低成本和简单的操作而获得了巨大的市场成功,并已经创建生产了各种兼容板,包括基于ARM的Arduino Due,以及被称为“屏蔽(shields)”的附加板。现在有许多其他低成本单板计算机可供使用,包括“树莓派(Raspberry Pi)”和微控制器制造商自己生产的产品。虽然这些不遵循开源的哲学理念,但它们体积较小而且价格便宜。
图1:最新的BeagleBone范例 - BeagleBone Black。
图2:Arduino Due开发版。
软件开发工具
软件开发工具可从市场软件工具供应商、硬件供应商(支持其产品)和开源获得。商用化工具通常很昂贵(尽管一些供应商可以为个人或学生提供较便宜的使用许可),但是,商用化工具的几乎所有功能现在都可以免费或通过开源产品得到。编程可以在主机PC或笔记本电脑上完成(通常使用C语言),并通过标准接口(如USB)将代码下载到开发板上,这样也可以访问微控制器的调试功能。使用良好的集成开发环境(IDE)可以使编写和调试软件更容易。Eclipse是一个流行的开源IDE,它具有模块化结构,通过插件可支持Java、C、C ++和几种其他语言的编程。
2005年,微软针对学生和业余开发者发布了一款功能受限的专业IDE版本,这是一款名为Visual Studio Express的免费产品。目前,这款产品已经被Visual Studio Community所取代,Visual Studio Community能够提供完整版的所有功能。市场上也有各种其他免费程序员编译器,其中许多包括IDE中常见的功能,例如,能够在编译器中编译/调试代码。Arduino有自己的IDE,可提供简化的C编程模型。因此,个体开发人员现在可以访问专业嵌入式开发人员使用的相同工具和设施,而无需大型公司的资源。
由于BeagleBone和树莓派等开发板运行Linux,因此也可以直接对它们进行编程,而不是从主机下载代码,这对于Python等交互式编译语言尤其有用。Python一直是最受欢迎的编程语言之一,属于开源,并可免费使用,它有一套全面的程序库和第三方模块,可以访问各种高级功能。它还具有易于理解的句法(syntax),可以快速学习。但由于它必须通过编译,这确实意味着性能不如C/ C++程序好。幸运的是,现代处理器运行足够快,这对许多应用来说都不是问题。如有必要,Python可用于原型设计,最终版本用C语言编写以获得额外性能。
在线资源
这些开发系统的许多新用户几乎没有接受过硬件或编程方面的正式培训,因此一般是通过在线获得支持并分享他们的项目。开发人员在此可以访问许多资源,几乎所有的开发板/微控制器制造商都开设有论坛,用户可以在这里提问和回答问题。有些公司还通过与这些论坛合作,提供技术和产品支持,并获得市场对有关部产品的反馈。
与大部分其他软件一样,开发工具也已迁移到云端。这些工具甚至可以通过低成本的上网本即可使用,它们能够使您轻松地尝试或开始学习新语言,而无需在计算机上设置开发工具,这些还可以避免在多台计算机(台式机和笔记本电脑,家庭和办公室)上设置相同的IDE,并使它们保持同步等问题。基于云端的工具尤其适用于在线协作和代码共享。
结论
低成本硬件、免费开发工具和易于学习的编程语言的兴起导致了已经开始风靡的DIY电子项目数量的爆炸式增长。市场上提供的开源硬件/软件以及在线资源则赋予了更大的创新能力,而且这种趋势似乎在未来很长时间内都不会改变。
上一篇:浅析linux权限管理
下一篇:Vivado 专家文章:Tcl 是什么?
推荐阅读最新更新时间:2024-05-03 03:12