天天看點

《BeagleBone開發指南》——第1部分 BeagleBone 基礎知識 第1章 BeagleBone硬體 1.1 平台介紹

本節書摘來自異步社群《beaglebone開發指南》一書中的第1章,第1.1節,作者【愛】derek molloy(莫洛伊), 鞠爾男 , 王偉 , 劉龍 , 佟佳珈 譯,更多章節内容可以通路雲栖社群“異步社群”公衆号檢視。

第1章 beaglebone硬體

第2章 beaglebone black軟體

第3章 嵌入式linux系統開發

第4章 接口電路

第5章 beaglebone程式設計

本章将介紹beaglebone平台的硬體,主要介紹beaglebone black和不同子系統及開發闆的實體輸入/輸出接口。另外,本章列出了一些beaglebone闆的配件,這些配件對于開發beaglebone項目是非常有用的。在本章的結尾,你将領略這種計算平台的強大性和複雜性。同時,你也應該知道使用開發闆的第1步是保護主機闆以防止實體損壞。

beaglebone是緊湊的、低成本的、開源的linux計算平台,它連接配接了頂層軟體和底層電路,可用于建構複雜的應用開發。它利用了linux強大和免費的優點,對于原型設計和産品設計都是理想的平台,并且結合了輸入/輸出引腳和總線的直接通路特性,可以使主機闆與電子元件,子產品和usb裝置進行連接配接。beaglebone平台的特征如下所示。

功能強大,它包含了一個執行速度為20億條指令/秒的處理器。

低成本,可用的成本僅僅在45~55美元。

提供了許多電子裝置的标準接口。

低功耗,運作時功耗在1w(空閑時)與2.3w(峰值)之間。

可通過使用子闆和usb裝置進行擴充。

有大量的創新者和愛好者論壇支援。

它是一種開源硬體,能夠支援開源軟體工具和應用。

beaglebone可運作linux作業系統,這意味着你能夠使用很多開源軟體庫并直接應用它進行開發。開源軟體驅動程式的可用性也使你能直接使用這些裝置,例如項目中用到的usb攝影機、鍵盤和wi-fi擴充卡,可以不必再另行開發驅動源碼庫。是以,你可以獲得由開源社群所建立的這些綜合源碼庫;另外,重要的是要記住這些源碼是沒有任何保證的。如果出現問題,你必須依靠社群的熱心網友來幫忙解決。當然,你也可以自己修複這些問題并給公衆提供可行的解決方案。

beaglebone平台是由印制電路闆(printed circuit board,pcb)上內建的高性能微處理器和擴充軟體組成的系統。實體pcb不是一個完整的産品,而是一種原型參考設計,你可以根據這個原型設計建構一個完整的産品。beaglebone是一種開源硬體平台,這意味着你能夠下載下傳和使用beaglebone硬體原理圖并且在其上直接設計自己的産品。事實上,盡管beaglebone平台非常引人注目,但它并沒有完全顯示出德州儀器公司sitara am335x微處理器的所有特征和接口。

beaglebone另一個引人注目的特征是它的功能可通過子闆進行擴充,這些子闆稱為capes,它們通過p8和p9插頭(圖1-1所示的兩個黑色2×23連接配接器)與beaglebone相連。你可以設計自己的子闆并且使用這些插頭安全地将子闆插到beaglebone上。另外,也可以購買許多可用的子闆來幫助你擴充自己的beaglebone平台的功能。本章結尾将給出一些執行個體進行介紹。

《BeagleBone開發指南》——第1部分 BeagleBone 基礎知識 第1章 BeagleBone硬體 1.1 平台介紹

beaglebone的印制電路闆(pcb)是由gerald coley設計的,他是beagleboard.org基金會的一個共同創始人。主機闆和幾個它的子闆是由circuitco(www.circuitco.com)公司生産的。beaglebone black的pcb布局也是由circuitco設計的。最近,element14(www.element14.com)已經開始生産一種beaglebone black與beagleboard.org的聯合版本。是以,當你購買一個beaglebone開發闆時,你不能直接從beagleboard.org購買,beagleboard.org對于社群的開發者和使用者來說都是一個聚焦平台。

注意

任何希望轉變工程概念為真實互動的電子産品、項目、原型設計或工藝品的人應該考慮使用beaglebone。也就是說,內建頂層軟體和底層電路并不是一件容易的工作。然而,實施中的困難主要依賴于項目要求的複雜性級别。

beaglebone社群正努力保證beaglebone平台可以走進任何對beaglebone感興趣的人們的項目中,無論是學生、制造者、藝術家或者愛好者都可以使用。beaglebone的開發工具和軟體開發環境,例如jason kridner 的bonescript腳本庫(kridner是beagleboard.org的一位創始人和本書的技術編輯)和cloud9內建開發環境(integrated devetopment environment,ide),能夠使使用者在web浏覽器中直接編寫和建立代碼,web浏覽器還具有控制電子硬體的能力。bonescript腳本将在第2章中介紹。像blockly(code.google.com/p/blockly)和snap(snap.berkeley.edu)的開發已經被潛在地內建到bonescript腳本中,以進一步提高新使用者的可通路性。

對于進階使用者,具有一定電子或計算機知識的使用者,beaglebone平台能夠額外開發和定制以滿足特殊的項目需求。不過,這種定制不是件簡單的事:你可能是一個電子專家,但是頂層的軟體程式設計和linux作業系統可能會使你感到困難。或者,你可能是一個程式設計高手,但是你從沒接通過led(發光二極管)!本書的目的在于迎合各類使用者的需求,不管你先前的經驗水準如何,本書都能夠提供給每種讀者足夠的linux、電子和軟體方面的知識内容,以確定你可以開發出自己的産品。

beaglebone所內建的頂層軟體和底層電子硬體可被完美地用于開發任何類型的項目。無論你是想要建構一個自動家庭管理系統、機器人、智能顯示、傳感器網絡、自動售貨機或者是網際網路連接配接工作,beaglebone都具有這樣的處理能力來完成你想要設計的任何嵌入式裝置。

beaglebone比其他傳統的嵌入式系統(例如arduino、pic 和avr微控制器)展現出的主要優點是它采用了linux作業系統。例如,如果你想使用beaglebone建立一個家庭自動化系統并且決定想使某些資訊在網際網路上可用,你可以簡單地安裝apache 網絡伺服器。為了擷取或者共享資訊,你可以使用伺服器腳本或者自己喜歡的程式設計語言來與家庭中的自動化系統進行互動。另外,你的項目應該允許安全的遠端shell通路。在那種情況下,你可以通過使用簡單的linux指令sudo apt-get install sshd(這些指令在第2章給出)來安裝一個安全的shell(ssh)伺服器。這可能會節省你開發工作的時間。另外,你可以很欣慰地知道同樣的軟體正安全地運作在全世界的上百萬台機器上。

linux對許多usb外部裝置和擴充卡提供了裝置驅動支援。可以使你的錄影機、wi-fi擴充卡和其他低成本使用者外設直接連接配接到平台上,而不需要複雜或者昂貴的軟體驅動的開發。

linux作業系統不适合用于實時或者預見性處理方面的設計。它的核心不是基于優先權的,也就是說一旦處理器開始執行核心代碼,則無法中斷。如果是這樣将會存在一些問題,例如,你希望每百萬分之一秒精确地對傳感器采樣一次。如果在精确的時間内進行采樣并且核心又在忙于一個不同的任務,那麼核心将不能被中斷。是以,在預設狀态下,對于實時系統的應用,beaglebone不是一個理想的平台。linux的實時版本是可用的,但是目前主要是針對非常有linux開發經驗的開發者的。然而,beaglebone對實時任務的處理有一個闆載解決方案,在某種程度上可以解決這個問題。beaglebone的am335x有兩個闆載微控制器,稱為可程式設計實時單元(programmable real-time units,pru),它可以通過程式設計實作對實時接口的應用。這是一個進階應用,将在第13章介紹。

beaglebone有一種低成本的可用的專用解決方案,對于實時采樣和控制任務(例如,ti stellaris arm 平台)可能更适用。對于分布式控制系統,采用beaglebone作為中央處理器,你可以通過電子總線(例如i2c、uart、can總線和以太網)連接配接實時微控制器到beaglebone上。這個概念将在第9章和第10章介紹。

第2種應用類型是beaglebone平台很難用于播放高清視訊。軟體解碼處理的額外開銷和進行視訊流的編碼的開銷是非常巨大的,并且對高清視訊的解決處理能力超出了beaglebone的能力範圍。樹莓派(www.raspberrypi.org)主機闆具有這種能力,因為它的broadcom bcm2835處理器[1]主要設計用于多媒體應用,并且它具有h.264/mpg-4和mpg-2/vc-1解碼器和編碼器(經由附加許可)的硬體裝置。對于運作像xbmc家庭媒體中心(www.xbmc.org)這樣的應用,你最好購買樹莓派(模型b+),但是對于建立與電子裝置互動的進階應用,beaglebone是一個明确的選擇。

繼續閱讀