Linux usbmon获取的U盘数据

urb标志                                                ep->id
时间戳                                                 ep->tstamp
事件类型(S-submission, C-Callback, E-submission error) ep->type
端点类型I(中断),C(控制),B(Bulk)和Z(ISOC)               utype
数据方向(i或者o)                                       udir
bus总线号                                               ep->busnum
该bus总线分配到的设备地址                              ep->devnum
端点号,对于in端点,为异或^0x80,即去掉第8位1值的数据,比如0x81,那么这里数据为0x81 ^ 0x80 = 1 ep->epnum

接下来的数据根据不同的端点类型将做不同的格式显示
I(中断) : ep->status和ep->interval 显示端点的状态和端点interval中断间隔值[luther.gliethttp]
C(控制) : 如果事件类型为S,那么显示s bmRequestType bRequest wValue wIndex wLength
          如果事件类型非S,即C,那么只显示ep->status
B(Bulk) : ep->status 只显示状态
Z(ISOC) : 如果事件类型为S,那么显示ep->status, ep->interval, ep->start_frame
          如果事件类型非S,那么显示ep->status, ep->interval, ep->start_frame, ep->error_count
          同时显示ep->numdesc,dp->status, dp->offset, dp->length等信息,是组合最多的一个输出

接下来的数据就是ep->length长度了[luther.gliethttp].

再接下来就是mon_text_read_data填充数据了[luther.gliethttp].
1.如果数据长度ep->length为0,那么直接填入一个'\n'换行.
2.如果确实有数据部分,那么先追入' =',然后在=等号后面追加实际数据内容.
3.如果没有数据部分,比如那么将ep->data_flag作为char类型打印出来[luther.gliethttp]
  ep->data_flag共有5种数值,由mon_text_get_data()函数返回
  3.1 L -- 表示期待数据长度为0
  3.2 < -- 表示有数据要上传,后面有需要接收的数据,后面会有IN动作,
           表示in类型,后面还有In读取操作需要读取数据,
           同时为S-submission或者E-submission error
  3.3 > -- 表示数据部分已经成功下发
           表示out类型,同时为C-Callback
  3.4 Z -- 表示transfer_buffer为NULL
  3.5 0 -- 表示成功获取data.

HUB的中断端点1发生中断,状态成功0,中断interval128ms  数据位02
c393e580 531182834 C Ii:1:001:1 0:128 1 = 02
c393e580 531182947 S Ii:1:001:1 -115:128 2 <
a3+00请求是GetPortStatus, wWvlaue=0, port=1, 数据长度4
P427
c3ad3e00 531183571 S Ci:1:001:0 s a3 00 0000 0001 0004 4 <
PortStatus为 01010100
分为 0101  和 0100
c3ad3e00 531183633 C Ci:1:001:0 0 4 = 01010100
clear feature
c3ad3e00 531183663 S Co:1:001:0 s 23 01 0010 0001 0000 0
c3ad3e00 531183670 C Co:1:001:0 0 0
c3ad3e00 531183685 S Ci:1:001:0 s a3 00 0000 0001 0004 4 <
c3ad3e00 531183691 C Ci:1:001:0 0 4 = 01010000
c3ad3e00 531210077 S Ci:1:001:0 s a3 00 0000 0001 0004 4 <
c3ad3e00 531210121 C Ci:1:001:0 0 4 = 01010000
c3ad3e00 531240074 S Ci:1:001:0 s a3 00 0000 0001 0004 4 <
c3ad3e00 531240122 C Ci:1:001:0 0 4 = 01010000
c3ad3e00 531270070 S Ci:1:001:0 s a3 00 0000 0001 0004 4 <
c3ad3e00 531270113 C Ci:1:001:0 0 4 = 01010000
c3ad3e00 531300076 S Ci:1:001:0 s a3 00 0000 0001 0004 4 <
c3ad3e00 531300122 C Ci:1:001:0 0 4 = 01010000
c3ad3e00 531300234 S Co:1:001:0 s 23 03 0004 0001 0000 0

HUB的中断端点1发生中断,状态成功0,中断interval128ms  数据位02
c393e580 531311050 C Ii:1:001:1 0:128 1 = 02
c393e580 531311086 S Ii:1:001:1 -115:128 2 <
c3ad3e00 531315120 C Co:1:001:0 0 0
c3ad3e00 531370081 S Ci:1:001:0 s a3 00 0000 0001 0004 4 <
c3ad3e00 531370130 C Ci:1:001:0 0 4 = 03011000
c3ad3e00 531425071 S Co:1:001:0 s 23 01 0014 0001 0000 0
c3ad3e00 531425116 C Co:1:001:0 0 0

c3ad3e00 531426891 S Ci:1:000:0 s 80 06 0100 0000 0040 64 <

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wwyxgg.html