CypressFX3 UVC傳輸 USB3.0傳輸——03


第三章 UVC源碼開發

本章說明:

本章根據Cypress提供的開發手冊說明,對UVC源碼固件做一定的修改,實現如下功能:

1、使能視頻控制功能;

2、使能debug interface

 

一、 使能視頻控制功能

根據PC端識別USB設備的方式——枚舉UVC設備的描述符(descriptor,我們可以修改相應的描述符,實現開發所需的功能及其屬性。以下主要講解處理單元(process unit)請求事件控制修改。ENDPOINT0 控制傳輸)

1、 使能PU功能。如圖3-1所示,在EZ USB Suite工具中打開UVC_AN757799源碼中的cyfuvcdscr.c文件,找到Processing Unit Descriptor,其中bmControl3byte)的每1bit分別對應D0-D23等不同功能,當對應位置1時,相應的功能就會使能。例如:bmControl = 0x00 00 01 ,D0:Brightness功能就會開啟。為了驗證brightness功能是否使能,可以通過抓取UVC設備描述符查看,如圖3-2所示,Brightness所對應的yes即可說明。

 

 

 

3-1 PU描述符展示圖

 

 

 

3-2 PU描述符展示圖

 

2、 獲取功能屬性及修改。打開UVC_AN757799源碼中的uvc.c文件,定位到UVCHandleProcessingUnitRqts()函數,按圖3-3所示添加代碼,以Brightness為例可以分別設置GET_LEN(有效范圍,最大15bit)、GET_CUR(當前值)、GET_MIN(最小值)、GET_MAX(最大值)、GET_RES(按固定值變化)、GET_INFOGETSET請求權限)、GET_DEF(默認值)、SET_CUR(修改當前值)。

 

 

 

3-3 Brightness屬性的GETSET請求代碼示例

注釋:關於XU,CT等單元或端口的功能控制使能與修改均可參照Brightness的流程,功能屬性配置一般在驅動里面設定。可供開發人員修改一些功能做少量的數據傳輸。

 

二、 使能DebugInterface功能

使能Debug Interface功能,目的在於上位機可以無限的下發多位數據(32以上),利用I2c傳輸至UVC設備,滿足大數據傳輸的開發需求。ENDPOINT IN與ENDPOINT OUT BULK傳輸)

1、 打開UVC_AN757799源碼中的uvc.c文件,將#define USB_DEBUG_INTERFACE添加到代碼中(源代碼已注釋掉,也可以講注釋取消)。

2、 打開uvc.c文件,定位UVCAppEp0Thread_Entry()控制線程函數,並按圖3-4所示進行修改。

 

 

 

 

3-4 代碼修改示意圖

 

3、更新CyUSB3.sys驅動程序,添加“調試”接口,實現center control上位機(顯示端口)數據下發。

操作步驟如下:首先進入PC端設備管理器,右擊FX3(或同等選項),然后選中“update driver software”選項,“瀏覽我的計算機以查找驅動程序軟件”,“讓我從計算機上的可用驅動程序列表中選取”,“從磁盤安裝”,“瀏覽,選取Cypress安裝目錄下的cyusb3.inf文件——路徑:cpress\driver\bin\win10\x64” ,“選中一個操作系統版本,此處選擇FX3 USB stream Example Devices”,“next,出現報警對話框選擇Yes”,如圖3-53-6所示。           

 

 

 

 

 

 

 

 

 

 

 

 

 

3-5 Cypress.sys驅動更新流程圖

 

 

 

3-6 調試接口顯示界面

 

PSA.UVC協議中利用I2C通信必須要加上拉電阻,否則會出現設備采集視頻延遲現象


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM