Android设备使用USB的硬件接口
程序[http://www.nexus-computing.ch/files/Racer.apk],然后通过USB 接口插入Vinco板。Android平板和Vinculum II之间的连接,是使用新发布的Android USB 主控API来维护的。Android上的JAVA软件与使用USB 批量和控制传输的微处理器交互,因此是一个"软的"USB 转串行驱动器。微控制器的固件被设为通过USB转串行驱动与平板电脑接口,它接收单个字节,将相应的无线摇控管脚拉低,最终控制玩具车。
下面几行的Java代码用于初始化串行通信:
UsbDeviceConnection conn = usbm.openDevice(dev);
conn.controlTransfer(0x40, 0, 0, 0, null, 0, 0);// reset
conn.controlTransfer(0x40, 0, 1, 0, null, 0, 0);// clear Rx
conn.controlTransfer(0x40, 0, 2, 0, null, 0, 0);// clear Tx
conn.controlTransfer(0x40, 0x03, 0x4138, 0, null, 0, 0);// set baudrate 9600
这些代码与libftdi函数非常类似:
int ftdi_usb_reset(struct ftdi_context *ftdi)
int ftdi_usb_purge_rx_buffer(struct ftdi_context *ftdi)
int ftdi_usb_purge_tx_buffer(struct ftdi_context *ftdi)
int ftdi_set_baudrate(struct ftdi_context *ftdi, int baudrate)
一旦连接被初始化,将通过Android操作系统的USB API作类似的进一步的批量传输。
结论
本文讨论的应用范例说明,尽管存在一定的困难,还是能够通过USB 接口实现基于Android的控制功能。运用Android主控API结合合适的硬件和相关固件开发,只需要对Android操作系统和差异之处有极少的了解,就可以创建出设想的应用。
- 基于USB的通用无线传输接口设计(09-20)
- 索尼VRD-MC1 DVD刻录机解析(09-24)
- USB On-The-Go 技术概述(09-16)
- 谈关于非编网络的管理及其维护(下)(10-02)
- 打破瓶颈,以技术驱动液晶电视升级换代(11-26)
- 高速USB OTG--便携设备绝佳的互连解决方案(11-18)