Chinaunix首页 | 论坛 | 博客
  • 博客访问: 82247
  • 博文数量: 19
  • 博客积分: 325
  • 博客等级: 一等列兵
  • 技术积分: 197
  • 用 户 组: 普通用户
  • 注册时间: 2012-10-29 11:51
文章分类

全部博文(19)

文章存档

2013年(1)

2012年(18)

我的朋友

分类: LINUX

2012-12-02 11:04:52

USB软件模型中最基本的传输单位 – 包(下面每行对应一个包)

这是一次控制传输的三个阶段(setup、data、status)



包是由字段组成的
字段有7种,不同的包由不同的字段组成,现在先看看有哪7种字段
1.
同步字段
在USB1.1协议中同步字段为8位,用于包的数据同步,表明一个包的开始,
    这8位固定为1000 0000
2.
PID字段
包ID字段为8位,前4位标识这个包的类别,后4位为效验,前4位的类别为
令牌包
   0001:OUT包    1001:in包     0101:sof包     1101:setup包
握手包
   0010:ack包    1010:nak包    1110:stall包
数据包
   0011:data0包     1011:data1包
   在2.0协议中规范了更多的包,我这里就不介绍了
3. 地址字段
地址字段用于标识usb设备的绝对位置,在一个usb主机的括扑中可以有128个设备,
排除主机的0号地址位外,可以接127个设备,在usb的通信中,一个设备只有一个地址号,
为什么是128个设备呢?因为这个地址字段只有7位......
4. 端点字段
端点字段为4位,用于标识传输类型,0号端点默认用于控制传输,在低速设备中只使用3个
端点,而高速和全速设备则可以使用全部的16个端点
5. 帧号字段
帧号字段为11位,用于sof事务中的帧号表达
6. 数据字段
数据字段的最大长度由端点决定,对于低速,全速和高速设备有不同的定义
7. CRC字段
用于效验数据的正确性,检测数据传输是否有误,在令牌包中为5位,在数据包中为16位


点击(此处)折叠或打开

  1. //HUB的中断端点1发生中断,状态成功0,中断interval128ms 数据位02
  2. c2614440 1544348925 C Ii:1:001:1 0:128 1 = 02
  3. c2614440 1544348959 S Ii:1:001:1 -115:128 4 <
  4. //a3+00请求是GetPortStatus, wWvlaue=0, port=1, 数据长度4
  5. c2614c80 1544349081 S Ci:1:001:0 s a3 00 0000 0001 0004 4 <
  6. //PortStatus为 0104 0100
  7. c2614c80 1544349095 C Ci:1:001:0 0 4 = 01040100
  8. //clear feature
  9. c2614c80 1544349103 S Co:1:001:0 s 23 01 0010 0001 0000 0
  10. c2614c80 1544349109 C Co:1:001:0 0 0
  11. c2614c80 1544349113 S Ci:1:001:0 s a3 00 0000 0001 0004 4 <
  12. c2614c80 1544349117 C Ci:1:001:0 0 4 = 01040000
  13. c2614c80 1544377434 S Ci:1:001:0 s a3 00 0000 0001 0004 4 <
  14. c2614c80 1544377444 C Ci:1:001:0 0 4 = 01040000
  15. c2614c80 1544409435 S Ci:1:001:0 s a3 00 0000 0001 0004 4 <
  16. c2614c80 1544409448 C Ci:1:001:0 0 4 = 01040000
  17. c2614c80 1544441439 S Ci:1:001:0 s a3 00 0000 0001 0004 4 <
  18. c2614c80 1544441450 C Ci:1:001:0 0 4 = 01040000
  19. c2614c80 1544473447 S Ci:1:001:0 s a3 00 0000 0001 0004 4 <
  20. c2614c80 1544473458 C Ci:1:001:0 0 4 = 01040000
  21. //HUB的中断端点1发生中断,状态成功0,中断interval128ms 数据位02
  22. c2614440 1544845444 C Ii:1:001:1 0:128 1 = 02
  23. c2614440 1544845461 S Ii:1:001:1 -115:128 4 <
  24. c2614c80 1544845481 S Co:1:001:0 s 23 03 0004 0001 0000 0
  25. c2614c80 1544845490 C Co:1:001:0 0 0
  26. c2614c80 1544901438 S Ci:1:001:0 s a3 00 0000 0001 0004 4 <
  27. c2614440 1544901462 C Ii:1:001:1 0:128 1 = 02
  28. c2614440 1544901466 S Ii:1:001:1 -115:128 4 <
  29. c2614c80 1544901472 C Ci:1:001:0 0 4 = 03041000
  30. //clear feature
  31. c2614c80 1544957436 S Co:1:001:0 s 23 01 0014 0001 0000 0
  32. c2614c80 1544957448 C Co:1:001:0 0 0
  33. /////////////第一次获取设备描述符请求//////////////////////
  34. //recipient: device
  35. //request type: standard
  36. //direction: device->host
  37. //request: 06(get_descriptor)
  38. //index: 0x100
  39. //length: 0x8
  40. ///////////////////////////////////////////////////////////
  41. c2614c80 1544957500 S Ci:1:000:0 s 80 06 0100 0000 0008 8 <
  42. c2614c80 1544959014 C Ci:1:000:0 -75 0
  43. c2614c80 1544959077 S Ci:1:000:0 s 80 06 0100 0000 0008 8 <
  44. c2614c80 1544959656 C Ci:1:000:0 -75 0
  45. c2614c80 1544959708 S Ci:1:000:0 s 80 06 0100 0000 0008 8 <
  46. c2614c80 1544960278 C Ci:1:000:0 -75 0
  47. c2614440 1545029440 C Ii:1:001:1 0:128 1 = 02
  48. c2614440 1545029451 S Ii:1:001:1 -115:128 4 <
  49. c2614c80 1545133439 S Co:1:000:0 s 00 05 0006 0000 0000 0
  50. c2614c80 1545134796 C Co:1:000:0 0 0
  51. c2614c80 1545185432 S Ci:1:006:0 s 80 06 0100 0000 0008 8 <
  52. c2614c80 1545186024 C Ci:1:006:0 -75 0
  53. c2614c80 1545186080 S Ci:1:006:0 s 80 06 0100 0000 0008 8 <
  54. c2614c80 1545186658 C Ci:1:006:0 -75 0
  55. c2614c80 1545186689 S Ci:1:006:0 s 80 06 0100 0000 0008 8 <
  56. c2614c80 1545187261 C Ci:1:006:0 -75 0
  57. c2614c80 1545305433 S Ci:1:006:0 s 80 06 0100 0000 0008 8 <
  58. c2614c80 1545306987 C Ci:1:006:0 -75 0
  59. c2614c80 1545307022 S Ci:1:006:0 s 80 06 0100 0000 0008 8 <
  60. c2614c80 1545307598 C Ci:1:006:0 -75 0
  61. c2614c80 1545307651 S Ci:1:006:0 s 80 06 0100 0000 0008 8 <
  62. c2614c80 1545308226 C Ci:1:006:0 -75 0
  63. [ 1812.682993] usb 1-1: device descriptor read/8, error -75



阅读(1706) | 评论(0) | 转发(0) |
0

上一篇:firmware

下一篇:u-boot-2012.10 porting on OK6410

给主人留下些什么吧!~~