
USB
www.wowothink.com
分享!!!
展开
-
USB 全速/高速设备识别信号分析
以下的内容转载自USB chirp信号测试,在这篇文章中详细的解释了USB高速设备的握手过程,以及通过分析D+和D-上面的波形来进行说明。很赞的一篇文章。Chirp K J信号说明USBchirp信号分为K信号和J信号。根据USB速率将Chirp信号做如下区别: USB全速高速识别过程分析根据规范,全速(Full Speed)和低速(Low Speed)很好区分。因为在设备端有一个1.5k的上拉电原创 2017-06-15 00:05:26 · 15628 阅读 · 6 评论 -
USB设备无响应
Device No Response 测试介绍在USB认证中,otgeh_compliance_plan_1_2.pdf 测试文档有一项关于连接超时显示Device No Response的测试。 描述如下: 测试步骤如下: 说白了,就是说连接一个无法识别的USB设备到Embedded Host上,判断其能否在30s内给出“Device No Response”的提示,如果有原创 2017-11-05 17:41:38 · 10307 阅读 · 1 评论 -
Multi-threaded applications and asynchronous I/O(翻译)
此文章使用Goolge进行翻译学习使用。原文网址为:http://libusb.sourceforge.net/api-1.0/mtasync.htmllibusb是一个线程安全的库,但是应用于与多线程中的libusb交互的应用程序必须要注意。必须解决的根本问题是,所有的libusb I/O 都围绕着通过poll()/select()系统调用来监视文件描述符。这是直接暴露在异步接口,但需要着重注意的翻译 2017-12-09 16:58:00 · 1193 阅读 · 0 评论 -
libusb_bulk_transfer() 阻塞长达60s的原因
以下内容,纯属记录。最近调查在通过libusb与Android手机进行AOA通信,当手机拔掉,在write线程中会去调用libusb_bulk_transfer()进行相关的动作。但是会出现调用这个函数block长达60s时间才退出返回,即使设置参数timeout也没用。截取到的log如下: write线程第 00:00:49.532 开始写,但是直到 00:01:49.728 才返回。但是rea原创 2017-12-09 17:07:30 · 12422 阅读 · 2 评论 -
Android 开放配件 (AOA)调试
车载导航的开发中,有可能需要开发支持Android CarLife或者Android Weblink等功能,而这些功能需要使用AOA协议的支持。因此,下面的文章将简单介绍AOA的相关知识。简介Google 官方AOA 的定义: https://source.android.com/accessories/protocol.htmlGoogle 官方提供了 adk2012 开发套件(包含 Andro原创 2017-11-05 18:33:50 · 17409 阅读 · 0 评论 -
Data Center Software 协议分析工具的使用
有一个 Beagle™ USB 480 Protocol Analyzer 协议分析工具(https://www.totalphase.com/media/datasheet/TP_Beagle_USB_480_Protocol_Analyzer-Datasheet.pdf),可以抓取USB总线上的数据。配合Data Center Software可以抓取分析USB总线上的数据。软件下载地址http原创 2017-10-07 16:26:50 · 7469 阅读 · 2 评论 -
最全USB 接口类型
本文全部转载自以下网站: https://www.cablestogo.com/learning/connector-guides/usb总览USB A-TypeUSB B-TypeUSB C-TypeMicro-USB AMicro-USB BMicro-USB AB:前两个公头的母头USB Mini-b(5-pin)USB Mini-b(4-pin)USB 3.0 A-TypeUSB 3.0原创 2017-10-07 16:09:09 · 70131 阅读 · 0 评论 -
Linux kernel U盘识别流程
一、正常USB枚举及断开的log正常U盘插入和拔掉Kernel log的打印消息如下:[ 220.836836] usb 2-1: new high-speed USB device number 4 using xxx-ehci[ 220.984187] usb-storage 2-1:1.0: USB Mass Storage device detected[ 220.990977]原创 2017-08-06 15:11:11 · 13811 阅读 · 2 评论 -
Androidadb的编译配置及常见问题
Androidadb驱动的代码在以下两个文件中实现,这部分的内容属于Linux USB Gadget的范畴了。<Kernel_Dir>/drivers/usb/gadget/androidadb.c<Kernel_Dir>/drivers/usb/gadget/f_adb.c关于Androidadb驱动的实现原理可以参照我的另外一篇文章:应用层的实现代码在以下目录: <Project_Dir>/原创 2017-07-22 23:13:32 · 6833 阅读 · 0 评论 -
Androidadb驱动实现原理
Androidadb的驱动由androidadb.c和f_adb.c实现,androidadb.c的开头会#include “f_adb.c”,最终编译出来的是g_androidadb.ko文件。这里涉及到Linux USB Composite Framework的知识,下次再整理一下这方面的知识。创建struct usb_composite_driverAndroidadb属于USB复合设备,注册原创 2017-07-23 18:36:23 · 5283 阅读 · 3 评论 -
USB设备状态设置-- usb_gadget_set_state()
一、USB设备状态在USB 2.0协议中第 9.1 USB Device States 章节规定了USB设备的6种状态,包括: Attached/Powered/Default/Address/Configured/Suspended其状态迁移图如下: 在 Linux Kernel ch9.h 文件中用 enum usb_device_state 来标记这几种状态。// <kernel_dir>原创 2017-07-22 13:08:06 · 4199 阅读 · 0 评论 -
USB设备插入和拔出的波形
下面测试了iPhone和U盘插入/拔出时D+和D-上的波形。黄色为D+,绿色为D-。iPhone插入的波形整体波形1 处的波形只有iPhone插入连接CarPlay或者是Android手机插入连接Carlife才会有,还不知道这里的波形是怎么产生的。2 处的波形是枚举阶段速度的判定,即握手检测阶段。3 处的波形与2 处的类似,像是Host再做一次reset。4 处的波形是连接CarPlay做原创 2017-07-30 13:44:08 · 12787 阅读 · 0 评论 -
USB 2.0 协议中文注解
最近在做USB相关的开发,特别是USB设备的断开以及识别的过程,因此经常要查看USB 2.0的官方文档。在此将其中某些相关的章节根据自己的理解做翻译,因此加深对其的理解。翻译得不是很好,请谅解。一、 upstream&downstreamHost or Hub:我们这里可以简单的理解为USB Host;Function:一个USB设备有多个Function,这里可以简单的理解为一个USB设备;原创 2017-06-15 00:46:25 · 8643 阅读 · 0 评论 -
USB 2.0 协议中J、K、SE0状态的定义
在USB 2.0协议中经常会看到以下术语:Chirp K、KJ序列、SE0。这里的状态是根据低速、全速/高速下设备D+和D-上不同的电平信号来决定的。通俗解释J态、K态、SE0低速设备: J态: D+ =“0”,D- =“1” K态: D+ =“1”,D- =“0” SE0态:D+ =“0”,D- =“0” 从J到K或者从K到J,信号翻转,说明发送的是信号0; 从J到J或者从原创 2017-06-14 23:33:14 · 26746 阅读 · 2 评论 -
通知:转移至个人博客站 http://wowothink.com/
hi,各位朋友。本博客已不再更新,后续的文章将发表至个人的博客站点:http://wowothink.com/ 秉持分享学习的态度,我将会继续分享出更多有意义的文章,欢迎朋友们相互交流指正。...原创 2018-06-10 11:35:49 · 1342 阅读 · 0 评论