王麗,程增艷
(中船重工集團 第七二二研究所,武漢430079)
王麗、程增艷(工程師),主要從事硬件電路設計工作。
隨著視頻技術以及大規模集成電路的飛速發展,視頻監控系統的應用越來越廣泛。視頻采集卡可以將視頻信息數字化,并將數字化的信息存儲或播放出來。目前,大多數視頻采集卡都采用了視頻局部總線,可以將圖像數據直接存入內存,采集卡不再需要專門的幀存儲體。其中,基于PCI總線的視頻采集卡以其強大的功能和低廉的價格成為市場上的主流產品。但是PCI接口適用于比較穩定、理想的環境中,在環境比較惡劣,尤其是在車載設備方面,PCI接口的視頻采集裝置往往由于接口本身的問題,造成整個裝置的失效或者物理損壞。這主要是接口不牢固,在惡劣環境下容易脫落、斷裂造成的。為了提高接口的可靠性,可以采用CompactPCI(簡稱CPCI)接口進行數據傳輸。
本文提出一種基于CPCI接口的視頻采集卡的設計方法。選用NXP公司的SAA7130HL芯片完成數據的采集、轉換和傳輸,并通過 PCI-to-PCI橋芯片PCI2050BI完成8路數據的擴展;然后由驅動程序將數據傳輸到計算機上,通過軟件完成視頻的壓縮工作;最后采用應用程序實現圖像的預覽、錄像、網絡傳輸和回放等功能。
CPCI技術標準是由PCIMG(PCI工業計算機制造商協會)于1997年正式發布的。它由 3項領先技術綜合而成:
①PCI局部總線的電氣特性(PCI local bus specification,PCISIG)
②工業級歐卡封裝結構和規格(IEC 60297-3 and-4,Eurocard Specification,IEEE 1101.11,IEEE Standard for Additional Mechanical Specification for Microcomputers Using IEEE1101.1 Equipment Practice)
③IEC 2 mm高密度針孔連接器(IEC-61076-4-101,Specification for 2 mm Connector systems)
CPCI規范定義了嚴格的設計規則,系統由金屬外殼和前后面板組成整體導電以及電路設計,使其具有電磁輻射屏蔽和靜電釋放能力,表現出良好的電磁兼容性。CPCI規范在電氣、邏輯和軟件方面與PCI標準完全兼容,是更加堅固耐用的版本[1]。
如圖1所示,CPCI視頻采集模塊主要包括視頻輸入部分、視頻處理部分、I2C串行 EEPROM加載芯片AT24C02和CPCI接口部分。CPCI視頻采集模塊上有5個CPCI連接器(J1~J5)。其中,J1和J2用來連接PCI總線信號,J3~J5用來擴展系統板的I/O信號。

圖1 CPCI視頻采集模塊結構框圖
視頻輸入部分提供具有5個模擬輸入的內部模擬源選擇器,如5CVBS、Y/C 和1CVBS,或 1Y/C和3CVBS。
CVBS是被廣泛使用的標準,也叫做基帶視頻或RCA視頻。它是全國電視系統委員會(NTSC)電視信號的傳統圖像數據傳輸方法,以模擬波形來傳輸數據。Y和C分別為亮度信號和色度信號。
視頻處理部分的主要功能是采集視頻數據,并將模擬視頻信號轉化為數字視頻信號。視頻處理芯片分為普通視頻處理芯片和一體化視頻芯片兩種。后者帶有處理器和PCI接口控制功能。本設計選用NXP公司的SAA7130HL芯片。它將視頻采集功能集成于一體,集成了視頻數字化、解碼、PCI接口電路,還提供了通用I/O(GPIO)接口組,支持各種擴展應用。
SAA7130HL支持多種數字視頻格式,通過9位的ADC采樣后進入標準譯碼器,通過梳狀濾波器和高性能計數器進行二維的色度/亮度分離。它支持包括 YUV、RGB在內的多種視頻輸出格式,可自動進行GAMMA校正、黑電平延伸[4]。由于內部集成了同步時鐘控制功能以及亮度、色調和飽和度調節等功能,在系統上電復位后,通過I2C總線對芯片內部相應的寄存器進行合適的配置,便可以實現較高質量的數字視頻信號,以及整個系統的同步時鐘信號。
主要工作流程是:由SAA7130HL芯片中的A/D轉換器對模擬視頻信號進行/轉換,通過支持PAL制的自適應梳狀濾波器將數據傳入1 KB的FIFO中;DMA控制器監視寄存器狀態,當FIFO達到需要傳輸的要求時,就將數據傳給DMA主通道;DMA將數據傳給虛擬地址空間,再由MM U(內存管單元)將虛擬地址轉化為內存中的物理地址;最后通過CPCI接口部分將數據傳輸給PCI-to-PCI橋芯片PCI2050BI[2]。
CPCI接口部分采用 TI公司的32位、66 M Hz PCI-to-PCI橋芯片PCI2050BI。SAA7130HL芯片本身就可以和總線進行通信。本系統采用PCI2050BI芯片的目的是實現多級總線擴展結構,在原有的總線上掛接PCI-to-PCI橋路,擴展出另一條PCI總線。這樣同一個CPCI插槽就可以實現多個CPCI設備復用,既降低了硬件成本,又增強了系統的擴展能力。根據這種設計思想,此視頻采集卡采用將1個CPCI插槽通過橋路擴展連接8個CPCI設備的方法,即1個橋路擴展為8路視頻采集輸入,完成8路視頻數據的采集和傳輸。PCI-to-PCI總線橋擴展框圖如圖2所示。

圖2 PCI-to-PCI總線橋擴展框圖
設計要點:
①PCI2050BI有2個獨立的時鐘域,主接口受主側輸入時鐘P_CLK的控制,從接口受從側輸入時鐘S_CLK的控制。這兩個時鐘可以相互獨立,但必須保持同步。P_CLK與S_CLK的最大延時不得超過7 ns,S_CLK不能超前P_CLK。
②PCI2050BI的從側輸出時鐘,每個時鐘只能驅動一個負載。
③PCI2050BI的從側有10個時鐘輸出S_CLK[9:0]。其中,9個可以供給擴展的PCI槽,而S_CLKOUT9信號必須反饋給從總線的輸入時鐘S_CLK。
④為了減少時鐘的信號反射,輸出到擴展槽的9個CLK必須在始端加串聯電阻匹配。匹配電阻阻值與電路板特征阻抗大小有關,對65 Ω的傳輸線,選用50 Ω串聯匹配電阻。
⑤視頻采集卡的PCI主總線控制信號必須進行上拉,保證在沒有設備使用時能保持穩定。這些信號包括:FRAME,IRDY,TRDY,STOP ,DEVSEL,PERR,SERR,LOCK,INTA~INTD 。電阻的大小根據設備的負載而定,本設計中電阻值使用了典型值8.2 kΩ。
⑥為了減少視頻采集卡對背板的影響,除了CLK、REQ和GNT 信號外,其他PCI信號都要串接10 Ω的終端匹配電阻。
⑦要正確設置總線的信號環境。由于本設計中的PCI總線信號環境為3.3 V,設計時將 PCI2050BI的P_VCCP連接到3.3 V;S_VCCP連接到背板的VIO上,根據背板VIO電壓的設置,可能是3.3 V或5 V,由此完成對信號環境的設置。
I2C總線是一種用于IC器件之間連接的二線制總線。它通過SDA(串行數據線)及SCL(串行時鐘線)兩根線在連到總線上的器件之間傳送信息,并根據地址識別每個器件。AT24C02是Atmel公司的低功耗CMOS串行EEPROM,內含256×8位存儲空間,具有工作電壓寬(2.5~5.5 V)、擦寫次數多(大于10 000次)、寫入速度快(小于10 ms)等特點。AT24C02主要完成CPCI視頻采集卡的上電配置。
本次設計選擇制作6層的PCB板。CPCI板卡的總線標準連接器引腳間距為2.0 mm,焊盤孔徑為0.6 mm,焊盤直徑為1.1 mm,所以兩焊盤之間走線空間僅為0.9 mm,線寬為6 mil。線間距6 mil的線單層只能走2根,而CPCI總線連接器單排有5個引腳,即必須走5根線,所以信號層不能少于3層。CPCI視頻采集模塊主要供電為3.3 V,考慮到此板信號的完整性,將信號層設計為4層,地平面和電平面分別設計1層。印制板最終的層分布設計依次為:頂層信號層、地層、內信號層1、內信號層 2、3.3 V電層、底層信號層。
在CPCI視頻采集模塊的設計和布線過程中,嚴格遵循PCI2.1規范和PICMG2.0 R3.0規范,使用符合IEC—1076國際標準的高精度、屏蔽型、針孔式的CPCI連接器。在進行CPCI視頻采集模塊PCB布局和布線設計時,設計要點如下:
①為減小CPCI背板總線上時鐘之間的偏移(skew),必須將PCI2050BI從總線的S_CLKOUT9信號反饋給從總線的S_CLK,PCI2050BI供給擴展槽的8根時鐘線(8個S_CLKOUT)與S_CLK必須等長。
②對PCI2050BI的每個電源引腳提供一個0.1 μ F的高速去耦電容,并且在布線時盡量靠近電源引腳。
③在布線時,讓PCI2050B盡量靠近J1和J2連接器,使PCI總線信號到連接器的距離盡量短。
④根據CPCI規范,PCI總線信號線的10 Ω終端匹配電阻應該設置在信號連接器引腳的15.2 mm之內。這些總線信號包括 AD0~AD31、C/BE0~C/BE3、PAR、FRAME、IRDY、TRDY、STOP、LOCK 、IDSEL 、DEVSEL、PERR、SERR和RST。
⑤PCICLK的信號線長度必須為(63.5±2.54)mm,長度不夠時通過走蛇形線來增加長度以符合標準。
⑥PCI信號線都要進行阻抗控制,阻抗為(65±10%)Ω。
本系統基于Windows操作平臺,故采用WDM(Windows Device Model)來設計系統的驅動程序。一個完整的WDM驅動程序需要完成初始化硬件設備、創建和刪除設備、處理Win32打開和關閉文件句柄的請求、處理Win32系統的I/O請求等一系列工作。Win2000的驅動可以分為3種:高層、中間層和低層。由于本系統的設計是針對視頻流媒體,所以采用中間層的視頻驅動程序。中間層的驅動依賴Class Driver(類驅動)和 Mini Driver(迷你驅動)。Class Driver是微軟提供的一種中間驅動,在硬件廠商提供的Mini Driver和操作系統之間提供一個簡單的接口。Mini Driver是一個硬件相關的動態鏈接庫,通過函數調用的方式使用Class Driver完成大部分的工作,而它只提供和設備緊密相關的控制。用戶態的客戶代碼可通過WDM流訪問Class Driver。
在測試中,基于CPCI總線的視頻采集卡結構牢固,能夠適應惡劣的環境,并且能夠保證圖像傳輸的實時性。該視頻采集卡達到了預期目的,縮短了開發周期,具有較高性價比。
[1]PICMG.Compact PCI Specification.R3.0,1999-09-24.
[2]宗靖國,向健勇,王新懷.基于SAA7130HL的視頻采集卡的設計[J].電子科技,2005(10):54-57.
[3]Texas Instruments Incorporated.PCI2050,Data manual,2003-06.
[4]Philips Semiconductors.SAA7130HL Data Sheet,2002-12.