yealink学习笔记20200422UVC协议、usb摄像头抓包
UVC協議學習以及UVC攝像頭抓包對比UVC協議數據幀
通過BUS Hound抓包得到數據文件如下
先看第一行,CTL意為“USB control transfer”,即控制傳輸,熟悉USB通信的朋友應該都知道USB有四種數據傳輸方式,其中“控制傳輸”為僅有的雙向傳輸方式,USB枚舉過程中就是用的控制傳輸方式與USB從機的端點0進行通信的,Device那一列“19.0”,表示通信端點為UVC設備的端點0。
UVC攝像頭插入PC后,PC向其端點0發送了8個Byte的數據:80 06 00 01??00 00 12 00,第四字節“01”與第七字節“12”代表PC請求UVC設備發送“設備描述符至主機,設備描述符長度為18Byte”。
再看第二行,“IN”表示數據傳輸方向為輸入,即PC接收UVC攝像頭返回的18Byte數據:12 01 00 02??ef 02 01 40??93 69 14 b0??01 00 01 02??00 01,關于這18Byte的定義,UVC官方文檔給出了很詳細的解釋,如下圖所示,其中PC就是通過畫紅圈的那三個字節數據知道該設備為UVC設備的。接下來我們關注第三第四字節即“bcdUSB”,由于USB傳輸是低字節先傳輸,故我們知道我們采用的為USB2.0協議。
接下來繼續往下看
PC收到UVC攝像頭返回的18Byte配置描述符后,緊接著又發出了第二條控制命令:
80 06 00 02??00 00 09 00,第四字節“02”與第七字節“09”表示“請求UVC發送自己的配置描述符至PC,數據長度9Byte”。
隨后UVC攝像頭返回了9Byte數據至PC:09 02 8c 01??02 01 00 80??fa,關于配置描述符的詳細信息,UVC官方文檔給出了如下描述。
其中,我們暫時先關注下第3、4字節,即“wTotalLength”參數,由于USB傳輸是低字節先傳輸,故我們知道,該配置描述符以及其下所有的接口描述符和端點描述符的總字節長度為0x18c字節。
緊接著,PC開始向UVC攝像頭端點0發送第三次控制命令啦:80 06 00 02??00 00 8c 01,第7、8字節是不是很眼熟啊?沒錯,第4字節還是“02”,PC這次還是發送的讀取UVC設備“配置描述符”命令,但是這次讀取的字節長度是“0x18c”字節,那這次就是將“接口描述符”和“端點描述符”全都讀出來啦!數據量比較大,如下圖所示。
接下來我們就要對“接口描述符”和“端點描述符”進行分析了
接下來就要使用UVCview軟件了打開軟件,抓取攝像頭插入時的數據包如下所示
軟件已經幫我們把描述符進行解析了
首先我們要先看IAD描述符IAD是“Interface Association Descriptor”的簡寫,譯為“接口聯合描述符”,一個配置描述符是接口描述符的集合,在UVC中,IAD描述符就是描述一個視頻接口集合的,對于每一個設備功能需要一個視頻控制接口(VideoControl Interface)和一個或者多個視頻流接口(VideoStreaming Interface)。如下圖所示
對比文檔“bInterfaceCount”參數為0x02,可知該配置下有兩個視頻接口—“VC和VS”。
接下來我們就要細致的看每個“接口描述符“了
首先來看第一個如下圖所示
?
此描述符為VC端口描述符,可知VC的接口為0x0E,VS的接口為0x01
這個描述符描述了VC輸出到主機的USB的通道終端
?
這個描述符描述了代表CCD傳感器(以及相關的A/D轉換器)的輸入終端,產生的數字視頻流通過單個的輸出引腳離開輸入端。該設備還支持“Auto-Exposure“自動曝光、”Exposure Time“曝光時間、”Zoom“變焦、”Pan“平移功能
該描述符描述處理單元,該處理單元由選擇單元傳遞的視頻流數據。此實現支持“Brightness“亮度、”Contrast“對比度、”Saturation“飽和度、”Sharpness“銳度、”White Balance Temperature“白平衡、”Backlight Compensation“背光補償、”Gain“增益、”Power Line Frequency“頻率、”White Balance Temperature, Auto“自動白平衡的調節
此描述符用于狀態返回的中斷端點,沒8ms進行一次判斷
此描述符用于描述中斷類的特定信息
此描述符為VS接口描述符0x0E為視頻類接口0x02為視頻流類接口
這個描述符描述了這個接口支持的視頻格式數量,以及這個接口中所有類特定的描述符的總大小。
特定顏色匹配描述符
該描述符描述了設備支持的視頻格式。設備支持多種(MJPEG)格式,所以有多個格式描述符
特定顏色匹配描述符
標準批量端點描述符
?
以上就是除了擴展功能的描述符的USB抓包和UVC協議的對比
?
總結
以上是生活随笔為你收集整理的yealink学习笔记20200422UVC协议、usb摄像头抓包的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 新技术关注
- 下一篇: UVC协议学习2--UVC请求格式分析