ADAS系列-s32v234的圖像數據流

1.攝像頭介紹

   攝像頭是ADAS核心傳感器,攝像頭常見的結構如下圖1所示,主要包括鏡頭,基座,傳感器以及PCB部分。

                                                                       圖 1

  • CMOS Sensor部分

       對於現在來說,sensor主要分爲兩類,一類是cmos,一類是CCD。cmos是現在的趨勢,對於鏡頭來講,一個鏡頭只能適用於一種傳感器,且一般鏡頭的尺寸應該和sensor的尺寸一致。對於sensor來說,現在依然延續着Bayer陣列的適用,如下圖2所示。圖3展示了其工作流程。

 

                                                                           圖 2

                                                                        圖 3

2.ISP部分介紹

       ISP(Image Signal Processor),即圖像處理,主要作用是對前端圖像傳感器輸出的信號做後期處理,主要功能有線性糾正,噪聲去除,壞點去除,內插,白平衡,自動曝光控制等。依賴於ISP才能在不同的光學條件下都能較好的還原現場細節,ISP技術在很大程度上決定了攝像頭的成像質量。可以分爲獨立與集成兩種形式。如下圖4所示是整體框圖:

                                                                             圖 4

              ISP的Firmware包含三部分,一部分是ISP控制單元和基礎算法庫,一部分是AE/AWB/AF算法庫,一部分是sensor庫。Firmware設計的基本思想是單獨提供3A算法庫,由ISP控制單元調度基礎算法庫和3A算法庫,由ISP控制單元調度基礎算法庫和3A算法庫,同時sensor庫分別向ISP基礎算法庫和3A算法庫註冊函數回調,以實現差異化的sensor適配。ISPfirmware架構如下圖5所示:

                                                                            圖 5

       不同的sensor都以回調函數的形式,向ISP算法庫註冊控制函數。ISP控制單元調度基礎算法庫和3A算法庫時,將通過這些回調函數獲取初始化參數,並控制sensor,如調節曝光時間,模擬增益,數字增益,控制lens步進聚焦或旋轉光圈等。

        一般,ISP分爲內置和外置二種,nxp的s32v234芯片內置ISP處理模塊。

3.s32v234的整體圖像數據流框圖

4.camera驅動

     s32v234採用mipicsi(串行)或viu(並行)接口,使用i2c總線進行配置。camera的驅動程序軟件有3層(見圖6).第一層在內核空間中運行,實現所需的最小i2c的設備交互。

    第二層是作爲底層內核驅動程序API的用戶空間抽象層,在第二層上實現一個特定的傳感器設備代碼。第三層完成大多數驅動程序功能。第二層和第三層一起稱爲通用camera用戶庫。

   目前,s32v234的camera用戶庫支持一下傳感器:

  • Sony IMX224MQV( MipiCsi-2)
  • Omnivision Ov10640 (VIU/MipiCsi-2)
  • Omnivision Ov10635(VIU)
  • Maxim Serializer/Deserializer HW setup with 4 OV10640 cameras

                                             圖 6

5.FastDMA

        FDMA是s32v234SOC旨在實現vision ADAS應用而設計的。圖像處理需要高帶寬數據傳輸和大內存區域用於數據處理和存儲。爲了實現這點,正在處理的數據是分佈在兩個不同的內存塊之間。

  • SRAM具有高速訪問,但內存空間有限(4MB)僅允許立即要存儲的輸入/輸出數據(最多幾個圖像行)
  • DDR是帶寬低,大內存空間存儲一系列完整圖像幀

         爲了有效的使用設置,數據必須在SRAM和DDR之間保持恆定的流量。這個fdma是專門爲完成實際數據傳輸而設計的,爲減少主機cpu和sequencer之間的負載消耗。圖7顯示了fdma相關的交互。sequencer具有重要作用。sequencer專門用於圖像數據預處理的管理,除其功能外,sequencer還能夠調度fdma transactions和接受事務完成信號。

                                                                   圖 7

6.SDI(Sensor Data Interface)

       傳感器設備接口(SDI)是用於控制圖像數據輸入的運行時庫,SDI被設計爲作爲s32v234soc內部的抽象處理圖像信號預處理(isp)系統。ISP支持各種接口和其他hw塊(一般爲ISP引擎)作爲圖像傳感器數據。

  • 輸入:Mipi-Csi2,Viu,Ethernet,FDMA
  • 預處理:標量/矢量圖像處理單元(IPU),H264解碼器,Jpeg解碼器,視覺加速器
  • 輸出:H264編碼器,Ethernet,FMDA

        爲了實現預處理,設計了唯一的靜態RAM(sram)塊。爲了減少主機cpu加載ISP子系統,包括了ArmM0的視覺加速塊(主負責基於行處理),主要處理來自各種事件。由於這些特性,ISP提供了非常低的延時,高度可編程。

       上圖描述了SDI的功能,SDI功能設計主要覆蓋了以下內容:

  • HW資源分配(ISP,SRMA/DDR存儲)
  • 數據預處理的流水線配置

       SDI庫旨在創建API的中間層用於用戶應用程序。爲了控制各種HW,SDI使用由驅動程序提供的API。爲了最小化OS代碼依賴性,SDI利用來自OAL(操作系統層)抽象層,主要包括SRAM和DDR分配。OAL是內核模塊,用於連續物理內存分配。

       SDI的初始化:

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章