BeagleBone开发指南

978-7-115-43475-3
作者: 【爱】Derek Molloy(莫洛伊)
译者: 鞠尔男王伟刘龙佟佳珈
编辑: 胡俊英

图书目录:

详情

本书是一本关于BeagleBone的使用手册,更是一本基于嵌入式Linux环境下的开发指南。书中由浅入深地介绍了基础方法、通信、控制以及C/C++的使用等内容,读者可以按照自己的具体情况进行不同深度的学习。此外,本书还提供网站教学视频、源代码、论坛和更多的资源以供读者学习参考,尽快地帮助读者从入门级水平成长为高手。

图书摘要

版权信息

书名:BeagleBone开发指南

ISBN:978-7-115-43475-3

本书由人民邮电出版社发行数字版。版权所有,侵权必究。

您购买的人民邮电出版社电子书仅供您个人使用,未经授权,不得以任何方式复制和传播本书内容。

我们愿意相信读者具有这样的良知和觉悟,与我们共同保护知识产权。

如果购买者有侵权行为,我们可能对该用户实施包括但不限于关闭该帐号等维权措施,并可能追究法律责任。

著    [爱] Derek Molloy

译    鞠尔男  王 伟  刘 龙  佟佳珈

责任编辑 胡俊英

人民邮电出版社出版发行  北京市丰台区成寿寺路11号

邮编 100164  电子邮件 315@ptpress.com.cn

网址 http://www.ptpress.com.cn

读者服务热线:(010)81055410

反盗版热线:(010)81055315


Derek Molloy

Exploring BeagleBone

Copyright © 2015 by John Wiley& Sons, Inc.

All right reserved. This translation published under license.

Authorized translation from the English language edition published by John Wiley & Sons, Inc.

本书中文简体字版由John Wiley & Sons公司授权人民邮电出版社出版,专有出版权属于人民邮电出版社。版权所有,侵权必究。


BeagleBone是一款仅有信用卡大小的低成本Linux计算机,它可以联网并运行高级操作系统(如Android和Ubuntu Linux)。BeagleBone包含大量I/O接口,具有广泛的开源软件支持选项,只需进行简单的设置即可利用它开发应用。

本书详细介绍了BeagleBone的软硬件及其应用开发技巧,全书共分3个部分,共计13章。本书以循序渐进的方式向读者介绍了BeagleBone的软硬件、嵌入式Linux系统开发、接口电路、BeagleBone编程、BeagleBone输入/输出接口、交叉编译和Eclipse IDE、BeagleBone总线接口、物理接口、物联网、丰富的用户界面、图像及音视频、BeagleBone实时接口等内容。

本书对于发明家、制造商、学生、创业者都具有广泛的参考价值,能够帮助读者深入探索BeagleBone,挖掘其强大的使用价值。


感谢Wiley出版社每一位员工对本项目的支持与付出。Mary E. James从始至终鼓励我承担、完成该项目,并支持我编写图书以便进行更深入的学习。Jim Minatel在本书编写过程中,给予了专业的技术支持与帮助。Adaobi Obi Tulton作为项目编辑,负责项目整体进度,把控项目按照计划执行,同时付出非常大的耐心来解决我的很多问题。我也非常感激她对我的热情、勤奋、鼓励及支持。Dassi Zeidel作为出版编辑,与我们一起努力认真做好每一件事情,最终完成这个完美的作品。Luann Rouff是排印编辑,认真地把本书翻译成美式英语,同时添加牛津逗号,使内容更易于理解。Robert Zhu(微软公司)和Jason Kridner(BeagleBoard.org基金会),都是技术编辑,他们给本书的技术内容提出了很多专业观点及建设性的反馈意见。感谢Cathy Wicks(TI公司)和Nuria Llin(TI公司)给本书提供了很多宝贵意见和技术支持。

同时,也要感谢数以千计的爱好者,他们花费很多时间去观看我的YouTube视频、博客及网站文章,并给出真挚的评论。我真心感谢他们给我的所有反馈、建议及评论,这些对本书主题的深入展开有非常大的帮助。

都柏林城市大学电子工程系是一个适合工作的好地方,很大原因是他们提倡的团队合作精神,以及他们为提供严谨、创新和容易获得的工程教育所做的承诺。感谢系主任Patrick McNally和所有同事在本书编写过程中给予我的支持、鼓励还有宽容。感谢我的兄弟David Molloy,他提供很多专业的软件开发建议及支持。感谢David教会我脚踏实地地做事。感谢Jennifer Bruton对本书的内容,特别是电路、软件方面进行的详细、专业的审查。感谢Jennifer一直以来的倾听。感谢Noel Murphy给本书硬件部分提出了细致的评论——很明显他非常看重作为技术排版编辑这个职位。也要感谢Martin Collier、Pascal Landais、Michele Pringle、Robert Sadleir、Ronan Scaife和John Whelan,他们提供了很多专业技术支持及建议,帮我解决了很多我未能解决的问题。

当然,最大的感谢还要送给我的家人。完成这本书共花了7个多月的时间,不分白天黑夜,也没有周末休息。再一次感谢我的妻子Sally和我的孩子们Daragh、Eoghan、Aidan和Sarah,是他们和我一起忍受难熬的写作日子。感谢我的父母,David和Catriona,是他们给了我终身的灵感、支持和鼓励。最后,感谢我的大家庭,感谢他们原谅我在过去的7个月中,没有参加任何一次家庭活动——现在开始我没有理由缺席了。



第1章 BeagleBone硬件

第2章 BeagleBone Black软件

第3章 嵌入式Linux系统开发

第4章 接口电路

第5章 BeagleBone编程


本章将介绍BeagleBone平台的硬件,主要介绍BeagleBone Black和不同子系统及开发板的物理输入/输出接口。另外,本章列出了一些BeagleBone板的配件,这些配件对于开发BeagleBone项目是非常有用的。在本章的结尾,你将领略这种计算平台的强大性和复杂性。同时,你也应该知道使用开发板的第1步是保护主板以防止物理损坏。

BeagleBone是紧凑的、低成本的、开源的Linux计算平台,它连接了顶层软件和底层电路,可用于构建复杂的应用开发。它利用了Linux强大和免费的优点,对于原型设计和产品设计都是理想的平台,并且结合了输入/输出引脚和总线的直接访问特性,可以使主板与电子元件,模块和USB设备进行连接。BeagleBone平台的特征如下所示。

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平台的功能。本章结尾将给出一些实例进行介绍。

图1-1 BeagleBone Black计算平台(改进的C主板,印上了引脚标签)

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对于社区的开发者和用户来说都是一个聚焦平台。

注意

 

CircuitCo在tiny.cc/ebb101提供了一个关于BeagleBone Black生产过程的短视频。它强调了设备的复杂性和它的生产制造工作。

任何希望转变工程概念为真实交互的电子产品、项目、原型设计或工艺品的人应该考虑使用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是一个明确的选择。

本书整合个人开发BeagleBone平台的经验,并结合嵌入式Linux有关的背景材料、软件开发和通用的电子学知识,建立了一个较深入的使用本平台的指导手册。然而,一本书中不可能覆盖所有内容,因此,我避免了重述那些在重要文档和本节所给出的网站中列出的信息。第1个起始帮助文档如下所示。

在BeagleBone平台上有大量的文档是可用的,但是最重要的文档如下所示。

一些重要的网站也可以用于帮助支持你学习这个平台,结合使用教程、论坛讨论、样例库、Linux发布版本,激励你的项目创新思维。下面是选出的一些重要网站。

第2章开始介绍BeagleBone平台的软件。本章的剩下部分会讨论BeagleBone PCB本身,解释可用的功能,总结SRM和提供一些外围设备的应用实例和你可能想要连接到BeagleBone的子板。

作为核心部件,BeagleBone Black使用的是德州仪器公司的Sitara AM335x Cortex A8 ARM微处理器。而BeagleBone Black是本书的核心,多种主板已经被BeagleBoard.org开发出来,包括BeagleBoard、BeagleBoard XM、BeagleBone、BeagleBone Black和Arduino Tre(BeagleBoard和Arduino组合到一个块板上)。下面将详细介绍BeagleBone,以下是不同主板(按照历史顺序)的简介。

本书以BeagleBone Black平台为核心进行介绍,主要是由于它的特征集和价格点与其他产品相比具有优势。但是,本书中的绝大部分讨论内容一般可以应用到所有的平台中。

就像刚刚提到的,目前BeagleBone有两个版本可用:早期的版本BeagleBone White(BBW)(或者叫BeagleBone)和新的版本BeagleBone Black(也称BBB)。两种主板都具有非常小的规格,恰好适合装在Altoids 铸造的锡盒内部,如图1-2(a)所示。传统的Altoids锡盒已被工程师升级改造成为电子工程项目的低成本外壳。考虑BeagleBone主板的复杂性,它适合装在锡盒的内部——这也是BeagleBone主板采用圆弧角设计的原因。在需要提供访问主板连接器的情况下,还需要打一些过孔,当然在将连接器连接到主板前还需要使用电绝缘铝锡进行绝缘。

图1-2 (a)Altoids 锡盒中的BeagleBone Black (BBB);(b)BeagleBone White

为了实现如此小的外形, BeagleBone上密布着各种元件,并且采用6层的PCB板进行内部互连。举个例子, BeagleBone平台上使用的AM335x(ZCZ)处理器是带有324针的球栅阵列封装(BGA),引脚间距仅有0.80mm。

表1-1列出了BeagleBone Black板和BBW板的主要区别。第1个显著的区别就是价格。尽管BeagleBone Black在特定方面有所改进,但其价格仅是BBW价格的一半多,并且与其他嵌入式Linux板的价格相比,如树莓派(Model B+),也非常具有竞争力。

表1-1 BBB板(BeagleBone Black)与BBW板(BeagleBone White)对比

特征 BeagleBone Black(BBB) BeagleBone White(BBW)
价格 45~55美元 大约89美元
处理器 1GHz AM335x 720MHz AM3359
内存 512MB DDR3(速度1.6GB/s、低功耗) 256MB DDR2
存储 板载2GB eMMC(4GB eMMC版本C)和micro-SD卡插槽 仅有micro-SD卡插槽
视频 板载HDMI接口 无HDMI接口,外接cape可选
调试 未封装的JTAG接口 USB转JTAG接口
串口连接 TTL串口,需分离的连接线 USB转串口连接
I/O 两者几乎相同,但由于BeagleBone Black的板载eMMC和HDMI功能,可用GPIO引脚很少

通过移除BBW的某些特定功能,可以降低BeagleBone Black的制造成本,如USB转串行连接、USB转JTAG调试仿真器和一个电源扩展接头。然而,BeagleBone Black板提升了一些功能,其中包括板载eMMC存储、HDMI视频输出、两倍的内存空间以及更快的处理器等,但仅以刚刚超过一半的价格进行销售,这些突显出其可观的经济价值。很显然,具有超高性价比的BeagleBone Black板,将成为一个非常流行的平台。eLinux.org是一个记录单板配送信息的网站,该网站显示目前每月从CircuitCo运来13000个板子。尽管如此,其仍然是供不应求,最近一些新的厂商也开始进行生产,以便满足市场的巨大需求。

图1-3和图1-4详细介绍了BeagleBone Black板的核心系统。第1组插图的编号是1到8,列出并描述了BeagleBone Black板的核心系统。BeagleBone Black板的微处理器采用德州仪器Sitara AM335x Cortex A8 ARM处理器。[2]该板的微处理器采用的是精简指令集RISl处理器,运行于1000MHz时,该处理器每秒执行20亿条指令。该处理器待机功耗为1W,满负荷功耗为2.3W。

图1-3 BeagleBone Black子系统和连接器

图1-4 BeagleBone Black(BBB)俯视图和仰视图

下一组插图的编号是9~19,列出了BeagleBone Black的各种连接器及它们的物理特性和功能。对于18号连接器及JTAG连接器,预留了20个镀锡点。为此需要购买一个连接器(例如FTR-110-03-G-D-06)并且仔细焊接到板子上。另外,还需要配置JTAG接口和相关的调试软件。BBW板提供板载的USB转JTAG支持。

如果你希望把这些图表作为参考,在本章网站www.exploringbeaglebone.com/chapter1/中,有图1-3~图1-5的高清晰的PDF文件,可以打印使用。

图1-5详细阐述了P8和P9接头中各种可用的IO端口。两个插头中共有92个引脚(2×46),但是,并不是所有的引脚都用作GPIO。其中一些连接用来进行固定的配置。

图1-5 第8和第9接头中可用功能列表

其余保留的65个引脚可以在多个功能里进行复用,图1-5中列出了其中的一部分功能。每个I/O的功能将在第6章和第8章介绍。

BeagleBone Black板配置了一个USB 2.0电缆(一端是microUSB插头,另一端是USB A插头),它是用来连接BeagleBone Black板(通过USB客户机连接器)和台式计算机的。配件中不含有micro SD卡,但BeagleBone Black板的eMMC中在出厂时已经预安装了Linux系统,从包装盒中拿出上电后,BeagleBone Black板将会直接启动eMMC中的Linux系统。BBW板默认配置了一个micro SD卡,因为它没有集成的eMMC。

接下来推荐的配件建议连同BeagleBone Black板同时购买。如果你正计划使用BeagleBone Black板进行开发工作,那么你应该具有下面的全部配件。

1.micro SD卡(烧写BeagleBone Black板)

使用micro SD卡可以帮助你烧写新的Linux镜像文件到BeagleBone Black板。假如在做实验的时候不小心损坏了Linux的文件系统,micro SD卡将可以复原你的系统。理想条件下,应该备有两个专用的SD卡,一个作为存储启动镜像文件使用,另一个作为刷新镜像文件使用。

你所购买的micro SD卡至少具有4GB的容量。你可能也需要一个micro SD卡到标准SD卡的适配器,这样才能够使micro SD卡在你的个人计算机上被读取。市面上许多micro SD卡和适配器绑定在一起销售,这比单独购买它们要便宜许多。micro SD卡的版本至少应该是Class10级别甚至更高,这样的读/写速度在写入镜像文件时,可以节省很多时间。micro SD卡的空余空间也可以用来存储额外的文件(将在第3章中讨论),所以卡的容量越大越好。

2.外部5V电源供电系统(用于刷新系统和给外部设备供电)

你可以通过USB客户端连接线连接到台式计算机/笔记本计算机的USB端口来直接给BeagleBone Black供电。如果只是启动BeagleBone Black板,这样的方式会工作得很好。然而,一旦你开始连接其他配件,如Wi-Fi适配器、USB照相机或者板载显示器,USB的供电能力很可能满足不了你的配置。一些早期的BeagleBone Black板如果没有外部5V的电源直接供电,将不能够正确地刷新到新的系统镜像。

你可以购买一个5V直流稳压开关电源,将其直接插入BeagleBone Black板的插头供电。电源的最低直流输出电流是1A;但是如果可能的话,最好还是确保供应2A的电流(2A×5V=10W)。5V供电电源的直通接头连接器(5.5mm直径)中心应该是正极。如果打算同时运行多个BeagleBone Black板,那么你将需要使用多个外部电源(电池或USB),当同时连接两个BeagleBone Black板到你的计算机时,你需要更为仔细的软件配置,否则的话可能会造成Windows下网络连接的不稳定。

3.以太网电缆(用于网络连接)

BeagleBone Black板能够使用一种特殊的网络工作模式,其被称作基于USB的互联网,它能够创建一个虚拟网络用来连接BeagleBone Black板和台式机;但是,如果你计划连接BeagleBone Black板到家庭网络,那么请不要忘记购买Cat5网络线,通过它的RJ-45接头把BeagleBone Black板连接到网络。如果你打算同时使用多个BeagleBone Black板,你可以购买一个廉价的四口交换机,把它放置在你的台式计算机附近(参见第2章)。

4.HDMI数字高清连接电缆(用于连接显示器/电视)

BeagleBone Black板有一个HDMI成帧器,它能够轻易连接到一个具有HDMI或者DVI接口的显示器或者电视。BeagleBone Black板有一个Micro-HDMI接头(HDMI-D),所以当你拿它匹配你的显示器/电视类型(通常是HDMI-A或DVI-D)时要格外注意。你可能需要的电缆是一个“HDMI-Micro-D插头到HDMI-A公插头”。一个1.8m长的电缆价格不会超过10美元。要注意你购买的HDMI-C(mini-HDMI)连接器可能不适合BeagleBone Black板。

你或者可以低价(3美元)购买一个micro-HDMI(HDMI-D)接头到标准HDMI(HDMI-A)接头适配器,或者micro-HDMI(HDMI-D)接头到DVI-D插座适配器电缆。这些能够使你使用标准尺寸的HDMI-A电缆或者能够连接到DVI-D设备,如图1-6(a)所示。

图1-6 (a)BeagleBone Black板通过micro-HDMI-to-HDMI适配器与廉价的HDMI-A-to-DVI-D电缆连接;(b)配有视频输出线的micro-HDMI-to-VGA适配器

5.3.3V TTL电平的USB转串口线缆

当你的BeagleBone Black板的Linux部署出问题时,USB转串口电缆就可以发挥作用了。笔者发现它对于发现和改正学生BeagleBone Black板的问题具有很重要的作用。它与引脚6的J1端口连接,J1端口位于BeagleBone Black板P9端口的旁边。USB转串口电缆的黑色一侧到引脚1(白点),绿色一侧靠近USB接头,如图1-7所示。BeagleBone Black板上只使用了3个引脚:引脚1用来接地(黑色),引脚4用来接收数据(橙色),引脚5用来发送数据(黄色)。

图1-7 3.3V TTL电平的USB转串口线缆及其与BeagleBone Black板的连接(连接处颜色是黑色、棕色、红色、橙色、黄色和绿色)

请确保你购买的线缆是3.3V TTL电平版本,可能还会附带一个6针的0.1″的母口接头(其不应该具有裸露的电线,我能买到纯属偶然!)。这个电缆包含一个工作芯片,需要你正确地在台式计算机上安装对应的驱动程序,来创建一个新的COM端口。当你在桌面计算机中安装驱动程序,安装成功后会建立一个新的串口,基于FTDI TTL-232R-3V3芯片的USB转串口线(约20美元)能够很好地工作,并且提供很稳定的连接。你可以去tiny.cc/ebb102网站查找它的数据手册,点击“VCP”链接为适配器下载软件驱动程序。

如果你正准备将自己的镜像文件烧写到BeagleBone Black里或者你有一块无法启动的开发板,那么我建议你在这些线中选购一种。这些线缆的用法将在第2章和第3章中进一步讨论。

接下来介绍一些你可能会需要的可选配件,它取决于你正在开发的应用,如图1-8所示。

图1-8 (a)USB Wi-Fi适配器;(b)Logitech C920摄像头;(c)Velleman USB集线器(总线供电型)

1.USB集线器(用于将多个USB设备连接到一个USB主机)

如果你正打算将两个以上的USB设备同时连接到BeagleBone Black板,那么你需要一个USB集线器。USB集线器可以是总线供电或是外部供电,外部供电的集线器比较贵;然而,如果你要给功耗大的适配器供电(特别是Wi-Fi),那么你需要一个外部供电的集线器。确保在打开你的BeagleBone Black机之前,你已将USB集线器插入到BeagleBone Black主机的连接器上。笔者曾用过很多牌子的USB集线器,它们都非常简单易用。

2.Micro-HDMI转VGA适配器(适用于VGA视频和音频)

一些低成本的micro-HDMI-to-VGA转换器可以在网上买到(例如在亚马逊或在eBay上),它们能将HDMI的输出转化为VGA的输出。除了提供VGA格式视频输出,如果你希望在你的BeagleBone Black机上播放音频,不需要电视输出、高端放大器或监视器输出的话,其中的许多连接器也提供一个单独的3.5mm的音频输出,如图1-6(b)所示。同时也有一些USB音频适配器可供使用,它们能提供一个高质量的录音重放和录音功能。这些适配器及其用法将在第12章中介绍。

3.Wi-Fi适配器(用于无线网络)

有许多种不同的Wi-Fi适配器可供选择,如图1-8(a)中所示。然而并不是所有的适配器都能在BeagleBone Black板上运行成功,Linux的发布版本和适配器的内置芯片将决定是否能够成功运行。你可以在tiny.cc/ebb103网站上发现一系列已经确认能够成功运行的适配器,然而需要注意的是,生产厂商在同一产品中会改变其内置的芯片,因此从网站列表中购买的适配器不能够保证一定成功。你必须确定所购买的适配器内置芯片后才能保证其成功运行。关于Wi-Fi的配置及其应用将在第10章详细讨论,其中将会测试一系列不同的被广泛应用的低价格适配器。

4.USB网络摄像头(用于捕捉影像和视频流)

配置一个USB网络摄像头是整合影像和视频捕捉功能到你的Beag leBone Black项目的一个低成本方案。并且利用Linux系统提供的库,比如Video 4 Linux和Open CV(开源计算机视觉),能够使你去构建具有可视功能的应用。

在第12章中,不同的网络摄像头将被测试,但是本书的重点在Logitech C920摄像头的使用,特别是视频流应用[见图1-8(b)]。它是价格相对昂贵的网络摄像头(大约70美元),但是它能直接用在BeagleBone Black板中捕获流式全高清视频。而且它有内置在摄像头中的H.264/MPG-4硬件编码单元。这大大减少了BeagleBone Black板的工作负荷,使得处理器能够处理其他任务。和Wi-Fi适配器一样,在你为了特殊目的而购买它之前,最好确认网络摄像头在BeagleBone Black板上面是能够工作的。在第12章中笔者分别测试了几种网络摄像头。

5.USB键盘和鼠标(用于普通使用)

可以将USB键盘和鼠标分别与USB集线器连接,或者使用一个2.4GHz的无线键盘和鼠标套装。非常小的无线手持组合也是可以的,比如Rii 174 Mini、Rii i10和eSynic mini,所有这些都包括一个手持的集成触摸板的键盘。一个USB的蓝牙适配器将非常适用于将众多外设连接到BeagleBone Black板,在第11章中将会使用一个非常熟悉的蓝牙键盘/触摸板。

capes是能够附在P8/P9扩展端口上的子板,它们被叫作capes(像超人的披肩)主要是因为板子的形状,它们环绕着RJ-45网络连接头。当它们互相兼容时,你可以同时最多连上4个Capes。

有些Capes使用大量的引脚,比如,在第11章中,你将会看到LCD4 cape。它使用P8端口的27~46号引脚,并且一些模拟输入引脚作为了按键和电阻触摸屏的接口,如果你使用eMMC来启动BeagleBone Black的话,则会剩下非常少的引脚用作GPIO。另外,LCD cape没有插针接口。图1-9展示了当LCD cape连接在BeagleBone Black上时的两个视图,其上有标准的BeagleBone Black Debian Linux发布版本运行。

图1-9 LCD4 cape(顶视图和俯视图)

BeagleBone当前能够适用的capes有50多种,在www.beagleboard.org/cape网址有完整的列表。这里有一些capes的样例可以选择在你的项目中应用(如图1-10所示)。

当capes彼此连接时,你必须仔细考虑其兼容性。有一个描述较多常见capes兼容性的表格在tiny.cc/ebb104网站上,这个列表仅仅是很小的一部分。还有很多其他的capes可以使用,并且随着时间的流逝会有更多的capes被开发出来。

图1-10 (a)The Proto cape;(b)Valent F(x) LOGi-Bone;(c)Camera cape;(d)Adafruit BBB case

BeagleBone Black板和BeagleBone White板是复杂且精细的设备,如果你没有小心照顾很容易被弄坏。如果你打算像操作Arduino那样从BeagleBone平台上插拔电路板的话,当连接设计的电路到BeagleBone Black上时,你必须非常小心。不像Arduino Uno系统,BeagleBone Black板上的微处理器不能被替换,如果你损坏了微处理器,你就要购买一个新的BeagleBone Black板了。

下面罗列的几种情况绝对禁止。

以下两步你应该一直遵守。

如果由于你的失误导致BeagleBone Black板死机了,恐怕在完成www.beagleboard.org/support网站列出的检查后,你还需要买一个新板。如果不是你的失误,查看BeagleBone Black的SRM手册后,那么去www.beagleboard.org/support网站请求一个退货授权号码来返修这个有缺陷的电路板。

在完成本章后,你应该具备以下能力。

其他重要的帮助文档都在本章前面列出。如果你对理解BeagleBone平台还有疑问,而文档中又找不到相关的解答,可以使用以下两种资源。

请记住在BeagleBoard Google Group和IRC频道中那些愿意贡献他们自己的时间去帮助提问者的社区成员。

[1]  详细内容参见www.broadcom.com/products/BCM2835。

[2]  早期的BeagleBone Black板使用XAM3359AZCZ100处理器,近期生产的电路板(Rev B)使用AM3358BZCZ100处理器。但是BeagleBone Black平台的特征都是相同的,所以都使用AM335x进行标记。


相关图书

电子硬件工程师入职图解手册  硬件知识篇
电子硬件工程师入职图解手册 硬件知识篇
RISC-V体系结构编程与实践
RISC-V体系结构编程与实践
Altium Designer 22电路设计与仿真实战从入门到精通
Altium Designer 22电路设计与仿真实战从入门到精通
龙芯嵌入式系统原理与应用开发
龙芯嵌入式系统原理与应用开发
龙芯嵌入式系统软硬件平台设计
龙芯嵌入式系统软硬件平台设计
GPU编程实战(基于Python和CUDA)
GPU编程实战(基于Python和CUDA)

相关文章

相关课程