色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

如何使用FPGA和CMOS制作一個低成本成像系統

科技觀察員 ? 來源:hackster.io ? 作者:hackster.io ? 2022-05-12 17:54 ? 次閱讀

并非所有成像系統都需要昂貴。可以直接使用成本優化的 FPGA 和 CMOS 圖像傳感器來創建解決方案。

介紹

開發嵌入式視覺系統不需要使用昂貴的 FPGA 或 SoC、大型幀緩沖存儲器和外部攝像頭。

我們可以使用直接與 CMOS 傳感器連接的成本優化的 FPGA / SoC 來開發非常強大的圖像處理系統。這允許創建一種解決方案,該解決方案不僅可以實現成本目標,而且還可以實現緊湊和節能。

直接與傳感器接口是帶有照相機的接口,因為我們已經做了不同的先前。當我們與相機接口時,我們通過 HDMI、CameraLink 等接收視頻信號,這是相當直接的。

當我們與圖像傳感器連接時,我們通常會以不同的格式接收圖像,例如 MIPI 或并行格式,在接收視頻之前,我們需要首先配置成像器以按照我們的需要進行操作。

通常,成像器需要通過 I2C 或 SPI 進行配置,并且通過接口發送的命令數量可能很大。

為了演示我們如何將傳感器與成本優化的 FPGA 集成到該項目中,我們將研究集成

TDNext 1.26 兆像素 Pmod

藝術S7-50

由于 Arty S7 不直接在板上提供 HDMI 或其他視頻輸出,因此本示例將使用 Avnet 10 英寸觸摸屏。然而,這是可選的輸出最終圖像的另一個選項是Digilent Pmod VGA。 該 Pmod 還可用于實施成本非常低的解決方案。

與 TDNext Pmod 的接口非常簡單,可以分為視頻和配置兩個元素。

視頻接口由 10 位像素(拆分 8 位和 2 位 LSB)幀和行有效、像素時鐘和參考時鐘 (24 MHz) 組成。

配置接口由連接到成像設備的 I2C 和 I2C IO 擴展器組成,用于生成對成像器的復位。

該解決方案的架構如下,將使用軟核處理器通過 I2C 配置成像器。然而,雖然圖像處理路徑將在 FPGA 內實現,但由于這是一個低成本應用,該解決方案不會在 DDR 存儲器中實現外部幀緩沖器,而是圖像處理流水線將完全在 FPGA 中實現。

該設計還將使用軟核處理器來控制視頻時序和圖像處理路徑的其他相關配置任務。

背景

TDNext 是一種彩色成像器,這意味著該成像器應用了拜耳模式,可以過濾每個像素的波長。這意味著在積分期間,每個像素僅累積紅色、綠色或藍色波長的光子。

poYBAGJ82SGAHOkGAALTWpfsG80479.png

在積分時間完成時,每個像素被讀出為 8 位或 10 位像素。該像素值稱為 RAW8 或 RAW10 像素。為了重新創建彩色圖像,使用去拜耳算法組合包含不同波長像素的周圍像素的值。

Vivado 構建

我們需要做的第一件事是創建 Vivado 平臺,這將接收來自 TDNext Pmod 的圖像。

為了創建框圖,我們將主要使用 Vivado 庫中的 IP 核,但我們將使用攝像頭接口塊和 Avnet 庫中的輸出塊。

第一步是安裝板定義文件,這使 Vivado 能夠了解 Arty S7 的配置。

下載后,這些文件應安裝在以下路徑下的 Vivado 目錄中:

《安裝路徑》/Vivado/《版本》/data/boards/board_files/

這將允許您選擇 Arty S7 板作為創建新 Vivado 項目的目標板。

安裝好電路板后,下一步是創建新項目、框圖并創建 MicroBlaze 系統。

隨著 MicroBlaze 系統的啟動和運行,下一步是添加視頻處理管道。處理鏈將使用以下 IP 塊

CAM 接口 - 與 TDNext 視頻接口接口

Video to AXIS - 將并行視頻轉換為 AXI Streaming 格式

Sensor Demosaic - 將代表 R、G 或 B 的 RAW 像素值轉換為 24 位 RGB 格式

Video Timing Generator - 生成輸出格式的視頻時序信號

AXI Stream to Video Out - 將 AXI Stream 轉換為并行視頻

ZED ALI3 控制器 - 驅動 10 英寸觸摸屏的 IP 模塊

AXI IIC - 連接到 MicroBlaze 這將用于配置成像器

AXI UART - 連接到 MicroBlaze,用于向用戶報告系統狀態

如果我們使用 Pmod VGA,我們不需要使用 ZED ALI3 控制器 IP 塊。

在我們添加 Zed ALI3 和 CAM 接口之前,我們需要重新配置 IP 核,以便能夠包含在 Spartan 7 設計中。我們從 IP 目錄視圖執行此操作,選擇所需的 IP 核并單擊 packager 中的編輯 IP。

這將打開一個新項目并使您能夠選擇可比性選項卡并添加對 Spartan 7 設備的支持。重新打包設計并更新 Vivado 項目中的 IP 庫。

poYBAGJ82RuAZ3jQAAGrIe9RY-8288.png

一旦 IP 升級為支持 Spartan 7,我們就可以完成設計。完整的方框圖應如下所示。

pYYBAGJ82ReAWKW_AAHelCBCR9g634.png

與之前基于異構 SoC 的示例不同,該示例使用外部幀緩沖區。此示例不會使用 VDMA 從外部幀緩沖區讀取和寫入,這種方法需要 AXIS 到 Video 和 VTC 的不同配置。

通常情況下,AXIS to video 配置為主控,VTC 不受控制。然而,在這種方法中,AXIS to video 被配置為從設備,并且 VTC 發生器時鐘使能受到控制。

poYBAGJ82RSAIia9AADYv24IV20010.png

這種方法允許 AXIS 到視頻 IP 模塊通過啟用和禁用 VTC 來控制同步的時序,因此它們與處理管道中的同步時序相匹配。

在 AXI Stream 中,幀的開始由 TUser 指示,行尾由 TLast 指示。

IP 塊的關鍵定制是:-

視頻輸入到 AXI 4 流

poYBAGJ82Q-ACWyzAAIkWveXlPI578.png

傳感器去馬賽克設置

poYBAGJ82QuAdWeZAAHUD7uJlbk314.png

AXI IIC 設置

poYBAGJ82QiAemyrAAGOPwnhJKc834.png

在設計中我還加入了幾個集成邏輯分析儀(ILA),以實現系統狀態的內部監控和調試。

項目完成后Arty S7-50的總利用率如下圖所示。

poYBAGJ82QOALby9AAIba2WXf7A697.png

我們可以使用額外的資源來實現使用 HLS 的圖像處理算法是必要的。如果我們想節省資源,我們可以使用 MicroBlaze 的最小占用空間并移除 ILA。

SDK 中編寫軟件

生成 Vivado 硬件后,下一步是編寫應用軟件,該軟件將在視頻處理內核上配置成像器和 IP 內核。

因此,該軟件將執行以下操作

初始化 AXI IIC、VTC 和中斷控制器

設置中斷控制器以生成 AXI 相關中斷 - 這包括三個中斷服務例程。IIC 發送、接收和狀態各一個。

為 10 英寸顯示器配置 VTC 上的計時

通過 I2C 重置相機并點亮 PMOD 上的 LED

通過 I2C 檢測攝像頭,我們正在尋找檢測 MT9M114

通過 I2C 鏈接初始化相機 - 這將需要幾秒鐘來編寫所有命令

為了初始化成像器,我已將 TDM114 示例設計提供的基于 Zynq 的庫轉換為可用于 AXI IIC 的格式。

相機初始化后,我們將能夠在連接到 AXI 流組件的視頻流的 ILA 上看到視頻。

pYYBAGJ82KyANCgeAAG-Ro3cUI0884.png

監控TDNext Pmod 背面的I2C 通信顯示Arty S7 和TDNext 之間的通信。

檢測到攝像頭后,應用程序將下載多個 I2C 攝像頭配置設置。

將使用 AXI UART 報告進度

pYYBAGJ82PeAMHk_AACxNDkx_qc378.png

一旦相機被初始化,我們就可以使用 ILA 來驗證成像器正在生成視頻,并且它是我們配置的分辨率。

我們通過使用 ILA 并直接檢查在 FPGA 中接收到的視頻來做到這一點。

pYYBAGJ82KOAaStaAAEP3SuNPys158.png

上圖顯示了 1280 像素的線寬,這正是我們所期望的。

接收到的像素從并行格式轉換為 AXI 流。

AXI Stream 是一種單向總線,用于將數據從主機傳輸到從機,作為數據流,它不包含地址通道。為了控制流和通過 AXI 流傳輸視頻時序信息,使用以下信號

TReady - 準備好接收數據時由下游外設置位

TValid - 當輸出數據有效時由發送外設斷言

TUser - 為幀開始發出

TLast - 為行尾發布

第二個 ILA 可用于確保正確生成 AXI 流。

由于我們沒有 VDMA,重要的是 AXIS 流上的視頻輸出是一個連續塊,并且 TValid 在活動像素期間不會斷言和取消斷言。

pYYBAGJ82KOAaStaAAEP3SuNPys158.png

我們可以通過將像素時鐘用于圖像處理鏈來確保 Tvalid 是連續的。

poYBAGJ82J-AWoFXAAFx8SggFec340.png

該項目中使用的庫 API 如下,但包含 IIC 配置數據的 camera_initial.h 除外。Xilinx 根據硬件配置提供所有其他頭文件。

poYBAGJ82JuAbGLgAABUrwoj6aU436.png

設備地址和標識符

pYYBAGJ82JeAWVkKAABqQjtvqfI093.png

應用程序的主循環可以在下面看到

int main()

{
u32 Status;
XIic_Config *iic_conf;
XVtc VtcInst;
XVtc_Config *vtc_config;
XVtc_Timing vtcTiming;
XVtc_SourceSelect SourceSelect;
XV_demosaic_Config *mosaic_config;
init_platform();
printf("www.adiuvoengineering.com S7 Imager example\n\r");
mosaic_config = XV_demosaic_LookupConfig(XPAR_XV_DEMOSAIC_0_DEVICE_ID);
XV_demosaic_CfgInitialize(&mosaic,mosaic_config,mosaic_config->BaseAddress);
XIntc_Initialize(&InterruptController, int_dev);
SetUpInterruptSystem();
iic_conf = XIic_LookupConfig(IIC_dev);
Status = XIic_CfgInitialize(&iic, iic_conf, iic_conf->BaseAddress);
if (Status != XST_SUCCESS) {
printf("XIic initial is fail \n \r") ;
return XST_FAILURE;
}
XIic_SetSendHandler(&iic, &iic, (XIic_Handler) SendHandler);
XIic_SetRecvHandler(&iic, &iic, (XIic_Handler) ReceiveHandler);
XIic_SetStatusHandler(&iic, &iic,(XIic_StatusHandler) StatusHandler);
vtc_config = XVtc_LookupConfig(XPAR_VTC_0_DEVICE_ID);
XVtc_CfgInitialize(&VtcInst, vtc_config, vtc_config->BaseAddress);
vtcTiming.HActiveVideo = 1280;
vtcTiming.HFrontPorch = 65;
vtcTiming.HSyncWidth = 55;
vtcTiming.HBackPorch = 40;
vtcTiming.HSyncPolarity = 0;
vtcTiming.VActiveVideo = 800;
vtcTiming.V0FrontPorch = 7;//8;
vtcTiming.V0SyncWidth = 4;
vtcTiming.V0BackPorch = 12;
vtcTiming.V1FrontPorch = 7;
vtcTiming.V1SyncWidth = 4;
vtcTiming.V1BackPorch = 12;
vtcTiming.VSyncPolarity = 0;
vtcTiming.Interlaced = 0;
memset((void *)&SourceSelect, 0, sizeof(SourceSelect));
SourceSelect.VBlankPolSrc = 1;
SourceSelect.VSyncPolSrc = 1;
SourceSelect.HBlankPolSrc = 1;
SourceSelect.HSyncPolSrc = 1;
SourceSelect.ActiveVideoPolSrc = 1;
SourceSelect.ActiveChromaPolSrc= 1;
SourceSelect.VChromaSrc = 1;
SourceSelect.VActiveSrc = 1;
SourceSelect.VBackPorchSrc = 1;
SourceSelect.VSyncSrc = 1;
SourceSelect.VFrontPorchSrc = 1;
SourceSelect.VTotalSrc = 1;
SourceSelect.HActiveSrc = 1;
SourceSelect.HBackPorchSrc = 1;
SourceSelect.HSyncSrc = 1;
SourceSelect.HFrontPorchSrc = 1;
SourceSelect.HTotalSrc = 1;
XVtc_RegUpdateEnable(&VtcInst);
XVtc_SetGeneratorTiming(&VtcInst,&vtcTiming);
XVtc_SetSource(&VtcInst, &SourceSelect);
XVtc_EnableGenerator(&VtcInst);
XIic_Reset(&iic);
PCA9534_CTRL ();
Detect_Camera();
Soft_Reset_Camera();
Initial_Camera();

XV_demosaic_Set_HwReg_width(&mosaic,0x500);
XV_demosaic_Set_HwReg_height(&mosaic,0x31f);
XV_demosaic_Set_HwReg_bayer_phase(&mosaic,0x1);
XV_demosaic_EnableAutoRestart(&mosaic);
XV_demosaic_Start(&mosaic);
while(1){
}
cleanup_platform();
return 0;
}

運行整個軟件應用程序使我捕捉到了我的會議徽章收藏的下面的圖像。

poYBAGJ82I2AI9E8AALmE8DmcFE419.png

我需要調整一些設置以增加集成時間,但是,基本圖像處理管道正在按我們的預期工作。

結論

很容易創建一個視覺處理系統,它直接與成像器一起工作,而不是相機。隨著處理鏈的顯著減少,這通常允許更具成本效益和潛在的響應更快的解決方案。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • FPGA
    +關注

    關注

    1629

    文章

    21729

    瀏覽量

    603005
  • CMOS
    +關注

    關注

    58

    文章

    5710

    瀏覽量

    235418
  • 圖像傳感器
    +關注

    關注

    68

    文章

    1897

    瀏覽量

    129527
收藏 人收藏

    評論

    相關推薦

    Altera、Lattice、Xilinx角逐低成本FPGA市場

    據報道,Altera、Lattice、Xilinx等可編程邏輯供應商又掀起低成本FPGA的競爭,都力圖角逐低成本FPGA市場,在未來的等
    發表于 07-29 00:11 ?1785次閱讀

    美光200萬像素CMOS成像傳感器

    ,通過使用CMOS成像傳感器數字成像技術保持低成本優勢。美光公司圖像部市場總監Farhad Rostamian說,這種新型傳感器能夠提供與傳統DSC器件相媲美的圖像質量。   美光公司
    發表于 10-26 16:48

    什么是Altera系列低成本Cyclone IV FPGA

    領域競爭激烈,價格大幅下降,令成本問題變得愈加敏感。因此,市場需要能即時滿足用戶需求,并具有低成本高性能的靈活器件,正是看準這市場趨勢,Cyclone IV FPGA應運而生。那么大
    發表于 07-31 06:59

    怎么設計基于FPGA多波束成像的聲納系統

    多波束成像聲納利用了數字成像技術,在海底探測范圍內形成距離方位二維聲圖像,具有很高的系統穩定性和很強的信號處理能力。但是由于數字成像
    發表于 10-09 06:04

    請問怎樣去設計低成本CMOS圖像采集系統

    基于STM8單片機的低成本CMOS圖像采集系統該如何去設計?CMOS圖像采集系統與其他嵌入式圖像采集系統
    發表于 06-01 07:27

    基于FPGA低成本低延時成像系統設計方案資料分享

    1、基于FPGA低成本低延時成像系統設計  目前商用領域的成像系統還是以嵌入式ASIC為主(成
    發表于 10-08 15:36

    采用低成本FPGA實現高效的低功耗PCIe接口

    白皮書 :采用低成本FPGA實現高效的低功耗PCIe接口 了解基于DDR3存儲器控制器的真實PCI Express (PCIe) Gen1x4參考設計演示高效的Cyclone V
    發表于 02-26 10:04 ?73次下載
    采用<b class='flag-5'>低成本</b><b class='flag-5'>FPGA</b>實現高效的低功耗PCIe接口

    基于FPGA與USB的CMOS圖像獲取與采集系統設計

    實現了基于FPGA與USB的CMOS圖像獲取與采集系統的設計。介紹了成像系統的結構、CMOS圖像
    發表于 09-22 16:53 ?23次下載

    基于賽靈思FPGA低成本MIPI接口IP

    基于FPGA低成本MIPI接口,專門針對視頻顯示器和攝像頭的。設計嵌入式系統DSI和CSI-2視頻接口的用戶現在即可采用低成本MIPI接口
    發表于 02-10 16:54 ?1.7w次閱讀

    基于MLX90620的低成本紅外熱成像系統設計_楊風健

    基于MLX90620的低成本紅外熱成像系統設計_楊風健
    發表于 03-19 19:08 ?55次下載

    高效、低成本FPGA 器件:Spartan-7 FPGA

    賽靈思 Spartan?-7 系列提供了系列高效、低成本FPGA 器件。這些器件經過專門設計,能滿足低成本市場的特殊需求。 摘要 Spartan?-7
    發表于 11-16 15:15 ?9337次閱讀
    高效、<b class='flag-5'>低成本</b>的 <b class='flag-5'>FPGA</b> 器件:Spartan-7 <b class='flag-5'>FPGA</b>!

    簡單且低成本的驅蚊電路設計

    低成本驅蚊電路僅使用IC,即CMOS類型4047。這種用途非常廣泛的IC可以連接到多種工作模式,包括這里使用的多諧振蕩器或非穩態電路。
    的頭像 發表于 05-14 14:25 ?2313次閱讀
    <b class='flag-5'>一</b><b class='flag-5'>個</b>簡單且<b class='flag-5'>低成本</b>的驅蚊電路設計

    低成本、高精度結構光3D成像系統開源分享

    電子發燒友網站提供《低成本、高精度結構光3D成像系統開源分享.zip》資料免費下載
    發表于 10-26 11:09 ?2次下載
    <b class='flag-5'>低成本</b>、高精度結構光3D<b class='flag-5'>成像</b><b class='flag-5'>系統</b>開源分享

    CMOS圖像傳感器的FPGA邏輯設計解析

    CMOS成像系統是基于CMOS圖像傳感器的種適用于機載應用環境的圖像采集系統。可有效解決機載復
    的頭像 發表于 09-19 10:15 ?1756次閱讀
    <b class='flag-5'>CMOS</b>圖像傳感器的<b class='flag-5'>FPGA</b>邏輯設計解析

    AMD進軍低成本FPGA市場,滿足邊緣應用需求

    雖然賽靈思主攻高端FPGA市場,但其對低成本FPGA市場的投入也不容小覷。此次發布的Spartan UltraScale+正是AMD進軍低成本FPG
    的頭像 發表于 03-10 10:06 ?1111次閱讀
    主站蜘蛛池模板: 久久99re66热这里只有精品| 99精品成人无码A片观看金桔| 国产精品麻豆高潮刺激A片| 秘密教学93话恩爱久等了免费| 伊人影院2019| 伦理电影2499伦理片| Chinesetube国产中文| 人人爽久久久噜噜噜丁香AV| 成年无码av片| 亚洲AV美女成人网站P站| 韩国三级久久精品| 2019午夜75福利不卡片在线| 捏奶动态图吃奶动态图q| 郭德纲于谦2012最新相声| 亚洲精品午夜久久久伊人| 久久久97丨国产人妻熟女| jizzjizz中国大学生| 亚洲不卡高清免v无码屋| 国精产品砖一区二区三区糖心| 一本道高清到手机在线| 欧美黑大炮18p| 黄色三级三级三级免费看| 最新亚洲一区二区三区四区| 骚妇BB双飞插| 蓝男色gay| 狠狠色狠狠色综合日日2019| 99久久伊人一区二区yy5o99| 亚洲AV久久无码精品蜜桃| 琪琪午夜福利免费院| 久久精品麻豆国产天美传媒果冻| MM131亚洲精品久久安然| 一本道久在线综合色色| 人妻满熟妇AV无码区国产| 麻豆AV久久无码精品九九| 国产午夜精品福利久久| 丰满少妇被猛烈进出69影院| 最新 国产 精品 精品 视频| 天天操夜夜噜| 色www.亚洲免费视频| 嗯好大好猛皇上好深用力| 巨污全肉np一女多男|