開源硬件概況
相對于源代碼開放的開源軟件,開源硬件似乎今人費解。因為傳統的硬件體系中沒有數字化代碼,何來開源?因此,開源硬件的開源內涵主要體現在開源文化中的開放、低成本、可二次開發與可任意裁剪上。開源硬件的開放不僅是電路系統的開放,還在于對軟件工程師的開放,因此,開源硬件誕生后,吸引了眾多軟件工程師進入嵌入式應用領域。
可二次開發的開源硬件,是一個基于軟件開發的軟硬件綜合開發平臺;基于軟件的開發模式有利于軟件工程師介入嵌入式產品開發;開源硬件可任意裁剪、任意選擇的特點,為開發眾多個性化嵌入式產品提供了低成本、低門檻、靈活、便捷的手段。
“開源硬件”:描述如今基于嵌入式產品平臺、基于硬件描述語言、以軟件技術為主的智能硬件的開發模式。
當今的開源硬件有以下幾類:
一類是由用戶板進化出的可二次開發的板級開源硬件(早期以樹莓派為代表);
另一類是開源硬件描述語言(以Chisel為代表源代碼開放的開源硬件);
還有一類是開源操作系統中的開源硬件數據結構(如ARM Device Tree)。
開源硬件描述語言:
硬件描述語言HDL是一種用形式化方法描述數字電路和系統的語言。
硬件描述語言發展至今已有20多年的歷史,它將硬件設計軟件化,通過EDA工具(電子設計自動化)進行仿真驗證,最終通過微電子的ASIC手段或半定制的FPGA來實現一個真實的硬件系統。這是一種非主流電子工程師的非傳統硬件系統設計方法,成功地應用于硬件設計的各個階段,如建模、仿真、驗證與數字化模塊的綜合等。
隨著系統級FPGA以及系統芯片的出現,軟硬件協調設計和系統設計變得越來越重要。傳統意義上的硬件設計越來越傾向于系統設計和軟件設計結合。硬件描述語言為適應新的情況,迅速發展,出現了很多新的硬件描述語言。硬件描述語言從一開始就是一種用軟件工具、在軟件方法基礎上實現的電路系統設計方法。
Chisel是加州大學伯克利分校研究人員設計并發布的一種新的開源硬件設計語言。他們認為現有的硬件描述語言VHDL、Verilog HDL等最初設計的目的是用來仿真的,所以有很多不可綜合的語法,此外,VHDL、Verilog HDL缺少目前高級語言具備的一些特性,比如:對象、繼承等,于是設計了Chisel,并將其開源。
Chisel建立在Scala語言之上,可以支持高級硬件設計。用戶使用Chisel時,以編寫Scala程序的方式來設計硬件電路。采用Chisel設計的電路,經過編譯可以得到FPGA、ASIC的Verilog HDL的相關代碼。目前國內外已有人使用Chisel語言成功地實現了多種開源處理器。有多個開源項目使用Chisel作為開發語言,包括:采用RISC-V架構的開源標量處理器Rocket、開源亂序執行處理器BOOM(Berkeley Out-of-Order Machine)等。
此外,Chisel的開源特性,也有助于用戶了解硬件設計語言的內部實現機理,并在此基礎上進行特定的優化與改進。
開源設備樹
設備樹是嵌入式操作系統中的一種開源硬件數據結構,是嵌入式操作系統中板級支持包(Board Support Package,BSP)的華麗轉身,其源頭是PowerPC的Device Tree技術。目前,最著名的是ARM Linux中的扁平設備樹FDT(Flattened Device Tree)。
早先在嵌入式系統中引入操作系統時為了滿足操作系統對硬件單元的有效管理,設置了板級支持包,并添加有大量的驅動程序固件。板級支持包介于主板硬件與操作系統之間,是操作系統的一部分。程序員在使用嵌入式操作系統時,可以根據硬件結構的變化,在BSP中添加一些和系統相關的驅動程序。因此,隨著主板的升級與變更,BSP也愈加龐雜。
以ARM Linux為例,早期的ARM Linux中充斥著大量的垃圾代碼,相當多的代碼只是在描述板級細節,而這些板級細節對于內核來講,只是垃圾。后來引入了PowerPC已成熟應用的Device Tree技術,使得ARM Linux內核中的BSP華麗轉身為扁平設備樹(FDT)。
Device Tree是一種描述硬件的數據結構,基本上是一個描述電路板上CPU、總線、設備組成的樹形結構,由一系列的結點(node)和屬性(property)組成,結點本身可包含子結點,可用來描述原先kernel中的大量板級細節與硬件細節,直接透過它傳遞給Linux。Bootloader會將這棵樹傳遞給內核,然后內核可以識別這棵樹,并根據它展開出Linux內核中的眾多設備,而這些設備用到的內存、IRQ等資源,也被傳遞給了內核,內核會將這些資源綁定給展開的相應設備。使用FDT后,Linux內核可以直接通過FDT獲取硬件的細節信息。
由根結點、子結點、葉結點形成了硬件相關的樹形結構,樹結構將在節點之間創建父子關系,此父子關系是體系結構無關性的關鍵。當葉驅動程序或總線結點驅動程序本質上需要依賴于體系結構的服務時,該驅動程序會請求其父級節點提供該服務。采用此方法,不管計算機或處理器的體系結構是什么,驅動程序都可以正常運行。使用FDT后,Linux內核可以直接通過FDT獲取硬件的細節信息,這使得ARM Linux內核中的冗余編碼大大減少,同時也使得用一個內核鏡像去引導同一類ARM芯片集的硬件平臺成為可能。
2017年《單片機與嵌入式系統應用》第3期羅名駒等人的“扁平設備樹FDT在ARM Linux中的應用研究”詳細地介紹了ARM Linux中的FDT,以及如何通過FDT獲取板級硬件的細節信息。
#e#
全球最流行的幾個開源硬件平臺
隨著物聯網的推廣和普及,五年內全球會有200億臺智能設備的需求,而如今隨著創客概念的興起,開源硬件也越加的火熱,讓我們來看看現在都有哪些主流的開源硬件平臺,這些平臺又是用什么芯片呢,全志、三星、瑞芯微、飛思卡爾?下面讓我們來數一下吧!
1.樹梅派(Raspberry Pi)-ARM1176JZF-S核心
?
樹莓派
樹莓派由注冊于英國的慈善組織“Raspberry Pi 基金會”開發,Eben·Upton/埃·厄普頓為項目帶頭人。2012年3月,英國劍橋大學埃本·阿普頓(Eben Epton)正式發售世界上最小的臺式機,又稱卡片式電腦,外形只有信用卡大小,卻具有電腦的所有基本功能,這就是Raspberry Pi電腦板,中文譯名“樹莓派”!它是一款基于ARM的微型電腦主板,以SD卡為內存硬盤,卡片主板周圍有兩個USB接口和一個網口,可連接鍵盤、鼠標和網線,同時擁有視頻模擬信號的電視輸出接口和HDMI高清視頻輸出接口,以上部件全部整合在一張僅比信用卡稍大的主板上,具備所有PC的基本功能只需接通電視機和鍵盤,就能執行如電子表格、文字處理、玩游戲、播放高清視頻等諸多功能。 Raspberry Pi B款只提供電腦板,無內存、電源、鍵盤、機箱或連線。
2.Armcore-全志A20
?
Armcore
Armcore是由視美泰公司為企業級DIY定制的一款開源硬件,其標準都是按照工業級制定。為了更方便企業開發產品,Armcore將CPU、DDR、FLASH、PMU等核心模塊封裝到一個核心板之上,而且將安卓系統集成到系統上,基本上市面上的主流標準設備的驅動都應有盡有,以此來節省企業開發項目的時間周期和成本。更誘人的是這些都是開源的!不過該平臺不足的地方就是對于個人創客的支持力度很低,主要還是針對企業用戶。
3.Arduino-Atmega328
?
填寫圖片摘要(選填)
Arduino是一款便捷靈活、方便上手的開源電子原型平臺,包含硬件(各種型號的Arduino板)和軟件(Arduino IDE)。它適用于愛好者、藝術家、設計師和對于“互動”有興趣的朋友們。
4.BeagleBone-AM3359
?
填寫圖片摘要(選填)
BeagleBone是一個開源軟件和嵌入式硬件設計非營利公司。BeagleBone為開源愛好者提供了一個很好的開源硬件和軟件交流的平臺。BeagleBone可以說完全是靠開源愛好者推動的一個硬件平臺。
5.Cubieboard-全志A10
?
填寫圖片摘要(選填)
Cubieboard是由一支中國珠海的技術團隊Cubieteam開發的一個開源MiniPC,有些類似于英國人開發的樹莓派。適合個人創客,在這個平臺開發產品不需要看英文資料是最大的優勢,哈哈!我們一直堅信中國品牌總有走出國門的一天,雖然Cubieboard在國內名氣不大,但是憑借其過硬的品質已經在國外贏得了一部分市場。
6.Armpc-全志A20
?
填寫圖片摘要(選填)
Armpc是基于全志A20開發的一款供個人DIY玩家使用的開源開發平臺,其豐富的擴展性,是其最大的特點,因為它幾乎包含了Arduino和樹莓派的所有接口,所以,它支持的DIY模塊會比前兩者多出許多。Armpc和Beaglebone一樣是由開源社區推動的一款開源硬件。其不足就是只開放軟件源碼,而沒有開放硬件原理圖,不過這也絲毫不影響創客們對它的寵愛。
7.UDOO-飛思卡爾 i.MX6 ARM
?
UDOO和Raspberry Pi一樣,是一個ARM架構的Linux板,而在電路板上也裝有第二顆ARM處理器用來模擬Arduino Due。
UDOO擁有雙核與四核兩個版本的ARM cortex-A9 CPU,采用了與Arduino Due一樣的ARM SAM3X處理器。UDOO還內置OpenGL加速器、54數位I/O和模擬輸入(有和Arduino R3兼容的pinout)、Ethernet、內建WiFi、HDMI、USB、SATA及類比聲音訊號。
8、SparkCore-單片機
?
SparkCore是一個擁有配套云服務的平臺,可兼容Arduino,并內置有WiFi功能。和Yún一樣,SparkCore也可以通過WiFi連接并進行程式開發。而除了無線局域網絡,SparkCore也可以同時通過云服務隨處存取更新自己的進度。
9.DigiSpark-單片機
?
DigiSpark也是一個基于ATTiny85架構的開發板,并且體積也足夠小,支持Arduino IDE 1.0+ (OSX/Win/Linux)。
雖然DigiSpark只有6個 I/O Pins,但可利用各式各樣的擴充工具延伸它的可能性。并且DigiSpark的售價只有12美元,無論是學習開發入門還是功能拓展都是一個不錯的選擇。
10、pcDuino-全志A10
?
pcDuino可以運行完整的PC操作系統,如Ubuntu和Android的ICS,并且易于使用工具鏈,又兼容Arduino開放的生態系統,包括Arduino shield和開源項目。值得注意的是它能夠兼容使用大部分的Arduino擴充板,且所有的Arduino擴展引腳都可以通過API訪問,包括UART、ADC、PWM、GPIO、I2C。
#e#
關于Ardurino開源硬件平臺
在Maker Faire現場展臺上展示的開源硬件平臺可見一斑:基于Ardurino開發的創意產品占絕大部分,由此可見,由Ardurino構建的創客生態系統已蔚然成風,各類基于Ardurino的軟硬件開發平臺、技術資料、配件等已經非常完善。
而對其他開源硬件平臺而言,使用者偏少。無外乎有以下幾大原因:第一,Ardurino是創客的“開山鼻祖”,江湖老大的地位不可動搖;第二,Ardurino功能簡單,對初學者而言上手更快;第三,關于Ardurino的所有配套資料、使用群體最龐大,志同道合者居多。
事實上,當使用Ardurino基本的控制功能達不到創客們的更高級、更先進的要求(如通訊、互聯、互動等)時,創客們會另尋出路,會選擇采用基于ARM架構或X86架構的開源硬件平臺。舉幾個簡單的例子,僅供參考。
Ardurino:適用于入門級新手創客。開發工具有Arduino IDE,具有豐富的Arduino驅動代碼。對于入門級創客來說,大家更多的是看中Arduino龐大的網絡資源,各種疊加擴展板和傳感器板。
AVR單片機:Arduino的核心芯片用的就是Atmel的AVR 8位單片機,可以說Atmel是Arduino的鼻祖。 Atmel Xplained / Xplained Pro 開發板:作為低成本單片機,Atmel Xplained / Xplained Pro 開發板有很多型號可供大家選擇,如:8位或32位AVR單片機、ARM Cortex-M0+ 或 Cortex-M4 或 Cortex-M4F、ARM Cortex-M0
+ 加無線 SoC、ARM Cortex-A5 微處理器等。基于ARM Cortex-M0+ 架構的開發平臺,低外圍資源,但同時具備低功耗,二次開發簡易,擁有32位ARM的計算性能等優勢。Xplained Pro開發板同樣具有可擴展性,可以使用標準排針在開發板側面連接擴展板。 樹莓派RaspberryPi:相比Arduino,樹莓派提供更高性能的處理能力,可以輕松實現I/O控制、高速數據通信、視頻處理、實時運算等,創客可以在Debian Linux環境下編程,實現各種過去需要在PC環境實現的功能。樹莓派是初級創客向高階創客演進的理想平臺。目前全球用戶超過300萬,每年以200萬的速度遞增。
CooCox開發工具:用于ARM Cortex-M設備的開發,CoIDE具有強大的工程管理和調試功能,集成了一個開放和分享的組件代碼平臺,支持Arduino編程語言,Arduino驅動代碼可平滑移植到CoIDE,基本不需改動代碼,適用于有進階需求的創客。
MSP430 LaunchPad:LaunchPad是TI專門推出的一系列開發平臺,其特點是使用簡單:下載使用一體,無需額外硬件。與此同時,來自美國的工程師還向創客們演示直接在電路板上方加上“Booster Pack”外圍板(相當于擴展板),去完成不同外設的二次開發。有用過Launchpad開發辦的工程師評價到:將Arduino的程序移植到Launchpad上幾乎是一件非常簡單的事情,有時候甚至不需要任何的更改,只要對端口進行相應的調整即可。總體來說,Launchpad的性價比是非常高的,低功耗,低價格,性能也有保障,可以說是一個Arduino玩家的理想替代選擇。LaunchPad非常適合學習和低資源需求的應用。
Galileo(伽利略)開發板 & Edison平臺:英特爾嵌入式事業部產品經理王景佳指出,伽利略開發板是基于英特爾架構全新兼容Arduino(接口、開發環境均可與Arduino兼容)的可開發電路板系列的首款產品。此次,Intel展位上來自北京高校的大學生們展示著基于伽利略開發板開發的各種硬件創作成果。基于Quark處理器的伽利略開發板在本次制匯節上可謂大賺眼球。如果說Arduino是創客運動的導火索,那么Edison則是創客運動的新里程。盡管本次沒有展出Edison實物,但創客們還是很期待Intel為大家帶來更多驚喜。 與此同時,適合創客的其他高級平臺還包括: 基于Freescale i.MX6 SOLO (1GHz Cortex A9) RIoT Board, 基于Ti Sittara Cortex A8 BeagleBone Black, 基于Atmel Cortex A5 的SAMA5D3-Xplained等等,他們提供更強大的計算性能和更靈活的應用能力。
無一例外,以上談及的開源硬件均是與Ardurino兼容的智能硬件平臺。事實上,從這里我們也能看到Ardurino在創客運動中不可動搖的地位。
事實上,創客們需要的是一個開放、分享的氛圍。誰能為他們營造這種氛圍,誰才能占據創客硬件市場的領導地位,Ardurino就做到了這一點。對于其他硬件平臺而言,打造一個“類Ardurino”經營模式的生態系統是有很多問題亟待解決的,譬如,如何引起創客對新的軟硬件平臺的關注并選擇使用;如何完善軟硬件支持;創客們在實現產品創作時是否能擁有跟Ardurino類似的開放、分享平臺等等。
不過有挑戰才有創新,這是值得贊頌的,因為這才是“創客精神”。對于創客們而言,越多開源硬件平臺,他們的選擇就越多,創客的群體才會日益壯大。創客文化的精髓——“開放”、“分享”,才會傳遍大江南北!創客運動來襲,連接你我他,你準備好了嗎?
評論