2012-09-16 134 views
2

我可以通过USB端口将一系列数据(非文件)从Android设备传输到FPGA板上吗? Android是否使用一些API顺序支持这种传输?通过USB端口传输数据

回答

0

这取决于你的Android设备。 Sinvce API级别12,Android开发者已有USB Host and USB accessory support。 USB附件是有点古怪,据我可以告诉,它被设计成只承认一个Android专有扩展USB标准"Android Open Accessory protocol"

看看由Nexus Computing guys in Switzerland

在做的工作特别你会发现关于他们的osciprime open source oscilloscope的博客文章,其中包括硬件与XiLinx CPLD的接口,这至少接近你正在尝试做的事情。

5

根据您的Android硬件,最多有三种不同的方式来完成此操作。从广泛支持到最少,它们是ADB协议,USB配件模式和USB主机模式。 ADB协议实际上是为调试Android设备而设计的,但Android支持通过它连接隧道TCP连接,并且各种项目(如microbridge)都使用它来在Android应用程序和外部硬件之间传输数据。其他人已经将其他两个文档链接起来。

您可以使用哪些实际使用哪种FPGA板取决于您使用的FPGA板类型以及它具有哪种USB硬件。 (我假设你现在使用的是现成的电路板。)有些电路板只有一个USB-to-JTAG接口,通常是专有的和没有记录的,在这种情况下,USB Host是唯一的方式与它连接,你需要在Android端有一些非常难看的代码。其他人,如OsciPrime和Ztex的电路板,使用赛普拉斯FX2微控制器,该微控制器再次需要USB主机支持,但允许您在两者之间定义自己的USB协议。少数拥有飞利浦ISP1362芯片并支持USB主机模式,在这种情况下,您可以使用ADB或开放式附件协议 - 您甚至可以使用boot ucLinux on it and connect to your phone with libusb

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

(这个答案有一些超链接被淘汰,因为新用户的超级链接限制。道歉。)