文档章节

USB开发基础知识1

jjinl
 jjinl
发布于 2017/07/04 16:33
字数 460
阅读 50
收藏 0
点赞 0
评论 0
usb

打算使用 FPGA+UTMI PHY实现一个数据传输。开贴记录基础知识。使用USB2.0,只考虑全速和高速两种状态。

USB识别全速和高速设备在D+线上接1.5K上拉电阻。

全速和高速线状态

DM/D- DP/D+ 状态
0 0 SE0 状态
0 1 J 状态
1 0 K 状态
1 1 SE1 状态

空闲状态全速 J状态表示空闲,高速 SE0状态表示空闲

全速设备:SE0表示EOP,SE0维持2.5us表示总线复位

高速设备:SE0维持3ms-3.125ms进入全速状态,全速后100us-875us内,

  •   如果继续维持SE0状态,则进入复位,开始高速握手
  •  如果变成J状态则挂起。

高速握手条件 :

  • 设备处于挂起状态,若出现SE0则立即开始高速握手;
  • 设备处于全速,SE0持续2.5us,则开始高速握手;
  • 设别处于高速,SE0持续3.0ms,切继续持续,则开始高速握手。

 

高速握手过程:
当设备为非低速设备,且总线处于SE0状态才可以进行高速握手。

1.在复位阶段,scvrselect和termselect为全速状态,DP被上拉,HS terminations被屏蔽,opmode被驱动disable bit stuffing and nrzi encoding状态。
2.xcvrselect变为高速时,设备发送chirp K暨全零信号到主机,同时txvalid有效。
3.高速集线器检测到chirp K后发送一串交替的chirp K J对,设备检测到三个chirp K J对后,
驱动termselect为高速。
4.高速集线器发现termselect变化后持续若干chirp K J对后进入短暂SE0状态,之后便开始
发送sof 包。
5.高速握手成功。

若设备在发送chirp K后没有相应,则设备只能工作在全速模式

© 著作权归作者所有

共有 人打赏支持
jjinl

jjinl

粉丝 1
博文 7
码字总数 2384
作品 0
武汉
高级程序员
日常生活 -- 专业能力和项目经验

最近要开始为找工作做准备了,第一件事就是写简历。而其中的专业技能和项目经验是值得考虑的部分。 CSDN博客写了两年,原创博文也有270多篇。现在根据专业技能部分和项目经验部分,将其总结一...

qq_29350001 ⋅ 01/06 ⋅ 0

日常生活 -- 专业能力和项目经验

最近要开始为找工作做准备了,第一件事就是写简历。而其中的专业技能和项目经验是值得考虑的部分。 CSDN博客写了两年,原创博文也有270多篇。现在根据专业技能部分和项目经验部分,将其总结一...

qq_29350001 ⋅ 2017/12/04 ⋅ 0

第一款Micropython图形化编辑器—Python Editor

当你看到这篇文章的时候,显然你已经阅读了很多类似的文章,那么本篇文章会深入讲解一些新手的需求,提供详细的建议,当然我不会告诉你具体怎么做,一切答案都是肤浅的。 就拿我自己来说,初...

bodasisiter ⋅ 04/23 ⋅ 0

LilyPad Arduino可穿戴技术和电子织物控制器板简介

LilyPad Arduino可穿戴技术和电子织物控制器板简介 第1章 LilyPad Arduino概览 作为本书的第一章,在这里将为读者介绍LilyPad Arduino相关的基础知识。例如,LilyPad Arduino是什么、它可以做...

大学霸 ⋅ 2015/03/31 ⋅ 0

S5PV210开发 -- USB 你知道多少?(一)

USB接口也是经常用到的,这一篇还是从它的基础知识讲起。 一、USB介绍 通用串行总线(英语:Universal Serial Bus,缩写:USB)是连接计算机系统与外部设备的一种串口总线标准,也是一种输入...

qq_29350001 ⋅ 01/15 ⋅ 0

嵌入式工程师有前途吗 嵌入式开发的职业发展方向是什么

嵌入式早在70年代出现到现在,有将近30年的发展历史,能够长久存在并且可持续发展。从工程师起步, 一般有几个发展方向,一个是成为技术方面的核心,领域内的专家;另一个是从项目中锻炼起来...

创客学院 ⋅ 04/08 ⋅ 0

分享一篇防刷机知识的文章

这个图,说明了下载手机版本所依赖的资源关系。基于这样的资源和工具,我们才能做各种UI的移植,版本的优化,才能让我们的手机变得更加个性化,才能把我们的工作成果下载到手机中并且运行起来...

MK_ROM ⋅ 2015/09/28 ⋅ 0

与fastboot相关的知识

以下内容源于朱有鹏嵌入式课程的学习,如有侵权,请告知删除。 一、fastboot的基本知识 1、什么是fastboot (1)fastboot是android使用的一种刷机方法。 android系统设计了2种刷机方式:fas...

oqqHuTu12345678 ⋅ 2017/05/16 ⋅ 0

嵌入式学习:嵌入式硬件和软件详解

在嵌入式开发中,是分为硬件部分和软件部分的,大多数的初学者对于嵌入式的硬件和软件之间的区别不是很了解,所以今在这里就和大家具体说说嵌入式硬件和软件详解,大家可以参考一下。 图片来...

IT范儿 ⋅ 2017/11/18 ⋅ 0

Linux 硬件管理的基础知识

一、在Linux 系统中,对硬件判别的标识的依据; 在 LinuxSir.Org 讨论区,我们经常看到有些弟兄这样来描述自己的硬件“我的显示卡是XXX牌子的,Linux 不支持怎么办?”。其实这样描述是最差的...

JavaGG ⋅ 2009/06/03 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

对于程序员的招聘问题,作为软件人的一些吐槽和建议

作为软件人,找工作有时候似乎挺苦逼的。 说真的,让我去掉前面这句中“似乎”二字吧。就是苦逼!很多人都曾抱怨处在招聘的一方很糟糕——我们没有任何可靠的方式来甄别会写代码并且写得好的...

老道士 ⋅ 34分钟前 ⋅ 0

HDFS原理学习

一、概述 1、 Hadoop整合了众多的文件系统,首先提供了一个高层的文件系统抽象org.apache.hadoop.fs.FileSystem。然后有各个文件系统的实现类。 2、Hadoop是JAVA编写的,不同文件系统之间的交...

cjxcloud ⋅ 38分钟前 ⋅ 0

Linux下MySQL表名不区分大小写的设置方法(抄袭别人的)

Linux下MySQL表名不区分大小写的设置方法 MySQL表名不区分大小写的设置方法 在用centox安装mysql后,把项目的数据库移植了过去,发现一些表的数据查不到,排查了一下问题,最后发现是表名的大...

随风而浮沉 ⋅ 43分钟前 ⋅ 0

ubuntu下安装宋体simsun

sudo cp simsun.ttc /usr/share/fonts cd /usr/share/fonts sudo chmod 644 simsun.ttc 更新字体缓存: 代码: sudo mkfontscale 代码: sudo mkfontdir 代码: sudo fc-cache -fsv 安装chrome扩......

wangxuwei ⋅ 45分钟前 ⋅ 0

利用 ssh 传输文件

Linux 下一般可以用 scp 命令通过 ssh 传送文件: #把服务器上的 /home/user/a.txt 发送到本机的 /var/www/local_dir 目录下scp username@servername:/home/user/a.txt /var/www/local_dir...

大灰狼时间 ⋅ 55分钟前 ⋅ 0

web3j教程:android和java程序员如何使用web3j开发区块链以太坊

如何使用web3j为Java应用或Android App增加以太坊区块链支持,本教程内容即涉及以太坊中的核心概念,例如账户管理包括账户的创建、钱包创建、交易转账,交易与状态、智能合约开发与交互、过滤...

智能合约 ⋅ 今天 ⋅ 0

web3j开发java或android以太坊智能合约快速入门

web3j简介 web3j是一个轻量级、高度模块化、响应式、类型安全的Java和Android类库提供丰富API,用于处理以太坊智能合约及与以太坊网络上的客户端(节点)进行集成。 可以通过它进行以太坊区块链...

笔阁 ⋅ 今天 ⋅ 0

一起读书《深入浅出nodejs》-异步I/O

异步I/O “异步”这个名词其实很早就诞生了,但它大规模流行却是在Web 2.0浪潮中,它伴随着AJAX的第一个A(Asynchronous)席卷了Web。 为什么要异步I/O 关于异步I/O为何在Node里如此重要,这与...

小草先森 ⋅ 今天 ⋅ 0

JVM各种问题

1、如果启动什么都不设,会怎样? 先来看一个命令 [root@localhost bin]# java -XX:+PrintCommandLineFlags -version -XX:InitialHeapSize=29899008 -XX:MaxHeapSize=478384128 -XX:+PrintCo......

算法之名 ⋅ 今天 ⋅ 0

SAS笔记-宏2

宏是一种文本,一般来说其编译是在程序执行之前。 宏变量的创建 %let语句 %let macro_variables = text; %let是常见的宏变量建立方式,其编译就在执行前。如下例中,想要宏变量test等于数据集...

tonorth123 ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部