通过 USB 与 Android 设备通信
Communicate to Android Device over USB
我正在基于 Am3352 的电路板上开发一个应用程序,它需要通过 USB 与 android 设备 (tablet/phone) 通信。我需要通过 USB 交换一些自定义数据字节(只有我的应用程序和 android 设备中的应用程序 运行 才能理解)。
当我将 android 平板电脑连接到我的 AM3352 板时,我在控制台上打印了 VID PID 等,这表明正在检测到该设备。我需要知道的是,如何让内核为设备分配一个开发文件。例如,当我们连接一个 usb 到串口转换器时,我们将得到 /dev/ttyUSBx 文件,以便我们可以打开它和 write/read 到这个文件。同样可以直接usb连接吗?
我期待生成一个 /dev/ttyACMx 设备文件,以便我可以写入和读取它。 CDC/Modem 支持在内核中启用。 (我不确定这是否有帮助,但还是试过了)。
请告诉我如何获取与设备关联的设备文件名,以便我可以对其进行读取和写入。
首先您必须知道您的 android 设备的 USB 类型。如何在您的 linux 盒子上识别此设备?作为大容量存储或 CDC 或其他什么?然后你可以尝试与它沟通。您无需在 /dev/ 中创建任何设备即可通过 USB 与 android 通信。看看 libusb 库。
在您的示例中 - /dev/ttyUSBx 已创建,因为内核知道这是通信设备 class。所以你还需要知道这个android设备是什么类型的USB设备。
我正在基于 Am3352 的电路板上开发一个应用程序,它需要通过 USB 与 android 设备 (tablet/phone) 通信。我需要通过 USB 交换一些自定义数据字节(只有我的应用程序和 android 设备中的应用程序 运行 才能理解)。
当我将 android 平板电脑连接到我的 AM3352 板时,我在控制台上打印了 VID PID 等,这表明正在检测到该设备。我需要知道的是,如何让内核为设备分配一个开发文件。例如,当我们连接一个 usb 到串口转换器时,我们将得到 /dev/ttyUSBx 文件,以便我们可以打开它和 write/read 到这个文件。同样可以直接usb连接吗?
我期待生成一个 /dev/ttyACMx 设备文件,以便我可以写入和读取它。 CDC/Modem 支持在内核中启用。 (我不确定这是否有帮助,但还是试过了)。
请告诉我如何获取与设备关联的设备文件名,以便我可以对其进行读取和写入。
首先您必须知道您的 android 设备的 USB 类型。如何在您的 linux 盒子上识别此设备?作为大容量存储或 CDC 或其他什么?然后你可以尝试与它沟通。您无需在 /dev/ 中创建任何设备即可通过 USB 与 android 通信。看看 libusb 库。
在您的示例中 - /dev/ttyUSBx 已创建,因为内核知道这是通信设备 class。所以你还需要知道这个android设备是什么类型的USB设备。