2

我可以通过 USB 端口将数据序列(不是文件)从 Android 设备传输到 FPGA 板吗?android 是否支持使用某些 API 顺序进行此类传输?

4

2 回答 2

5

根据您的 Android 硬件,最多可以使用三种不同的方式来执行此操作。从最广泛支持到最少,它们是 ADB 协议、USB 附件模式和 USB 主机模式。ADB 协议实际上是为调试 Android 设备而设计的,但 Android 支持在其上建立 TCP 连接隧道,并且诸如microbridge之类的各种项目都使用它在 Android 应用程序和外部硬件之间传输数据。其他人已经链接了另外两个的文档。

您实际可以使用哪些取决于您使用的是哪种 FPGA 板以及它具有哪种 USB 硬件。(我暂时假设您使用的是现成的板。)有些板只有 USB-to-JTAG 接口,通常是专有的和无证的,在这种情况下 USB Host 是唯一的方法与它交互,您将需要在 Android 端使用一些相当丑陋的代码。其他的,如 OsciPrime 和 Ztex 的板,使用 Cypress FX2 微控制器,它再次需要 USB 主机支持,但允许您在两者之间定义自己的 USB 协议。少数拥有飞利浦 ISP1362 芯片并支持 USB 主机模式,在这种情况下,您可以使用 ADB 或开放附件协议 - 您甚至可以在其上启动 ucLinux 并使用 libusb 连接到您的手机

如果您正在开发自己的硬件,这显然取决于个人品味、性能要求、BOM 成本和开发时间之间的权衡,以及您需要能够支持的 Android 设备范围有多大。例如,USB 收发器的 TUSB110x 系列非常便宜,并且可以支持 USB 主机模式,因此理论上您可以与现有的所有 Android 硬件进行接口,但它们需要在 FPGA 方面进行大量工作。

(由于新用户的两个超链接限制,此答案已剔除一些超链接。抱歉。)

于 2012-09-19T12:04:17.093 回答
0

这取决于您的 Android 设备。自 API 级别 12 以来,Android 开发人员已经支持 USB 主机和 USB 附件。据我所知,USB 附件有点时髦,因为它旨在仅识别 USB 标准“Android 开放附件协议”的 Android 专有扩展,

看看瑞士的 Nexus Computing人员所做的工作

特别是,您会发现有关他们的osciprime 开源示波器的博客文章,其中包括与 XiLinx CPLD 的硬件接口,这至少接近于您正在尝试做的事情。

于 2012-09-16T20:42:13.897 回答