android 与usb 设备通信(二)】的更多相关文章

再次遇到android  mUsbManager.getDevicelist() 得不到usb 设备的问题.于是深入去探讨android 与usb 外围设备通信的问题.第一篇文章写的有点乱,本质就是需要加入系统的usb操作权限(需要root权限,这种指导国内外的网站上都已经有很多了). 前面做的项目usb设备是标准的HID设备,使用USBtrace可以看到是setup class支持HIDclass(如下图1),因此在root android加入权限之后可以通过getDeviceList()得到…
一.背景: 最近在做的一个项目需要使用USB传递数据,对USB理解不是很深,USB的系统驱动编写则更是天方 夜谭,因此将设备配置成HID类设备成为了首选.其最大的好处在于,LINUX/Windows系统中均自带HID 设备驱动,免除了USB系统驱动的困扰,同时HID配置为高速设备与全速设备时,其每笔事务传输的最大 字节大小分别为64bytes.1024bytes,亦符合当前开发需求. 二.正文: 安装及使用方法在"HIDAPI"文件夹中的"Readme"有了详细说明…
1.注释内 .是三星设备可能不支持,需要更换的代码. 2.mUsbManager.是getSystemService(Context.USB_SERVICE)获的. 3. 从stackoverflow摘过来的.源地址找不到咧. protected static final int STD_USB_REQUEST_GET_DESCRIPTOR = 0x06;        // http://libusb.sourceforge.net/api-1.0/group__desc.html      …
1.了解 支持USB 主机(host)或者从机(accessary )模式最终是取决于设备的硬件,而与平台版本无关.我们可以通过usesfeature这个方法来查询自己的设备是否支持USB主从.   2.主机模式   当设备为USB 主机模式的时候,驱动着总线,枚举已连接的USB设备.平台版本在3.1以上支持该模式.   我们所使用的USB开发包是: android.hardware.usb  该包有下面几个类: 除了异步通信的时候你必须用到 UsbRequest 这个类之外,其他大部分与USB…
USB驱动编程原理: 当我们把USB设备插入USB口时会提示需要安装相对应的驱动,如USB鼠标.USB键盘等,这些电脑自己自身已经自带有相对于的驱动程序, 当电脑检查到该USB设备类型相同就去帮你安装相对于驱动,但有些由于系统没有自带有相对于的USB驱动程序,需要联网或者厂家资料自带有 就需要手动安装驱动,如USB转串口驱动,搞开发搭建前期时需要安装一大推驱动程序开可以进行开发. USB驱动开发依据主从关系的:也就是把USB口这一端作为主设备,也即开发板,USB设备作为从设备,主设备上具备有一个…
本文是接着上一篇的的usb-host与外设通信(一)接着写的 3.枚举设备 当你的程序运行时,如果应用程序对当前连接的USB设备都感兴趣的,程序可以枚举所以当前的设备.使用getDeviceList()方法去获得包含当前所有连接设备的hash map对象,如果你想要从map中获得一个设备,那么得到的hash map是USB设备名称键控的.(英文水平差,原文是: The hash map is keyed by the USB device's name if you want to obtain…
1.urb 结构体USB 请求块(USB request block,urb)是USB 设备驱动中用来描述与USB 设备通信所用的基本载体和核心数据结构,非常类似于网络设备驱动中的sk_buff 结构体. struct urb { /* 私有的:只能由USB 核心和主机控制器访问的字段 */ struct kref kref; /*urb 引用计数 */ void *hcpriv; /* 主机控制器私有数据 */ atomic_t use_count; /* 并发传输计数 */ u8 rejec…
USB设备驱动 ·  )USB Hub:每个USBHost控制器都会自带一个USB Hub,被称为根(Root)Hub.这个根Hub可以接子(Sub)Hub,每个Hub上挂载USB设备.一般PC有8个USB口,通过外接USB Hub,可以插更多的USB设备.当USB设备插入到USBHub或从上面拔出时,都会发出电信号通知系统.这样可以枚举USB设备,例如当被插入的时候,系统就会创建一个USB物理总线,并询问用户安装设备驱动.如图17-4所示为一个典型的USB Hub的示意图. 是控制管道,管道1…
1.urb 结构体 USB 请求块(USB request block,urb)是USB 设备驱动中用来描述与USB 设备通信所用的基本载体和核心数据结构,非常类似于网络设备驱动中的sk_buff 结构体. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 struct urb { /* 私有的:只能由USB 核心和主机控制器访问的字段 */ struct kref kref; …
我们做USB通信时,通信成功后,往往要检测USB设备的拔插状态,这里就USB拔插进行一下说明. 参考:https://www.imooc.com/article/17438 先说明一下,我这里只是用C#写上位机的自定义USB设备的检测,是调用window的DLL来实现USB设备通信的,具体通信过程说明,我会在后期补上. 要实现USB插拔检测,就不得不说到WM_DEVICECHANGE 消息了,当设备被插入/拔出的时候,WINDOWS会向每个窗体发送WM_DEVICECHANGE 消息,而WM_D…