天天看點

Camera DVP協定講解

Camera DVP協定講解

  • 該文章寫于2016年,一直未發表。近期工作中又涉及到了Camera相關的内容,重新溫習了下相關知識。決定把這篇文章發表出來,大家共同學習。

  DVP(Digital Video Port)攝像頭資料并口傳輸協定,提供8-bit或10-bit并行傳輸資料線、HSYNC(Horizontal sync)行同步線、VSYNC(Vertical sync)幀同步線和PCLK(Pixel Clock)時鐘同步線。8-bit或10-bit是依Pixel的位深而定的,8bit A/D Pixel位深8bit,10bit A/D Pixel位深10bit。具體提供8bit還是10bit資料線依Sensor而定,有的Sensor雖有10bit資料線(D0–D9),但接線時一般隻接高8位(D2–D9),舍棄低2位的原因是對圖像效果影響并不大。有的平台也有10bit資料線,接線時也得區分是高8位(D2–D9)還是低8位(D0~D7),并與軟體解析相對應,不能是硬體接了低8位,而軟體仍按高8位解析資料(出現粉紅屏),或者反過來也是不允許的(出現高亮發紅)。

  DVP接口一個PCLK周期可以傳輸1byte資料,1byte各位并行輸出,一行Pixel輸出完後,Sensor輸出一個HSYNC行同步信号,一幀所有行輸出完成後,輸出一個VSYNC幀同步型号。如圖4.3-1是一個輸出VGA大小的示例時序圖,HREF便是HSYNC,3xtLine是VB(Horizontal Blank Dummy Line)幀空閑時間,14tLine是幀頭與第一行第一個Pixel資料開始的時間St,640tp表示一行有640個Pixel,然後HSYNC變為低電平,144tp是HB(Horizontal Blank Dummy Pixel)行空閑時間,13tLine是最後一行最後一個Pixel到幀尾的時間Et,510xtLine是一幀的時間。

    510xtLine=3tLine+14tLine+480tLine+13tLine,480tLine=(640tp+144tp)x480-144tp。

Camera DVP協定講解

  HB、VB、St、Et時間一般有寄存器可以進行設定,St、Et一般很少動采用預設值即可,HB、VB決定了Sensor輸出的最大幀率,HB、VB也不是可以無限小的,需要大于某個最小值,值太小圖像邊緣會出現花邊。HSYNC、VSYNC可以在低電平輸出有效資料,也可以在高電平輸出有效資料,PCLK可以上升沿出資料也可以下降沿出資料,Sensor一般都開放了寄存器來設定HSYNC、VSYNC、PCLK的極性,極性設定應該與平台抓資料時采用的極性相一緻,如VSYNC、HSYNC極性錯誤會引起黑屏,PCLK極性錯誤會引起花屏。DVP接口是靠HSYNC、HSYNC中斷信号檢測有效幀的,Data線發生錯位、開路、短路、相位差,并不會引起出不了圖像,隻是圖像不正常而已,越高位的Data線出問題花屏就越嚴重,D7>D6…>D1>D0。

  PCLK、D0、D1都是高頻信号線(低位變化更加頻繁),Layout時注意屏蔽幹擾、不可與其它高頻線并排或重疊走線,最好用GND線或者低頻線(如D7、D6)隔開。