攝像頭採集方案概述

2021-07-15 17:24:25 字數 2988 閱讀 5181

有人問:cmos攝像頭與usb攝像頭有什麼區別嗎?

有人答:cmos指的是感光材料,usb指的是連線方式。

又有人答:監控攝像頭的安裝,一般需要使用幾公尺至幾十公尺不等的傳輸距離,但按照usb的標準規定,usb裝置的最長的傳輸距離是5公尺,所以usb都不能長距離使用,這就是我們使用usb攝像頭做監控遇到的第乙個問題,攝像頭的傳輸距離。其實usb的傳輸距離也可以解決,usb可以通過hub來延長傳輸距離,每增加乙個hub,就可以延長5公尺,一共可以增加5個hub,也就是延長5次,每次5公尺,所以最長可以延長25公尺。為什麼usb對距離的要求這麼嚴格呢?這是因為usb的訊號頻率很高,線在傳輸訊號的過程中對訊號的衰減很大,當訊號衰減到無法維持訊號的正常傳輸的時候,windows就會提示「找到無法識別的usb裝置」,所以一般距離都不能超過5公尺!。另外usb2.0比usb 1.1對距離更敏感,傳輸距離很難超過2公尺。

再介紹攝像機之前我們直接說一下兩個介面(稍微提一下)

pciexpress介面

pci express(以下簡稱pci-e)採用了目前業內流行的點對點序列連線,比起pci以及更早期的計算機匯流排的共享並行架構,每個裝置都有自己的專用連線,不需要向整個匯流排請求頻寬,而且可以把資料傳輸率提高到乙個很高的頻率,達到pci所不能提供的高頻寬。相對於傳統pci匯流排在單一時間週期內只能實現單向傳輸,pci-e的雙單工連線能提供更高的傳輸速率和質量,它們之間的差異跟半雙工和全雙工類似。

pci-e的介面根據匯流排位寬不同而有所差異,包括x1、x4、x8以及x16,而x2模式將用於內部介面而非插槽模式。

pci express匯流排是為將來的計算機和通訊平台定義的一種高效能,通用i\o互連匯流排。

pmod介面

ccd與cmos的區別

成像方面:在相同畫素下ccd的成像通透性、明銳度都很好,色彩還原、**可以保證基本準確。而cmos的產品往往通透性一般,對實物的色彩還原能力偏弱,**也都不太好,由於自身物理特性的原因,cmos的成像質量和ccd還是有一定距離的。但由於低廉的**以及高度的整合性,因此在攝像頭領域還是得到了廣泛的應用。

cmos的訊號是以點為單位的電荷訊號,而ccd是以行為單位的電流訊號,前者更為敏感,速度也更快,更為省電。現在高階的cmos並不比一般ccd差,但是cmos工藝還不是十分成熟,普通的cmos一般解析度低而成像較差。

ccd每**一次,在快門關閉後進行畫素轉移處理,將每一行中每乙個畫素(pixel)的電荷訊號依序傳入「緩衝器」中,由底端的線路引導輸出至ccd旁的放大器進行放大,再串聯adc輸出;相對地,cmos的設計中每個畫素旁就直接連著adc(放大兼模擬數碼訊號轉換器),訊號直接放大並轉換成數碼訊號。

由於cmos每個感光二極體旁都搭配乙個adc放大器,如果以百萬畫素計,那麼就需要百萬個以上的adc放大器,雖然是統一製造下的產品,但是每個放大器或多或少都有些微的差異存在,很難達到放大同步的效果,對比單乙個放大器的ccd,cmos最終計算出的噪點就比較多。

儘管ccd在影像品質等各方面均優於cmos,但不可否認的cmos具有低成本、低耗電以及高整合度的特性。

了解了上述兩種影象感測器,接下來我們了解一下攝像頭的介面協議:

首先說乙個複雜一些的sccb匯流排協議,也就是序列攝像機控制匯流排協議

omnivision 傳 感 器 的 初 始 化 是 通過 sccb 總 線 協 議 的 方 式 實 現 的 , 利 用 fpga 實 現 圖 像採 集 的 關 鍵 是 在 fpga 中 實 現 sccb 總 線 協 議基 於 fpga 通 過 sccb 總 線 對 ov7670 初 始 化 就 是對攝像頭的暫存器進行配置 , 使其按 照設 定的輸 出要 求進 行 數 據 輸 出。

sccb 是omnivision 公司定製的序列攝像頭控制匯流排(serial camera control bus)  ,它用於對攝像頭的暫存器進行讀寫,以達到對攝像頭輸出影象的控制。兩線制sccb 與i2c 匯流排類似,是一種雙向二線制同步序列匯流排。sccb 的資料傳輸由主器件控制,主器件能夠發出資料傳輸啟動訊號、時鐘訊號以及傳送結束時的停止訊號。通常主器件都是微處理器,它定址訪問的裝置稱為從器件。為了進行通訊,每個接到sccb 的裝置都有乙個唯一的位址( id) ,使用軟體來識別匯流排上的從器件,省去了從器件的片選。因此,只需要兩根線(序列時鐘線sio c 和序列資料線sio d) ,掛接到匯流排上的器件就能相互進行資訊傳遞。

資料傳輸起始條件的實現

三線sccb匯流排工作方式下的資料傳輸的起始由使能訊號sccb—e決定,當sccb—e的訊號發生乙個由高到低的變化(high—to-low)時,表明一次sccb匯流排資料傳輸的開始。在sccb—e表明資料傳輸開始之前,主機必須將資料線s10_d置為1,這樣可以避免匯流排資料傳輸開始之前的匯流排不確定狀態的出現。

資料傳輸結束(停止)條件

sccb_e由低到高(10w-to-high)的變化表示一次資料傳輸的結束。

然後說一下簡單的usb匯流排協議

usb匯流排屬於一種輪詢式匯流排,主機控制埠初始化所有的資料傳輸。每一匯流排動作最多傳送三個資料報,包括令牌(token)、資料(data)、聯絡(handshake)。

按照傳輸前制定好的原則,在每次傳送開始時,主機送乙個描述傳輸動作的種類、方向、usb裝置位址和終端號的usb資料報,這個資料報通常被稱為令牌包(tokenpacket)。usb裝置從解碼後的

資料報的適當位置取出屬於自己的資料。資料傳輸方向不是從主機到裝置就是從裝置到主機。

usb體系定義了四種型別的傳輸,它們是:

控制傳輸:主要用於在裝置連線時對裝置進行列舉以及其他因裝置不同的特定操作。

中斷傳輸:用於對延遲要求嚴格,小量資料的可靠傳輸,如鍵盤,遊戲手柄等。

批量傳輸: 用於對延遲要求寬鬆,大量資料的可靠傳輸,如u盤等。

同步傳輸:用於對可靠性要求不高的實時資料傳輸,如攝像頭,usb音響等。

多說一點,計算機的匯流排可以劃分為資料匯流排、位址匯流排和控制匯流排,分別用來傳輸資料、資料位址和控制訊號。匯流排是一種內部結構,它是cpu、記憶體、輸入、輸出裝置傳遞資訊的公用通道,主機的各個部件通過匯流排相連線,外部裝置通過相應的介面電路再與匯流排相連線,從而形成了計算機硬體系統。

這次就先到這裡,今後有機會有時間再深入地了解一下攝像機的工作原理以及驅動的編寫,主要是晶元引腳的定義和介面匯流排協議。

工業攝像頭資訊採集的製作

工業攝像頭資訊採集系統簡介 1 插入攝像頭,安裝驅動vcap2800 usb2.0 drv windows 7 或者vcap2820 sdk,兩者依次嘗試 2將e 大三 攝像頭 usb2800 vcap2820 sdk vcap2820 sdk目錄下的devwdm.ax放到c windows sys...

攝像頭程式設計

這是乙個關於設想頭的類 using system using system.runtime.interopservices namespace webcam structlayout layoutkind.sequential public struct bitmapinfoheader struc...

攝像頭記錄

1.參考 camera.parameters parameters camera.getparameters listsizelist parameters.getsupportedpreviewsizes 如果sizelist只有乙個我們也沒有必要做什麼了,因為就他乙個別無選擇 if sizeli...