BeagleBone开发指南(txt+pdf+epub+mobi电子书下载)


发布时间:2020-06-05 01:28:35

点击下载

作者:(爱)Derek Molloy 莫洛伊

出版社:人民邮电出版社

格式: AZW3, DOCX, EPUB, MOBI, PDF, TXT

BeagleBone开发指南

BeagleBone开发指南试读:

内容提要

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基础知识第1章 BeagleBone硬件第2章 BeagleBone Black软件第3章 嵌入式Linux系统开发第4章 接口电路第5章 BeagleBone编程第1章BeagleBone硬件

本章将介绍BeagleBone平台的硬件,主要介绍BeagleBone Black和不同子系统及开发板的物理输入/输出接口。另外,本章列出了一些BeagleBone板的配件,这些配件对于开发BeagleBone项目是非常有用的。在本章的结尾,你将领略这种计算平台的强大性和复杂性。同时,你也应该知道使用开发板的第1步是保护主板以防止物理损坏。1.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平台的功能。本章结尾将给出一些实例进行介绍。图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生产过程的短视频。它强调了设备的复杂性和它的生产制造工作。1.1.1 谁该使用BeagleBone

任何希望转变工程概念为真实交互的电子产品、项目、原型设计或工艺品的人应该考虑使用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、电子和软件方面的知识内容,以确保你可以开发出自己的产品。1.1.2 何时使用BeagleBone

BeagleBone所集成的顶层软件和底层电子硬件可被完美地用于开发任何类型的项目。无论你是想要构建一个自动家庭管理系统、机器人、智能显示、传感器网络、自动售货机或者是互联网连接工作,BeagleBone都具有这样的处理能力来完成你想要设计的任何嵌入式设备。

BeagleBone比其他传统的嵌入式系统(例如Arduino、PIC 和AVR微控制器)体现出的主要优点是它采用了Linux操作系统。例如,如果你想使用BeagleBone建立一个家庭自动化系统并且决定想使某些信息在互联网上可用,你可以简单地安装Apache 网络服务器。为了获取或者共享信息,你可以使用服务器脚本或者自己喜欢的编程语言来与家庭中的自动化系统进行交互。另外,你的项目应该允许安全的远程Shell访问。在那种情况下,你可以通过使用简单的Linux命令sudo apt-get install sshd(这些命令在第2章给出)来安装一个安全的Shell(SSH)服务器。这可能会节省你开发工作的时间。另外,你可以很欣慰地知道同样的软件正安全地运行在全世界的上百万台机器上。

Linux对许多USB外部设备和适配器提供了设备驱动支持。可以使你的摄像机、Wi-Fi适配器和其他低成本用户外设直接连接到平台上,而不需要复杂或者昂贵的软件驱动的开发。1.1.3 何时你不该使用BeagleBone

Linux操作系统不适合用于实时或者预见性处理方面的设计。它的内核不是基于优先权的,也就是说一旦处理器开始执行内核代码,则无法中断。如果是这样将会存在一些问题,例如,你希望每百万分之一秒精确地对传感器采样一次。如果在精确的时间内进行采样并且内核又在忙于一个不同的任务,那么内核将不能被中断。因此,在默认状态下,对于实时系统的应用,BeagleBone不是一个理想的平台。Linux的实时版本是可用的,但是目前主要是针对非常有Linux开发经验的开发者的。然而,BeagleBone对实时任务的处理有一个板载解决方案,在某种程度上可以解决这个问题。BeagleBone的AM335x有两个板载微控制器,称为可编程实时单元(Programmable Real-time Units,PRU),它可以通过编程实现对实时接口的应用。这是一个高级应用,将在第13章介绍。

BeagleBone有一种低成本的可用的专用解决方案,对于实时采样和控制任务(例如,TI Stellaris ARM 平台)可能更适用。对于分布式控制系统,采用BeagleBone作为中央处理器,你可以通过电子2总线(例如IC、UART、CAN总线和以太网)连接实时微控制器到BeagleBone上。这个概念将在第9章和第10章介绍。

第2种应用类型是BeagleBone平台很难用于播放高清视频。软件解码处理的额外开销和进行视频流的编码的开销是非常巨大的,并且对高清视频的解决处理能力超出了BeagleBone的能力范围。树莓派(www.raspberrypi.org)主板具有这种能力,因为它的Broadcom BCM2835处理器主要设计用于多媒体应用,并且它具有H.264/MPG-4和MPG-2/VC-1解码器和编码器(经由附加许可)的硬件装置。对于运行像XBMC家庭媒体中心(www.xbmc.org)这样的应用,你最好购买树莓派(模型B+),但是对于创建与电子设备交互的高级应用,BeagleBone是一个明确的选择。1.2 BeagleBone文档

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

软件指南、论坛链接和下载服务以支持你的开发。一个卓越的“入门指南”和站点为www.beagleboard.org的网络博客可供使

用。

在BeagleBone平台上有大量的文档是可用的,但是最重要的文档如下所示。● BeagleBone Black系统参考手册(System Reference Manual,

SRM):这是描述BeagleBone Black硬件的核心文档。由Gerald

Coley授权,它是一份综合性文档,某些部分很复杂,但是重要

的是可以将其作为本书的副本。它是一份生动的文档,大概125

页,它随着每个BeagleBone新版本的发布而发布。可以从

BeagleBone“入门指南”网页上免费获得。● Sitara AM335x Cortex-A8技术参考手册(Technical Reference

Manual,TRM):BeagleBone的核心部件是德州仪器公司的微处

理器。这份文档包含任何你可能想要知道的内部工作原理资料。

AM335x是一个复杂的设备,这也反映在TRM的长度上,足有

4727页!如果你需要理解任何关于微处理器内部的工作原理或

者BeagleBone的设备配置,相关答案可能会在这份文档中找

到。在整本书中,我参考TRM中的表格信息,因此希望你将会

熟悉这其中的语言。这份文档可以从www.ti.com/product/am3358

免费获得。

一些重要的网站也可以用于帮助支持你学习这个平台,结合使用教程、论坛讨论、样例库、Linux发布版本,激励你的项目创新思维。下面是选出的一些重要网站。● 本书站点:www.exploringbeaglebone.com。● 我的个人网站:www.derekmolloy.ie。● eLinux.org网站:www.elinux.org。● eewiki:www. eewiki.net。● Hipstercircuits.com:www.hipstercircuits.com。● OZ9AEC:www.oz9aec.net。

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

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

型开发的具有高清视频支持功能的开发板。它具有720MHz

ARM A8处理器,但没有板载以太网。●( 2010)BeagleBoard xM(149美元):除了具有1GHz

ARM(AM37x)处理器、512MB内存、4个USB接口和以太网支

持外,其他与BeagleBoard类似。尽管新的BeagleBone主板成本

较低,但BeagleBoard xM的C64+TMDSP核对数字信号处理(digital signal processing,DSP)应用是非常流行的。●( 2011)BeagleBone(89美元):比BeagleBoard引脚封装更

小。它具有720MHz处理器和256MB内存,支持以太网和低电位/

输出(例如,模拟到数字的转化),但没有板载视频支持。●( 2013)BeagleBone Black(45~55美元):这是增强型的

BeagleBone,具有1GHz处理器,512MB的DDR3内存,支持以

太网和eMMC存储以及HDMI(高清晰度多媒体接口)。

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

就像刚刚提到的,目前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 AM335x720MHz 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.2 BeagleBone Black硬件

图1-3和图1-4详细介绍了BeagleBone Black板的核心系统。第1组插图的编号是1到8,列出并描述了BeagleBone Black板的核心系统。BeagleBone Black板的微处理器采用德州仪器Sitara AM335x Cortex A8 ARM处理器。该板的微处理器采用的是精简指令集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接头中可用功能列表● 8个引脚连接到“数字”地。● 9个引脚用于模拟信号输入(7个模拟信号输入、一个地和一个

1.8V的参考电压输入)。● 6个引脚分配给电压供电:3.3V(最大电流是250mA),5V系统

供电(最大电流是250mA)和5V的VDD(如果电源插座能够提

供的话,最大电流可以达到1A,也可以通过VDD_5V引脚直接给

电路板供电)。● 2个引脚分配给一个I²C总线。● 2个引脚分配给电源和重置按钮。

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

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。1.4.1 重点推荐使用的配件

接下来推荐的配件建议连同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.4.2 可选配件

接下来介绍一些你可能会需要的可选配件,它取决于你正在开发的应用,如图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章中将会使用一个非常熟悉的蓝牙键盘/触摸板。1.5 capes

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所示)。● LCD capes有不同的尺寸可使用:7″(800×480),4″(480×272)

和3″(320×240),图1-9中拍摄的是4″版本。它们配备电阻触摸

屏,意味着你可以使用触摸笔(或者手指甲)与屏幕进行交互。

这不同于现在的电容触摸屏的手机或者平板。● The Adafruit Proto是一个低成本(约10美元)的cape原型板,你

可以使用它为试验电路板搭建一个更加稳定的平台。还有许多其

他的试验电路板和原型capes也可以使用。● The Replicape(约179美元)是一个给人印象深刻的开源3D打印

机cape,它有5个步进电机驱动,支持等步细分。在www.thing-

printer.com网站上可以获得更多信息。● Valent F(x) LOGi-Bone FPGA开发板cape(约89美元),使用了

一片Spartan 6 LX9芯片,为BeagleBone Black上添加FPGA功

能。这些FPGA能够提供可编程逻辑块,允许非常快的I/O操作,

但是这样也增加了复杂性。这个cape也提供了一个Arduino的端

口,使它能够直接连接到已经开发的Arduino平台。在第13章的

开始部分将会简要讨论这个cape。● 有一些相机capes,比如在www.beagleboardtoys.com上提到的

3.1MP Camera cape,提供了一个可供选择的USB网络摄像头;

但是,它不能和eMMC同时使用,所以BeagleBone Black板必须

从micro-SD卡启动。

当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 case1.6 怎样做会损坏你的BeagleBone系统

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

下面罗列的几种情况绝对禁止。● 不要通过拔掉电源插座或USB电源来关闭BeagleBone Black。你

应该用软方式(如按一下电源按钮)或按住电源按钮约8秒来正

确地关闭电路板。这可以使电源管理芯片去正确地关闭电路板。

如果你不得不断开电源线,那么同时按住重启按钮来减少系统电

量的消耗。● 不要把通电的BeagleBone Black板放到金属表面上(如铝壳计算

机)或有截断电线、电阻的桌面上。如果你短接了P8/P9端口将

会很容易破坏你的电路板。你可以从供应商处买一套Adafruit

cape,如图1-10(d)所示。或者你可以给BeagleBone Black板

套上橡胶垫。● 除了进出P8/P9端口的电流非常低之外,也不要把源/漏端连接成

回路。这些端口输出的最大电流是4~6mA,而输入的最大值是

8mA,电源和地可以流出和流入更大的电流。Arduino电路板允

许的输入输出电流可达40mA。关于这个主题将在第4章和第6章

涉及。● GPIO最大可承受电压为3.3V(ADC转换器最大承受1.8V)。不

要连接到5V电源供电的电路中,否则将会烧坏电路板。关于这

个主题将在第4章、第6章和第8章中讨论。● 当BeagleBone Black板没有上电时不要连接电路给P8/P9端口供

电,必须确保所有自供电的接口电路都被限制在3.3V。关于这个

主题将在第6章涉及。

以下两步你应该一直遵守。● 注意检查你正在使用的引脚号。每一个端子都有46个引脚,非

常容易插到21号端口连接器上而不是19号上。对于在端口中间

的连接位置,我总是数两次:从左向上和从右向下。此外,在

tiny.cc/ebb105网址上还有一套非常有用的P8/P9标签,你可以按

照100%的比例打印出来,粘到BeagleBone Black板上,如图1-1

所示。● 在连接你自己设计的复杂电路到BeagleBone Black板时要仔细阅

读系统参考手册。

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

在完成本章后,你应该具备以下能力。● 了解BeagleBone的功能和其对不同工程类型的适用性。● 获得能够帮助你使用BeagleBone Black平台的重要文档。● 了解BeagleBone Black主要的硬件系统构成和其子系统。● 确定能够提高你的BeagleBone Black板性能的重要配件。● 作为一个计算机系统,对BeagleBone Black板的功耗和复杂性有

全面的评估。● 清楚保护你的电路板免于物理损坏的首要步骤。1.8 支持

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

beagleboard获得。在提出新问题之前,在提出新问题之前,请

先查阅FAQ(常见问题解答),并搜索是否有相关的解答。● 你可以使用免费IRC客户端,例如Linux下的X-Chat,Windows下

的HexChat,或Mac OS X下的Colloquy。加入

www.beagleboard.org/chat下的一个在线聊天室,或直接到

Beagle IRC频道提问(通过在irc.freenode.net中加入#beagle)。

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

本章将介绍BeagleBone所使用的Linux 操作系统和软件工具。本章重点是能使用户连接使用 BeagleBone 并对它进行控制。本章的结尾部分介绍了在Linux 终端窗口中使用的shell命令,按照指南一步步操作,你将能够使系统的LED灯“闪烁”。本章也将介绍BeagleBone 的函数库,称为BoneScript,它可以同Node.js 和 Cloud9 集成开发环境一起使用,编写代码也可以使系统的LED灯闪烁。

本章所需设备。● BeagleBone Black开发板。● 提供USB线(A型USB公头插头对迷你A型USB公头)。● Micro-SD卡(4GB或更大;传输速度最低要达到10MB/s以上)(可选)。● 网络设施和布线(可选)。

想进一步了解这一章的详细内容,欢迎登录www.exploringbeaglebone.com/chapter2/。2.1 BeagleBone运行Linux

Linux发行版是一个集合了软件程序和工具的压缩包,它是公开可用的Linux版本。有许多不同的Linux发行版本,这些版本通常针对不同的应用。例如,高端服务器的用户可以安装红帽企业版、Debian或OpenSUSE;桌面用户可以安装Ubuntu、Debian、Fedora或Linux Mint。Linux的发行版本不计其数,但所有发行版本的核心是拥有共同的Linux内核,而这个内核是由Linus Torvalds在1991年构思并创造的。

在确定一个Linux发行版是否适用于你的嵌入式系统平台之前,你需要考虑以下几点。● 发行版本稳定并受到良好的支持。● 有一个好的软件包管理器。● 发布版本精益并适于低存储空间分配。● 有良好的社区对你特有的设计提供支持。● 可以对你需要连接的任何外设提供设备驱动程序的支持。Linux发行版本

有许多不同的Linux发行版本用于嵌入式系统平台,包括用于实时控制的昂贵的专用版本。它们的核心都是采用Linux内核,但每个发行版本包含了不同的工具和配置,导致了不同的用户体验。在社区中,BeagleBone Black板上用到的主要开源发行版包括 Debian、Ångström、Ubuntu和Arch Linux。

Debian(Debbie and Ian的缩写)是一个着重于发展开源代码的具有社区驱动性的Linux发行版,Debian的发展过程没有涉及任何商业组织。事实上,有正式的社会合约(tiny.cc/ebb201)声明,Debian将保持完全免费(作为自由软件)。在本书的许多实践操作中将用到Debian发行版,推荐BeagleBone Black选择使用Debian发行版,因为它通常与新的BeagleBone Black板一起发行。此外,本书都用Debian作为Linux桌面计算机的操作系统,因为它为整个嵌入式Debian(Emdebian)项目(查看www.debian.org)交叉平台的开发提供了出色的支持。

Ångström是一个广泛应用于嵌入式系统的稳定且良好的Linux发行版。Ångström背后的开发团队在对嵌入式设备(如机顶盒)、移动设备和网络设备定制Linux发行版方面是非常有经验的。不可思议的是,Ångström可以被裁剪用在只有兆字节闪存的存储设备上。Ångström广泛地使用BusyBox,它是一种多格式二进制(能完成很多任务的单一可执行程序)用于创建一种在Linux系统上可用的命令行应用程序的压缩版本。我的很多YouTube视频都使用Ångström,因为在相当一段时间内,Ångström都是BeagleBone的主要发行版。

Ubuntu与Debian是紧密相关的。实际上,在Ubuntu官网(www.ubuntu.com)上的描述如下:“Debian是开发Ubuntu的基石”。Ubuntu是最受欢迎的桌面Linux发行版之一,主要是因为Ubuntu专注于使Linux的新用户得到更友好的用户体验。它易于安装且具有良好的桌面驱动程序支持,并对于BeagleBone Black有可用的二进制发行版。

Arch Linux是一个轻量级并且灵活的Linux发行版,其目的在于“保持它的简单性”,尤其针对有能力的Linux用户,可通过在系统配置方面给予他们完全的控制和责任。对BeagleBone Black有预先建立的Arch Linux发行版可供使用。然而,相对于其他发行版,当前对于使用BeagleBone Black平台(详见www.archlinux.org)的新的Linux用户支持较少。

注意当你使用BeagleBone Black进行实践练习时,不用过于担心你可能会破坏Linux的文件系统。最坏的情况是,你可能不得不为BeagleBone Black写一个新的Linux映像,将映像烧写入BeagleBone Black开发板要用20~45分钟。如何为BeagleBone Black写一个新的内核映像,你可以在下面的网址上找到,参见www.exploringbeaglebone.com/chapter2/。2.2 BeagleBone Black通信

当你准备测试BeagleBone Black时,你应该做的第1件事是使用所提供的USB线将它连接到你的桌面计算机上。当你接通电源后,BeagleBone Black将会以USB客户端模式连接到计算机。一旦发现已连接上,你的文件管理器(如Windows资源管理器)将显示BeagleBone Black的FAT分区内容,如图2-1所示。BeagleBoard.org团队已经装配了一个真正优秀的HTML指南用来启动BeagleBone Black。双击START.htm文件,就可以在网络浏览器中显示操作指南,如图2-1所示。图2-1 根据START.htm指南创建你的BeagleBone Black

警告尤其要注意的是,你不能删除出现在图2-1所示文件夹中的文件,如MLO、u-boot.img和uEnv.txt,这些文件对你的BeagleBone Black能否正确启动是至关重要的。今后为BeagleBone Black发布的Linux版本,有可能将此类文件移动到Linux分区的/boot目录上。2.2.1 安装驱动程序

按照图2-1所示,操作步骤主要包括浏览驱动程序文件夹和安装正确的版本。在Windows系统下,你可能会在很多场合收到Windows驱动程序认证的警告。请继续操作,不要单击取消。在Windows 8系统下,你可能会在故障排除模式下重启计算机,以禁用“强制驱动程序签名”——参见本章网页。一旦这个进程运行完,几种新设备就可以在你的计算机上使用了。例如,你现在将有以下设备可用。● 访问BeagleBone Black的FAT分区(如同USB存储盘)。● 使用新的Gadget Serial驱动程序对BeagleBone Black串行访问。● 一个Linux USB 以太网/RNDIS Gadget(对于通过USB连接互联

网)。RNDIS代表了远程网络驱动程序接口规范。

Windows设备管理器会显示这些新设备。在启动指南中,类似的步骤对于Linux和Macintosh桌面计算机同样有效,这些新的设备可以连接到BeagleBone Black开发板。2.2.2 网络连接

试读结束[说明:试读内容隐藏了图片]

下载完整电子书


相关推荐

最新文章


© 2020 txtepub下载