開發系統的大衆化的趨勢發展

在過去的幾年中,我們注意到的一種發展趨勢是,從少數技術愛好者搭建硬件設計和編寫軟件,轉向更大範圍活躍的全球“創客(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電子項目數量的爆炸式增長。市場上提供的開源硬件/軟件以及在線資源則賦予了更大的創新能力,而且這種趨勢似乎在未來很長時間內都不會改變。


分享到:


相關文章: