1. 程式人生 > >嵌入式平臺選擇:樹莓派 or BeagleBone Black(BBB)

嵌入式平臺選擇:樹莓派 or BeagleBone Black(BBB)

bbb_vs_pi_1

已經有很多文章比較過Arduino、樹莓派和BeagleBone Black(BBB),但本文的側重點不同。我相信大家都會認為Arduino和另外兩者明顯屬於不同的陣營,因為Arduino的用途完全不一樣。我曾試圖去尋找這樣一篇文章但最終沒有找到:它全面的比較樹莓派和BBB的優缺點並分析各自的最佳適用領域。因此,我決定自己寫一篇。
本文首先簡要的介紹每個平臺,然後從以下幾方面深入的比較它們:

  • 概況
  • 拆箱
  • 初次使用
  • 介面
  • 處理器
  • 圖形處理
  • 音訊
  • 能耗
  • 可擴充套件性
  • 硬體易複製性
  • 社群

讓我們開始吧!

樹莓派簡介

bbb_vs_pi_topofrpi樹莓派的正面

Arduino微控制器領域的開拓者,它開啟了“製造者”革命;而了不起的樹莓派

則真正開始了微控制器革命。
對於公眾來說,樹莓派是第一個便宜(35美金)、易用的單片計算機。樹莓派的創造者發現年長一代的學生出於需要對計算機技術都比較精通。但年輕一代的學生在這方面則遜色很多,他們對計算機技術的瞭解離他們所需要掌握的差很遠。於是樹莓派這個既便宜但效能又比較強大的微型計算機誕生了。它使得年輕一代的學生可以很方便的接觸和深入學習計算機技術。
如果你想更多的瞭解樹莓派,那麼我推薦你去閱讀官方的“關於”和“常見問題”網頁。樹莓派誕生的背後故事還是很鼓勵人心和值得一讀的。

BBB簡介

BBB是易用微處理器領域的後來者。雖然它錯過了推向市場的最佳時間,但它在產品的效能上得到了彌補。BBB繼承了

BeagleBoard產品家族的血統:體積小、效能強大、可擴充套件性強(便於工程師和藝術家等開發自己的創新專案)。
BeagleBoard家族最初是為了給業餘愛好者提供一個相對低價的開發平臺而設計的。這個平臺包含了一個強大的新的片上系統(System on Chip, SoC)裝置。最初的BeagleBoard目前售價125美元;它的繼任者BeagleBoard-xM售價145美元。雖然它們功能強大,但是其相對“昂貴”的價格卻無法吸引人去大量的購買。BeagleBoard小組在BeagleBoard-xM之後開發了BeagleBone,後者本質上是前者的精簡版。雖然BeagleBone起點不錯,但是其89美金的售價還是無法吸引眾多業餘愛好者們。BeagleBoard小組最終在2012年下半年釋出了BeagleBone的升級版——BeagleBone Black(BBB)。從下面這幅圖中你會看出為什麼BeagleBoard小組給它起了這個名字。
bbb_vs_pi_beaglebone-black-front

BBB的正面

BBB繼承了BeagleBone的體積並增加了相當多的有用功能,因此它也變成一個各方面都更加優秀的產品。最不可思議的是它的售價——僅45美金!
如果你想更多的瞭解BeagleBone和BBB,你可以訪問其官方社群製造商的社群主頁。這是深入瞭解這些平臺複雜細節的最佳方式。這也使得你更好的評估究竟BBB適不適合你的專案。

那麼究竟是選擇樹莓派還是BBB?

到現在為止,我們對這兩個平臺都有了初步的瞭解。接下來我將客觀的從各個方面去比較這它們,你可以從這些比較中去選擇適合自己開發需求的平臺。如果你發現問題或者覺得我漏掉了某些方面,你可以在本文後面留言。記得文明留言就行。

概況
下面的表格總結了樹莓派(Rev.B)和BBB(Rev.A5B)的各項規格引數。從這裡我們可以快速瞭解各個平臺的效能。這個表格只比較了兩者發貨時的版本。後續文章將深入比較其本身及支撐其發展的生態系統。
bbb_vs_pi_table

開箱
我當時購買的樹莓派被包裝在一個普通的白色紙箱中,沒有任何標記和配件。現在的樹莓派則被包裝在一個相對漂亮的盒子中。
我的BBB則是2013年參加TI實習生設計大賽時免費拿到的。它也被包裝在一個專業的盒子中,幷包含了一個mini-USB線和一張小的介紹卡。
獲勝者:平手
bbb_vs_pi_unboxing

初次使用
初次使用樹莓派是比較費力的。它沒有提供USB線,所以你必須自己買一個。此外,樹莓派沒有預裝作業系統。你必須自己下載作業系統、燒錄到SD卡中、然後用SD卡來啟動它。
初次使用BBB則容易的多。你通過自帶的USB線將它連線到電腦上之後它就自動啟動起來了。雖然你可能需要安裝驅動程式,但與樹莓派相比,這要容易的多。
獲勝者:BBB

總花費
這項比較會有點主觀,因為每個人的實際情況不一樣。如果你已經有了SD卡、USB線、HDMI線和鍵盤,那麼樹莓派不會給你帶來額外的花費。
對於BBB來說,你不需要去購買額外的配件。但如果你想擴充套件它的功能,那你也許需要去購買MicroSD卡和micro-HDMI線。
此外,因為樹莓派有兩個USB口,你可能不需要一個USB HUB就可以順利工作。但對於BBB,你可能需要購買一個USB HUB來同時使用鍵盤和滑鼠(如果你用的不是無線鍵盤和滑鼠的話)。
對我來說,BBB要比樹莓派便宜些。但這部分需要考慮的因素很多,所有這裡由你自己來決定哪個平臺的總花費更低些。
獲勝者:平手

介面
BBB總計有92個不同的介面(46個引腳)。雖然某些介面被預留了,但是大部分的介面可以通過重新配置來使用。下面是手冊中列出的一些可能的介面:

  • 3 I2C buses
  • CAN bus
  • SPI bus
  • 4 timers
  • 5 serial ports
  • 65 GPIO pins
  • 8 PWM outputs
  • 7 analog inputs (1.8V max 12 bit A/D converters)

這些介面的存在使得BBB變得非常強大。我不知道還有哪個如此便宜的平臺在這樣的體積下還能提供如此豐富的介面。這些介面使得開發眾多的BBB應用變得非常現實。
樹莓派則只有26個引腳。這些引腳可以提供如下所示的介面:

  • 8 GPIO pins
  • 1 UART interface
  • 1 SPI bus
  • 1 I2C bus

這些不多的介面對於基於I2C、SPI或者UART的專案來說足夠用了。樹莓派的真正魅力在另一方面,我們稍後討論它。
獲勝者:BBB(毫無疑問)

處理器
處理器也許是決定平臺執行速度的唯一重要因素。BBB的處理器執行速度為1GHz;樹莓派則為700MHz。
為了方便進一步比較兩者的效能,我們假設樹莓派的處理器被超頻到和AM3359一樣的頻率。
接著比較處理器的架構。樹莓派的處理器採用的是老的ARMv6指令集,而BBB的處理器採用的是當前嵌入式系統中最流行的ARMv7指令集。
採用當今廣泛使用的指令集的處理器可以被更多的軟體支援。例如,一些作業系統已經不支援在ARMv6指令集上執行,例如,Ubuntu在2012年4月放棄了對ARMv6指令集的支援
ARMv7相對與ARMv6指令集的另一個優勢在於,使用ARMv7的處理器的實際效能更加強勁。ARMv7相對與ARMv6的優勢還有很多,比如一些顯著的改進:實現了超標量架構、包含了SIMD操作指令、改進了分支預測演算法從而極大的提高了某些效能。
具體的講,即使BBB和樹莓派的處理器工作在同一頻率,前者的執行速度也幾乎是後者的兩倍。(資料來源1:ARM A8執行速度為2000MIPS/MHz;資料來源2:ARM 11執行速度為1250MIPS/MHz)
獲勝者:BBB

圖形處理
樹莓派在圖形處理方面表現非常突出。由於集成了Videocore視訊處理器,樹莓派可以解碼1080P的視訊流、渲染OpenGL和甚至於執行Minecraft。除了令人印象深刻的圖形處理,樹莓派還提供了全尺寸的HDMI介面和用於低質量的混合視訊輸出介面。
上述這些都是BBB無法與之媲美的。BBB雖然有內嵌的圖形處理能力,但是其效能有限,從而不支援1080P。它也提供了一個micro-HDMI視訊介面用於連線顯示器或電視。雖然通過一些外掛板可以擴充套件其效能,但還是無法和樹莓派的Videocore系統相提並論。
獲勝者:樹莓派

音訊
在音訊方面其實沒有太多要比較的。BBB提供了可以用作音訊輸出的micro-HDMI介面;樹莓派則提供了micro-HDMI和3.5mm的音訊插口。所以樹莓派要略勝一籌。
需要指出的是,現在市場上已經可以買到支援3.5mm音訊輸入和輸出的BBB外掛板。但因為它不是BBB的預設配置,所以我認為在這個類別中樹莓派獲勝。
獲勝者:樹莓派

功耗
說實話,這方面能找到的可靠資料少之又少。BBB的參考手冊提供了一些資料;但是對於樹莓派來說,很多人給出的資料差別很大,所以我也不確定哪些較為真實。其中顯得最為可靠的資料表明樹莓派的功耗比BBB要低一些。
如果你有關於樹莓派或BBB更為可靠的功耗資料,請在後面的評論中留言。
獲勝者:樹莓派(基於不是很可靠的資料得出的結論)

可擴充套件性
我必須承認,當我一開始寫這篇文章的時候,我認為BBB在可擴充套件性方面必勝無疑。這時因為當時我在設計自己的BBB外掛板,而我已經知道有大量的BBB外掛板存在。但當時我對樹莓派的外掛板數量並沒有概念。需要指出的是,這裡的外掛板指的是可以增加BBB或樹莓派功能的板子,而不是指資料線等各種附件。
首先我們看看BBB的外掛板情況。在CircuitCo的官方網站上,我看到如下比較吸引我的外掛板:

  • Breadboard、prototype和breakout外掛板——這三種可以使得你很容易測試新加入BeagleBone的部件;
  • DVI外掛板——允許你把BBB連線到具有DVI介面的顯示器;
  • VGA外掛板——允許你把BBB連線到具有VGA介面的顯示器;
  • HDMI外掛板——允許你把BBB連線到具有HDMI介面的裝置。這個外掛板最初是為BeagleBone設計的;但如果你不喜歡BBB提供的Micro-HDMI介面,你也可以把HDMI外掛板用到BBB上;
  • LCD外掛板——有幾個不同的LCD外掛板可選。通過它們你可以很容易的在BeagleBone上增加LCD顯示屏;
  • 照相機外掛板——為BBB增加一個3.1MP畫素的照相機。配合LCD外掛板,你可以擁有自己的手持照相機;
  • 音訊外掛板——包含了3.5mm的音訊輸出和輸入介面;
  • 電機外掛板——包含的TI電機驅動可以驅動8個直流電機;
  • 電源外掛板——如果你需要經常移動你的開發板,那麼你可能會用到它;

上述的列表並沒有包含所有的外掛板。列出的這些只是我認為會被廣泛用到的。此外,還有其它一些更為專業的外掛板,如ROV(在OpenROV專案中用於控制水下機器人傳輸實時流媒體)和Ninja(用於幾乎使得一切變得自動化的Ninja平臺中)。
看完上述的BBB外掛板列表,你可以會問樹莓派在這方面怎麼和BBB競爭。我當時也這樣問自己。事實上,樹莓派的外掛板特別稀少,而且沒有一個好的“官方”列表來總結目前已知的樹莓派外掛板。
我找到的大多數樹莓派外掛板不是“breakout”板就是原型板。這些板子雖然有一定的用途,但並不具備一些殺手級的特點,而且也不專屬於樹莓派。
Cooking Hacks設計了一款“專屬於”樹莓派的外掛板,如下圖所示。通過這個外掛,很多Arduino的擴充套件部件可以直接用於樹莓派。
bbb_vs_pi_lrg

獲勝者:BBB(PS:如果你計劃購買樹莓派但又打算使用Arduino的外掛板,那麼你或許應該直接購買Arduino)

硬體易複製性
這個類別對於本文的大多數讀者來說可能並不重要。但對於技術使用者或那些想最大化精簡專案設計中用到的硬體的人來說卻至關重要。樹莓派和BBB都嚴重依賴於開源社群,讓我們看看究竟哪一個平臺更加開放些。
樹莓派很不幸是基於私有的處理器平臺。這意味著你無法獲得其詳細的資料,除非通過以下方法:

  • 與Broadcom簽訂一個非公開的協議
  • 向Broadcom提供一份商業計劃
  • 承諾批量購買這些處理器

雖然從網路可以搜到一些關於如何訪問BCM2835暫存器的資料,但據我所知,關於處理器引腳的詳細資料卻無法搜到。作為對比,BBB使用的處理器的詳細介紹和使用者手冊均可以從TI的相應產品頁面上找到,而且處理器的最低購買數量也沒有任何限制。
除了處理器,樹莓派基金會還和RSFarnell集團簽訂了獨家生產協議,這意味著其電路原理圖是嚴格保密的。
如果你想設計自己的樹莓派衍生品或者想知道樹莓派的各個部件是如何連線在一起的,那麼Eben提供了樹莓派Rev.B版本的電路圖。但你還是需要向Broadcom承諾批量購買處理器。
相比較而言,BBB的所有資料,包括佈局、電路圖和參考文件都可以從BBB的wiki頁面找到——那裡包含了製造BBB所需的一切資料。
獲勝者:BBB

社群
儘管我盡了最大努力,我還是無法找到每個平臺社群大小的可靠資料。但因為樹莓派截止2013年4月已售出一百萬套,所以我認為樹莓派要更加流行。媒體關於樹莓派的報道也更多些。
這些考慮對於不熟悉Linux系統或者電子設計的人來說是非常有意義的。平臺使用的人越多,意味著你可以搜的相關幫助和資訊就越多。
Google深度搜索顯示雖然BBB的變得越來越流行,但與樹莓派相關的網頁流量仍然是BBB的13倍之多。
獲勝者:樹莓派

總結

我們已經詳細的比較了樹莓派和BBB的各方面特性,下面將總結每個平臺的適用領域。

BBB更加適用的領域
連線大量感測器的專案——BBB提供的眾多介面可以很好的滿足這方面的需求;
需要高速處理能力但對體積也嚴格要求的專案——例如,那個包含了33個樹莓派節點的叢集專案如果使用BBB,那麼花費會更低、而且效能會更強;
打算商用的專案——樹莓派的封閉性使得你構建自己需要的最小系統變得很難;而基於開源的BBB,你可以很容易構建自己的最小系統;
嵌入式系統學習平臺——雖然樹莓派在嵌入式學習領域已經根深蒂固,但我認為BBB更適合用於嵌入式系統學習;
僅僅需要其“執行”的專案——BBB“即買即用”的特性(不需要自己去安裝系統)可以為你節省很多時間。

樹莓派更加適用的領域
多媒體專案——樹莓派具有強大的圖形處理能力並提供了豐富的多媒體介面;
社群驅動的專案——如果你的專案比較依賴社群的幫助,那麼你應該選擇具有活躍社群的樹莓派;如果你不需要太多的社群幫助,那麼你應該選擇BBB,因為很多基於樹莓派的專案可以很容易的移植到BBB上;
具備圖形介面的學習平臺——因為BBB在視訊方面的處理能力不及樹莓派,所以如果你打算在Linux圖形介面下學習嵌入式開發,你可以選擇樹莓派。

兩者均適用的領域
網路連線相關的專案——如果你的專案是向伺服器更新資料或將其用作伺服器,那麼兩個平臺任選其一即可;
只想玩玩嵌入式系統——兩個平臺均可。

我希望此文可以對那些在購買樹莓派還是BBB之間猶豫的人提供一些幫助。如果你還是無法確定但你又是“土豪”的話,我建議你兩者都買。每個平臺都用自己的特長,你可以用它們做不同的專案。