Untitled Document

RS Components 为您传递最新工程动态

还不是RS用户?

立即注册,您可收到最新的
产品、技术和推广资讯。

迈向社会硬件开发

作者: Andrew Back, Co-founder, SolderPad

如今,设计到制造一条龙的商家已经越来越少了。 这种“垂直分工”已经导致电子产业价值链的 重构,导致对众多专业公司间合作以及跨国协调的日益需求。 随着对专业化的强烈压力,驱使外 判持续。如今比以往任何时候,硬件的研发已经成为一种社交行为。

过去在同一个单位兼有设计和制造很常见。 随着时 间的推移这种情形已经发生了变化,推动这种变化 的原因是技术进步和竞争加剧,以及新市场的迅速 增长和贸易壁垒的减少。 这导致了专长于设计、制 造以及装配等领域的公司的激增,并改变了供给和 需求的地点。 价值链的这些重大变化随之带来了跨 企业边界协作的挑战。 尽管可能有多个时区、母 语、工程设计工具以及工作流程可供使用,但把整 个项目团队集中在一个地方或强制要求共用工具往 往不现实或者不划算。

一种有前景的模式


DesignSpark 赞助的开源硬件小组SolderPad 工作室

开放源代码软件的发展是分散式跨企业协作最明显 且最具说服力的例子之一。 基于简单工具的共享实 践和简易的流程使得低成本互动以及技术的高社会 化生产成为可能。 项目的规模从微小且只需单人个 体到惊人程度的复杂且涉及人数万千的团队。 在开 放源代码软件项目中,没有单一的编程语言、开发 环境或治理框架,所用的语言、环境以及治理框架 可能随技术要求、个人偏好或某个特别的技术界的 原理而相异。 但是,它们往往有同一套的基本工作 惯例。 项目有一小部分的“委托人”,承担质量门 的角色并决定哪些工作会被接受,还可以把工作委 托出去,而对诸如总体架构等负责。 在开放源代码软件开发中,源代码对所有人开放, 某个开发人员可能通过修正错误来修改源代码,或 为了添加一个新性能而加长源代码。 如果创建了 新文件,开发人员可以简单地把新文件发给委托 人,如果现有文件被修改,可以把修改后的文件与 原先的文件对比以提供一个只包含两者不同部分的 文件,而这个“不同的”或“补丁”文件发给委托 人。 由于补丁只包含变动内容,因此它要小得多, 委托人可以把补丁装入原先文件的拷贝中,重新创 建一个新的经更新的版本。 版本控制系统 (VCS) 在 开放源代码软件项目中处于中心地位,让它们能够 跟踪谁对文件作了修改,需要时恢复到修改前,并 且在开发过程中的某个特定时点标记所有文件的发 布,例如,使用一个版本号。 项目委托人正是对这 些 VCS 库有写的权限,因此他们能委托更新。 开 放源代码软件项目的运作基本原理非常简单,成功 的秘诀在于它们避开了不必要的协作工具和实践中 的复杂性。 在多开发团队环境下,选用为完成任务 而可能产生的麻烦和冲突最少的方案。 这种简单性 所带来的诸多好处正逐渐被许多企业所认识,许多 企业正在努力以开放源代码项目所用的协作工具, 来淘汰复杂且昂贵的专有协作工具。 采用与上述相 似灵活的流程,基本的差别是软件开发是私下而不 是公开地进行。 尽管软件开发实践与硬件开发实 践,如电子,有明显的区别, 从开放源代码软件项目的成功中可以学到许多宝贵 的东西;从用于支持协作的非常轻型的流程,到用 于协作者之间界面的不花哨的实用技术。

新的挑战


SolderPad 项目的详情显示在镜头移动/镜头缩放界面上


相关 SolderPad 项目详情请参阅 commit Log

当协作是属于文本上的,如规格、物料单、HDL 以 及软件源代码等,只需要最简单的工具以理解、注 释以及编辑文件。 但是,这种情况在硬件设计中比 较少见,多数情况下输入和输出都是图形格式,且 需要使用能 与特定的专有文件格式配合的专业工具。 这些专业 工具可能是,比如,机械制图和 3D 设计、原理图 以及 PCB 设计图。 所需的工具可能相当昂贵,更 糟糕的是,文件格式种类繁多,通常一种给定工具 顶多也只能和这些文件格式中的某个类别匹配。 电 子设计交换格式 (EDIF) 以标准为基础试图生成一种 通用的、厂商中立的格式,用于存储网表和原理 图。 但是,这个尝试进展非常有限,原因很多,包括规格 宽松(导致不同工具的 EDIF 有许多不兼容的特性)和市场 力量(阻碍其采用成为标准)。 DesignSpark PCB [1] 等免 费工具提供了帮助,团队无需任何成本就可以安装这些工 具,从而避免投资于那些仅用于某个或少数几个项目的工 具。 对开放源代码类型的协作,更多的挑战在于设计工具 文件格式,因为这些文件格式通常是二进制的,不方便对它 们进行对比以生成仅包含差异部分的文件。 即便文件是文 本格式,每次保存的时候,它们一般都是已经完全重新编写 了。 微小的 设计变更可能产生一个内容已被全部重新排列的文件,如果 将它与原先的版本作简单对比,改变会显得特别大,而实际 并非如此。 会有共性区域存在,用于开源软件开发的工具 和流程可能需要再次规划,但也可能需要新技术和流程。 存 在共同性,可更改部分用于开源软件开发的工具和流程的用 途,但可能也需要新技术和流程。

SolderPad

SolderPad [2] 是一种试图将开放源代码软件开发的某些优 点引入电子工程的在线服务. 它在电子设计中提供了一个共 享、发现以及协作的领域,目前开发的版本支持共同主办, 并且明确地面向开放源代码硬件项目。 该平台的核心是 Git VCS 技术,并且该技术用于管理项目文件和元数据,并计划 支持通过 Web API 管理资料库内容的能力。 最初发布的非 网络版可以配合简单的图形输出设计以及 JSON 格式的物料 单,因此避开了结构化理解各种 本地设计工具文件格式的复杂性。

设计以数据表的形式呈现,带有:

  • 通过镜头移动/镜头缩放界面,可以浏览原理图和 PCB 设计图;
  • 允许通过(物料组成)成分进行搜索并确定物料单;
  • 明确的许可和版权信息;
  • 文本描述;
  • 标签。

Git分散式版本控制系统

Git 是用于支持 Linux 开发的版本控制系统,它与 Linux 一 样,都是 Linus Torvalds 开发的。 Git 重视绩效并防止腐 败,这丝毫不足为奇,因为 Linux 内核包含有 1100 多万 代码行,分布在成千上万个文件中,有成千上万个研发人 员为 Linux 更新作出贡献。 Git VCS 是深受喜爱的新版本 控制系统之一,本质上是分散的。 也就是说,每个研发者 都有整个库和开发历史的一份拷贝,研发者也正是对他们 本机拥有的这份拷贝或“克隆”进行修改。 如果他们对存 储在某个地方的服务器上的项目主库拥有写入权限-也就是 说,他们是项目委托人-他们就能够把在他们本地委托出 去的任何修改定期“写入”主库。 如果他们没有这个级别 的权限,可以把修改交给有这种权限的人。 Git 为许多强 有力的开发团队提供了加强型的支持,例如,提供了一种 以极低成本创建“分支”的方法,这样,平行开发可以以 非线性的形式继续进行,例如,对某些进行充分检验。 如 果认为合适的话,支持后期把这个分支并入开发“主干” ,或者简单地删掉分支,许多分支可以存在某个时间节点 上,且分支互换是很平常的。 其他不太明显但同样重要的 性能,包括历史的密码授权,据此就不可能改变旧版本文 件,从而确保责任明确。 Git 的缺点之一是如果您对该系 统没有多少经验的话,它的学习曲线有点陡。 但跨越这个 障碍是一项非常值得的投资,多数情况下能大大提高生产 率,带来巨大收益。 一项起先是支持 Linux 内核开发的工 具如今非常受欢迎,2011 年 4 月,该项目提供商 GitHub 报道,单单他们就主办了1,000,000 多个项目,并且这个 数目还以每日 4,500 个递增。 这不包括其他自己拥有 Git 库的服务提供商、个人、项目和公司。

更多 Git 相关信息,请访问: http://git-scm.com/

结论

电子产业正面临一个重大机遇,在协作者间界面采用轻型流程和实用技 术,提高协作型项目中的灵活性、生产率和扩展能力。 也许可以在开 放源代码硬件的发展中,近期的话是在开放源代码软件项目的运作中, 找到关于如何在实践中实现这个目标的线索。 SolderPad 是一个服务的 例子,包含支持实现该目标的开放源代码技术,但这只是起步,未来还 会有别的此类服务。

[1] http://www.designspark.com/pcb
[2] http://solderpad.com

更多技术文章,请在线浏览www.designspark.com/chn, 一个由RS提供的免费在线资源及工程人员设计支援通道。

回到页首