下面,我将用我自己的方式来解释usb device的问题,希望我的回答能够对大家有所帮助。让我们开始讨论一下usb device的话题。
1.nousbdeviceisfound
2.电脑开机显示USB device over current detected 15秒后自动关机
3.Android中的USB中的UsbAccessory和UsbDevice的区别
4.如何使用 WinUSB 与 USB 设备 USBDevice 通信
nousbdeviceisfound
意思是提示没有插入usb设备。解决办法:
1、打开手机的开发者模式。
2、在开发者选项中打开USB调试和USB安装即可解决。机器在特定的功能下,需要外接USB设备,才能够继续正常使用,请外接一个USB设备,保证机器正常运行。
电脑开机显示USB device over current detected 15秒后自动关机
当你的电脑无法识别USB设备时,可能是以下几个方面的问题。 前置USB线接错当主板上的USB线和机箱上的前置USB接口对应相接时把正负接反就会发生这类故障,这也是相当危险的,因为正负接反很可能会使得USB设备烧毁。所以尽量采用机箱后置的USB接口,也少用延长线.也可能是断口有问题,换个USB端口看下。
USB接口电压不足当把移动硬盘接在前置USB口上时就有可能发生系统无法识别出设备的故障。原因是移动硬盘功率比较大要求电压相对比较严格,前置接口可能无法提供足够的电压,当然劣质的电源也可能会造成这个问题。解决方法是移动硬盘不要接在前置USB接口上,更换劣质低功率的电源或尽量使用外接电源的硬盘盒,假如有条件的话。
主板和系统的兼容性问题主板和系统的兼容性问题可能会导致USB设备无法识别。解决方法是安装最新的驱动和补丁,或刷新主板的BIOS。
系统或BIOS问题当你在BIOS或操作系统中禁用了USB时就会发生USB设备无法在系统中识别。解决方法是开启与USB设备相关的选项。就是开机按F2或DEL键,进入BIOS,把enable usb device选择enable。
拔插要小心拔插USB设备时要小心,读写时千万不可拔出,不然有可能烧毁芯片。XP中任务栏中多出USB设备的图标,打开该图标就会在列表中显示U盘设备,选择将该设备停用,然后你再拔出设备,这样会比较安全。
判断软件硬件问题判断软件硬件问题很简单,可以在别的机器或换个系统(98下要驱动哦)试试就可以了。有些小的问题不妨先用专门软件格式化下。还有提醒大家WINDOWS下格式化时要选择FAT,不要选FAT32。
Android中的USB中的UsbAccessory和UsbDevice的区别
原因:usb设备可能出现故障导致无法开机。解决方法:
方法一:
1、usb鼠标、键盘bai、摄像头等USB设备。可以先把这些USB设备都拔掉。
2、然后再开机,如果能正常开机的话,那么问题肯定就出现在其中的一个USB设备上。
3、这时可以把这些USB设备一个一个的插上去试,插一个设备开一次机,如果在插入某一个USB设备后无法开机的话,那么就是这个设备的问题了。
方法二:把主机打开,把连接主板的USB数据线给拨掉后重启。
方法三:总电源断电后把主板纽扣电池移除五到十分钟重启。
如何使用 WinUSB 与 USB 设备 USBDevice 通信
UsbAccessory:和标准的USB的概念相反
USB设备是USB的Host
所以,此时USB设备,也要干其作为USB的Host的事情
USB设备,要给作为USB的Device的Android设备供电
USB设备要负责管理USB总线
而Android设备是USB的Device
此时,从概念上说,相当于把Android设备,当做Accessory附件,挂在USB设备上
Android 3.1多了哪些类
对于Android 3.1来说代号仍然为honeycomb,新增功能还是不少的,API Level升到了12。除了这个ADK中的部分特性外,下面一起看看前几天提到的android.hardware.usb这个Package,由于 Google将拉拢硬件厂商制造出千奇百怪的USB附加配件所以提出了ADK这样的概念,可以查看 Android ADK硬件开发包介绍 ,目前来说USB的管理有了不小的增强。
一、 android.hardware.usb.UsbAccessory 本类是针对Open Accessory API 设计的。
二、 android.hardware.usb.UsbConstants 作为USB常量定义,在Linux内核文件 linux/usb/ch9.h 中。
三、 android.hardware.usb.UsbDevice 获取USB设备的信息,比如说类型、制造商等等,很有用的。
四、android.hardware.usb.UsbDeviceConnection 这个是USB设备传输控制的核心,对于Android USB硬件附件开发者来说必须掌握。不过还是比较简单的。
五、 android.hardware.usb.UsbEndpoint 获取一个USB终端信息
六、android.hardware.usb.UsbInterface USB底层接口,获取一些信息底层信息,比如说通讯协议,等等。
七、android.hardware.usb.UsbManager USB管理类,实例化方法和Android大多数系统Manager一样,通过类似 UsbManager manager = (UsbManager) getSystemService(Context.USB_SERVICE); 的方式获取系统底层AIDL服务的一个实例,本类是一个全局USB类,比较重要。
八、android.hardware.usb.UsbRequest 核心的USB请求处理类,支持读写操作,以字节数组方式处理一个UsbEndpoint,Android123提示这个类类似WinCE串口通讯的 CreateFile部分,可以进行数据流的读写。
制造 USB 设备的独立硬件供应商 (IHV) 必须经常为应用程序提供访问设备功能的途径。
在过去,这意味着使用 Windows 驱动程序模型 (WDM) 为设备实现一个功能驱动程序,
并将该驱动程序安装在设备栈中系统提供的协议驱动程序之上。
Windows 驱动程序基础 (WDF) 现在是 USB 驱动程序的首选模型。
它为 IHV 提供 3 个选项来提供访问 USB 设备的途径:
使用 WDF 用户模式驱动程序框架 (UMDF) 实现用户模式驱动程序。
使用 WDF 内核模式驱动程序框架 (KMDF) 实现内核模式驱动程序。
将 WinUsb.sys 作为设备的功能驱动程序安装,
并提供一个使用 WinUSB API <WinUsb.dll> 访问设备的应用程序。
WinUSB 在 Windows XP 上不支持 WinUSB 选择性暂停
Windows 8 USB 驱动程序堆栈体系结构
该图分别显示了 USB 2.0 和 USB 3.0 的 USB 驱动程序堆栈。
当设备附加到 xHCI 控制器时,Windows 会加载 USB 3.0 驱动程序堆栈。
USB 3.0 堆栈是 Windows 8 中的新功能。
当设备连接到 eHCI、oHCI 或 uHCI 控制器时,Windows 会加载 USB 2.0 驱动程序堆栈。
USB 2.0 驱动程序堆栈随 Windows XP Service Pack 1 (SP1) 及更高版本的 Windows 操作系统一起提供。
Windows 8 USB 驱动程序堆栈
对于自定义 USB 设备应该使用哪个设备安装程序类?
独立硬件供应商 IHV 必须使用与 USB 设备类型(而不是总线类型)相关的安装程序类。
如果要开发一个 Microsoft 还没有为其提供现有类 GUID 的设备类型,可以定义一个新的设备安装程序类。
Windows 8 中定义了一个名为 USBDevice
( ClassGuid = {88BAE032-5A81-49f0-BC3D-A4FF138216D6} ) 的新安装程序类。
如果您正在开发一个设备类型,请将您的设备与 <USBDevice> 而不是 <安装程序类 USB> 关联。
USBDevice 类支持 Windows Vista 以及更高版本的操作系统。
安装程序类 USB ( ClassGuid = {36fc9e60-c465-11cf-8056-444553540000} )
仅为 USB 主控制器和 USB 集线器保留,并且不能用于其他设备类别。
不正确地使用此安装程序类可能导致设备驱动程序无法通过 Windows 徽标测试。
WinUSB 架构和模块
Windows USB (WinUSB) 是 Microsoft 提供的 USB 设备的通用驱动程序。
WinUSB 体系结构由内核模式驱动程序 (Winusb.sys) 和用户模式动态链接库 (Winusb.dll) 组成。
Winusb.sys 是一种内核模式驱动程序,可在 USB 设备的内核模式设备堆栈的协议驱动程序之上
作为筛选器驱动程序或功能驱动程序进行安装。
Winusb.dll 是一种公开 WinUSB 功能的用户模式 DLL。
当 Winusb.sys 作为设备的功能驱动程序安装后,应用程序可以使用这些功能与其进行通信。
对于不要求自定义功能驱动程序的设备,Winusb.sys 可以在该设备的内核模式堆栈中作为功能驱动程序进行安装。
随后,用户模式流程通过使用一组设备 I/O 控制请求或调用 WinUSB 功能 ( WinUsb_Xxx 函数 )来与 Winusb.sys 进行通信。
上图显示了实施三个设备接口类的示例 WinUSB 配置,其中每个类都有单个注册设备接口:
Winusb.sys 的实例 1 注册设备接口 A,设备接口 A 支持用户模式驱动程序 (Usboem.dll)。
Winusb.sys 的实例 2 注册设备接口 B,设备接口 B 支持通过使用系统服务 (SVCHOST)
与 Winusb.dll 进行通信的扫描仪的用户模式驱动程序 (Usbscan.exe)。
Winusb.sys 的实例 3 注册设备接口 C,设备接口 C 支持固件更新实用程序 (Usbfw.exe)。
仅加载了 Winusb.sys 的一个实例。
PDO 可以表示非复合设备(例如,上图中的示例 1),
也可以表示复合设备上的接口或接口集合(例如,实例 2 和 3)。
对于 USB 无线移动通信设备类 (WMCDC) 设备,PDO 甚至可以表示多个接口集合。
所有用户模式应用程序都可以与 USB 堆栈进行通信,
方法是加载 WinUSB 动态链接库 (Winusb.dll) 并调用由此模块公开的 WinUSB 功能。
WinUSB 驱动程序 (Winusb.sys)
WinUSB 动态链接库 (Winusb.dll)
This section describes the following functions, exposed by Winusb.dll,
which user-mode client drivers and applications can use
to communicate with USB devices.
WinUSB functions require Windows XP or later.
You can use these functions in your C/C++ application
to communicate with your USB device.
Microsoft does not provide a managed API for WinUSB.
Routine
Description
WinUsb_AbortPipe
Aborts all of the pending transfers for a pipe.
WinUsb_ControlTransfer
Transmits control data over a default control endpoint.
WinUsb_FlushPipe
Discards any data that is cached in a pipe.
WinUsb_Free
Releases all of the resources that WinUsb_Initialize allocated.
WinUsb_GetAssociatedInterface
Retrieves a handle for an associated interface.
WinUsb_GetCurrentAlternateSetting
Gets the current alternate interface setting for an interface.
WinUsb_GetDescriptor
Gets the requested descriptor.
WinUsb_GetOverlappedResult
Retrieves the results of an overlapped operation on the specified file.
WinUsb_GetPipePolicy
Gets the policy for a specific pipe (endpoint).
WinUsb_GetPowerPolicy
Gets the power policy for a device.
WinUsb_Initialize
Creates a WinUSB handle for the device specified by a file handle.
WinUsb_QueryDeviceInformation
Retrieves information about the physical device that is associated with a WinUSB handle.
WinUsb_QueryInterfaceSettings
Retrieves the interface descriptor for the specified alternate interface settings for a particular interface handle.
WinUsb_QueryPipe
Retrieves information about a pipe that is associated with an interface.
WinUsb_ReadPipe
Reads data from the specified pipe.
WinUsb_ResetPipe
Resets the data toggle and clears the stall condition on a pipe.
WinUsb_SetCurrentAlternateSetting
Sets the alternate setting of an interface.
WinUsb_SetPipePolicy
Sets the policy for a specific pipe (endpoint).
WinUsb_SetPowerPolicy
Sets the power policy for a device.
WinUsb_WritePipe
Writes data to a pipe.
好了,关于“usb device”的讨论到此结束。希望大家能够更深入地了解“usb device”,并从我的解答中获得一些启示。