• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      視頻圖像數(shù)據(jù)采集的FPGA實現(xiàn)方案

      2021-12-10 02:49:02雷妍
      現(xiàn)代計算機 2021年30期
      關(guān)鍵詞:高電平寄存器時鐘

      雷妍

      (西安石油大學(xué)電子工程學(xué)院,西安 710065)

      0 引言

      隨著電子科技的發(fā)展,視頻監(jiān)控技術(shù)已經(jīng)廣泛走入人們的生活,得到了各行各業(yè)的青睞[1]。視頻圖像采集的速度快慢和采集圖像分辨率大小的問題,都會直接關(guān)系到工業(yè)的生產(chǎn)效率。常見的圖像傳感器分為CCD圖像傳感器和CMOS圖像傳感器。雖然CCD圖像傳感器在成像方面要優(yōu)于CMOS傳感器,但CCD傳感器具價格昂貴、功耗大,不適合工業(yè)化大批量生產(chǎn)[2]。故CMOS圖像傳感器以其開發(fā)周期短、功耗小的特點成功進軍工業(yè)、監(jiān)控、航天等領(lǐng)域。傳統(tǒng)的方法是對采集的視頻圖像進行采樣處理,以犧牲圖像的分辨率為代價來換取較高的控制速度。這樣的方式顯然不適合與分辨率要求高的場合。近年來,隨著集成電路技術(shù)的發(fā)展,為現(xiàn)場可編程門陣列進入現(xiàn)代電子舞臺開辟了新的路徑[3]。FPGA不僅具有靈活、方便的可編程能力,而且因其并行處理特性非常適合于高速控制場合[4]。

      本文將視頻采集中的問題與FPGA自身的優(yōu)勢相結(jié)合,對圖像傳感器的工作原理進行分析,介紹了一種CMOS視頻圖像數(shù)據(jù)高效采集的FPGA實現(xiàn)方案。該設(shè)計方案選用Intel公司的Cyclone IV系列EP4CE10F17C8芯片,和Omni Vision公司的CMOS圖像傳感器OV7670,在Quartus II開發(fā)環(huán)境下采用硬件描述語言Verilog設(shè)計了OV7670攝像頭驅(qū)動電路,完成了攝像投的配置以及數(shù)據(jù)采集[5]。

      1 圖像傳感器工作時序分析

      OV7670傳感器內(nèi)部集成了SCCB接口、圖像陣列、時序發(fā)生器、A/D轉(zhuǎn)換器、DSP處理器等電路。光源信號照射到圖像陣列產(chǎn)生相應(yīng)的電荷,傳輸?shù)侥M信號處理器電路,再經(jīng)A/D轉(zhuǎn)換電路將模擬信號數(shù)字化,最后將數(shù)字信后傳送至DSP處理器變?yōu)镽GB信號輸出。在OV7670的視頻時序知,當(dāng)VSYNC視頻流的場同步信號有效,則表示一幀圖像的結(jié)束;當(dāng)HREF行同步信號有效時,在傳感器的工作時鐘驅(qū)動下輸出圖像數(shù)據(jù)[6]。一幅圖像中每一行中有784個像素單位時間,共有510個行時間。而OV7670傳感器的輸出時鐘為24 MHz,因此幀率為60 Hz。計算方法見公式(1)。由于本設(shè)計輸出的視頻數(shù)據(jù)格式為RGB565,每個像素需要輸出兩個數(shù)據(jù),因此行時間為原來的2倍,最大幀率只能達到30 Hz[7]。

      2 圖像數(shù)據(jù)采集的FPGA實現(xiàn)

      本設(shè)計采用自頂向下的設(shè)計思想,將焊縫圖像數(shù)據(jù)采集設(shè)計劃分為三個功能獨立的子模塊,分別為攝像頭工作時鐘產(chǎn)生模塊、攝像頭初始化模塊以及攝像頭數(shù)據(jù)捕獲模塊[8]。

      2.1 OV7670攝像頭工作時鐘產(chǎn)生模塊設(shè)計

      該模塊主要用于提供攝像頭的工作時鐘,以保證攝像頭準(zhǔn)確無誤的采集圖像數(shù)據(jù)。本設(shè)計在Quartus II自帶的MegaWizard Plug-In Manager中選擇I/O的ALTPLL,創(chuàng)建時鐘模塊,將50 MHz的晶振時鐘分頻為24MHz,用于驅(qū)動攝像頭正常工作。

      2.2 OV7670寄存器初始化模塊設(shè)計

      本模塊主要負責(zé)攝像頭的初始化工作。在本設(shè)計中,將該模塊劃分為兩個子模塊,分別為config_data子模塊和i2c_byte_wr子模塊。前者主要輸出寫請求信號wr_req,和待發(fā)送的數(shù)據(jù)data_send;后者主要完成攝像頭內(nèi)部寄存器配置的工作。圖1為該模塊的RTL視圖,圖中詳細描述了兩個子模塊間信號的交互。

      圖1 OV7670寄存器初始化模塊RTL視圖

      在初始上電3 ms后,當(dāng)config_data子模塊輸出wr_req信號為高電平且待發(fā)送的數(shù)據(jù)未達到上限時,啟動參數(shù)配置計數(shù)器進行計數(shù)。根據(jù)參數(shù)配置寄存器的計數(shù)值輸出待發(fā)送的數(shù)據(jù)。當(dāng)待發(fā)送數(shù)據(jù)達到上限時,拉高init_done信號,標(biāo)志攝像頭初始化已完成,可進行數(shù)據(jù)捕獲。

      當(dāng)i2c_byte_wr子模塊檢測到wr_req為高電平時,使用SCCB通信協(xié)議傳輸寄存器的參數(shù)。根據(jù)SCCB協(xié)議特點,該子模塊采用狀態(tài)機的思想,進行程序設(shè)計。圖2為OV7670攝像頭寄存器參數(shù)配置狀態(tài)機示意圖。

      圖2 OV7670攝像頭內(nèi)部寄存器參數(shù)配置狀態(tài)機示意圖

      當(dāng)系統(tǒng)復(fù)位結(jié)束后,該子模塊的狀態(tài)處于IDEL狀態(tài),在此狀態(tài)檢測cofig_data子模塊輸出的wr_req是否為高電平,如果該信號為低電平,狀態(tài)不發(fā)生跳轉(zhuǎn),否則在i2c_scl時鐘高電平期間狀態(tài)跳轉(zhuǎn)到START狀態(tài)。在START狀態(tài),當(dāng)i2c_scl為高電平期間,將i2c_sda信號從高電平變?yōu)榈碗娖剑瑯?biāo)志著SCCB協(xié)議的起始位,同時狀態(tài)跳轉(zhuǎn)至CTL_WORD狀態(tài),發(fā)送OV7670的器件地址,經(jīng)一個非應(yīng)答位,狀態(tài)跳轉(zhuǎn)到HIGH_ADDR狀態(tài),傳輸攝像頭內(nèi)部寄存器的地址。同理狀態(tài)跳轉(zhuǎn)到HIGH_ADDR_ACK,經(jīng)一個非應(yīng)答位,狀態(tài)跳轉(zhuǎn)到WR_DATA狀態(tài),完成參數(shù)傳輸,等待一個時鐘周期的非應(yīng)答位,狀態(tài)跳轉(zhuǎn)到STOP狀態(tài),發(fā)送停止位,即在i2c_scl高電平期間將i2c_sda信號由低電平變?yōu)楦唠娖?。同時send_finish信號維持一個時鐘周期的高電平,并且狀態(tài)跳轉(zhuǎn)到IDEL狀態(tài),等待下一個寄存器的配置。

      2.3 視頻數(shù)據(jù)采集模塊

      考慮到圖像數(shù)據(jù)采集的穩(wěn)定因素,該模塊丟棄前十幀圖像數(shù)據(jù)。從第十一幀圖像開始,對攝像頭輸出的8位位寬數(shù)據(jù)進行數(shù)據(jù)格式的轉(zhuǎn)換。由于本次設(shè)計在攝像頭寄存器配置時,選擇RGB565數(shù)據(jù)格式進行輸出,所以需要兩個時鐘周期進行8位數(shù)據(jù)到16位RGB565數(shù)據(jù)格式的轉(zhuǎn)換。由時序可知,當(dāng)行同步時序開始有效時,首先輸出RGB565數(shù)據(jù)格式的高八位,其次輸出RGB565的低8位。根據(jù)這一時序特性,本模塊在程序設(shè)計時,設(shè)置了數(shù)據(jù)轉(zhuǎn)換使能信號。當(dāng)行同步信號有效時,該使能信號沒經(jīng)過一個時鐘周期進行一次取反操作。當(dāng)其為低電平時,將攝像頭輸出的數(shù)據(jù)傳遞給RGB565數(shù)據(jù)的高八位,當(dāng)其為低電平時,將數(shù)據(jù)賦值給RGB565的低8位,最終可在兩個攝像頭工作時鐘周期內(nèi)輸出一個完整的RGB565圖像數(shù)據(jù)格式。考慮到視頻流的行同步信號于輸出的數(shù)據(jù)對其的情況,該模塊將行同步時序打拍操作,目的在于在攝像頭的工作時中下,將行同步信號與輸出的RGB565數(shù)據(jù)進行同步。此外,該模塊在進行兩個八位數(shù)據(jù)拼接時候,為表示有效的RGB565正常輸出,該模塊在數(shù)據(jù)拼接完成后設(shè)有數(shù)據(jù)有效標(biāo)志信號。

      3 實驗結(jié)果及分析

      為保證本設(shè)計的可行性,對本設(shè)計進行兩種驗證方式,分別為基于Modelsim的仿真驗證和基于SignalTap II的板級驗證,并對兩者的實驗結(jié)果進行分析。

      3.1 基于Model si m環(huán)境下的仿真結(jié)果及分析

      圖3為OV7670內(nèi)部第一個寄存器配置的仿真結(jié)果。由仿真結(jié)果可知,上電3ms后,cofig_data子模塊拉高寫請求信號data_send,并發(fā)送寫入OV7670內(nèi)部寄存器的參數(shù)0X1204,0X12表示配置寄存器的地址,0X04表示寄存器內(nèi)部的參數(shù)。i2c_byte_wr模塊檢測到data_send(send_en)信號后,狀態(tài)跳轉(zhuǎn)到1狀態(tài)產(chǎn)生起始位。隨后狀態(tài)跳轉(zhuǎn)到2狀態(tài)發(fā)送攝像頭器件地址0X42,發(fā)送完成后跳轉(zhuǎn)到3,經(jīng)過一個非應(yīng)答位后,狀態(tài)直接跳轉(zhuǎn)到4發(fā)送寄存器地址0X12,隨后以同樣的方式發(fā)送寄存器內(nèi)的參數(shù)0X04,最后狀態(tài)跳轉(zhuǎn)到8狀態(tài)發(fā)送停止位,即證明地址為0X12的寄存器配置完成,繼續(xù)檢測data_send信號,進行下一個寄存器的配置。

      圖3 OV7670內(nèi)部第一個寄存器配置的仿真結(jié)果

      圖4 為視頻采集模塊的仿真結(jié)果圖。仿真圖中的byte_flag為8位數(shù)據(jù)轉(zhuǎn)16位數(shù)據(jù)的標(biāo)志信號,從圖中可以看出,當(dāng)圖像傳感器的行同步信號cam_href有效時,byte_flag信號每經(jīng)過一個時鐘周期取反一次。當(dāng)byte_flag為高電平時,可發(fā)現(xiàn)圖像傳感器首先輸出的8位數(shù)據(jù)傳送至com_data_temp的高8位,即16位的RGB565數(shù)據(jù)的高八位,其次輸出的數(shù)據(jù)傳送給com_data_temp的低8位。故經(jīng)圖像傳感器的數(shù)據(jù)采集模塊電路后??蓪蓚€8位的數(shù)據(jù)轉(zhuǎn)化為1個16位的數(shù)據(jù),如圖中圖像傳感器輸出的數(shù)據(jù)0X00和0X01被轉(zhuǎn)換為0X0001,即圖中的coms_frame_data寄存器中存儲的數(shù)據(jù)。coms_frame_valid表示RGB565數(shù)據(jù)有效標(biāo)志。為了滿足視頻流時序中行同步信號與圖像數(shù)據(jù)輸出對其的時序要求,本設(shè)計對行同步信號cam_href進行打3拍處理,即處理之后的coms_frame_valid信號。

      圖4 視頻采集模塊仿真

      3.2 基于Si gnal Tap II的板級驗證及結(jié)果分析

      SignalTap II,是一款FPGA片上Debug工具軟件,用于捕獲設(shè)計中硬件與軟件之間的信號傳遞。圖5為OV7670硬件配置真實數(shù)據(jù)變化,從圖中i2c_sda由高電平變?yōu)榈碗娖娇雌?,i2c_sda數(shù)據(jù)信號線上傳輸?shù)臄?shù)據(jù)為0100_0010,十六進制的42,即FPGA選中OV7670攝像頭為從機,經(jīng)一個i2c_sda高電平后,i2c_sda上的數(shù)據(jù)信號為0011_1010,十六進制的3A,實現(xiàn)OV7670內(nèi)部地址為3A的寄存器尋址。同理經(jīng)過一個i2c_sda的高電平后,其數(shù)據(jù)變化為0000_0100,十六進制的04,實現(xiàn)的功能是將地址為3A的寄存器數(shù)據(jù)配置為0X04。

      圖5 OV7670硬件寄存器配置

      圖6 為OV7670視頻數(shù)據(jù)捕獲模塊的驗證結(jié)果,從圖6可知該模塊在com_frame_href為高電平時,輸出有效數(shù)據(jù),符合RGB565在行同步信號有效時輸出有效的圖像數(shù)據(jù)的時序要求。

      圖6 OV7670視頻數(shù)據(jù)捕獲模塊的整體驗證結(jié)果

      圖7 為RGB565數(shù)據(jù)格式驗證結(jié)果。該模塊實現(xiàn)了當(dāng)coms_frame_href為高電平時,將OV7670輸出的兩個八位數(shù)據(jù)轉(zhuǎn)化為一個16位的RGB565數(shù)據(jù)格式。

      圖7 RGB565數(shù)據(jù)格式驗證結(jié)果

      4 結(jié)語

      本文針對提高視頻控制的實時性的傳統(tǒng)方式,以圖像分辨率為代價換取控制實時性這一問題,提出了一種CMOS視頻圖像數(shù)據(jù)高效采集的FPGA實現(xiàn)方案。該方案利用FPGA的并行處理能力,提高了視頻控制的實時性能。通過上述仿真可證明,該方案邏輯的正確性。為保證該方案的硬件實現(xiàn),本次實驗在Intel公司的Cyclone IV系列EP4CE10F17C8 FPGA硬件開發(fā)平臺上進行驗證,并用在線邏輯分析儀對實驗結(jié)果進行采集和分析。結(jié)果證明,該方案具有硬件可實現(xiàn)性。

      猜你喜歡
      高電平寄存器時鐘
      一種基于FPGA的PWM防錯輸出控制電路
      別樣的“時鐘”
      古代的時鐘
      Lite寄存器模型的設(shè)計與實現(xiàn)
      TS-03C全固態(tài)PDM中波發(fā)射機開關(guān)機控制電路原理及故障分析
      科技傳播(2019年15期)2019-08-22 08:07:44
      分簇結(jié)構(gòu)向量寄存器分配策略研究*
      有趣的時鐘
      DM 50KW中波廣播發(fā)射機欠推動故障分析
      PDM 1kW中波廣播發(fā)射機保護電路分析
      時鐘會開“花”
      章丘市| 衡阳县| 睢宁县| 噶尔县| 康乐县| 醴陵市| 乌兰县| 东乡| 伊宁市| 搜索| 西安市| 彰化市| 宁晋县| 通辽市| 牙克石市| 曲阳县| 稷山县| 凌源市| 通化县| 土默特左旗| 丰镇市| 阿尔山市| 治多县| 缙云县| 正定县| 日喀则市| 岳阳市| 仪征市| 新源县| 新乡县| 井陉县| 泰兴市| 荔浦县| 徐汇区| 南投县| 大同县| 岑巩县| 宝山区| 元阳县| 克山县| 喜德县|