第1 5節 攝像頭驅動 USB攝像頭驅動框架

2021-09-11 05:38:23 字數 1348 閱讀 5967

1.寫乙個usb攝像頭驅動程式

當我們把usb裝置接到電腦或板子上去時,如果這個裝置能夠被usb_driver所支援(id_table吻合),probe函式就會被呼叫,在probe函式裡面就可以做我們想做的事了(對於攝像頭驅動程式來說,是1.分配乙個video_device結構體;2.設定這個結構體;3.註冊這個結構體)。linux核心裡面已經自帶有usb攝像頭的驅動程式,它支援uvc(usb video class,基本上在windows上那種即出即用的usb攝像頭就是吻合uvc規範的,即不需要自己再去安裝驅動程式)規格的usb攝像頭。linux所自帶的uvc驅動非常非常複雜,本章的目的就是引領大家從零寫起慢慢新增**,直到能夠寫出乙個具備基本功能的攝像頭驅動程式。

現在我們來看看核心所自帶的框架:uvc驅動目錄(這個目錄下面的所有檔案都是uvc的驅動程式):drivers\media\video\uvc

開啟這個目錄下的makefile:

這個驅動程式含有多個.c檔案,它們最終會編譯成乙個uvcvideo.o

分析乙個驅動程式最好的方法就是跟蹤應用程式對它的呼叫過程,在講呼叫過程之前我們先了解usb攝像頭硬體的內部框架。

2.usb攝像頭硬體的內部框架(2)分析(3)vc內部抽象出兩個概念:單元units ,終端terminals,都是某乙個功能模組

units:裡面的

terminal:用於內外連線

3.分析uvc驅動呼叫過程

剛才我們的分析只涉及了videostreaming inte***ce,沒有涉及videocontrol inte***ce。

4.分析設定亮度過程

5.總結

Android驅動USB攝像頭

先來個整體規劃 剛搜尋了一圈,在有乙個不錯的帖子,android系統原理及開發要點詳解 中也講 camera 硬體抽象層的,不過我是只做驅動,不能越界,先弄乙個 中星微 的z03 先 驅動 起來,讓做應用的先做,我在tiny6410上已經驗證可行 linux qt 不過沒有進行android的驗證,...

USB攝像頭ROS驅動

在ros下常用的主要有兩種驅動包 usb cam和uvc cam 我這裡用的是usb cam包 第一次使用首先要安裝這個包,安裝完了之後就可以很方便的執行攝像頭節點了 1.在ros工作空間安裝ros cd catkin ws src git clone usb cam cd catkin make ...

USB攝像頭 介紹

從攝像頭的工作原理就可以列出攝像頭的主要結構和元件 1 鏡頭 lens 透鏡結構,由幾片透鏡組成,有塑膠透鏡 plastic 或玻璃透鏡 glass 2 影象感測器 sensor 可以分為兩類 ccd charge couple device 電荷耦合器件 cmos complementary me...