关于Android开放式架构平台在物联网嵌入式中的解决方案
扫描二维码
随时随地手机看文章
开源与闭源
开源与闭源之间的战争从未停止过,已经蔓延了好几代设计。 闭源意味着仅能让一组较少的创新者进行自由创造,就像开发资源和许可意味着设计人员需要作出更多承诺一样。 在开源情况下,每个人都通常能免费或者支付很少费用后,在一个伞形框架下开发产品。 闭源产品看起来从一开始就做得很好,这是因为其背后(通常)有一个纪律更严明的团队。
然而毋庸置疑的是,Android 产品凭借低成本、迷人的屏幕和用户界面以及多元化应用程序 (app),在销量上完胜劲敌 - 苹果 (Apple) 的 iPhone 和 iPad。 制造商如推出 Galaxy 级产品 Samsung、包括 Barnes、Noble 在内的其它许多非传统硬件公司以及 Amazon 都在提供风格多样并捆绑了各种功能和 app 的 Android 产品。
这说明了两点。 第一,我们能定制自己的硬件,以更低的成本扩展 OEM Android 产品,将 Android 系统用于我们的显示、通信链接和用户界面。 第二,也可设计一个与我们的专用硬件或者专有系统紧密联系的嵌入式 Android 系统,充分发挥开放式资源的优势,摆脱硬件束缚,自由选择我们的新一代处理器、模块、电路板或者 OEM 平板电脑,只要这些器件满足 Android 产品要求。
需要什么
随着产品性能和功能的不断提升,最低要求也在变化。 现代 Android 设计至少需要能够驱动一个 32 位 ARM7、MIPS 或者 x86 架构的能力,且至少应有 512 M RAM。 处理器必须能够运行使处理任务保持开放状态的存储器管理方案,而不仅是被挂起后用于节能。
这里还有许多值得去玩味。 用一个运行频率高达 1GHz 的处理器管理、指挥许多对实时性敏感且常常重叠的功能并非易事,如图形处理、加速仪和其其它感器、可识别手势的投射式电容触摸屏、摄像头、USB、GPS、Wi-Fi 和 音频 I/O,而这些也仅是其中一少部分。
当开发一个兼容 Android 产品的硬件平台设计时,可能需要首先考虑可提供 ARM、MIPS 或者 X86 处理器的芯片制造商,因这些芯片可支持和运行作为 Android 个性化基础的 Linux 打包操作系统。 然而此时还需注意,除了高端 GHz 级处理器外还有体积更小的集成式专用处理器,它们能分担许多处理任务,从而争取引起注意、获得资源。
例如, FTDI 的 FT311D-32L1C-R 专用型 USB Android 产品枚举器和通信链接控制器。 该控制器称作 USB Android 主机 IC,旨在允许在 Android 产品系统内通过 USB 访问外设硬件。
Android 开放配件模式(OAM,OS 3.1 以及更高版本)允许带有 USB 硬件的外部设备能以特定的配件模式进行交互。 此时,由外部设备提供电源,因此平板电脑或者智能手机无需作为一个主机侧控制器提供 500 mA 电源,以满足 USB 需要。 这种模式下,不需要 Android 设备上的任何驱动程序、软件或者开销。
这款相对较小的 32 引脚 FT311D 能作为一个独立的协处理器执行全部 USB 枚举序列任务并支持 Android 开放配件模式(图 1)。
Android开放式架构平台在物联网嵌入式中的解决方案图 1:通过分担开放式配件模式的功能,该协处理器能执行所有枚举和再枚举任务,而无需任何驱动程序或 Android 处理器开销。
该协处理器支持 USB 2.0 的 12 MHz 速度,能够完成所有以 USB 为中心的功能,从而减少主处理器负载,尤其是将外设与 USB 连接时。 FTDI 在 Digi-Key 网站上推出了 Android 接口解决方案培训模块 。
PIC 处理器制造商 Microchip 也支持深受大众欢迎的 Arduino 产品平台。 考虑到满足 Android 产品开发的需求,Microchip 推出了 DM240415 配件开发入门套件。该套件基于 PIC24F 处理器。 该平台还提供了一种支持 OAM 的专用协处理器方法,由微控制器或 USB 分担关键链接和功能,如 Android 产品接收和发出数据。
这款免版权费、无许可费的 DM240415 配件开发入门套件提供了一个嵌入式调试器、电源、支持图形库的软件、IrDA 协议栈、USB 协议栈、闪盘驱动文件系统、电容式触摸软件、TCP/IP 协议栈和 MiWi 个人 Wi-Fi 支持功能。 为了将定制硬件与 Android 系统连接,该开发板还提供了八个 LED 状态指示灯、一个电位计和用户接口按钮,以便能用作应用开发和测试板。 参考文献 [1] 中给出了一个参考原理图,可作为平板电脑的一种参考设计。 该 Android 客户端驱动程序被作为 PIC USB 主机协议栈以上的一个层来执行。
Android开放式架构平台在物联网嵌入式中的解决方案图 2:这款由 Microchip 提供的免版权费 Android OAM 模式软件通过加入一个 Android 客户端程序并基于其 USB 协议栈构建而成。
FTDI 和 Microchip 均对各自的器件提供开发支持,但也可由第三方提供开发支持。 Embedded Artists 通过其 EA-APP-001 Android 开放配件应用套件提供了一种开源演示和开发板。 按照相同的分离式处理器任务管理分配方案,该套件采用了两个协处理器: NXP Semiconductors 的 LPC1769(这是一款高端、32 位、120 MHz ARM Cortex-M3 器件)与 NXP 的 LPC11C24(这是一款体积更小的 50 MHz、32 位 ARM Cortex-M0 零件),用于向并行运行流分配较高或较低水平的处理任务。
LPC1769 侧可支持 10/100 以太网、CAN、ZigBee (NXP Jennic) 和串行任务。 LPC11C24 侧不仅共享 CAN 互连,还利用其 RGB LED、按钮、温度和光线传感器管理硬件开发和传感器连接。 该套件也可用于通过其某一个低功耗 I/O(PIO1_4) 进行低功耗唤醒功能的开发测试。
一个漂亮的特性便是充电器馈通模式。 除了 5 V 备用电源外,这个 USB 型充电器接口还能从被测装置抽取电能(图 3)。 板上有一个原型开发区域,允许通过充电器访问 USB 数据信号和 OAM 模式。 然后,充电器能在充电时自动通过 Wi-Fi 进行音乐和图像同步。 NXP 的 LPC1700 系列产品培训模块 与其 LPC11xx 编码密度产品培训模块同时提供。
Android开放式架构平台在物联网嵌入式中的解决方案图 3:双协处理器能够分配与 Android 有关的外设和任务,并用作 Android 硬件扩展的开发平台。
为运行而生
除了外设开发和 OAM 支持外,板级系统、参考设计以及开发套件还能为主要 Android 应用运行频率达到数个 GHz 的高端处理器。 让我们了解一下基于 ARM Cortex-A8 的 1 GHz Olimex A13-OLINUXINO-MICRO 板,该板用于基于 Linux 的 Android 产品开发。 该板以 Allwinner SoC 为基础,是基于各种高端处理器(A8、A13、MX233 等)的 OLinuXino GHz 级处理器板的一块。这些都是您希望在更高端控制中使用的处理器(图 4)。
Android开放式架构平台在物联网嵌入式中的解决方案图 4:这款高集成度 Olimex Linux Android 开发平台基于 Allwinner A13 处理器,采用 SoC 技术,实现了高性能、低功耗和很好的 Android 兼容性。
在这样的速度下,单核与多核处理器能够吸收不同外设功能的所有开销,并直接执行如 NAND 闪存、DDR RAM, SD 卡、3D 图形、USB 等数据任务和/或密集型处理任务。
Olimex 还有一款基于 1 GHz ARM Cortex-A8 处理器的 A10S-OLINUXINO-MICRO Linux 开发板,这是一台开源式 Android/Linux 单板微型计算机。 该板支持 USB 2.0 和 HDMI 图形功能,支持 VGA TFT 分辨率。 该板还配有 50 个 I/O 线路,用于协助原生硬件和接口的开发。
总之,可将这一 Android 处理器模块视作具有一组标准化外设、功能、特性和开源代码的下一代嵌入式处理器。 其高端性能和设计选项会让 Android 系统成为广受制造商欢迎的一种全新用户接口,同时又为 OEM Android 系统打开一扇门,成为嵌入式设计人员的设计法宝。