嵌入式学习之USB协议(一)

嵌入式学习之USB协议(一)

文章目录
一、USB电器特性
二、USB总线信号
三、USB连接信号
四、总结

前言

USB接口的设备在工商业领域应用已经非常广泛了,比如U盘,鼠标,键盘,手机等等;USB传输速度快,可扩展性强,兼容性强等众多优点,已经有非常全面的应用;今天我们就来聊一聊他的电气特性,总线信号,连接信号。

一、USB电器特性

USB由4根线组成,Vbus,GND,D+和D-;Vbus和GND是供电信号,比如U盘,鼠标等由主机供电;D+和D-是数据线,USB使用差分传输模式;

差分信号1:D+ > Von(2.8V)且D-<Vol(0.3)
差分信号0:D- > Von(2.8V)且D+<Vol(0.3)

RS485通信是按照差分信号1/0表示数字1和0,而USB则表示J状态和K状态,再通过状态翻转表示数据0,状态保持表示数据1。
USB电气信号——NRZI编码
如图,USB信号的数据0/1与我们通常理解的不太一样。常见的通讯方式如I2C,SCI,SPI,USART等等,都是高电平为数据1,低电平为数据0;而USB信号比较特殊,它采用的是非归零编码,对数据先进行翻转,再发送。

如果要发送连续的数据1呢,电平不变,那就一直都是高电平;为了保证发送数据序列中有足够多的电平变换,USB协议规定了位填充的概念;即:数据流中出现连续的6个1,后面加一个0。
反向不归零编码

二、USB总线信号

Reset信号:复位信号;D+ and D- 小于 Vol 并且>=10ms

Idel状态:J状态

Suspend状态:挂起信号;3ms以上的J状态

SYNC信号:同步信号;3个KJ状态切换,后跟随2位时间的K状态

Resume状态:唤醒信号;20ms的K状态+低速EOP

SOP信号:帧起始信号;从IDLE状态切换到K状态;

EOP信号:持续2位时间的SE0信号,后跟随1位时间的J状态
Resume信号

三、USB连接信号

设备连接/断开信号
USB规范要求低速设备在D-数据线上拉一个电阻,全/高速设备在D+数据线上拉一个电阻;因此主机检测到某个数据线上的电平保持了一段时间,就认为有设备连接了。如果是D+数据线被拉高,则会被认为是全速(高速设备也会被认为是全速,再通过一系列的握手信号(chirp序列)去区分为全速/高速);如果是D-数据线被拉高,则会被认为是低速。
设备连接/断开信号
没有设备连接时或者设备断开时,主机端D+、D-数据线上的下拉电阻起作用,使得二者都在低电平;当低电平持续TDDIS时间就会被主机认为是断开状态。TDDIS在2到2.5us之间

设备集成电阻

USB规范要求全速/高速设备在D+上集成上拉电阻,低速设备在D-上集成上拉电阻;因此主机通过检测上拉电阻就可以得到插入的设备类型及速度。
设备集成电阻

总结

USB设备现在已经很常见了,但是由于他协议的复杂性,导致很多人只会使用他而不理解他的电气型号,在复杂的应用环境下出现异常问题而经常束手无策。由于他复杂,所以无法通过软件模拟他的时序去虚拟USB信号,因此对硬件有很高的要求(我们常见的IIC,SPI,USART都是可以使用普通IO口通过软件去模拟的,USB不行);比如SYNC,PID,CRC,地址,端点等等都不需要通过软件去写,硬件已经做好了;所以很多人只会应用而不知道他的原理。

作为一个合格的嵌入式软件工程师,对于信号的走向还是需要了解清楚的;积累的越多,你就越厉害;好了,USB的电气信号今天就写到这里,下一篇我们将接着聊USB通信协议。关于USB电气相关的知识,如果你有不清楚的或我写错的,都可以在评论区告诉我哦;谢谢大家!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值