Untitled Document

RS Components 為您呈遞最新的工程資訊

還不是
RS Components
的用戶?

立即註冊,可收到最新的產品、
技術和推廣資訊。

邁向社會硬體開發

作者: Andrew Back, Co-founder, SolderPad

如今,從設計到製造一條龍的商家已經越來越少見了。這種“垂直分工”已經導致電子產業價值鏈重組,致使專業公司間的合作以及跨國協調的需求日益加劇。由於專業化的強大壓力持續推動外包業務的蓬勃發展,硬體研發變得比以往任何時候都更加需要社會化。

過去,在同一個機構內兼有設計和製造部門司空見慣。但是隨著時間的推移,這種情形已悄然改變,推動該變化的原因是技術進步、競爭加劇,以及新市場迅速增長和貿易壁壘減少,結果導致設計、製造以及裝配等專業公司激增,並改變了供需格局。價值鏈的這些重大變化隨之帶來了跨企業協作的挑戰。 儘管有多時區、第一語言和工程設計工具以及工作流可供使用,但把所有項目團隊集中在一個地方或強制要求共用開發工具往往不現實,或者不划算。

一種有前景的模式


開源硬件運動(Open Source Hardware Camp) 資助的在DesignSpark內舉辦的SolderPad工作坊

開放源碼軟體的發展是分散式跨企業協作最明顯且最具說服力的案例之一。 基於簡單工具的共享慣例以及簡易流程使得低成本互動以及技術的高度社會化生產成為可能。項目規模從只需單人參與的微小型,發展到驚人的複雜程度,需涉及千萬人的團隊共同研發。開放源碼軟體項目不使用單一的程式設計語言、開發環境或管理框架,所用的語言、環境以及開發架構可隨技術要求、個人偏好或某個特別技術社區的原則而變化,但是,它們往往有同一套基本工作慣例。項目有一小部分“委託人”,承擔品質門控的職責並判定工作是否合格,他們還可以把工作委託出去,而只對諸如總體架構等事項負責。在開放源碼軟體發展中,源碼對所有人開放,可以通過開發人員的故障修複得以修正,或為添加一個新性能而得以擴展。如果創建了新檔,開發人員可簡單地把新文件發給委託人;如果現有檔被修改,可以把修改後的檔與原先的檔對比以提供一個隻包含兩者不同部分的檔,而把這個“不同的”或“補丁”檔發給委託人。由於補丁只包含變動內容,因此它要小得多,委託人可以把補丁裝入原檔的拷貝中,重新創建一個新的更新版。版本控制系統 (VCS)在開放源碼軟體項目中處於中心地位,能夠跟蹤誰對檔作了修改,可視需要恢復到修改前狀態,並且在開發過程中的某個特定時點標記所有檔的發佈(例如,使用一個版本號)。項目委託人恰恰對這些VCS資料庫有寫入許可權,因此他們能委託更新。開放源碼軟體項目的基本運作原理非常簡單,成功秘訣在於它們可避開不必要的協作工具和實踐中的複雜性,而在多開發團隊環境下,選用為完成任務而可能產生的最少麻煩和衝突的方案。這種簡單性所帶來的諸多好處正逐漸為許多企業所認識,許多企業正在努力以開放源碼項目所用的協作工具,來替代複雜且昂貴的專有協作工具。他們採用的也是與上述模式相似的靈活流程,基本差別只在於軟體發展是私下而非公開進行。儘管軟體發展實踐與硬體(如電子設備)開發實踐有明顯的區別,但從用於支援協作的輕便流程,到用於協作者之間介面的不花哨的實用技術,開放源碼軟體項目的成功有許多值得借鑒的寶貴之處。

新的挑戰


顯示平移/縮放界面的DesignSpark項目細節


顯示提交日誌的SolderPad項目詳情

當協作集中于文本內容時,如規格、物料單、HDL以及軟體源碼等,只需要最簡單的工具便可說明、注釋以及編輯檔。但是,這種情況在硬體設計中比較少見,多數情況下輸入和輸出都是圖形格式,且需要使用能與特定的專有檔案格式配合的專業工具。這些專業工具可能是機械製圖和3D設計、原理圖以及PCB設計圖等。此類所需工具可能相當昂貴,更糟糕的是,檔案格式種類繁多,通常一種給定工具頂多也只能和這些檔案格式中的某個類別匹配。電子資料交換格式 (EDIF) 試圖通過特定標準生成一種通用的、廠商中立的格式,以便存儲網表和原理圖。但是,這個嘗試進展非常有限,原因很多,包括規範寬鬆(導致不同工具的EDIF有許多不相容的特性)和市場力量(阻礙其演變成應用標準)。等免費工具提供了幫助,團隊無需任何成本就可以安裝這些工具,從而避免投資於那些僅用於某個或少數幾個項目的工具。對開放源碼類型的協作,更多的挑戰在於設計工具檔案格式,因為這些檔案格式通常是二進位的,不方便對它們進行對比以生成僅包含差異部分的檔。即便檔是文本格式,每次保存的時候,它們一般都是已經完全重新編寫了。微小的設計變更也可能產生一個內容被完全重新排列的檔,如果將它與原先的版本作簡單對比,將顯示出顯著變化,但實際情形並非如此。可能的是,為了實現開源軟體項目的靈活性、高效性和延展性,用來支援協作硬體開發的基本工具和流程必須同樣實用和輕便。

會有共性區域存在,用於開源軟體發展的工具和流程可能需要重新規劃,但也可能需要新技術和新流程。

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報導,單單他們就主辦了超過1000000個項目,並且這個數目還以每日 4500個的速度遞增。這不包括其他自己擁有Git庫的服務供應商、個人、項目和公司。

如需了解更多Git, 請參閱: http://git-scm.com/

結論

電子產業正面臨一個重大機遇,合作夥伴之間可通過在共同介面採用輕型流程和實用技術,提高協作項目的靈活性、生產率和擴展能力。在開放源碼軟體的發展歷程中,近期主要體現在新興開放源碼硬體的发展中,您也許可以找到實現這一目標的線索。SolderPad是一個包含了支援實現該目標的開放源碼技術的服務案例,但這只是起步,未來還會有其他服務。

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

瀏覽更多工程文章,請瀏覽 www.designspark.com, 是一個平台提供網上資源及設計支援給工程師,由RS提供。

回到頁首