专注于武汉中小企业服务解决方案提供商

电脑维修、布线、安防监控、数据恢复、采购、回收

所属分类 > 家电维修 > 正文

基于DWC2的USB驱动开发-PING协议详解 (digilent usb device驱动)

编辑:rootadmin
本文转自公众号,欢迎关注基于DWC2的USB驱动开发-PING协议详解(qq*)一.前言这里先介绍下PING协议的背景和原理,我们不一上来就介绍PING包格式和协议,因为只有知其然知其所以然才能加深理解,任何事务都是有其出现的历史背景的,不会凭空而生,所以理解背后产生的背景和原理很重要。全/低速的批量/控制传输OUT事务,如果设备没有就绪,则可以NAK表示端点不接受数据,主机可以稍后重发。以上过程存在一个问题,就是OUT数据之后设备NAK,OUT数据这部分时间会占用总线,如果设备一直未就绪一直NAK,主机一直重发将会大量占用总线。高速设备旨在提高传输带宽,所以对这种带宽的浪费是不能容忍的,必须优化。优化的思想其实很朴素,既然重*费带宽,那么就先“问一下”,先“问一下”设备准备好了没,只有收到设备回复准备好了再发数据,这样“问一下”这句话很短占用带宽不多,浪费较少。这个问一下就对应的PING包。只在高速设备才支持PING,且只有控制传输和批量传输支持,且都是针对OUT。控制传输OUT(数据和状态阶段,SETUP阶段不支持PING)批量传输OUT的数据阶段。二.PING包格式Ping包的ID为B,和令牌包格式一样

整理分享基于DWC2的USB驱动开发-PING协议详解 (digilent usb device驱动),希望有所帮助,仅作参考,欢迎阅读内容。

内容相关其他词:dwc3usb驱动,dwc3驱动,dwc usb,dwc3usb驱动,dwc3usb驱动,wdf usb驱动开发指南,usbcrw驱动,dwc3驱动,内容如对您有帮助,希望把内容链接给更多的朋友!

基于DWC2的USB驱动开发-PING协议详解 (digilent usb device驱动)

如下是一个实例

三.PING协议过程和实例Ping的响应是硬件做的,因为设备需要接收主机连续的PING,如果软件处理会来不及。那么硬件怎么知道回主机的PING包回ACK还是NAK呢,这就是看软件有没有配置好DMA并设置CTL寄存器的EPena置位,如果软件已经配置好了则硬件回ACK,并自动接收后面的OUT数据,并通过DMA搬运到用户空间,反之则NAK。过程如下:1.主机OUT数据,设备返回了NAK2.主机收到NAK,知道设备没就绪,于是发PING3.设备收到PING之后如果还未就绪则NAK,否则则ACK4.主机按照描述符中的bInterval时间间隔重新发PING,直到设备ACK,设备ACK后发数据。5.设备收到主机OUT的数据如果还可以继续接收后面的数据则ACK,否则则发NYET。注意虽然前面PING设备ACK了,这里设备还是有可能NAK。主机如果收到设备的ACK则继续发后面的数据,如果收到NYET则表示本次OUT数据成功,但是设备不能接收后续数据,发后面的数据前重复上面的PING过程,如果主机收到NAK则说明本次数据设备没有接收,需要重新PING然后重发本次数据。总结一下就是对于OUT数据设备可能有三种响应ACK:本次接收了,还可以继续接收后面的。NYET:本次接收了,不能继续接收。NAK:本次未接收。上述说明的设备对PINGACK了,但是对后面的数据OUT又NAK了的情况,是不正常的现象,设备都告诉主机准备好了,后面又没有接收数据。高速的批量/控制端点在其端点描述符中需要指定其最大NAK速率。每个bInterval时间间隔内,端点最多允许NAK一次。如果端点的描述符bInterval为0则表示端点从不会NAK。如果在数据阶段之后发生超时,主机必须返回到PING阶段。转回PING状态不会影响事务数据阶段的datatoggle状态。以下是一个实例过程

(1)主机OUT数据,设备NAK了,表示设备不能接收(2)主机看到设备NAK,不能接收,于是进入PING状态。注意上面主机不会一上来就PING,因为这个时候还不知道设备能不能接收,所以先不管三七二十一发一把再说,万一设备能接受呢。只有主机确认设备不能接收,即设备NAK之后才会进入PING状态。

(3)设备一直NAK则主机一直PING(4)设备终于ACK了主机的PING,表示可以接收数据了。这里的ACK是设备的硬件做的,所以在此之前设备的软件配置好了DMA并置位了DOEP的CTL寄存器的EPena位。(5)主机OUT数据,设备也接受了,回了ACK,至此数据的OUT阶段总算成功了。第(5)步设备实际还有可能回NAK,表示未接收,回NYET表示本包接收但是不能接收下一包。四.总结以上介绍了高速数据阶段的PING协议,了解了过程和背景,对于驱动开发人员尤其要了解哪些是硬件做的,哪些是软件做的,分别在什么阶段什么时机做。本文来自互联网收集整理,由家电维修技术小编精心转载,更多相关文章请到维修交流:汤梓红

标签: digilent usb device驱动


本文链接地址:https://www.iopcc.com/jiadian/92662.html转载请保留说明!

上一篇:一种电动栏杆机控制器的设计与实现 (电动栏杆结构图)

下一篇:27MHz发送器电路原理图详解 (发送器原理图)

推荐内容:

格兰仕C20-F6B电磁炉,显示"E4"、"E5"、" E6"故障代码 (格兰仕c2s0)

格兰仕C20-F6B电磁炉,显示"E4"、"E5"、" E6"故障代码 (格兰仕c2s0)

故障代码故障症状:开机后显示"四"、"E5"、"四"故障代码。检查与分析:根据现象分析,该故障可能出在炉面温度检测电 ...

校园网无线路由器设置(校园内如何设置路由器) (校园网无线路由设置)

校园网无线路由器设置(校园内如何设置路由器) (校园网无线路由设置)

由器怎么设置路由器亮红灯哪种故障路由器登录入口和光猫的区别路由器怎么重启路由器怎么连接路由器桥接教程详 ...

空调大管子【粗管】结霜的原因 (空调管道粗细)

空调大管子【粗管】结霜的原因 (空调管道粗细)

工人上门发现,细管子凉,粗管子结霜,内热交也结霜,压力0.3Mpa,电流低(当时室外温度℃相对湿度%阴天)切加氟 ...

苹果被曝新漏洞:黑客发现微软Office的安全漏洞,可以控制苹果的MacOS (苹果的漏洞怎么反应)

苹果被曝新漏洞:黑客发现微软Office的安全漏洞,可以控制苹果的MacOS (苹果的漏洞怎么反应)

atrickWardle在Mac版的MicrosoftOffice中发现了一个安全漏洞。该漏洞可能导致黑客控制整个Mac电脑。Wardle只能使用包含恶意 ...

跟家电维修小编学习Ghost win764位系统和32位系统旗舰版的区别 (搞家电维修怎么样挣钱)

跟家电维修小编学习Ghost win764位系统和32位系统旗舰版的区别 (搞家电维修怎么样挣钱)

舰版的区别的内容,很多的用户都还傻傻分不清楚关于原版Ghostwin位*和位*旗舰版的区别,这里小编就来为大家详细的 ...

电脑怎么重装系统简单又快速 (电脑怎么重装系统win10)

电脑怎么重装系统简单又快速 (电脑怎么重装系统win10)

和复杂的事情,一旦电脑*长时间使用卡成狗了,没办法的还要花钱拿去电脑店搞定。一直秉承 ...

Win11黑屏任务管理器打不开该如何维修? (win10黑屏任务管理器看不见)

Win11黑屏任务管理器打不开该如何维修? (win10黑屏任务管理器看不见)

当我们的电脑使用时间久了,什么问题都有可能会遇到,近期就有用户的电脑黑屏了,并且想要调出任务管理器,但 ...

新电脑如何重装系统?新电脑重装Win10系统教程 (新电脑如何重装系统教程)

新电脑如何重装系统?新电脑重装Win10系统教程 (新电脑如何重装系统教程)

而且还具备稳定、流畅、易用等特点,但再好的*也会因为人为的*作而出现问题,这时候就需要去重装电脑,很多小伙 ...

Win11如何设置删除确认提示? (windows11怎么删除windows.old)

Win11如何设置删除确认提示? (windows11怎么删除windows.old)

提示,可能会导致误删很多东西。那Win如何设置删除确认提示呢?下面我们就来看看具体的设置方法,只需要在回收 ...

win7任务管理器中怎么查看cpu频率信息教学 (win7任务管理器打不开)

win7任务管理器中怎么查看cpu频率信息教学 (win7任务管理器打不开)

学。使用电脑的时候,我们开启了比较多的应用程序之后,可以去进行电脑cpu频率的查看,看看cpu负荷的情况怎么样 ...

Copyright © 2023 武汉电脑维修 All Rights Reserved.

鄂ICP备2023003026号

免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢!邮箱: opceo@qq.com