利用Google的全新开放式配件框架进行Android配件设计
发布时间:2014-12-16 11:31
发布者:designapp
在2011年的GoogleI/O年会上,Google宣布正在向Android操作系统添加一个框架,以支持基于USB的配件。此配件框架当时已添加到Android2.3.4(API级别10)和Android3.1(API级别12)操作系统版本。 USB外设和主机 USB是一种外设和主机之间的点对点通信方式。外设之间无法通过USB相互通信,总线上始终有一个主机。一般来说,在USB系统中的主机是功能更强大的设备,而外设是具有基本功能的较简单设备,为主机提供服务。主机还需要为外设供电并管理总线上的外设。由于这些差异,USB主机和外设的设计迥异。 作为USB设备的Android配件 对于配件设计人员来说,如何在这两种USB选项之间做出选择似乎是显而易见的。智能手机/平板电脑的配件最适合作为USB设备。手机或平板电脑很可能是用户的关注焦点,配件将为手机/平板电脑提供服务。让手机/平板电脑为配件供电也很有吸引力。 作为USB主机的Android配件Google在发布称为Open Accessory的配件框架时,意识到市场上销售的很多Android产品只能作为USB设备工作。这些产品没有作为USB主机所需的硬件。为了使这些产品能够连接配件,Google必须让这些Android产品作为USB设备来创建配件框架选项。 如果创建的配件所需要支持的Android设备没有USB主机功能或正在运行不支持USB主机模式的操作系统版本,则配件必须成为USB主机并使用Open Accessor框架才能与Android设备通信。 作为标准USB设备的Android配件 第三个选项是原生操作系统支持。除了操作系统的USB主机功能外,还添加了对一些标准配件(如鼠标、键盘和U盘等)的支持。配件可在任何支持的操作系统上工作。图1、2和3突出显示了以上三种支持选项。 ![]() 《电子设计技术》网站版权所有,谢绝转载 应该选哪个选项? 要从三种选项中选择一个来创建配件,需要了解每个选项的含义。要创建作为USB设备的配件,需要目标Android手机/平板电脑的软硬件配置能作为USB主机工作。 USB主机必须供电 选择让配件作为USB主机的决定并不像查看版本信息那么简单。在USB系统中,USB主机必须为外设供电。大多数USB外设需要主机至少提供100mA的电流。这种要求对于执行诊断或固件更新的冰箱来说可能是合理的,但对于脉动血氧计之类的设备可能就是个困难。图1、2和3说明了三种可能的配件配置是如何供电的。 标准或定制应用 除了供电要求外,设计人员还必须考虑其配件的使用方式。让配件作为USB主机的设计人员可能需要为其应用创建定制协议。仍然以前文提到的冰箱和脉动血氧计为例,对于冰箱来说,使用定制协议是合理的,因为客户必须使用供应商特定的应用程序才能与冰箱通信。而对于脉动血氧计来说,可能需要使用USB协议中内置的个人医疗设备类协议(Personal Healthcare Device Class,PHDC)。使用此协议允许这个产品用于任何USB主机,且允许硬件与各种软件通信。 如果配件确实以不具有USB主机功能的Android设备为目标,则配件必须使用定制协议,如图2所示。 ![]() ![]() 《电子设计技术》网站版权所有,谢绝转载 USB物理连接器 虽然物理连接器不是主要决定因素,但在决定使用哪种模式时还是需要加以考虑。对于作为USB主机的配件,USB规范要求该配件应具有全尺寸A型母头连接器。 对于充当USB设备的配件,设计人员可以选择使用全尺寸B型、mini-B型或micro-B型母头连接器。如果配件作为USB设备,则意味着Android设备将成为USB主机。大多数Android设备没有可插入USB电缆的全尺寸A型母头连接器。目前市场上许多支持USB主机模式的Android设备需要某种适配器才能使用此功能。在理想情况下,Android设备具有micro-A/B型母头连接器,用户可以使用micro-A转micro-B型OTG电缆将配件连接到Android设备,然后使用micro-B转全尺寸A型电缆将Android设备连接到USB主机(如标准PC)。 外设和主机的USB On-The-Go(OTG) 如果无法决定选择USB主机模式还是USB设备模式配件,或是两种模式都需要,则还有另一个可用选项。Android配件可设计成USBOTG设备。USBOTG规范允许配件成为USB主机或USB设备,具体取决于插入的电缆。利用USBOTG,配件可作为没有主机功能的Android产品的USB主机,也可以作为具有USB主机功能的Android产品的USB外设。 使用USBOTG会并发一些问题。配件用户将无法使用Android产品随附的电缆来连接配件,因此需要额外的电缆。由于Android产品具有多种不同的硬件连接器,因此这种电缆问题实际可能很难解决。使问题进一步复杂化的是,市场上的一些Android产品具有OTG功能但不使用规范的连接器而采用定制的非标准电缆来实现主机模式操作。 如果选择配件工作于USB主机模式,则还需要做出另一个决定—使用哪种API集。配件框架作为GoogleAPI附加库,它的库模块(com.android.future.usb)与Android3.1中使用的库(android.hardware.usb)稍有不同。这两个库的接口也略有差异,但功能基本相同。这里的主要考虑事项是目标产品是否支持所需要的库和相应的功能。 使用Android调试器接口(IOIO) 有一种称为IOIO的解决方案,允许通过Android ADB调试器接口开发基于Android的配件。此解决方案提供了一种使配件可用于运行Android1.5或更高版本的Android手机/平板电脑的方法,解决了必须等待硬件制造商向其设备推送Android2.3.4或Android3.1+后才能使用配件的问题。虽然ADB接口近来变化不大,但Google仍保留在未来设备上根据需要更改此接口的权利,以便硬件和软件开发人员可使用开发和调试器功能。 《电子设计技术》网站版权所有,谢绝转载 |
网友评论