usb接口

usb热插拔原理

匿名 (未验证) 提交于 2019-12-02 23:43:01
在讲插拔时,我们先了解一下设备插入到hub里面,会有什么结果。 “USB主机是如何检测到设备的插入的呢?首先,在USB集线器的每个下游端口的D+和D-上, 分别接了一个15K欧姆的下拉电阻到地。这样,在集线器的端口悬空时,就被这两个下拉电阻 拉到了低电平。而在USB设备端,在D+或者D-上接了1.5K欧姆上拉电阻。对于全速和高速设备, 上拉电阻是接在D+上;而低速设备则是上拉电阻接在D-上。这样,当设备插入到集线器时, 由1.5K的上拉电阻和15K的下拉电阻分压,结果就将差分数据线中的一条拉高了。集线器检测 到这个状态后,它就报告给USB主控制器(或者通过它上一层的集线器报告给USB主控制器), 这样就检测到设备的插入了。USB高速设备先是被识别为全速设备,然后通过HOST和DEVICE 两者之间的确认,再切换到高速模式的。在高速模式下,是电流传输模式,这时将D+上的 上拉电阻断开。”引用自《USB入门系列之五》。 文章来源: https://blog.csdn.net/hbcbgcx/article/details/91884216

centos禁用usb驱动

匿名 (未验证) 提交于 2019-12-02 23:40:02
centos6x 安装gconf-editor,搜索automount,取消勾选automount及automount open centos7x 安装dconf-editor,搜索automount,将automount及automount open值设为false 此操作使usb设备只能用root用户手动挂载

KT1025A蓝牙芯片模块的USB更新spiflah的音频内容的方法说明

匿名 (未验证) 提交于 2019-12-02 23:38:02
1、插上我们模块的USB之后,可以以SPIFLASH作为存储介质的U盘,如下图: (1)、可以从上图看到FLASH的总容量为15.8M字节。已经使用的空间为15.4M字节。虚拟出来的设备的文件系统的为FAT格式。FAT文件系统占的存储空间为442K (2)、进入设备之后,如下图: 可以很清晰的看到设备里面的文件,以及文件名称。可以像操作U盘或者读卡器一样操作FLASH.只是速度会比他们慢。至于为什么后面会详细解释。 (3)、无论用户使用多大容量的FLASH,我们模块都是支持的,并且内部已经做了自动识别,无需用户操心,用户也仅仅需要根据自己的需求来确定FLASH的容量和型号。 (4)、目前经过我们反复的测试和验证,SPIFLASH支持最大的容量为8M字节,对应型号W25Q64 因为再大容量的FLASH。由于技术的原因暂时还没有突破,后续会直接更新,请用户知晓 二 用户使用空白的FLASH说明 用户在调试的过程中,会按照自己的需求更换FLASH的大小来满足自己的需求,这样就需要以下三个步骤来完成FLASH的替换。 如上面的4个图片,就是使用空白FLASH,FLASH的型号为W25Q80,容量为1Mbyte。使用USB连接电脑第一次的处理过程。上面的截图可以很详细的看出步骤 1、我们的芯片支持自动识别FLASH容量大小。所以用户无需关心,只需要按照自己的需求使用合适大小的FLASH即可

SPICE 协议 USB 重定向

匿名 (未验证) 提交于 2019-12-02 23:37:01
SPICE 协议 USB 重定向 用SPICE协议来进行USB透传的介绍,在SPICE官网上有: Spice 官网 kvm xml配置 < device > < controller type = ' usb ' index = ' 0 ' model = ' ich9-ehci1 ' /> < controller type = ' usb ' index = ' 0 ' model = ' ich9-uhci1 ' > < master startport = ' 0 ' /> </ controller > < controller type = ' usb ' index = ' 0 ' model = ' ich9-uhci2 ' > < master startport = ' 2 ' /> </ controller > < controller type = ' usb ' index = ' 0 ' model = ' ich9-uhci3 ' > < master startport = ' 4 ' /> </ controller > < redirdev bus = ' usb ' type = ' spicevmc ' /> < redirdev bus = ' usb ' type = ' spicevmc ' /> < redirdev bus = '

android usb 通信失败的原因(返回-1)

匿名 (未验证) 提交于 2019-12-02 23:34:01
当使用USB批量传输时,这里列出了事务处理失败时要检查的事项 a)validation已经通过bulkTransfer函数的端点的方向 b)确保缓冲区有足够的长度来存储传入的数据 c) 长度字段也许是最重要的。 如果您知道响应的确切大小,请使用它。 d) 超时参数 。 如果向设备发送查询,并且在收听响应时没有提供足够的超时,则bulkTransfer可以返回-1。 比如前几次都是成功了,之后就失败了,此时就不妨将超时参数加大测试 转载请标明出处: android usb 通信失败的原因(返回-1) 文章来源: https://blog.csdn.net/king_hh/article/details/90440528

C#中USB转串口的拔插捕获

匿名 (未验证) 提交于 2019-12-02 22:06:11
// usb消息定义 public const int WM_DEVICE_CHANGE = 0x219; public const int DBT_DEVICEARRIVAL = 0x8000; public const int DBT_DEVICE_REMOVE_COMPLETE = 0x8004; public const UInt32 DBT_DEVTYP_PORT = 0x00000003; [StructLayout(LayoutKind.Sequential)] struct DEV_BROADCAST_HDR { public UInt32 dbch_size; public UInt32 dbch_devicetype; public UInt32 dbch_reserved; } [StructLayout(LayoutKind.Sequential)] protected struct DEV_BROADCAST_PORT_Fixed { public uint dbcp_size; public uint dbcp_devicetype; public uint dbcp_reserved; // Variable?length field dbcp_name is declared here in the C header file. } ///

让Linux支持usb虚拟网卡。

匿名 (未验证) 提交于 2019-12-02 21:59:42
Usb作为device端插入pc,在pc中会出现对用的usb虚拟网卡,可以像普通网卡一样传递数据,socket编程。 本次使用的设备是AKV300作为嵌入式平台连接PC,让平台支持usb虚拟网卡,需要Linux内核支持UDC(usb 设备控制器)驱动和 Ethernet Gadget ( CDC Ethernet )驱动,cdc是usb的设备通讯类,Ethernet Gadget 驱动支持将多个以太网帧分组为一个USB传输。平台还需要支持rndis(Remote Network Driver Interface Specification),基于USB实现RNDIS实际上就是TCP/IP over USB,就是在USB设备上跑TCP/IP,让USB设备看上去像一块网卡。 1.首先关闭USB的host功能,打开usb gadget功能。 2.进入到USB gadget support,打开USB Peripheral Controller,Anyka usb device Port, udc driver support(usb-otg)对应平台的UDC设备控制,让USB控制器运行在device模式。 3.打开Ethernet Gadget 和RNDIS驱动支持。 4.编译最后生成两个ko。udc.ko和g_ether.ko。 5.将两个ko放入文件系统烧录到板上并加载ko

Linux libusb USB开发(四)―― libusb例程,Linux环境下实现PC与USB设备的交互通信 (用的QT C++)

匿名 (未验证) 提交于 2019-12-02 21:56:30
一、具体流程 用libusb函数库来完成电脑与USB设备的数据交互功能,主要有以下步骤: 1)初始化libusb函数库; 2)根据vid和pid查找某一具体设备,并获取设备描述符;(vid和pid为设备的id,且每台设备的都vid和pid是唯一的) 3)根据设备描述符打开相应设备,获取设备操作符; 4)用设备操作符配置usb设备的配置模式和接口; 5)调用相应传输函数向usb设备发送数据,本项目中用的是块传输方式; 6)调用相应传输函数读取usb设备的反馈数据,本项目中用的是块传输方式; 7)释放usb设备接口,关闭设备。 综上,步骤1、2为初始化操作,步骤3、4为usb设备打开和配置操作,步骤5、6为电脑与usb设备数据传输操作,步骤7为usb设备关闭和释放系统资源操作。 二、代码展示 //打开usb设备 void MainWindow::on_pushButton_clicked() { int r; ssize_t cnt; //libusb_context *ctx=nullptr; //context 上下文 libusb_device **devs; //devices int i=0; if("open"==ui->pushButton->text()) { ui->pushButton->setText("close"); r=libusb_init(&ctx);

【java基础】第11天――接口、多态

匿名 (未验证) 提交于 2019-12-02 21:53:52
今日内容介绍 1、接口 2、多态 =======================第一节课开始============================================= * A:接口的概念 接口是功能的集合,同样可看做是一种数据类型,是比抽象类更为抽象的”类”。 接口只描述所应该具备的方法,并没有具体实现,具体的实现由接口的实现类(相当于接口的子类)来完成。这样将功能的定义与实现分离,优化了程序设计。 请记住:一切事物均有功能,即一切事物均有接口。 * A: 接口的定义 与定义类的class不同,接口定义时需要使用interface关键字。 定义接口所在的仍为.java文件,虽然声明时使用的为interface关键字的编译后仍然会产生.class文件。这点可以让我们将接口看做是一种只包含了功能声明的特殊类。 * B : 定义格式 public interface 接口名 { 抽象方法1; 抽象方法2; 抽象方法3; } * C: 定义步骤 使用interface代替了原来的class,其他步骤与定义类相同: 接口中的方法均为公共访问的抽象方法 接口中无法定义普通的成员变量 * A: 类与接口的关系 类与接口的关系为实现关系,即类实现接口。实现的动作类似继承,只是关键字不同,实现使用implements。 其他类(实现类)实现接口后,就相当于声明: