新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 以FPGA為核心的邏輯控制模塊的數(shù)據(jù)采集系統(tǒng)

以FPGA為核心的邏輯控制模塊的數(shù)據(jù)采集系統(tǒng)

作者: 時間:2012-10-10 來源:網(wǎng)絡(luò) 收藏
根據(jù)I2C總線數(shù)據(jù)傳輸?shù)臅r序,總線控制器的狀態(tài)機(jī)分為空閑狀態(tài)、啟動狀態(tài)、數(shù)據(jù)傳輸狀態(tài)、應(yīng)答狀態(tài)和停止?fàn)顟B(tài)。Idle狀態(tài)表示總線空閑狀態(tài),SCL和SDA都為高電平,若clk=1則進(jìn)入Start狀態(tài)。Start狀態(tài)表示總線啟動,此時保持SCL為高電平,將SDA由高電平變?yōu)榈碗娖?,從而啟動?shù)據(jù)傳輸。Data_trans狀態(tài)中一次傳1 Byte數(shù)據(jù)。在本狀態(tài)中,1 Byte數(shù)據(jù)的傳輸過程為將時鐘線變?yōu)榈碗娖?,然后將?shù)據(jù)放在數(shù)據(jù)線SDA上。再將時鐘線變?yōu)楦唠娖?,讓接收方進(jìn)行數(shù)據(jù)接收。傳輸完1 Byte后進(jìn)入Hold。Hold狀態(tài)用來表示應(yīng)答階段,主要是產(chǎn)生一個時鐘脈沖,讓接收方對1 Byte的數(shù)據(jù)產(chǎn)生應(yīng)答信號。在此狀態(tài)中進(jìn)行對本次數(shù)據(jù)連續(xù)傳送是否完畢進(jìn)行判斷。如未傳輸完則繼續(xù)到Start狀態(tài)進(jìn)行下一次數(shù)據(jù)的傳輸,并將count-1。Stop狀態(tài)表示數(shù)據(jù)傳輸結(jié)束。在SCL高電平期間將SDA由低轉(zhuǎn)為高。然后輸出一個配置完成的信號。寄存器配置狀態(tài)機(jī)如圖3所示。


3.3 控制模塊
控制模塊由control_enable模塊和control_interface模塊組成主要負(fù)責(zé)圖像采集模塊和顯示接口模塊的同步和使能。當(dāng)解碼芯片配置完成后,從CONFIGURACION_OK輸入使能信號,啟動該模塊,同時通過href和odd信號啟動圖像采集模塊和顯示接口模塊,href=1表示SAA7113H通過VPO傳輸像素數(shù)據(jù);odd=1表示奇數(shù)場,odd=0表示偶數(shù)場。
3.4 像素存儲模塊
圖像的一幀為720×625提取其中的有效像素640×576存入SDRAM中,再讀出480行數(shù)據(jù)進(jìn)行格式轉(zhuǎn)換和顯示。
由于SDRAM每個單元為16位,所以將一個Y和一個Cb或Cr合存在一個地址空間中,即兩個時鐘周期產(chǎn)生一個地址。SDRAM有4端口模式,2個用于將FIFO中的數(shù)據(jù)寫SDRAM,2個用于將數(shù)據(jù)讀到FIFO中,讀寫采用的時鐘不同,寫時鐘采用解碼芯片的27MHz,而瀆時鐘采用VGA的25MHz,由于SDRAM的讀寫速度為50 MHz,時鐘頻率不同,不能直接寫入,因此需要一個FIFO將數(shù)據(jù)暫時儲存,再將其寫到SDRAM中。
此處關(guān)鍵問題是隔行掃描到逐行掃描的轉(zhuǎn)換。SAA7113H是先奇數(shù)場后偶數(shù)場的順序輸出,即隔行輸出,而VGA顯示是逐行顯示的,因此要進(jìn)行去隔行操作。利用對SDRAM的讀寫地址的控制能夠有效解決隔行到逐行的轉(zhuǎn)換問題,數(shù)據(jù)寫入SDRAM是將隔行數(shù)據(jù)寫入到SDRAM的0-640× 576的地址空間中,其中640×23-640×310為1、3、5、…奇數(shù)場的有效數(shù)據(jù),640×336-640×623為2、4、6、…偶數(shù)場的有效數(shù)據(jù)。兩場數(shù)據(jù)分別通過不同的FIFO讀出,格式轉(zhuǎn)換時交叉讀取兩個FIFO中的數(shù)據(jù),這樣讀出的數(shù)據(jù)即1、2、3、4、…逐行數(shù)據(jù)。
3.5 格式轉(zhuǎn)換模塊
要將攝像頭采集的圖像顯示在顯示器上,需進(jìn)行數(shù)據(jù)的格式轉(zhuǎn)換,將YUV格式的數(shù)據(jù)轉(zhuǎn)換成RGB格式的數(shù)據(jù)。YUV 4:2:2格式的數(shù)據(jù)兩個相鄰的像素共用一對Cb和Cr分量,所以在進(jìn)行格式轉(zhuǎn)換時要先解交織,即一次從FIFO中提取相鄰的兩個像素數(shù)據(jù),將Cb和Cr各復(fù)用一次,使得YUV變成4:4:4格式,然后進(jìn)行格式的轉(zhuǎn)換。將轉(zhuǎn)換好的數(shù)據(jù)存放在reg_RGB中,VGA顯示的時候交叉讀取這兩個寄存器中的數(shù)據(jù)。轉(zhuǎn)換公式如下所示

由于在中進(jìn)行浮點運(yùn)算較困難,因此可將式(1)中的各系數(shù)轉(zhuǎn)化為整數(shù)在進(jìn)行運(yùn)算,采用將各系數(shù)放大1 024倍的方法,得到r、g、b后再除以1 024,放大后的公式為

根據(jù)上述公式得到r、g、b。然后將結(jié)果均右移10位完成除法運(yùn)算,得到RGB值。由于r、g、b均為8位,取值范圍為0~255,而運(yùn)算過程較易生成負(fù)數(shù)和超過255的正數(shù),因此運(yùn)算結(jié)果需將負(fù)數(shù)取0,超過255的正數(shù)取為255。此方法雖然會引入誤差,但對最終圖像的顯示效果不會有較大影響。
3.6 顯示接口模塊
由interface_vga負(fù)責(zé)圖像的顯示,從reg_RGB寄存器中讀取轉(zhuǎn)換好的數(shù)據(jù),對這兩個像素的讀取由一個轉(zhuǎn)換電路負(fù)責(zé)在兩個寄存器之間切換。顯示接口模塊將r、g、b以及hsync、vsync一起發(fā)送給編碼芯片THS8134,通過VGA顯示出來,hsync和vsyne分別是行和場同步信號。在仿真中,選用CycloneⅡEP2C20Q240C8芯片,用QUARTusⅡ8.0進(jìn)行綜合與仿真。圖4是對顯示接口模塊的仿真。由仿真結(jié)果可以看出,行同步和場同步符合時序要求。



4 結(jié)束語
實現(xiàn)了一種基于CycloneII系列與視頻信號處理芯片SAA7113H的嵌入式圖像采集系統(tǒng)。系統(tǒng)結(jié)構(gòu)簡單系、統(tǒng)穩(wěn)定、功耗低、成本低、速度快以及接口方便,可以滿足視頻監(jiān)控系統(tǒng)等的需要。圖像采集系統(tǒng)中采用作為采集控制部分,可以提高系統(tǒng)處理的速度及系統(tǒng)的靈活性和適應(yīng)性,對于不同的視頻圖像信號,只要在FPGA內(nèi)對控制邏輯稍作修改,便可實現(xiàn)信號采集。


上一頁 1 2 下一頁

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉