微波EDA网,见证研发工程师的成长!
首页 > 应用设计 > 消费类电子 > Android设备使用USB的硬件接口

Android设备使用USB的硬件接口

时间:03-11 来源:作者 Manuel Di Cerbo, 任职於Nexus-Computing 及 Dave Riness任职於FTDI 点击:

程序[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操作系统和差异之处有极少的了解,就可以创建出设想的应用。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top