接口/总线/驱动
USB总线电平标准如下,下图标识了低速/全速、高速总线输出特性的电平标准。
下图显示了USB低速和全速总线信号1、信号0、SE0状态、SE1状态、J状态、K状态、空闲IDLE状态下D+、D-线分别对应的电平信号范围。
下图显示了USB高速总线信号1、信号0、J状态、K状态、Chirp J状态、Chirp K状态、空闲IDLE状态下D+、D-线分别对应的电平信号范围。
注:由上面两张图可以总结出low speed和full/high spped J状态/K状态相反。
USB总线信号有SOP信号、EOP信号、Reset信号、Suspend信号、Resume信号、SYNC信号、连接信号、断开信号等。那么当USB总线状态发生怎样的变化才会生成这些信号呢?我们在这里只讨论低速/全速的总线信号,高速的略有差别,大家可以查阅usb_20.pdf进行学习。
3.1.SOP信号
低速设备SOP信号:总线从IDLE状态(J状态:差分0)切到K状态(差分1),即可完成低速SOP信号的发送。
全速设备SOP信号:总线从IDLE状态(J状态:差分1)切到K状态(差分0),即可完成全速SOP信号的发送。
3.2.EOP信号
低速设备EOP信号:总线持续2位时间的SE0(单端0)状态,后跟随1位时间的J状态(差分0),即可完成低速EOP信号的发送。
全速设备EOP信号:总线持续2位时间的SE0(单端0)状态,后跟随1位时间的J状态(差分1),即可完成全速EOP信号的发送。
3.3.Reset信号
主机可以对USB设备进行复位,主要是主机在和设备通讯之前会发送Reset信号把设备设置到默认的未配置状态, 即主机拉低两根信号线(SE0状态)并保持10ms。
3.4.Suspend信号
总线3ms以上的IDLE状态,则设备会认为主机发起了一次挂起操作。
3.5.Resume信号
USB设备进入挂起状态之后,将由Resume信号进行唤醒。Resume信号可以由USB主机发起,也可以由USB设备本身触发, 但是只有USB主机可以结束Resume信号。
3.6.SYNC信号
3个KJ状态的切换,后跟随2位时间的K状态,完成一次同步信号的发送。如下图所示。
3.7.连接信号
当主机检测到 某一个数据线电平拉高保持了一段时间 ,就认为有设备连接上来了。低速设备连接时,主机会检测到D-线被拉高,全速/高速设备连接时,主机会检测到D+线被拉高。
(1)低速设备连接检测时序图
(2)全速/高速设备连接检测时序图
TDCNN针对Hub不同的状态,时间是不同的,如下对应表(见usb_20.pdf P186)。
Hub状态 | TDCNN |
---|---|
没有被挂起 | 2.5us < TDCNN < 2000us |
被挂起 | 2.5us < TDCNN < 12000us |
3.8.断开信号
没有设备连接时或者设备断开时,主机端D+、D-数据线上的下拉电阻起作用,使得二者都在低电平;当低电平持续TDDIS时间就会被主机认为是断开状态。如下图,TDDIS在2到2.5us之间。
STM32 USB设备也可以对自身进行复位,置位控制寄存器的FRES对USB模块强制复位,此时USB模块将一直保持在复位状态下直到软件清除此位。如果USB复位中断被使能,将产生一个复位中断。USB设备在上电后首先会强制对自己进行复位,让自己处于未配置状态。
全部0条评论
快来发表一下你的评论吧 !