CMOS Sensor Interface(CSI)

來源:互聯網
上載者:User

CMOS映像感應器分為兩類,非智能和智能。非智能的這類映像感應器只是支援傳統的網路攝影機時序(場同步和行同步),然後輸出一個Bayer(拜耳)以及
統計的資料,而智能感應器支援CCIR656視頻解碼格式,並且還提供了額外的一些影像處理(例如:映像壓縮,映像濾波預先處理,以及多種資料輸出格式)

CSI的包含的能力如下:
   .前端-配置邏輯介面以便支援大多數通用的可用的CMOS網路攝影機介面。
   .支援CCIR656視頻介面以及傳統的網路攝影機介面。
   .8位元據口,支援方便YCC,YUV,Bayer或者是RGB的資料格式輸入。
   .完全可控的8-bit或16-bit資料到32-bit的FIFO進行打包
   .32*32大小的FIFO儲存接受到的的映像像素資料,該FIFO可以通過可程式化的IO或者是DMA進行讀取.
   .後端-提供了直接到eMMA的預先處理PrP塊介面(PrP和PP組成了MX27圖形加速器eMMA,PrP和PP能夠用來給視頻做預先處理和後期處理,例如,放大,縮小,色彩轉換)
   .提供sensor的可屏蔽中斷源,該中斷源也是中斷可控的: 開始Frame,結束Frame,Change of Field,FIFO Full
   .提供給外部sensor用的,可配置的主時鐘頻率
   .由統計資料產生的自動曝光(AE)和自動白平衡(AWB)控制。

39.1 CSI結構
 39-5圖,顯示了CMOS網路攝影機介面的框圖,它包含了2個控制寄存器(Control Register 1和3)來建立介面的時序以及中斷產生,另外一個控制器
(Control Register 2)用來產生統計資料,還有一個狀態寄存器,介面邏輯,資料包邏輯,CCIR時序編碼,中斷控制,主時鐘產生源,統計資料產生,
32*32映像資料接受FIFO(RxFIFO),還有16*32統計資料FIFO(StatFIFO).
 
39.2 CSI介面訊號描述
 CSI模組和外部的CMOS映像感應器的介面如下:
   .CSI_VSYNC input    Vertical Sync(Start of Frame) 網路攝影機傳輸進CSI介面,是場同步介面,提供起始幀
   .CSI_HSYNC input  Horizontal Sync(Blank Signal) 網路攝影機傳輸進CSI介面,是行同步介面,提供行同步訊號,判斷消隱訊號
   .CSI_D[7:0]  input   8-bit網路攝影機資料匯流排(傳輸YUV,YCC,RGB,或者Bayer等資料)
   .CSI_MCLK output  Sensor Master Clock 該介面是CSI輸出介面,提供給外部網路攝影機的主時鐘
   .CSI_PIXCLK  input    pixel Clock      該介面是網路攝影機輸出的像素時鐘,一般都等於MCLK主時鐘
        在CSI的RxFIFO和eMMA的預先處理塊PrP之間有一條用來快速傳輸資料的資料線. 該資料線可以enabled或者disabled。
    當該bus enabled時,CSI的RxFIFO會從AHB匯流排上取消,並且串連到PrP上。任何CPU或者DMA通道到RxFIFO寄存器的請求讀取都將被忽略(因為串連到PrP上了)
  所有的CSI中斷都被MASK防止軟體訪問FIFO以及相關的狀態寄存器。
    RxFIFO設定Full level等級為4/8/16 Words,如果是24words那麼內部邏輯認為是8Words.
    使用者使用RxFIFO的full level來參考資料格式和線性寬度,來確保傳輸的幀是一個完整的幀, 映像的大小(in Words)必須是RxFIFO設定的full level
 的整數倍。
 關係如下:
 資料格式  每個像素包含的byte數目      每個Words包含的像素數目     RxFIFO Full level等級    所需要的線寬(line Width)
 YUV422        2    2     4/8/16Words        8/16/32的倍數
 YCC422        2    2     同上                      8/16/32的倍數
 RGB565       2    2      同上                       8/16/32的倍數
 RGB888       4    1      同上                         4/8/16的倍數
 Bayer           1    4                                   16/32/64的倍數
 
39.3 操作原理
  該小段描述sensor介面的操作模式
  CSI設計是為了支援普通的sensor介面時序以及CCIR656的視頻介面時序。傳統的CMOS感應器典型使用SOF,HSYNC(消隱),和PIXCLK訊號
 給Bayer或者YUV輸出。智能CMOS感應器,一般在片上都有影像處理,並且通常都可使用視訊模式的傳輸,它們使用了內嵌的時序編碼來取代了SOF和BLANK訊號。
 該時序編碼依據的標準就是CCIR656.
 39.3.1 門選通時鐘模式(Gated Mode)
   VSYNC,HSYNC,以及PIXCLK訊號採用的都是門選時鐘模式(脈衝門)
 一個幀通常都開始於VSYNC的上升沿_||__,然後HSYNC訊號開始變高HIGH,並且hold高電平整行資料(line)。並且當HSYNC訊號是高電平的時候,
     pixel clock才是合法的像素時鐘,Data資料就是每HSYNC高電平期間,每個pixel clock上升沿讀取的資料才是有效資料。當HSYNC為低電平的時候
     那麼該行就結束了。pixel clock就是不合法了,並且CSI也停止從stream中接收資料。然後等待下一行的HSYNC重複開始,最後重複VSYNC進入下一幀。
 39.3.2 非門選通時鐘模式(non-Gated Mode)
  該模式下,只有VSYNC和pixel clock兩個訊號使用到,HSYNC是被忽略的。
  該模式下,總的時間是和gated mode一樣的,區別只是在於HSYNC訊號。HSYNC是被CSI忽略的,所有的pixel clock時鐘所表示的資料都是合法的,
 其實區別就是Gate模式的pixel clock是一直開著的,而該模式下是和HSYNC同步進行了與門的操作,只保留了有效資料的pixel clock.所以pixel clock
 在非法資料時候是低電平。
 39.3.3 CCIR656介面模式
  在CCIR656模式中,只有pixel clock和DATA[7:0]訊號被使用到。起始幀VSYHC和BLANK消隱訊號都被網路攝影機內直接內嵌的時序編碼根據時序直接替換
 為有效資料流,不需要後期進行資料流的處理。每一個有效行伴隨SAV碼啟用,並且伴隨EAV碼結束。有一些方案,數字化的消隱訊號是插在SAV和EAV之間的。
 CSI會從資料流中進行編碼以及濾出相關的時序,來還原VSYHC和HSYNC訊號,來給內部使用,例如統計塊控制和CSI-to-PrP互連時。
 資料從直接轉寄,以原來連續的方式進行打包。因此,第一幀是跟在第二幀後面的(如果得到了2幀的話)。所以,該幀序是需要重新進行排序的,來還原原來的映像。
 
 COF(Change of Field改變域/幀/場) ,它觸發奇偶場的變化。中斷服務會讀取狀態寄存器來確定是否是當前的幀。
 
 依據CCIR656標準,映像必須是625/50幀的PAL,或者是525/60幀的NTSC格式。另外,映像還要交錯成奇偶場, 垂直和行消隱資料都被填入特定的行。
 資料必須是YCC422格式,每個像素包含了2 bytes,Y+Cr+Y+Cb.這些都是TV模式的設定。
 該CSI僅僅支援PAL和NTSC制式。
 從39-3圖中可以看到,SOF是一個中斷,時序編碼timing codec中斷產生,表示來了新的幀,SOV1和SOV2是表示奇偶域。
 39-4,39-5兩圖表示具體的碼和有效資料位元。
 
 39.3.4 CCIR656更進模式
        CMOS網路攝影機系統提供的VGA或CIF解析度,CIF標準中,奇偶場交錯不用很嚴格的指出,因為CIF映像本身就很小,使用奇場或偶場就可以了。
        一般是使用奇場,即Field 1.大多數的sensor都支援該CCIR模式,因此在CIF下,只要一個SOF中斷進入新的一幀,而不需要SOV來判斷奇偶場了。
 39.3.5 CCIR656編碼錯誤校正
  依據CCIR編碼錶,SAV和EVAV之間的保護資料是被編碼過的,使用這種方法,編碼器可以糾正1-bit錯誤,可以檢查2-bit的錯誤。
  該特徵只是在CSI的CCIR編碼中,僅僅是奇偶交錯模式中支援。
 
 
 39.4 中斷產生

  
 39.4.1起始幀中斷Start Of Frame Interrupt(SOF_INT)--- 一般都是VSYHC的上升沿開始,就觸發了
  在傳統模式中,VSYHC訊號來自感應器,因此SOF_INT中斷是由VSYHC訊號的上升沿或者是下降沿觸發的。
  在CCIR模式中,SOF中斷資訊是從嵌入的代碼檢索出來的,並且產生SOF_INT的。
  在CCIR更進模式中,有下面兩個SOF中斷:
   .內部VSYHC模式,SOF是從嵌入的代碼檢索出來
   .外部VSYHC模式,來自外部網路攝影機輸入的VSYHC訊號,根據VSYHC的上升沿或下降沿來產生SOF.
   
 39.4.2 結束幀中斷End of Frame Interrupt(EOF_INT)
  當一幀結束或者是一個在RxFIFO中的完整的幀資料被全部讀出時,EOF中斷就產生了,EOF並不在CSI的PrP模式中使用。
  
 39.4.3 改變幀中斷Change Of Field Interrupt(COF_INT)
  該中斷是用在CCIR奇偶域交錯的模式下使用,該中斷當Field 1 和Field 2交錯的時候產生。F1_INT和F2_INT會產生
 39.4.4 CCIR錯誤中斷(ECC_INT)
  CCIR中斷僅僅用在CCIR奇偶場交錯的模式下使用,因為如果沒有奇偶場交錯的話,不需要校正該幀的奇偶幀,如果有的話,那麼如果是錯誤下,
  還將該奇偶場拼接進行合成的話,那麼畫面肯定出問題了。
 39.4.5 Data Packing Style資料打包格式
  由於映像在採集的過程中,不同的連接埠大小,不同的階段,資料的位元組順序是非常重要的。
  為了能夠靈活的對映像資料進行打包,CSI模組提供了資料交換空間,通過PACK_DIR和SWAP16_EN bits(包含在CSIRC1--CSI Control Register1中)
  資料在提交給RxFIFO之前,利用設定PACK_DIR的bit位來進行打包。
 39.4.6 RxFIFO路徑
  Bayer資料是一個從映像感應器獲得典型的行資料。該資料寬度一定要通過軟體轉化為RGB空間或者是YUV空間的資料格式。 
  PACK_DIR bit設定為0,表示系統是小端,不是大端系統。使用P0,P1,P2,P3存放了打包了的資料內容,P0是第一個Data,依次,P3是最後一個data.
  
 Page 1438
  39.4.6.1 RGB565資料
  (我們用的ov9660-0xd7[1:0]是選擇YUV還是RGB模式,YUV=00,RGB=01)
  RGB565資料是從映像感應器獲得的處理過的資料,該資料可以直接顯示到Video Buffer上面。
  這個資料格式是16-bits的寬度,該資料可以直接通過CSI給Memory,然後Memory給LCDC.
  39.4.6.2 RGB888資料格式 ----24位bit屏可用
  
 
 總結:
  MX27提供了一個非常專業的網路攝影機CSI介面,可以配置相關的口進行介面匹配。
  我們的網路攝影機是ov9660,輸出設定為YUV模式,因此,CSI擷取的資料也是YUV格式的資料,因此還需要通過軟體,將YUV的格式轉化為
  RGB565、RGB656、RGB888格式放到LCDC對應的Memory進行顯示輸出。

  轉化公式如下:
  From RGB to YUV
  Y = 0.299R + 0.587G + 0.114B
  U = 0.492 (B-Y)
  V = 0.877 (R-Y)
  It can also be represented as:
  Y =  0.299R + 0.587G + 0.114B
  U = -0.147R - 0.289G + 0.436B
  V =  0.615R - 0.515G - 0.100B
  From YUV to RGB
  R = Y + 1.140V
  G = Y - 0.395U - 0.581V
  B = Y + 2.032U

我的額外話題:

當前網路攝影機的參數我們基本上主要看:

1.網路攝影機像素是多少萬的? 我這邊羅列了一部分

2560*1960 =4915200,也就是通常說的500W

1600*1200 =1920000,也就是200W

1280*960 =1228800,也就是130W像素

640*480=307200,也就是30W

該像素可以放映到你的抓圖上面的大小,該像素就是說明你的CMOS或者是CCD感光元件的像素點多少,可以想象在相同的面積上,數量越多,感光元件肯定要越小,感光元件小,那麼映像的品質其實會變差,這個當然可以理解,但是從大的方面來說,只要鏡頭好,光源充足,那麼效果也會變好,這樣畫面就比像素低的更加的細膩,所以高像素的好處就在這裡。有種專業上的說法,是你的網路攝影機達到幾線幾線的?

2.幀率?也就是看你的最大解析度的時候能夠達到的最大幀率是多少?

像OV系列來說,一般最大的解析度下的幀率是30幀左右,也可以調頻率進行提高。我們人的眼睛一般情況下,只要映像能夠達到每秒30幀,那麼利用眼睛的視覺殘留,基本上可以感覺到映像是連續的,人眼的視覺殘留時間超過30ms。

我調試網路攝影機的時候,可以發現有個非常嚴重的現象就是,加開夜光模式的時候,幀率掉的非常嚴重,這個估計就是DSP後期處理的時候,處理不了每秒30幀,只能往下降了,黑白的話效果好一些。

3. 鏡頭也是非常關鍵的,這個就要看不同的廠家,不同的顯示效果

題外篇

我們買到的數位相機,現在都是1300W以上的,但是並不是說我們的攝像模式下可以達到這個解析度,不信的話你可以去試試看,因為攝像要求比較高,需要達到每秒30幀以上,這個對DSP處理的負荷很重(RGB--色彩空間轉換----H264編碼/JPG編碼),有人說我們為什麼不利用數位相機的連續抓拍功能,這樣既能保證解析度又可以攝像,其實原理是一樣的,抓拍也不可能高像素下達到每秒30幀。

還有,我們有一些非常高的像素是如何達到的呢?

其實現在的做法都是靠拼裝,也就是說兩塊CCD感光模組分別進行攝像,然後在末端進行同步,這樣就能提高像素,而且DSP的負荷不用太過進行提升,但是這樣的拼裝方法有一個缺陷就是,如果模組太多,那麼在末端進行同步就很難把握了,所以現在一般都是2個CCD或者3個CCD,再多就不行了。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.