99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

什么是中斷端點(diǎn)?什么情況下需要用到UVC中斷端點(diǎn)呢?

漫談嵌入式 ? 來源:漫談嵌入式 ? 2023-11-27 10:15 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

本文主要介紹一下UVC 中斷控制端點(diǎn),大多數(shù)情況下UVC 的控制都是由端點(diǎn)0 控制的,一般情況下很少用到UVC 中斷端點(diǎn)。今天主要介紹一下UVC 中斷端點(diǎn)以及什么情況下需要用到中斷端點(diǎn)。

1. 什么是中斷端點(diǎn)?

一個USB視頻控制接口可以支持一個可選的中斷端點(diǎn),以通知主機(jī)關(guān)于視頻功能中不同的可尋址實(shí)體(終端、單元、接口和端點(diǎn))的狀態(tài)。如果存在中斷端點(diǎn),則被整個視頻接口集合用于向主機(jī)傳遞狀態(tài)信息。它被認(rèn)為是視頻控制接口的一部分,因?yàn)檫@是集合的錨定接口。

以下情況中斷端點(diǎn)是必須支持的:

設(shè)備支持硬件觸發(fā)靜態(tài)抓拍

設(shè)備支持 AutoUpdate 控件

該設(shè)備實(shí)現(xiàn)任何異步控制

b9bb7b84-8c45-11ee-939d-92fbcf53809c.jpg

2. 標(biāo)準(zhǔn)請求

2.1 Status Packet Format

Offset Field Size Value Description
0 bStatuType 1 Bitmap/Number D7...D4:Reserved
D3...D0:Originator
0:Reserved
1:VideoControl interface
2:VideoStreaming interface
1 bOriginator 1 Number ID of the Terminal, Unit or Interface that
reports the interrupt

bStatusType:Status 類型

Originator:表示請求來源是VC 還是VS

bOriginator:表示來源的有效ID 或者接口號

Terminal ID

Unit ID

Interface numer

2.2 Status Packet Format(Video Control)

Offset Field Size Value Description
0 bStatuType 1 Bitmap/Number 0x1
1 bOriginator 1 Number ID of the Terminal, Unit or Interface that
reports the interrupt
2 bEvent 1 Number 0x00: Control Change
0x01 – 0xFF: Reserved
3 bSelector 1 Number Control Change Report the Control Selector
of the control that (cs)
4 bAttribute 1 Number Specify the type of control change:
0x00: Control value change
0x01: Control info change
0x02: Control failure change
0x03: Control min change
0x04: Control max change
0x05 – 0xFF: Reserved
5 bValue n bAttribute: Description:
0x00 Equivalent to the result of a GET_CUR
0x01 Equivalent to the result of a GET_INFO
0x02 Equivalent to the result of a GET_CUR
request on VC_REQUEST_ERROR_CODE_CONTROL
0x03 Equivalent to the result of a GET_MIN
0x04 Equivalent to the result of a GET_MAX

2.3 Status Packet Format(Video Stream)

Offset Field Size Value Description
0 bStatuType 1 Bitmap/Number 0x2
1 bOriginator 1 Number ID of the Terminal, Unit or Interface that
reports the interrupt
2 bEvent 1 Number 0x00: Button Press
0x01 – 0xFF: Sream Error
3 bValue n Number Button Press: (n=1)
0x00: Button released
0x01: Button pressed

3. 硬件觸發(fā)中斷

狀態(tài)中斷端點(diǎn)的定義用途之一是讓硬件觸發(fā)器通知主機(jī)軟件啟動靜止圖像捕獲。例如,當(dāng)硬件檢測到按下按鈕時,狀態(tài)中斷端點(diǎn)將發(fā)出來自相關(guān)視頻流接口的中斷。觸發(fā)中斷的事件(按鍵按下或者釋放)在中端包里面顯示。該按鈕的默認(rèn)初始狀態(tài)是“釋放”狀態(tài)。

設(shè)備必須指定它是否支持硬件觸發(fā)器,以及主機(jī)軟件應(yīng)該如何響應(yīng)硬件觸發(fā)器事件。這些都是在相關(guān)的視頻流接口中特定于類的描述符中指定的。

4. Still image Capture

5.1 Still image 方法

攝像機(jī)的一個共同特性是支持與視頻流相關(guān)聯(lián)的靜態(tài)圖像捕獲。這可以通過可編程的軟件觸發(fā)器或硬件觸發(fā)器來啟動。

根據(jù)所使用的方法,靜止圖像幀可能必須與流的視頻幀大小相同。有幾種支持的方法來捕獲靜態(tài)圖像,設(shè)備必須在相關(guān)視頻流接口的特定類描述符中指定它支持哪種方法。

Method 1 :主機(jī)軟件將在接收到硬件觸發(fā)事件后,將從相關(guān)視頻流接口中的活動視頻管道中提取下一個可用的視頻幀。在這種情況下,硬件不會中斷或改變視頻流。對于這種方法,靜止圖像幀始終與流的視頻幀大小相同

Method 2:如果設(shè)備支持更高質(zhì)量的靜止圖像,它可以選擇通過活動視頻管道傳輸特定的數(shù)據(jù)包,在這種情況下,主機(jī)軟件將暫停視頻流,根據(jù)靜態(tài)探測/提交協(xié)商(根據(jù)帶寬可用性)選擇最佳帶寬替代設(shè)置。發(fā)送一個 VS_STILL_IMAGE_TRIGGER_CONTROL 請求((see section 4.3.1.4, "Still Image Trigger Control"),并準(zhǔn)備好接收靜止的圖像數(shù)據(jù)。該設(shè)備傳輸在有效載荷包頭中被標(biāo)記為這樣的靜止圖像數(shù)據(jù)。一旦收到完整的靜止圖像,主機(jī)軟件將恢復(fù)到原來的替代設(shè)置,并恢復(fù)視頻流。

Method 3 :這種方法能夠從一個專用的批量靜止圖像管道中捕獲更高質(zhì)量的靜止圖像。通過這樣做,活動的數(shù)據(jù)流將繼續(xù)不間斷地運(yùn)行。這種方法涵蓋有兩種情況:

Method Isochronous video data pipe Bulk video data pipe
Method 1 1 Isochronous (Video) 1 Bulk (Video)
Method 2 1 Isochronous (Video/Still) 1 Bulk (Video/Still)
Method 3 1 Isochronous (Video)
1 Bulk (Still)
1 Bulk (Video)
1 Bulk (Still)

在第一種情況下,主機(jī)軟件從該設(shè)備啟動靜止圖像捕獲。它通過發(fā)送一個 VS_STILL_IMAGE_TRIGGER_CONTROL 請求,通過專用的bulk 端點(diǎn)((see section 4.3.1.4, "Still Image Trigger Control")。在發(fā)出請求后,主機(jī)將開始從相關(guān)的視頻流接口的批量靜態(tài)圖像端點(diǎn)接收靜態(tài)圖像,該設(shè)備捕獲高質(zhì)量的靜止圖像,并將數(shù)據(jù)傳輸?shù)脚快o止圖像端點(diǎn)。

在第二種情況下,設(shè)備在檢測到硬件觸發(fā)器后啟動靜止圖像傳輸。當(dāng)硬件檢測到按下按鈕時,狀態(tài)中斷端點(diǎn)將發(fā)出來自相關(guān)視頻流接口的中斷。如果bTriggerUsage字段被設(shè)置為初始化靜止圖像捕獲(initiate still image capture),設(shè)備將設(shè)置 VS_STILL_IMAGE_TRIGGER_CONTROL 的bTrigger 字段為分離的bulk 傳輸,然后,主機(jī)軟件應(yīng)該開始接收在接收到中斷后設(shè)備捕獲的靜止圖像數(shù)據(jù)。傳輸完成后,設(shè)備應(yīng)將bTrigger 字段重置為“正常運(yùn)行”

5.2 Still image trigger control

此控件通知設(shè)備開始通過相關(guān)的同步或批量管道發(fā)送靜止圖像數(shù)據(jù)。一個專用的靜止圖像批量管道僅用于靜止圖像捕獲的方法3。此控制僅在流媒體發(fā)生時設(shè)置,并在發(fā)送靜止圖像后由硬件重置為“正常運(yùn)行”模式。只有當(dāng)設(shè)備支持靜止圖像檢索的方法2或方法3時,才需要此控制。

Control Selector VS_STILL_IMAGE_TRIGGER_CONTROL
Mandatory Requests SET_CUR, GET_CUR, GET_INFO
wLength 1
Offset Field Size Value Description
0 bTrigger 1 Number The setting for the Still Image Trigger
Control:
0: Normal operation.
1: Transmit still image.
2: Transmit still image via dedicated bulk pipe
3: Abort still image transmission

b9d7b434-8c45-11ee-939d-92fbcf53809c.png

5. Stream Error Control

當(dāng)發(fā)生以下事件之一時,主機(jī)軟件應(yīng)該向此控件發(fā)送一個GET_CUR請求,以確定該錯誤:

視頻或靜止圖像有效負(fù)載頭中的錯誤位被設(shè)置了。

該設(shè)備向主機(jī)發(fā)出一個“流錯誤”中斷(Error Code Control)。Status Interrupt Endpoint 上報(bào)

批量視頻端點(diǎn)在事務(wù)的數(shù)據(jù)或握手階段向主機(jī)返回一個stall

對于主機(jī)正在向設(shè)備傳輸視頻數(shù)據(jù)的場景,主機(jī)不能使用有效負(fù)載報(bào)頭中的錯誤位來檢測設(shè)備錯誤。因此,為了確定何時發(fā)生流媒體錯誤,主機(jī)必須依賴于來自設(shè)備的控制更改中斷或批量端點(diǎn)Stall

Stream Error Control

Control Selector VS_STREAM_ERROR_CODE_CONTROL
Mandatory Requests GET_CUR, GET_INFO
wLength 1
Offset Field Size Value Description
0 bStreamErrorCode 1 Number 0: No Error.
1: Protected content。如果數(shù)據(jù)源設(shè)備檢測到視頻或靜止圖像數(shù)據(jù)是保護(hù)的或者不能被傳輸,會發(fā)生這種情況。在這種情況下,在受保護(hù)內(nèi)容期間將發(fā)送只包含頭的空包
2: Input buffer underrun。如果數(shù)據(jù)源設(shè)備無法按請求的速率提供數(shù)據(jù),則它將在緩沖區(qū)運(yùn)行不足期間傳輸只包含磁頭文件的空數(shù)據(jù)包。
3:Data discontinuity 。表示數(shù)據(jù)不連續(xù)(由于不良介質(zhì)、編碼器錯誤等)在當(dāng)前傳輸中的數(shù)據(jù)有效負(fù)載之前。
4: Output buffer underrun 。數(shù)據(jù)接收設(shè)備沒有以足夠的速率接收數(shù)據(jù)。
5: Output buffer overrun。數(shù)據(jù)接收器設(shè)備正在以超過其緩沖能力的速率提供數(shù)據(jù)。
6: Format change。發(fā)生了一個動態(tài)格式更改事件。
7: Still image capture error。在靜態(tài)圖像捕獲期間出錯。

6. Dynamic Format Change Support

某些設(shè)備,能夠在流媒體發(fā)生時動態(tài)地改變正在流媒體到主機(jī)的視頻格式。由于新的視頻格式可能具有與舊格式不同的總線帶寬要求,因此必須通知主機(jī)格式的變化,并允許執(zhí)行重新配置和總線帶寬重新分配所需的,以支持新的視頻格式。

該設(shè)備通過視頻流媒體輸入報(bào)頭(Video Strem Input header )的bmInfo字段表示其對動態(tài)格式更改事件的支持。

當(dāng)發(fā)生動態(tài)格式更改事件時,將執(zhí)行以下步驟:

檢測到動態(tài)格式變化(當(dāng)流媒體發(fā)生時)。(通過 Status Interrupt Endpoint 上報(bào))

設(shè)備開始在視頻流有效負(fù)載頭中設(shè)置錯誤位發(fā)送空數(shù)據(jù)有效負(fù)載到主機(jī)。(uvc payload herder)

設(shè)備設(shè)置 Stream Error Code Control為格式變化(format change)

主機(jī)探測新的流狀態(tài),通過VS_PROBE_CONTROL 請求,發(fā)送GET_CUR

如果新的格式可用,主機(jī)將通過 VS_COMMIT_CONTROL 請求, 發(fā)送 SET_CUR。如有必要,通過一個備用接口選擇標(biāo)準(zhǔn)請求重新分配USB帶寬。如果不能接受新格式,主機(jī)將與流探測/提交控件協(xié)商一種新格式。

7. 總結(jié)

UVC 中斷端點(diǎn) 用法如下:

所有VC 上的請求的異步控制(比如圖像對比度、亮度、zoom 等)

靜態(tài)抓拍或者抓拍控制

動態(tài)格式切換同步。

典型用法如下:

b9edd3cc-8c45-11ee-939d-92fbcf53809c.jpg

具體路徑(以拍照為例):按鍵拍照,設(shè)備通過Status Interrput Endpoint 上報(bào) 到 host,host 重新協(xié)商開啟抓拍。

其他控制也是類似的。中斷端點(diǎn)的作用是把設(shè)備的行為,及時上報(bào)到host 端,以便主機(jī)做出調(diào)整。






審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • USB接口
    +關(guān)注

    關(guān)注

    9

    文章

    707

    瀏覽量

    57026
  • 觸發(fā)器
    +關(guān)注

    關(guān)注

    14

    文章

    2039

    瀏覽量

    62158
  • 觸發(fā)中斷
    +關(guān)注

    關(guān)注

    0

    文章

    11

    瀏覽量

    6650
  • uvc
    uvc
    +關(guān)注

    關(guān)注

    1

    文章

    128

    瀏覽量

    14951

原文標(biāo)題:UVC 學(xué)習(xí):UVC 中斷端點(diǎn)介紹

文章出處:【微信號:漫談嵌入式,微信公眾號:漫談嵌入式】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    同步FIFO和異步FIFO各在什么情況下應(yīng)用

    我想問一什么情況下需要用異步FIFO,什么情況下用同步FIFO?
    發(fā)表于 11-03 17:19

    FX3 SDK 1.3.4使用中斷端點(diǎn)來響應(yīng)UVC控制請求響應(yīng)非常慢

    JTAG的工作,重新編譯固件并設(shè)法在硬件上運(yùn)行它。我有一些代碼處理UVC控制請求(一種在EP0上的安裝請求),對于某些控件,它不能滿足UVC控制請求響應(yīng)的10毫秒最后期限,因此響應(yīng)通過中斷端點(diǎn)
    發(fā)表于 09-18 14:24

    請問mcfw的link什么情況下要用到noNotifyMode?

    請教一mcfw的link,什么情況下需要用到noNotifyMode,以及把notifyNextLink、notifyPrevLink設(shè)置為false?不通知對方的話,對方不就不知道了嗎?
    發(fā)表于 02-18 10:35

    中斷端點(diǎn)如何檢測中斷?

    和BulkJin。我在主機(jī)上有一個C 2應(yīng)用程序,用于發(fā)送和接收數(shù)據(jù)。將數(shù)據(jù)發(fā)送到測試系統(tǒng)是完美的。但我收到以下問題:中斷端點(diǎn):如何檢測中斷?在CYUSB .NET引用中沒有示例…任何標(biāo)志或例程,沒有描述
    發(fā)表于 06-25 07:37

    HAL庫中的CAN在什么情況下會進(jìn)FIFO0接收中斷

    與CAN外設(shè)相關(guān)的中斷向量表有哪些?HAL庫中的CAN在什么情況下會進(jìn)FIFO0接收中斷?哪些寄存器的改變會產(chǎn)生相應(yīng)的中斷
    發(fā)表于 11-16 09:16

    一般在什么情況下需要用到simulink?

    使用simlink生成嵌入式的代碼,一般在什么情況下需要用到simulink,simulink的教程,誰有提供一
    發(fā)表于 11-06 08:06

    volte語音通話有什么用,什么情況下可以開/關(guān)volte

    聽很多人都在講volte高清語音通話那么什么是vote什么情況下需要開通volte什么情況下又可以關(guān)閉volte
    發(fā)表于 10-21 16:36 ?1.8w次閱讀

    運(yùn)算放大電路什么情況下需要用到運(yùn)放調(diào)零?

    在設(shè)計(jì)電路時,常常會用到運(yùn)放,很多人對運(yùn)放的使用還是有些陌生的。其中調(diào)零電路,有時候會被認(rèn)為是雞肋。究竟什么情況下需要用到運(yùn)放調(diào)零?
    的頭像 發(fā)表于 10-26 14:13 ?1.2w次閱讀
    運(yùn)算放大電路<b class='flag-5'>什么情況下</b><b class='flag-5'>需要用到</b>運(yùn)放調(diào)零?

    漲軸磨損修補(bǔ)需要用到什么材料

    漲軸磨損修補(bǔ)需要用到什么材料
    發(fā)表于 12-18 10:40 ?9次下載

    什么情況下使用示波器

    示波器可以把我們看不見的電信號變換成看得見的圖像,方便來研究各種電現(xiàn)象的變化過程。那么什么情況下使用示波器? 使用示波器進(jìn)行測量需要涂有熒光物質(zhì)的屏面、主機(jī)、探頭配置和穩(wěn)定的信號。示波器一般都是
    的頭像 發(fā)表于 02-01 11:00 ?6031次閱讀

    什么情況下要進(jìn)行電能質(zhì)量檢測?

    什么情況下要進(jìn)行電能質(zhì)量檢測?
    發(fā)表于 09-08 14:20 ?832次閱讀

    什么情況下選用工業(yè)主板

    雖然工業(yè)主板和普通主板差異比較多,但是在某些情況下工業(yè)主板用于商業(yè)環(huán)境也是可以的,但是實(shí)用性不是很好。什么情況下選用工業(yè)主板
    的頭像 發(fā)表于 02-14 10:34 ?1103次閱讀
    <b class='flag-5'>什么情況下</b>選用工業(yè)主板

    電機(jī)什么情況下需要配減速機(jī)?

    電機(jī)是運(yùn)動機(jī)械的最常用動力源,今天分享什么情況下電機(jī)需要配減速機(jī)。
    的頭像 發(fā)表于 05-26 17:47 ?2449次閱讀
    電機(jī)<b class='flag-5'>什么情況下</b><b class='flag-5'>需要</b>配減速機(jī)?

    電機(jī)什么情況下需要配減速機(jī)

    電機(jī)是運(yùn)動機(jī)械的最常用動力源,今天分享什么情況下電機(jī)需要配減速機(jī)。
    的頭像 發(fā)表于 07-21 17:31 ?2131次閱讀
    電機(jī)<b class='flag-5'>什么情況下</b><b class='flag-5'>需要</b>配減速機(jī)<b class='flag-5'>呢</b>

    變頻器維修需要用到的工具都有哪些

    變頻器維修需要用到的工具都有哪些
    的頭像 發(fā)表于 10-20 08:42 ?5958次閱讀