文档章节

USB开发基础知识1

jjinl
 jjinl
发布于 2017/07/04 16:33
字数 460
阅读 477
收藏 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后没有相应,则设备只能工作在全速模式

© 著作权归作者所有

上一篇: wps无法输入中文
下一篇: USB学习2
jjinl

jjinl

粉丝 1
博文 14
码字总数 5170
作品 0
武汉
技术主管
私信 提问
加载中

评论(0)

rockchip 3128 平台USB接口鼠标U盘功能调试日记

2019-04-12 关键词: rk3128 OTG、rk3128外接鼠标U盘、RK外接鼠标U盘 本篇文章是笔者根据自己当前所掌握知识对 rk3128 平台 USB 接口接鼠标实现输入功能调试的一个记录,不对文章所述内容的绝...

osc_pw27dksr
2019/04/12
2
0
日常生活 -- 专业能力和项目经验

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

qq_29350001
2018/01/06
0
0
日常生活 -- 专业能力和项目经验

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

qq_29350001
2017/12/04
0
0
MicroPython支持图形化编辑了:Python Editor带你轻松玩转MicroPython

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

bodasisiter
2018/06/04
1
0
第一款Micropython图形化编辑器—Python Editor

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

bodasisiter
2018/04/23
467
0

没有更多内容

加载失败,请刷新页面

加载更多

Flutter 使用Navigator进行局部跳转页面

老孟导读:Navigator组件使用的频率不是很高,但在一些场景下非常适用,比如局部表单多页填写、底部导航一直存在,每个tab各自导航场景。 Navigator 是管理路由的控件,通常情况下直接使用N...

老孟Flutter
57分钟前
28
0
使用site-maven-plugin在github上搭建公有仓库

简介 Maven是我们在开发java程序中经常使用的构建工具,在团队合作开发过程中,如果我们想要将自己写好的jar包共享给别人使用,通常需要自己搭建maven仓库,然后将写好的jar包上传到maven仓库...

flydean
今天
25
1
Python笔记:爬取各国疫情仙去人数数据制作南丁格尔玫瑰图

我凌晨用Python爬虫实时从网上爬取各国在疫情中仙去人数的数据,然后仿人民日报制作成“南丁格尔玫瑰图” 英国37048;意大利32877;西班牙27117都对得上; 但美国、法国、巴西的跟百度大数据...

tengyulong
今天
26
0
PHP Session的用法

在 PHP 中,Session 是一种服务器端的机制,服务器使用一种散列表的结构(类似于 JSON)来保存信息。相比于保存在客户端的 Cookie,Session 将用户交互信息保存在了服务器端,使得同一个客户...

linuxprobe2020
今天
37
0
webpack.03-打包js同时生成html页面

在空文件夹初始化:CMD npm init -y cnpm install -D webpack webpack-cli 文件结构 src(文件夹)--->test.js console.log('hello webpack') src(文件夹)--->index.html <html> ......

_qq507570355
今天
24
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部