USB控制传输


控制传输

 

   控制传输是USB传输中最重要的传输,只有正确地执行完控制传输,才能进一步地执行其他的传输类型。这种传输是用来提供介于主机与设各之间的配置、命令或状态的通信协议。控制传输能够使能主机去读取相关设各的信息,去设置设各地址,以及选择配置与其他的设置等。此外,控制传输也能够送出自定义的要求,以针对任何的目的送出与接收数据。因此,须以双向传输来达到这个要求。当然,所有的USB设备必须支持控制传输。

  控制传输又包含了3种控制传输形态:控制读取、控制写人以及无数据控制。其中,又可再分为23个层:设置层、数据层(无数据控制没有此层)以及状态层。当然,根据通信协议的简易口诀,这最后的3则为实现一个控制传输所需的3个数据交易层。通过这样介绍,用户或许会有点模糊。

如图1所示。

usb-控制传输

  图1 USB控制传输的关联图

  每当设备第一次连接到主机时,控制传输就可用来交换信息,设置设各的地址或读取设备的描述符与要求。由于控制传输非常重要,所以必须确保传输的过程没有发生任何错误。这个帧错的过程可以使用CRCCyclic Redundancy Check,循环校验)错误检查方式来加以检测。如果这个错误无法恢复,只好再重新传输一次。

  每一个USB设备第一次执行控制传输时,占用了端点0以及地址0。其中,端点0是作为控制传输的特定端点,别的USB传输类型不能拿来使用;而地址0,则是一开始外围设备所占用的预留地址。

  控制传输都是采用对设各发出要求的方式,让设备可以遵循USB主机所起始的要求格式。而这种传输方式,主要就是将数据从设备传回至主机上。例如,当主机发出了一个设备要求去读取一个设备描述符时,就会执行控制传输。该要求的结构中包了SETP封包以及随后紧接着描述设各要求8字节数据的DATA0封包。

  以下,列出主机对外围设各产生起始作用的3种基本控制传输:

  ·控制读取;

  ·控制写人;

  ·无数据控制。

  这些控制传输能够再区分为3种不同的数据交易的型态:设置层、数据层以及咿层,如表所列。每一个阶段即是一个数据交易。一个控制传输共需3个数据交易,这即是54233的第5个数字“3”。用户也可同时参考表31的传输类型、数据交易与包的关系。

  表 控制传输

  另外,在执行控制传输的时候,还须使用数据紧密连接机制来确保整个的传输赳中,主机与设备能维持同步,并确保数据的正确性。而执行控制传输时的数据紧密连程序,如图2所示

usb-控制传输

 

  图2 执行控制传输时,数据紧急密连接程序

  其中,每一个层即是一个数据交易的过程。以下,依序介绍控制传输的各种层。

  1.设置层

  设置层的数据交易包含了:SETUP令牌封包与随后跟着的DATAO数据封包以及ACK握手封包共3个阶段。在DATA0封包内包含了用来描述从主机所要送给设备的要求,其所占用的8个数据宇节即可描述这个设各要求。若这个设各送出ACK令牌封包给主机,代表确认收到了数据。

  设置层是控制传输中的第一层,其作用是执行一个设置的数据交易,并定义此控制传输的内容是什么。此时,数据就会传至设各中,并指明是何种设各要求。如图3所示,显示了控制传输的设置层。其中,包含了起始封包(SOF)、令牌封包(SETUP)、数据封包(DATA0)以及握手封包(ACK)。其中,说明了起始封包、令牌封包以及数据封包是由PC主机所发出的,而紧接着设各再发出握手封包。除了起始封包外,根据前一章所提及的USB通信协议简易口诀,即是54233的第4个数字“3”

usb-控制传输

 

  图3 控制传输的第一层:设置层


 转自连接:http://blog.sina.com.cn/s/blog_3d6cdc390100iu9w.html


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 适合毕业设计、课程设计作业。这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。 所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答!
### 回答1: cypressusb控制传输数据出错可能是由于多种原因引起的。可能是由于硬件故障,如设备或USB接口的故障,导致传输数据时出现错误。此外,错误的电源管理设置或传输协议设置也可能导致cypressusb控制传输数据出错。另外,驱动程序或固件问题也可能导致传输数据时出错。如果您遇到cypressusb控制传输数据出错问题,您可以检查以下几个方面: 1. 确保设备和USB接口正常工作,排除硬件故障的可能性; 2. 确认电源管理和传输协议设置正确,避免错误设置导致传输数据出错; 3. 更新或重新安装驱动程序和固件,以解决可能的驱动程序或固件问题; 4. 检查传输数据时是否有其他程序或设备在干扰,如关闭干扰程序或断开其他设备。 如果以上步骤都无效,建议寻求专业技术支持或联系设备制造商以解决cypressusb控制传输数据出错问题。 ### 回答2: CypressUSB是一种USB控制器,其作用是在两个USB设备之间进行数据传输。然而,当使用CypressUSB控制器传输数据时,有可能会出现错误。 造成CypressUSB控制传输数据出错的原因可能有多种,例如硬件故障、驱动程序问题等等。此外,数据传输过程中可能由于网络或其他因素导致数据包被丢失或损坏,从而引起出错。 要解决CypressUSB控制传输数据出错的问题,一些措施可以尝试。首先,可以检查硬件问题并确保设备与驱动程序兼容。其次,需要做好数据传输过程中的数据丢失或损坏的预防工作,采用可靠的网络传输协议和传输手段,例如TCP协议。此外,还需要进行测试和故障排除,以查找出导致数据传输出错的具体原因。 总之,解决CypressUSB控制传输数据出错的问题并不是一件简单的事情,需要多方面地考虑和做好预防工作,确保数据传输的有效性和稳定性。 ### 回答3: Cypress USB控制传输数据出错可能有多种原因,下面就可能的原因进行分析和解答。首先,可能是设备本身出现问题,例如连接不良、设备驱动程序出现故障、传输线路损坏等等,这时应先检查设备和传输线路是否正常。其次,可能是USB主机控制器的BUG或者驱动程序的错误,可以尝试升级或者更换驱动程序。再次,可能是与USB控制器相关的系统服务未正常启动或出现异常,可以尝试重启服务或者重新安装。此外,还应注意检查数据传输的缓存大小和数据传输方式是否与硬件接口规格一致,这也可能会导致传输出错。总之,出现Cypress USB控制传输数据出错时,应该逐步排除故障,找到具体原因,并采取相应的措施进行修复,以保证设备的正常使用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值