欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

基于FPGA驅(qū)動線陣CCD的高速圖像數(shù)據(jù)采集方法與流程

文檔序號:11407062閱讀:447來源:國知局
基于FPGA驅(qū)動線陣CCD的高速圖像數(shù)據(jù)采集方法與流程

本發(fā)明屬于工業(yè)機器視覺領(lǐng)域,具體涉及到一種基于fpga驅(qū)動線陣ccd的高速圖像數(shù)據(jù)采集方法。



背景技術(shù):

工業(yè)機器視覺系統(tǒng)主要應用于工業(yè)控制,產(chǎn)品檢測等領(lǐng)域,其主要結(jié)構(gòu)可分為三個部分:圖像數(shù)據(jù)采集,圖像識別和系統(tǒng)控制。圖像數(shù)據(jù)采集作為工業(yè)機器視覺的基礎在整個系統(tǒng)中扮演著至關(guān)重要的角色,而提高圖像數(shù)據(jù)的采集速率,以更快的速度獲得高質(zhì)量的圖像數(shù)據(jù)是提高整個視覺系統(tǒng)速率與精度的重要步驟。在傳統(tǒng)的技術(shù)中,圖像數(shù)據(jù)的采集一般使用以單片或者arm為核心,使用軟件的方式驅(qū)動光學成像傳感器來實現(xiàn)。由于受到控制器的工作模式及速度的限制,所以圖像采集速率存在一定的上限。另外,光學成像原件主要分為ccd和cmos兩種類型,其中ccd傳感器成像質(zhì)量清晰,細膩,更適合工業(yè)現(xiàn)場復雜的光學環(huán)境。



技術(shù)實現(xiàn)要素:

本發(fā)明針對現(xiàn)有技術(shù)的不足,提出了一種基于fpga驅(qū)動線陣ccd的高速圖像采集方法,先通過驅(qū)動線陣ccd傳感器與ad芯片實現(xiàn)圖像數(shù)據(jù)采集,接著創(chuàng)建fifo結(jié)構(gòu)實現(xiàn)數(shù)據(jù)緩存及速度匹配,再通過設計emif接口實現(xiàn)圖像數(shù)據(jù)傳輸。

高速圖像數(shù)據(jù)采集的實現(xiàn)步驟包括:

步驟一:驅(qū)動線陣ccd傳感器與ad芯片

1-1、根據(jù)ad芯片的時序要求將芯片初始化及啟動命令置入芯片內(nèi)部寄存器中使芯片正常工作,要確保此步驟在線陣ccd傳感器有效輸出之前完成;

1-2、調(diào)用pll宏模塊產(chǎn)生200mhz時鐘,以此時鐘作為整個系統(tǒng)的運行時鐘;

1-3、定義周期計數(shù)器cnt實現(xiàn)線陣ccd傳感器驅(qū)動時序的周期循環(huán)計數(shù),計數(shù)時間為一個完整的cdd驅(qū)動時序周期所需要的時間;

1-4、根據(jù)線陣ccd傳感器的時序要求,以周期計數(shù)器cnt的計數(shù)時間為準在相應的計數(shù)位置產(chǎn)生相應時間的時序信號,并在有效輸出位置產(chǎn)生緩存結(jié)構(gòu)fifo的寫入開始信號;

1-5、定義分頻計數(shù)器d_cnt,在周期計數(shù)器記到線陣ccd傳感器有效輸出時實現(xiàn)時鐘分頻,得到線陣ccd傳感器驅(qū)動時鐘,ad芯片采樣時鐘dataclk以及緩存結(jié)構(gòu)fifo的寫入時鐘,分頻值=系統(tǒng)時鐘/線陣ccd傳感器驅(qū)動時鐘;

1-6、根據(jù)周期計數(shù)器cnt的計數(shù)時間,在相應的計數(shù)位置產(chǎn)生ad芯片所需的pblk、clopb信號,以屏蔽線陣ccd傳感器的無效輸出,并在周期計數(shù)器cnt計數(shù)到線陣ccd傳感器有效輸出時,配合分頻計數(shù)器d_cnt在一個ad芯片采樣時鐘dataclk周期間產(chǎn)生ad雙關(guān)采樣信號shp,shd;

步驟二:緩存設計及控制實現(xiàn)步驟

2-1、調(diào)用fifo宏模塊用于創(chuàng)建緩存結(jié)構(gòu);

2-2、fifo控制模塊由狀態(tài)機結(jié)構(gòu)實現(xiàn),首先定義狀態(tài)機五個狀態(tài)idle,write_fifo,read_r_fifo,read_g_fifo,read_b_fifo,在idle狀態(tài)判斷fifo的寫入開始信號,接收到寫入開始信號轉(zhuǎn)入write_fifo態(tài),否則停留在idle狀態(tài);idle狀態(tài)輸出fifo的讀與寫信號為無效,清零信號有效;在write_fifo狀態(tài)判斷3個通道fifo同時寫滿信號,該信號為有效,轉(zhuǎn)入read_r_fifo態(tài),否則停留在write_fifo態(tài);write_fifo態(tài)輸出fifo讀信號清零信號無效,寫信號有效;在read_r_fifo狀態(tài)判斷r通道fifo讀空信號,該信號有效,轉(zhuǎn)入read_g_fifo態(tài),否則停留在read_r_fifo態(tài),read_r_fifo態(tài)輸出fifo寫信號與清零信號無效,r通道fifo讀信號有效,其余通道無效;在read_g_fifo狀態(tài)判斷g通道fifo讀空信號,該信號有效,轉(zhuǎn)入read_b_fifo態(tài),否則停留在read_g_fifo態(tài);read_g_fifo態(tài)輸出fifo寫信號與清零信號無效,g通道fifo讀信號有效,其余通道無效;在read_b_fifo狀態(tài)判斷b通道fifo讀空信號,該信號有效,轉(zhuǎn)入idle態(tài),否則停留在read_b_fifo態(tài);read_b_fifo態(tài)輸出fifo寫信號與清零信號無效,b通道fifo讀信號有效,其余通道無效;idle,write_fifo,read_r_fifo,read_g_fifo,read_b_fifo依次表示空閑態(tài)、fifo寫入、讀r通道fifo、讀g通道fifo、讀b通道fifo;

步驟三:emif通訊接口的實現(xiàn)

3-1、定義雙向端口ema_d,由三態(tài)門實現(xiàn),當dsp讀信號rd_en有效時雙向端口ema_d值為內(nèi)部數(shù)據(jù)寄存器data_buf值,否則為高阻態(tài);讀信號rd_en由dsp端信號ema_cs2、ema_oe分別取非后再相與得到;

3-2、將讀信號rd_en與上數(shù)據(jù)傳輸?shù)刂沸盘杄ma_a得到fifo的讀取時鐘信號rd_fifo_clk;

3-3、當rd_en信號有效時,根據(jù)地址信號ema_a的數(shù)據(jù),將相應的地址上的數(shù)據(jù)賦給data_buf即賦給輸出端口ema_d;在rd_fifo_clk信號作用,一個像素值就由fifo傳輸至dsp。

與現(xiàn)有的技術(shù)相比,本發(fā)明的有益效果是:采用fpga驅(qū)動高速線陣ccd,并用fifo緩存進行速度匹配,以及高速通訊接口emif來與dsp交互數(shù)據(jù),大大提高了工業(yè)機器視覺系統(tǒng)中前端圖像數(shù)據(jù)采集速度。實驗證明,ccd采樣頻率可達25mhz,采樣行頻可達5khz。

附圖說明

圖1硬件結(jié)構(gòu)示意圖;

圖2是fifo控制結(jié)構(gòu)狀態(tài)轉(zhuǎn)移圖。

具體實施方式

一種基于fpga驅(qū)動線陣ccd的高速圖像采集方法,通過驅(qū)動線陣ccd傳感器與ad芯片實現(xiàn)圖像數(shù)據(jù)采集,通過創(chuàng)建fifo結(jié)構(gòu)實現(xiàn)數(shù)據(jù)緩存及速度匹配,通過設計emif接口實現(xiàn)圖像數(shù)據(jù)傳輸。

如圖1所示:在fpga內(nèi)部,線陣ccd傳感器與ad芯片驅(qū)動時序發(fā)生器產(chǎn)生線陣ccd傳感器與三路ad芯片驅(qū)動時序驅(qū)動線陣ccd傳感器與三路ad芯片正常工作;r、g、b三路ad芯片將r、g、b三個通道的圖像數(shù)據(jù)傳入fpga內(nèi)部r、g、b三通道fifo;fifo讀寫控制狀態(tài)機控制r、g、b三通道fifo的讀寫得到圖像數(shù)據(jù)并將圖像數(shù)據(jù)傳給emif接口;emif接收圖像數(shù)據(jù)并將圖像數(shù)據(jù)傳給fpga外部dsp。

一種基于fpga驅(qū)動線陣ccd的高速圖像采集方法主要包括驅(qū)動線陣ccd傳感器以及ad轉(zhuǎn)換芯片的實現(xiàn)步驟,數(shù)據(jù)緩存實現(xiàn)步驟以及通信接口實現(xiàn)步驟三部分。

高速圖像數(shù)據(jù)采集的實現(xiàn)步驟包括:

步驟一:驅(qū)動線陣ccd傳感器與ad芯片

①根據(jù)ad芯片的時序要求將芯片初始化及啟動命令置入芯片內(nèi)部寄存器中使芯片正常工作,要確保此步驟在線陣ccd傳感器有效輸出之前完成。

②調(diào)用pll宏模塊產(chǎn)生200mhz時鐘,以此時鐘作為整個系統(tǒng)的運行時鐘。

③定義周期計數(shù)器cnt實現(xiàn)線陣ccd傳感器驅(qū)動時序的周期循環(huán)計數(shù),計數(shù)時間為一個完整的cdd驅(qū)動時序周期所需要的時間。

④根據(jù)線陣ccd傳感器的時序要求,以周期計數(shù)器cnt的計數(shù)時間為準在相應的計數(shù)位置產(chǎn)生相應時間的時序信號,并在有效輸出位置產(chǎn)生緩存結(jié)構(gòu)fifo的寫入開始信號。

⑤定義分頻計數(shù)器d_cnt,在周期計數(shù)器記到線陣ccd傳感器有效輸出時實現(xiàn)時鐘分頻,得到線陣ccd傳感器驅(qū)動時鐘,ad芯片采樣時鐘dataclk以及緩存結(jié)構(gòu)fifo的寫入時鐘,分頻值=系統(tǒng)時鐘/線陣ccd傳感器驅(qū)動時鐘。

⑥根據(jù)周期計數(shù)器cnt的計數(shù)時間,在相應的計數(shù)位置產(chǎn)生ad芯片所需的pblk、clopb信號,以屏蔽線陣ccd傳感器的無效輸出,并在周期計數(shù)器cnt計數(shù)到線陣ccd傳感器有效輸出時,配合分頻計數(shù)器d_cnt在一個ad芯片采樣時鐘dataclk周期間產(chǎn)生ad雙關(guān)采樣信號shp,shd。

步驟二:緩存設計及控制實現(xiàn)步驟

如圖2所示fifo讀寫控制狀態(tài)機實現(xiàn)方法具體如下:

①調(diào)用fifo宏模塊用于創(chuàng)建緩存結(jié)構(gòu)。

②fifo控制模塊由狀態(tài)機結(jié)構(gòu)實現(xiàn),首先定義狀態(tài)機五個狀態(tài)idle(空閑態(tài)),write_fifo(fifo寫入),read_r_fifo(讀r通道fifo),

read_g_fifo(讀g通道fifo),read_b_fifo(讀b通道fifo),在idle狀態(tài)判斷fifo的寫入開始信號,接收到寫入開始信號轉(zhuǎn)入write_fifo態(tài),否則停留在idle狀態(tài);idle狀態(tài)輸出fifo的讀與寫信號為無效,清零信號有效;在write_fifo狀態(tài)判斷3個通道fifo同時寫滿信號,該信號為有效,轉(zhuǎn)入read_r_fifo態(tài),否則停留在write_fifo態(tài);write_fifo態(tài)輸出fifo讀信號清零信號無效,寫信號有效;在read_r_fifo狀態(tài)判斷r通道fifo讀空信號,該信號有效,轉(zhuǎn)入read_g_fifo態(tài),否則停留在read_r_fifo態(tài),read_r_fifo態(tài)輸出fifo寫信號與清零信號無效,r通道fifo讀信號有效,其余通道無效;在read_g_fifo狀態(tài)判斷g通道fifo讀空信號,該信號有效,轉(zhuǎn)入

read_b_fifo態(tài),否則停留在read_g_fifo態(tài);read_g_fifo態(tài)輸出fifo寫信號與清零信號無效,g通道fifo讀信號有效,其余通道無效;在read_b_fifo狀態(tài)判斷b通道fifo讀空信號,該信號有效,轉(zhuǎn)入idle態(tài),否則停留在read_b_fifo態(tài);read_b_fifo態(tài)輸出fifo寫信號與清零信號無效,b通道fifo讀信號有效,其余通道無效。

步驟三:emif通訊接口的實現(xiàn)

①定義雙向端口ema_d,由三態(tài)門實現(xiàn),當dsp讀信號rd_en有效時雙向端口ema_d值為內(nèi)部數(shù)據(jù)寄存器data_buf值,否則為高阻態(tài)。讀信號rd_en由dsp端信號ema_cs2、ema_oe分別取非后再相與得到。

②將讀信號rd_en與上數(shù)據(jù)傳輸?shù)刂沸盘杄ma_a得到fifo的讀取時鐘信號rd_fifo_clk。

③當rd_en信號有效時,根據(jù)地址信號ema_a的數(shù)據(jù)(存放圖像數(shù)據(jù)地址應與址信號ema_a的數(shù)據(jù)相一致),將相應的地址上的數(shù)據(jù)賦給data_buf即賦給輸出端口ema_d;在rd_fifo_clk信號作用,一個像素值就由fifo傳輸至dsp。

當前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
清苑县| 宜章县| 开化县| 琼中| 彰化市| 德化县| 景泰县| 扶沟县| 错那县| 云南省| 漾濞| 石阡县| 绥江县| 轮台县| 吴堡县| 商河县| 缙云县| 谢通门县| 禄劝| 法库县| 巢湖市| 宾川县| 秀山| 丰都县| 巴楚县| 曲周县| 康保县| 蒲江县| 昌图县| 丹阳市| 景德镇市| 宣恩县| 团风县| 阳新县| 鄂托克旗| 嘉峪关市| 西乡县| 双柏县| 天长市| 景泰县| 新津县|