全文 - OpenPattern project: a comprehensivemodular routing platform
OpenPattern项目一个综合性模块化路由平台摘要随着家庭网关、DSL调制解调器、商用无线路由器以及无线社区项目的最新发展大量网络硬件设备进入了家庭环境。这些不同的发展催生了各种破解盒子的举措使得用户能够用由众多开源开发者贡献的开源固件如OpenWrt、Freifunk等来刷写这些特定硬件。由于缺乏现成的开放硬件来将平台调整到适合家庭网络及一般网络应用OpenPattern项目应运而生。该项目旨在基于过往开源项目的经验开发一种基于开放硬件即目标硬件的开放规范的设备。它采用主板设计能够通过子卡扩展功能并与现有的开源项目协同工作以便在设备准备就绪后投入使用。关键词无线家庭网络开放硬件电子电路板路由开源网络接口。1. 引言本文介绍了OpenPattern模块化路由平台OMRP。我们将阐述该平台旨在解决的当前问题以及其创新特性并解释我们据此做出的架构选择。最后我们将介绍主板将配备的模块组和各种接口。OpenPattern是一个模块化路由平台由一个强大的单板计算机组成用户可以在其上插入各种网络接口模块。在该板上运行的软件是完全开源的从CPU的内核和用户空间应用程序到FPGA的比特流皆是如此。用户还可以通过邮件列表和代码仓库进行贡献并与对该项目感兴趣的人交流。该单板计算机支持多种网络接口例如Wi-Fi 802.11n、WiMAX、蓝牙2.0、ZigBee、WiBree以及ADSL2和电力线通信PLC。主板的模块化设计将允许任何新的网络接口通过适配成为OMRP的子卡。本文第一章将探讨自由电子的过往和当前概念第二部分将阐述OpenPattern项目的目标最后第三部分将深入介绍OMRP的目标架构包括硬件和软件。2. 自由电子的背景与现状自由电子的概念非常广泛过去在全球开源主要是软件社区中一直是一个热门话题。这个概念试图将代码开源的理念以及为工作成果提供合适的许可如GPL许可扩展到硬件平台的开发中。但由于硬件涉及第三方和第四方如制造商和原始设备制造商OEM这种扩展比简单地将一个软件项目的工作成果向公众开放要困难得多。尽管如此如今自由电子的概念正变得越来越重要它允许人们基于硬件平台的开放规范使用开源软件来开发自己的应用程序。在这一部分我们将描述此类项目的现状以及主要开源项目与其在即将开放的硬件平台上的实现之间的关系。2.1 开放与封闭的电子元件一个硬件平台如手机、路由板或家庭网关由一块电子电路板和几个关键元件以及一些分立元件组成这些分立元件用于微调阻抗、电流和电压水平以确保元件在其制造商规定的规格范围内运行。在过去几年中一些开源社区已经开发出针对多种应用的项目这些应用的硬件在此之前已封闭了数月同时伴随着无线电通信和家庭网络应用的巨大发展。表 I 列出了几个旨在开放平台、驱动程序和应用程序源代码的开放硬件项目。表 I 不同的开放硬件项目项目关注领域OpenMoko手机封闭的GSM协议栈OpenWrt无线路由器Gecko3完全开放的FPGAGnuRadio无线电通信GSM Cracking project开放的GSM接收机OpenGraphics图形适配器OpenSPARCSPARC架构Atheros驱动/Linux内核Atheros Wi-Fi芯片组Leox片上系统核心和总线当今最知名的项目之一是OpenMoko其目标是在某些硬件制造商的支持下开发一种具备多种无线电接口GSM、Wi-Fi等的开放手机允许最终用户在该硬件之上开发自己的应用程序。不过其GSM协议栈目前尚未开放因为GSM运营商目前不太愿意开放它。2.2 家庭网关板随着全球互联网服务提供商ISP推出三网合一和四网合一服务IP浏览、VoIP、IPTV、IP电话最终用户每天都在使用嵌入在不同制造商专有硬件中的家庭网关。例如法国ISP现在提供所谓的Internet盒Livebox、Freebox、9box等这些硬件平台能够运行Linux以实现路由功能、VLC客户端[1]、视频解码、Web图形界面、SIP客户端和文件共享服务器。在不久的将来这种家庭网关板可能会成为通用硬件其上运行着开源应用程序以及用于在ISP网络上进行安全连接的专有软件协议栈。此外最终用户现在还为他们的家庭网络应用如无线局域网、电力线通信PLC接口或基于专有硬件的文件共享配备了其他嵌入式设备这些设备在不久的将来也可能被开放。2.3 路由板和平台从软件角度来看有几个基于著名的Linksys WRT系列WRT54G等路由板的开源项目现在非常活跃它们试图找到最合适的开源固件实现方式。这些实现都利用了Linksys向公众提供的硬件规格。在这些固件中OpenWrt是应用最广泛的一个甚至已经原生应用于某些商业产品中。以下是部分原生运行OpenWrt的电路板列表Neuf/Cegetel EasyGateMindspeed ComcertoMeraki MiniFon La FoneraUbiquity LiteStationsInfineon Amazon这份列表表明开源固件如今已经达到了足够高的质量水平加上基于目标硬件的正确实现足以支持广泛的商业应用。2.4 无线社区板开放硬件和软件发展的另一个重要领域是世界各地的不同无线社区他们基于IETF和IEEE关于Wi-Fi的标准802.11系列、IP网状网标准如OLSR实现了不同的固件。表 II 列出了这些社区使用的不同电路板和固件非详尽列表。表 II 无线社区板社区电路板固件FreifunkMeshcube / WRT54GNylon / OpenWrtFrance-WirelessWRT54G / FoneraOpenWrt / OpenWrtMerakiMerakiOpenWrtFonLa FoneraOpenWrtSeattle-Wireless各种型号原始固件TIER项目UC BerkeleyGateworks Avila 2348定制Linux例如位于柏林和莱比锡的Freifunk无线社区使用两种不同的硬件Meshcube和Linksys WRT来构建超大规模的adhoc网络。这些网络基于802.11 MAC层以及嵌入在OpenWrt固件中基于OLSR的IP层。这种实现使得世界上任何想要建立新无线社区的人都可以通过购买一些Linksys电路板并用Freifunk版本的固件刷写硬件来做到这一点。迄今为止已经建立了多个Freifunk无线网络柏林的网络现在已拥有数百个OLSR节点距离有线IP馈送点最多5跳以提供共享的无线互联网接入。来自加州大学伯克利分校的TIER项目也致力于在发展中国家部署无线网络它使用标准硬件和定制的Linux发行版基于经过修改的、采用TDMA介质访问以提供更好服务质量QoS的802.11 MAC层来实现长距离无线通信。3. 项目动机与目标3.1 像自由软件那样的自由电子是否可能当今电子学和微电子学的核心被称为知识产权核IP核。这个核本质上是一段用硬件描述语言HDL编写的代码它描述了常见的电子子系统处理器、内存控制器、以太网控制器以及一组可编程晶体管应具有的布局。这段小小的代码是库的一部分电子元件设计者从中选取元件来设计子系统然后将它们组合在一起最终生产出电子元件。十年前一些电子工程师意识到每次他们开发一个新的专用电子元件如处理器或微控制器即使是对系统中最微小的部分比如实现两个比特的逻辑与他们都在重复造轮子。OpenCores项目的目标是为电子设计者提供一个共享、改进和讨论知识产权核的公共空间从而缩短测试和上市时间。尽管该项目托管了大量质量不错的IP核但还存在另一个问题即用于模拟、测试和设计电子元件的软件。大多数FPGA供应商也提供开发工具允许电子设计者放置、分析和修改他们的IP核以设计整个电子元件。这个工具还负责在FPGA上进行不同IP核的布线和布局最终生成将发送到FPGA的比特流和网表使其成为刚刚设计好的元件。这些工具并非在自由软件兼容许可证下发布但可以在网上免费获取。目前正在持续努力开发能够生成比特流的开源工具。这些工具的优点在于它们可以在GNU/Linux系统上运行因此你可以将它们与运行在开源软件之上的专有软件结合使用。既然我们无法用自由软件开发自由可用的IP核那么我们真的能像做自由软件那样做自由电子吗嗯答案是肯定的只要我们在使用的工具、产生的文档和原理图、项目管理以及人们基于该设计自行生产电路板的能力等方面保持整个过程的开放性。这个项目之所以保持自由是因为所有产生或讨论的内容都在保护材料的许可证下自由可用但又不会阻止人们做出贡献。我们可以将此视为自由软件概念在软件可编程元件上的逻辑延伸其中包括了硬件开发中几乎不存在的自己动手做部分。通过提供原理图、源代码和自己生产印刷电路板PCB的技巧人们将真正能够制造自己的板卡并在其上实现自己的应用程序。3.2 谁会使用这种设计由于设计是完全开放的相当多的人可能会有兴趣使用它特别是学术研究人员工业研究人员消费电子公司无线社区新兴国家的核心路由器学术和工业研究人员确实需要一个开放的设计来进行工作否则他们将花费大量时间从制造商或分销商那里获取信息而制造商或分销商出于商业原因往往倾向于保密。由于从头开始设计硬件风险高且耗时我们提供了一个可工作的硬件平台这样研究人员就可以专注于开发代码或使现有项目发展而不是每次想测试新东西时都要处理新设计。对于任何需要一个能够承载多种网络接口的电路板的人来说无论是用于快速部署、开发还是测试OpenPattern平台都是理想的选择。由于我们已经设计并验证了系统中最复杂的部分如内存和DMA控制器人们甚至可以利用该设计来验证他们自己的硬件。世界上有很多人正在寻找可以部署在网状网络中的即用型设备这正是像Linksys WRT54G这样的设备目前所做的事情。越来越多的国家将使用廉价的无线设备为其城市构建网状网络因此OpenPattern电路板可能是理想的选择因为它可以作为多种网络接口主要是Wi-Fi和WiMAX的网关。如前所述对于一个给定的硬件获得不错的开源支持根据随附的板级支持包BSP的不同需要一个月到几年的时间。3.3 创新之处在哪里OpenPattern项目的创新体现在多个方面包括项目管理、消费电子产品设计流程、硬件和软件特性。针对之前解释的问题显而易见需要一个模块化、开放且可升级的硬件平台以帮助持续进行的开源工作将精力集中在软件开发或设计上而不是硬件上。与一些最初是内部开发然后才向公众开放的开源项目不同该项目旨在从一开始就获得贡献。OpenPattern项目旨在共享信息以实现最大程度的贡献例如设计新模块、新应用程序以及为开放硬件提供更好的驱动程序。最后让最终用户能够使用PCB来构建自己的电路板甚至对原始PCB进行修改和添加功能这似乎很重要。4. 硬件与软件架构OpenPattern的架构旨在提供一个高效的软件和硬件架构。由于模块化很重要并且所选产品的生命周期结合了提供良好性能的专用硬件和容纳未来模块的模块化硬件。从软件角度来看它为这个嵌入式系统提供了半虚拟化其用法与桌面或服务器半虚拟化软件相同。4.1 硬件架构嵌入式设备围绕一个中央专用元件ASIC设计称为片上系统SoC其中集成了功能子系统如CPU、内存控制器和以太网控制器具有高集成度和低成本的特点。这种方法的主要问题是每当新设备上市时都会有一个专用的、廉价且高度集成的SoC。此外SoC采用了一种称为协同设计的具体设计方法其中系统特性和软件编程都是为缩短上市时间而设计的。这种方法非常适合大众市场的生产和销售但对于定制设计来说是负担不起的。这种片上系统被广泛用于降低分立芯片方案所需的成本和物理空间。例如大多数硬件制造商将CPU、内存控制器、以太网控制器和Wi-Fi MAC处理器集成到SoC内部占用空间不到5平方厘米。对于百万片的产量SoC的制造成本可以降低到几美元。考虑到这一点我们的设计思路是创造一种能够通过可编程闪存上的软件升级来简单演进的芯片并且其性能足够强大甚至在后续的设计修订中可以取代SoC。这种功能由现场可编程门阵列FPGA实现而其比特流代码则存储在可编程闪存中。图1 OMRP的硬件组织图注左侧为主板Motherboard右侧为模块插槽用于连接子卡Daughterboards。表 III OMRP硬件特性组件规格CPU400 MHz ARMFPGAXilinx Spartan-3系列CPU闪存16 MB NAND内存128 MB SDRAM与完成所有功能的SoC不同FPGA允许设计者选择功能较少的SoC更便宜、更小并在FPGA上运行的软件中完成其余功能。将这种架构设计与网络接口的良好布局和互连相结合将实现完全模块化的设计。这些论点决定了将FPGA放置为微控制器访问无线和以太网接口等硬件的中间组件。FPGA的布局和功能可以类比于PC架构中所谓的芯片组其基本原理是允许CPU访问硬件资源而无需特定的模拟/数字前端电路。这种架构的优势非常明显FPGA比CPU更能容忍电涌和临时性设计问题CPU不必承担处理硬件中断的负载由FPGA完成硬件访问和软件之间有清晰的分离有利于虚拟化技术FPGA比特流可以轻松更改以处理不同的网络接口减少了进行硬件接口的前端组件。由于SoC功能较少它变得更小、更便宜FPGA也是如此因为不需要高度集成和/或强大的组件来处理相同的功能。这两个组件的总成本低于一个强大的FPGA或一个全功能的SoC。图II显示了OMRP上组件的组织方式以及两个核心组件SoC和FPGA之间的数据总线连接、不同的网络接口和内存芯片。图II 组件组织图由于FPGA在与CPU的硬件接口中处于核心地位它实现了以下IP核CPU的RAM内存控制器内存分段和/或分页直接内存访问DMA控制器二层和/或三层网络处理用于半虚拟化的Hypervisor为了充分利用模块化特性特意预留了未连接的引脚以便用户可以插入自定义子卡或网络模块。由于设计考虑到了模块化硬件将使用多个连接器这些连接器可以承载各种网络接口。默认布局特性包括2个以太网MAC控制器1个以太网PHY控制器2个Mini-PCI连接器2个USB 2.0主机连接器SPI和GPIO连接器1个UTOPIA2连接器其中一个以太网MAC控制器没有连接到任何PHY控制器因为用户可以选择插入电力线通信PLCPHY模块。这个PLC模块可以使用基于HomePlug的芯片、基于Opera的芯片或任何其他标准来设计。Mini-PCI是连接未集成在SoC中的Wi-Fi和WiMAX卡的标准接口。拥有两个Mini-PCI插槽可以例如将电路板设置为WiMAX/Wi-Fi路由器。最后用户可以将xDSL模块插入UTOPIA2高速数字总线供任何ISP与其专有RADIUS协议栈一起使用。很明显使用CPU与FPGA耦合将提高系统的整体性能因为CPU在处理任务调度时不会加载所有中断处理例程。这种设计非常接近近年来一些硬件制造商在推广网络处理器时所做的事情。可以发现两种与OMRP设计相当接近的设计。第一种是Realtek RTL8651B设计[1]它集成了Realtek RE856x网络处理器能够处理高达四层的网络功能NAT、IPsec、VPN……和硬件加密。这个解决方案是完全开源的但在Linux内核中缺乏良好的支持。此外这个网络芯片是一个ASIC部分由软件控制因此很难针对不同任务进行更改或优化。另一种具有类似功能的设计是Ikanos Fusiv DSL平台[2]它包括一个路由处理器Linux内核直接将其路由表传递给它。这种方法非常有趣因为芯片基于格式化后的路由表处理高达三层的网络功能。该平台的主要问题在于它目前仅对集成商可用并且仅在保密协议NDA下提供。两者都缺乏良好的开源支持并且是为两个特定目标设计的Realtek针对SOHO路由器Ikanos针对DSL客户端设备CPE这使得它们不适合不断发展的网络应用。4.2 软件架构如今大多数针对嵌入式系统的研究和工业资金都瞄准了虚拟化特性类似于服务器和台式机上的虚拟化。多年来虚拟化一直是大多数互联网托管公司和服务提供商实现快速、灵活和安全系统部署的关键。虚拟化旨在通过将操作系统放入一个软件监狱中并定义在需要时访问硬件的陷阱机制来将其与硬件或另一个操作系统隔离开来。这项任务由一个计算机程序负责该程序负责保护每个操作系统实例和硬件访问的安全。图 III OMRP用于网络应用的软件架构示例由于操作系统负责隔离并为程序提供访问硬件的机制它运行在一个特权空间即所谓的内核空间而程序则运行在特权较低的用户空间。这种隔离非常重要否则我们要么只能运行一个应用程序该应用程序很快就会自己变成一个内核要么程序之间必须有互斥和保护机制这将使它们变得不标准且不兼容。所有处理器架构都包含至少两种保护机制特权模式和非特权模式以实现这种内存和资源的分离。像Intel x86这样的架构允许更多的保护级别称为环最多四个。4.3 虚拟化虚拟化技术利用这种硬件和操作系统架构在用户空间程序或内核的不同实例之间提供内存边界和隔离。主要问题在于不同的技术需要对现有操作系统进行或多或少的修改才能实现虚拟化有时还伴随着巨大的性能代价。我们可以区分5种虚拟化技术。第一种是我们称之为隔离器它是一个软件片段在现有的、未经修改的操作系统和用户空间应用程序之间提供接口例如Linux VServer[3]OpenVZ[4]。第二种是用户空间内核即一个运行在用户空间的操作系统然后在其中运行用户空间程序。这是效率最低的解决方案之一但非常适合内核开发例如User-mode Linux[5]Cooperative Linux[6]。第三种是运行在现有内核之上的虚拟机它提供硬件资源和访问。这种解决方案的主要优点是运行在虚拟机中的客户操作系统看到的硬件就像它是真正的操作系统一样但代价是巨大的性能开销例如VMWare[7]Qemu[8]Parallels[9]。第四种需要使用和设计一个半虚拟化程序或Hypervisor它在硬件与domain 0内核之间提供接口。大多数情况下domain 0内核必须经过修改才能运行在Hypervisor之上。然后domain 0内核可以在此基础上启动客户操作系统但它们将与Hypervisor交互因此domain 0内核仅用于控制。这种解决方案在特定于架构的低级开发和性能之间取得了良好的平衡。最近的研究使得Hypervisor能够利用一些处理器提供的硬件虚拟化指令如Xen[10]或FreeBSD中的Jails[11]。最后一种是硬件虚拟化它或多或少使用与带有Hypervisor的半虚拟化类似的设计不同之处在于Hypervisor是一个专用组件甚至是处理器的一部分。这种解决方案广泛应用于商用级服务器如AIX或Sun服务器最近也用于采用Intel Vanderpool[12]和AMD Pacifica[13]技术的桌面系统。虚拟化正如许多工业参与者希望将其用于嵌入式目标一样应该带来一种安全的方式使得在线支付可以由运行在其自有操作系统副本上的应用程序处理而其他应用程序如消息传递、网页浏览则在另一个独立的操作系统副本中运行。这种方法的主要缺点是它将只为大众市场业务带来虚拟化特性且可能仅出于安全原因而其他特性则不可用。大多数关于嵌入式目标的研究都集中在使用半虚拟化而不是硬件虚拟化因为它允许通过软件升级来获得虚拟化能力而硬件解决方案则需要大量改动。大多数嵌入式系统特别是在网络环境中由于需要高可用性运行时很少或没有管理和软件升级。虚拟化有助于减少软件升级时的停机时间。由于Hypervisor几乎不会更改它可以轻松启动另一个操作系统实例因为无需重新初始化所有硬件也无需进行任何恢复程序等。这也非常有用因为你可能希望测试操作系统的开发版本同时保持一个生产实例运行。如Hypervisor所允许的那样可以方便地决定何时从一个生产版本切换到另一个版本停机时间最短。通过推广自由电子OpenPattern倡导在开放设计上运行自由软件使用标准和电信级操作系统如Linux或*BSD。将在OpenPattern设计上运行的软件栈如上所示。图IV显示了在OMRP之上进行虚拟化时软件层的一个示例。图 IV OMRP的软件层FPGA处理RAM访问的巨大优势在于FPGA可以为处理器提供硬件内存隔离甚至在处理器需要运行一个或另一个操作系统实例时为其执行上下文切换。从头开始构建架构和设计使得该项目能够受益于Xen Hypervisor和FreeBSD环境中最新版本Jails的开发成果同时通过硬件机制避免过多的软件工作。这也允许未经修改的内核在OpenPattern设计上运行而将Xen Hypervisor移植到ARM架构将需要大量的修改[14]。4.4 管理电路板大多数网络和系统管理员无论他们是为大型网络还是社区网络工作都面临着同样的问题需要管理的系统中异构设备的比率越来越高。如今大多数网络设备制造商都会提供基于SNMP协议[15]的定制软件解决方案。这些系统可以管理其他制造商的网络因为SNMP的设计使用了管理信息库MIB。你只需为每个设备提供一个MIB[16]和一个SNMP程序来读取和设置系统值。该解决方案已被公认为管理网络设备和服务器的实际标准可通过中央管理控制台进行集中管理。另一个IEEE正在研究的标准是CapWap[17]它主要针对管理无线接入点。尽管已经做了大量工作使其成熟但除了OpenCapWap[18]之外似乎很少有实现。将CapWap用于无线家庭网关非常有意义CapWap可以成为OMRP之上的一个优秀软件实现。5. 结论与展望OpenPattern的目标不是成为又一个开源项目而是将硬件和软件人员聚集在一个开放的、可复制、可修改、可改进的平台周围。硬件如今对于家庭网关以及无线社区如前所述在发达国家和发展中国家都是如此来说都是一个关键点使其完全开放将允许人们在使用公开的PCB设计自己的硬件、购买标准的OMRP板或从OEM购买专有硬件之间进行选择。无疑OpenMoko项目最近的成功以及每个儿童一台笔记本电脑OLPC计划的成就表明开放硬件现在是可能的。理想情况下OMRP可以被视为一个廉价、可升级且开放的路由板用于发展中国家的无线网络与面向最终用户的开放硬件如OpenMoko手机或OLPC电脑一起构建一个从电路板PCB到网络核心软件再到用户界面的完全开放的电信基础设施。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2420127.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!