新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于SoPC的自感知運(yùn)動(dòng)圖像采集系統(tǒng)設(shè)計(jì)

基于SoPC的自感知運(yùn)動(dòng)圖像采集系統(tǒng)設(shè)計(jì)

作者: 時(shí)間:2009-11-16 來(lái)源:網(wǎng)絡(luò) 收藏
引 言
近年來(lái),嵌入式技術(shù)得到快速發(fā)展,但由于嵌入式的處理、傳輸和存儲(chǔ)數(shù)據(jù)的資源有限,常成為速度的瓶頸,很難實(shí)現(xiàn)高速穩(wěn)定的
是近幾年興起的一種用于嵌入式開(kāi)發(fā)的片上可編程技術(shù),FPGA芯片,將處理器、存儲(chǔ)器、I/O口等模塊集成在一起,完成整個(gè)系統(tǒng)的主要邏輯功能,具有靈活、可剪裁、可擴(kuò)充、可升級(jí)及軟、硬件在系統(tǒng)可編程的功能。由于平臺(tái)可以擁有微處理器系統(tǒng)豐富的軟件資源和出色的人機(jī)交互能力,同時(shí)又具備FPGA系統(tǒng)的快速硬件邏輯特性,實(shí)現(xiàn)了軟件系統(tǒng)和硬件系統(tǒng)的互補(bǔ),因此發(fā)展前景非常廣闊,被認(rèn)為是未來(lái)嵌入式系統(tǒng)發(fā)展的方向。
在此試圖一種SoPC的自采集系統(tǒng),使其能夠應(yīng)用于低成本、低功耗的微型嵌入式監(jiān)控和采集系統(tǒng),以期在更多適合的應(yīng)用場(chǎng)合替代傳統(tǒng)PC的圖像監(jiān)控方案。在已見(jiàn)文獻(xiàn)報(bào)道中,基于SoPC的圖像采集系統(tǒng)大多只是把采集的數(shù)據(jù)緩沖在SDRAM或SRAM中,有些文獻(xiàn)則進(jìn)一步提出將緩沖后數(shù)據(jù)直接通過(guò)并口傳輸給主控芯片,有的方案則是由USB接口或以太網(wǎng)接口輸出主機(jī),另外有的文獻(xiàn)則提出直接將數(shù)據(jù)存儲(chǔ)到CF卡或硬盤(pán)中,而在SoPC系統(tǒng)直接實(shí)現(xiàn)SD卡的圖像采集數(shù)據(jù)文件存儲(chǔ)在國(guó)內(nèi)還未見(jiàn)報(bào)道。
另外還提出了一種新的適合在FPGA硬件實(shí)現(xiàn)的快速檢測(cè)算法,并和圖像采集、SD卡圖像數(shù)據(jù)存儲(chǔ)接口電路集成在同一FPGA芯片內(nèi)部。在此這一圖像采集系統(tǒng)的結(jié)構(gòu)、工作原理以及系統(tǒng)設(shè)計(jì)等加以介紹。

1 系統(tǒng)結(jié)構(gòu)及工作原理
該系統(tǒng)選用的。FPGA芯片是Altera公司CycloneⅡ系列的EP2C35。該芯片具有35 000個(gè)邏輯單元、672個(gè)引腳、475個(gè)用戶(hù)自定義I/O接口、35個(gè)嵌入式乘法器和4個(gè)鎖相環(huán)。FPGA芯片外接美光公司型號(hào)為MT9M011的130萬(wàn)像素的CIS(CMOS圖像傳感器,分辨率為640×480時(shí)60幀/s)、Hynix公司的型號(hào)為HY57V641620HG的SDRAM(4 Banks×1 M×16 b),以及用來(lái)圖像顯示驗(yàn)證的液晶屏等。
系統(tǒng)工作過(guò)程如圖1所示。CIS經(jīng)過(guò)I2C配置模塊的初始化后,輸出行場(chǎng)同步信號(hào)、像素時(shí)鐘和圖像數(shù)據(jù)。再將采集的數(shù)據(jù)轉(zhuǎn)換成RGB信號(hào),幀緩沖模塊(Frame Buffer)每次將相鄰兩幀圖像數(shù)據(jù)寫(xiě)入SDRAM,然后比較這兩幀圖像的差值,如果差值大于設(shè)定的閾值,就認(rèn)為檢測(cè)到了外界場(chǎng)景的,系統(tǒng)會(huì)自動(dòng)將捕獲的圖像輸出到SD卡進(jìn)行存儲(chǔ)。

本文引用地址:http://butianyuan.cn/article/152285.htm

2 系統(tǒng)模塊設(shè)計(jì)
2.1 采集模塊
2.1.1 CIS配置模塊
目前嵌入式采集系統(tǒng)大多仍采用模擬攝像頭,再經(jīng)過(guò)A/D轉(zhuǎn)換得到數(shù)字圖像信號(hào)。而相比較而言,CMOS圖像傳感器能夠直接輸出數(shù)字信號(hào),而且其以體積小、功耗低、成本低的優(yōu)勢(shì)更適合應(yīng)用在嵌入式應(yīng)用領(lǐng)域,在該設(shè)計(jì)中采用130萬(wàn)像素的CMOS圖像傳感器,其輸出圖像品質(zhì)已相當(dāng)接近CCD感應(yīng)器。MT9M011芯片內(nèi)部自帶時(shí)序發(fā)生器和ADC,使用時(shí)只需輸入一個(gè)時(shí)鐘信號(hào)(該設(shè)計(jì)采用25 MHz的時(shí)鐘信號(hào)),圖像數(shù)據(jù)便按行有效信號(hào)(LINE VALID)、場(chǎng)有效信號(hào)(FRAME VAL-ID)和像素時(shí)鐘(Pixel clock)時(shí)序關(guān)系一同發(fā)出。
MT9M011上集成了I2C接口,其初始化由內(nèi)部的I2C總線(xiàn)來(lái)配置,通過(guò)編寫(xiě)硬件描述語(yǔ)言來(lái)模擬I2C總線(xiàn)時(shí)序,從而配置各寄存器,其中,該設(shè)計(jì)需要配置的寄存器如表1所示。該模塊采用計(jì)數(shù)器建立一個(gè)狀態(tài)機(jī),先寫(xiě)器件地址,再寫(xiě)寄存器地址,然后寫(xiě)數(shù)據(jù)。另外還提供每幀圖像的控制信號(hào)以及圖像的行計(jì)數(shù)器和列計(jì)數(shù)器,為后續(xù)處理作準(zhǔn)備。
2.1.2 格式轉(zhuǎn)換模塊
MT9M011所輸出的圖像格式為Bayer格式,奇行由綠、紅像素交替構(gòu)成,偶行由藍(lán)、綠像素交替構(gòu)成。要想在顯示屏上顯示,必須將Bayer格式通過(guò)CFA插值濾波為RGB圖像數(shù)據(jù)。該模塊采用雙線(xiàn)性插值算法(BiIinear Interpolation),與高階B-spline和Cubic-spline等插補(bǔ)函數(shù)算法相比,圖像的像質(zhì)相差不大。但Bilincar的算法要簡(jiǎn)單得多,不僅消耗的硬件資源相對(duì)要少,而且易于硬件實(shí)現(xiàn)。其算法原理是每個(gè)像素位置上缺少的彩色分量由3×3鄰域內(nèi)具有相同顏色分量的像素平均值獲得。

設(shè)計(jì)中調(diào)用移位寄存器IP核,將間隔為640的3個(gè)數(shù)作為輸出,這樣同時(shí)取到三行同一列的三個(gè)數(shù)據(jù),將這三個(gè)數(shù)據(jù)存入寄存器分別作兩次緩存延遲,從而得到3×3的鄰域數(shù)據(jù),根據(jù)配置模塊提供的行列計(jì)數(shù)的最低位來(lái)判斷該鄰域中間點(diǎn)所在行和列的奇偶性,從而計(jì)算出不同的RGB值。至此,每點(diǎn)圖像數(shù)據(jù)量變?yōu)樵瓉?lái)的3倍。為了便于在液晶屏進(jìn)行圖像顯示的驗(yàn)證和SDRAM的緩存,在該模塊將RGB數(shù)據(jù)進(jìn)行了抽樣處理,采用隔點(diǎn)隔行采樣使得每幀圖像分辨率降為320×240像素。
2.2 緩存模塊
考慮到系統(tǒng)需要緩存的數(shù)據(jù)量較大,在各種隨機(jī)存儲(chǔ)器件中,SDRAM器件價(jià)格低、容量大、速度也較快,非常適合用于圖像采集系統(tǒng)。但SDRAM的控制邏輯比較復(fù)雜,要求有一個(gè)專(zhuān)門(mén)的控制器。 緩存模塊是由Sdram控制器,三個(gè)FIFO以及分時(shí)切換電路組成。SDRAM控制器負(fù)責(zé)外部SDRAM的讀/寫(xiě)操作。三個(gè)FIFO中Write_FIFO用來(lái)數(shù)據(jù)輸入,Read_FIFO11和Read FIFO2用來(lái)數(shù)據(jù)輸出,容量均為512,位寬設(shè)為16 b??紤]到SDRAM只有16 b的位寬,輸入的RGB信號(hào)分別只取各自的最高5位。
2.2.1 SDRAM控制器
SDRAM控制器是由命令生成狀態(tài)機(jī)和數(shù)據(jù)通道兩個(gè)模塊構(gòu)成。系統(tǒng)的初始化、讀寫(xiě)和刷新的控制采用有限狀態(tài)機(jī)來(lái)實(shí)現(xiàn)。如圖2所示,其狀態(tài)轉(zhuǎn)移系統(tǒng)復(fù)位后由復(fù)位狀態(tài)(Reset)進(jìn)入初始化(Init)狀態(tài)。初始化包含初始化延時(shí)、初始化預(yù)充電、初始化刷新和初始化模式寄存器設(shè)置4個(gè)子狀態(tài)。初始化時(shí)將模式寄存器設(shè)置為長(zhǎng)度為“1”的突發(fā)讀寫(xiě)方式。設(shè)置完模式寄存器后,系統(tǒng)進(jìn)入空閑狀態(tài)。當(dāng)3個(gè)FIFO半滿(mǎn)信號(hào)有效后。SDRAM控制器進(jìn)入行激活狀態(tài),經(jīng)過(guò)兩個(gè)周期空操作(ActiveNOP)狀態(tài)后進(jìn)入讀或者寫(xiě)狀態(tài)。
讀數(shù)據(jù)過(guò)程由Read CAS狀態(tài)開(kāi)始,經(jīng)過(guò)CAS延時(shí),進(jìn)入Read_Data狀態(tài)。突發(fā)計(jì)數(shù)器從Read_CAS態(tài)開(kāi)始計(jì)數(shù),當(dāng)計(jì)數(shù)到讀寫(xiě)請(qǐng)求的突發(fā)長(zhǎng)度時(shí),狀態(tài)機(jī)進(jìn)入Read_Precharge狀態(tài)將打開(kāi)的行關(guān)閉。在圖像采集中,用突發(fā)方式存完一行后,下一次存取的將是不同的行。根據(jù)這一特點(diǎn),在SDRAM控制器中進(jìn)行了優(yōu)化,在讀寫(xiě)操作完成后執(zhí)行自動(dòng)預(yù)充電,將打開(kāi)的行關(guān)閉,將預(yù)充電的時(shí)間隱藏在數(shù)據(jù)訪(fǎng)問(wèn)中,從而提高了SDRAM訪(fǎng)問(wèn)的速度。寫(xiě)操作過(guò)程由Write_Data和Write_Precharge狀態(tài)組成。當(dāng)激活一行完成后,進(jìn)入到Write_Data狀態(tài),突發(fā)計(jì)數(shù)器對(duì)周期計(jì)數(shù),計(jì)數(shù)到突發(fā)長(zhǎng)度時(shí),狀態(tài)機(jī)進(jìn)入Write_Precharge狀態(tài)將打開(kāi)的行關(guān)閉。需要注意的是Read_Precharge和Write_Precharge后都需要兩個(gè)空操作才能再打開(kāi)新的一行。

由于圖像數(shù)據(jù)流的連續(xù)性,每隔65 μs就有一行數(shù)據(jù)輸入,因此在SDRAM控制器中沒(méi)有必要再設(shè)置刷新計(jì)數(shù)器,而是在響應(yīng)圖像采集數(shù)據(jù)請(qǐng)求后將采集的一行數(shù)據(jù)存入SDRAM后對(duì)SDRAM進(jìn)行刷新。由于HY57V641620HG要求在65 ms內(nèi)完成4 096次刷新,該設(shè)計(jì)驗(yàn)證時(shí)按照每幀圖像(320×240)×(60幀/s)格式采集,需要在采集一行后完成[1/(60×240)/64]×4 096△4.4次刷新,因此需執(zhí)行5次刷新操作。在Write_Precharge完成后,如果寫(xiě)操作是由FIFO半滿(mǎn)信號(hào)有效引起的,狀態(tài)機(jī)將進(jìn)入自動(dòng)刷新?tīng)顟B(tài),完成5次刷新操作后回到Idle狀態(tài)。如圖3所示,數(shù)據(jù)通路模塊受OE信號(hào)的控制,使數(shù)據(jù)的進(jìn)出和相應(yīng)的操作指令在時(shí)序上同步。OE為1時(shí),數(shù)據(jù)可由DQ腳寫(xiě)入SDRAM,OE為0時(shí),數(shù)據(jù)可從SDRAM的DQ讀出。


上一頁(yè) 1 2 3 下一頁(yè)

評(píng)論


相關(guān)推薦

技術(shù)專(zhuān)區(qū)

關(guān)閉