實時視頻數據采集的FPGA實現
2 視頻信號采集和顯示部分的實現
SAA7113H輸出PAL制式的ITU656標準YUV(4:2:2)格式數據[2],其中Y表示亮度信號,而UV表示色差信號,并且輸出像素時鐘為27 MHz。信號掃描方式為隔行掃描,幀率為25幀/秒,每幀圖像分為奇偶兩場,每幀像素為864×625,其中有效數據為720×576。SAA7113H 輸出的一行視頻數據格式如圖3所示,每行有1 728 B,其中有效數據1 440 B,對應720個有效像素,可以看成每一個像素由2個連續的字節表示,每個像素有自己的亮度數據Y,每兩個相鄰像素共用一組色差數據U和V。

由于系統要求在VGA顯示器上采用逐場逐行方式顯示RGB格式的數據,并且要求所采集圖像的大小為640×480,因此,必須對SAA7113H所采集到的原始數字視頻信號進行格式轉換和存儲方式的處理。
2.1 IIC配置單元
視頻解碼芯片SAA7113H接收CCD攝像頭輸出的模擬視頻信號,將其轉換成標準的VPO數字信號。SAA7113H上電后,必須由核心控制芯片FPGA通過IIC總線對其內部的寄存器進行初始化設置,然后才能正常工作。IIC配置單元的任務就是按照IIC總線的數據傳輸規范對 SAA7113H內部的寄存器進行初始化設置,其時鐘信號由SAA7113H提供的27 MHz的像素時鐘經過時鐘控制單元分頻得到,數據速率在100 kb/s~400 kb/s。
IIC配置單元的內部結構如圖4所示,由IIC控制單元iic_all、配置數據存儲器iic_rom和讀地址發生器div448構成。IIC控制單元iic_all是核心控制單元,采用狀態機設計,在start信號有效后使SCL高電平時拉低SDA數據線,同時控制地址發生器div448產生讀地址信號送入配置數據存儲器iic_rom; iic_rom采用可設置參數模塊LPM_ROM,定制為數據寬度為1的只讀ROM,每個存儲單元按位預存SAA7113H內部寄存器的控制字;在時鐘使能端clken有效時按位串行寫入SDA數據線。IIC控制單元在start信號有效后的第8個時鐘上升沿獲取到SAA7113H的低電平應答信號后繼續發送數據給SAA7113H,否則將重新回到起始狀態等待。
SAA7113H完成初始化配置后,輸出數字視頻信號VPO[7..0]和相應的同步信號:行有效信號RTS0、奇偶場標識信號RTS1等。其中RTS0高電平表示有效數據行,低電平表示消隱行;RTS1為奇偶場標識信號,高電平表示奇場,低電平表示偶場。

2.2 數據采集及控制單元
數據采集及控制單元主要由3個模塊組成:采集模塊acquisition、雙口RAM器件lpm_ram_dp0和幀存控制模塊 sto_ctl,其內部電路圖如圖5所示。此單元的任務就是由采集模塊截取SAA7113H輸出的一行數據中的640個有效像素(共1 280 B)寫入雙口RAM器件進行緩存,幀存控制模塊將數據從雙口RAM中順序讀出后送入外擴SRAM中逐行存儲,同時控制2片SRAM交替讀寫,讀出的數據送入VGA接口單元進行VGA格式轉換和圖像顯示。

2.2.1 采集模塊acqusition
采集模塊接收SAA7113H的RTS0、像素時鐘信號SYS_CLK和視頻數據VPO[7..0],輸出為一行數據中的有效數據vpo_out[7..0]、有效像素的計數值tempp[10..0]和表示行狀態有效的信號line_state。
評論