王麗,程增艷
(中船重工集團(tuán) 第七二二研究所,武漢430079)
王麗、程增艷(工程師),主要從事硬件電路設(shè)計(jì)工作。
隨著視頻技術(shù)以及大規(guī)模集成電路的飛速發(fā)展,視頻監(jiān)控系統(tǒng)的應(yīng)用越來(lái)越廣泛。視頻采集卡可以將視頻信息數(shù)字化,并將數(shù)字化的信息存儲(chǔ)或播放出來(lái)。目前,大多數(shù)視頻采集卡都采用了視頻局部總線(xiàn),可以將圖像數(shù)據(jù)直接存入內(nèi)存,采集卡不再需要專(zhuān)門(mén)的幀存儲(chǔ)體。其中,基于PCI總線(xiàn)的視頻采集卡以其強(qiáng)大的功能和低廉的價(jià)格成為市場(chǎng)上的主流產(chǎn)品。但是PCI接口適用于比較穩(wěn)定、理想的環(huán)境中,在環(huán)境比較惡劣,尤其是在車(chē)載設(shè)備方面,PCI接口的視頻采集裝置往往由于接口本身的問(wèn)題,造成整個(gè)裝置的失效或者物理?yè)p壞。這主要是接口不牢固,在惡劣環(huán)境下容易脫落、斷裂造成的。為了提高接口的可靠性,可以采用CompactPCI(簡(jiǎn)稱(chēng)CPCI)接口進(jìn)行數(shù)據(jù)傳輸。
本文提出一種基于CPCI接口的視頻采集卡的設(shè)計(jì)方法。選用NXP公司的SAA7130HL芯片完成數(shù)據(jù)的采集、轉(zhuǎn)換和傳輸,并通過(guò) PCI-to-PCI橋芯片PCI2050BI完成8路數(shù)據(jù)的擴(kuò)展;然后由驅(qū)動(dòng)程序?qū)?shù)據(jù)傳輸?shù)接?jì)算機(jī)上,通過(guò)軟件完成視頻的壓縮工作;最后采用應(yīng)用程序?qū)崿F(xiàn)圖像的預(yù)覽、錄像、網(wǎng)絡(luò)傳輸和回放等功能。
CPCI技術(shù)標(biāo)準(zhǔn)是由PCIMG(PCI工業(yè)計(jì)算機(jī)制造商協(xié)會(huì))于1997年正式發(fā)布的。它由 3項(xiàng)領(lǐng)先技術(shù)綜合而成:
①PCI局部總線(xiàn)的電氣特性(PCI local bus specification,PCISIG)
②工業(yè)級(jí)歐卡封裝結(jié)構(gòu)和規(guī)格(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規(guī)范定義了嚴(yán)格的設(shè)計(jì)規(guī)則,系統(tǒng)由金屬外殼和前后面板組成整體導(dǎo)電以及電路設(shè)計(jì),使其具有電磁輻射屏蔽和靜電釋放能力,表現(xiàn)出良好的電磁兼容性。CPCI規(guī)范在電氣、邏輯和軟件方面與PCI標(biāo)準(zhǔn)完全兼容,是更加堅(jiān)固耐用的版本[1]。
如圖1所示,CPCI視頻采集模塊主要包括視頻輸入部分、視頻處理部分、I2C串行 EEPROM加載芯片AT24C02和CPCI接口部分。CPCI視頻采集模塊上有5個(gè)CPCI連接器(J1~J5)。其中,J1和J2用來(lái)連接PCI總線(xiàn)信號(hào),J3~J5用來(lái)擴(kuò)展系統(tǒng)板的I/O信號(hào)。
圖1 CPCI視頻采集模塊結(jié)構(gòu)框圖
視頻輸入部分提供具有5個(gè)模擬輸入的內(nèi)部模擬源選擇器,如5CVBS、Y/C 和1CVBS,或 1Y/C和3CVBS。
CVBS是被廣泛使用的標(biāo)準(zhǔn),也叫做基帶視頻或RCA視頻。它是全國(guó)電視系統(tǒng)委員會(huì)(NTSC)電視信號(hào)的傳統(tǒng)圖像數(shù)據(jù)傳輸方法,以模擬波形來(lái)傳輸數(shù)據(jù)。Y和C分別為亮度信號(hào)和色度信號(hào)。
視頻處理部分的主要功能是采集視頻數(shù)據(jù),并將模擬視頻信號(hào)轉(zhuǎn)化為數(shù)字視頻信號(hào)。視頻處理芯片分為普通視頻處理芯片和一體化視頻芯片兩種。后者帶有處理器和PCI接口控制功能。本設(shè)計(jì)選用NXP公司的SAA7130HL芯片。它將視頻采集功能集成于一體,集成了視頻數(shù)字化、解碼、PCI接口電路,還提供了通用I/O(GPIO)接口組,支持各種擴(kuò)展應(yīng)用。
SAA7130HL支持多種數(shù)字視頻格式,通過(guò)9位的ADC采樣后進(jìn)入標(biāo)準(zhǔn)譯碼器,通過(guò)梳狀濾波器和高性能計(jì)數(shù)器進(jìn)行二維的色度/亮度分離。它支持包括 YUV、RGB在內(nèi)的多種視頻輸出格式,可自動(dòng)進(jìn)行GAMMA校正、黑電平延伸[4]。由于內(nèi)部集成了同步時(shí)鐘控制功能以及亮度、色調(diào)和飽和度調(diào)節(jié)等功能,在系統(tǒng)上電復(fù)位后,通過(guò)I2C總線(xiàn)對(duì)芯片內(nèi)部相應(yīng)的寄存器進(jìn)行合適的配置,便可以實(shí)現(xiàn)較高質(zhì)量的數(shù)字視頻信號(hào),以及整個(gè)系統(tǒng)的同步時(shí)鐘信號(hào)。
主要工作流程是:由SAA7130HL芯片中的A/D轉(zhuǎn)換器對(duì)模擬視頻信號(hào)進(jìn)行/轉(zhuǎn)換,通過(guò)支持PAL制的自適應(yīng)梳狀濾波器將數(shù)據(jù)傳入1 KB的FIFO中;DMA控制器監(jiān)視寄存器狀態(tài),當(dāng)FIFO達(dá)到需要傳輸?shù)囊髸r(shí),就將數(shù)據(jù)傳給DMA主通道;DMA將數(shù)據(jù)傳給虛擬地址空間,再由MM U(內(nèi)存管單元)將虛擬地址轉(zhuǎn)化為內(nèi)存中的物理地址;最后通過(guò)CPCI接口部分將數(shù)據(jù)傳輸給PCI-to-PCI橋芯片PCI2050BI[2]。
CPCI接口部分采用 TI公司的32位、66 M Hz PCI-to-PCI橋芯片PCI2050BI。SAA7130HL芯片本身就可以和總線(xiàn)進(jìn)行通信。本系統(tǒng)采用PCI2050BI芯片的目的是實(shí)現(xiàn)多級(jí)總線(xiàn)擴(kuò)展結(jié)構(gòu),在原有的總線(xiàn)上掛接PCI-to-PCI橋路,擴(kuò)展出另一條PCI總線(xiàn)。這樣同一個(gè)CPCI插槽就可以實(shí)現(xiàn)多個(gè)CPCI設(shè)備復(fù)用,既降低了硬件成本,又增強(qiáng)了系統(tǒng)的擴(kuò)展能力。根據(jù)這種設(shè)計(jì)思想,此視頻采集卡采用將1個(gè)CPCI插槽通過(guò)橋路擴(kuò)展連接8個(gè)CPCI設(shè)備的方法,即1個(gè)橋路擴(kuò)展為8路視頻采集輸入,完成8路視頻數(shù)據(jù)的采集和傳輸。PCI-to-PCI總線(xiàn)橋擴(kuò)展框圖如圖2所示。
圖2 PCI-to-PCI總線(xiàn)橋擴(kuò)展框圖
設(shè)計(jì)要點(diǎn):
①PCI2050BI有2個(gè)獨(dú)立的時(shí)鐘域,主接口受主側(cè)輸入時(shí)鐘P_CLK的控制,從接口受從側(cè)輸入時(shí)鐘S_CLK的控制。這兩個(gè)時(shí)鐘可以相互獨(dú)立,但必須保持同步。P_CLK與S_CLK的最大延時(shí)不得超過(guò)7 ns,S_CLK不能超前P_CLK。
②PCI2050BI的從側(cè)輸出時(shí)鐘,每個(gè)時(shí)鐘只能驅(qū)動(dòng)一個(gè)負(fù)載。
③PCI2050BI的從側(cè)有10個(gè)時(shí)鐘輸出S_CLK[9:0]。其中,9個(gè)可以供給擴(kuò)展的PCI槽,而S_CLKOUT9信號(hào)必須反饋給從總線(xiàn)的輸入時(shí)鐘S_CLK。
④為了減少時(shí)鐘的信號(hào)反射,輸出到擴(kuò)展槽的9個(gè)CLK必須在始端加串聯(lián)電阻匹配。匹配電阻阻值與電路板特征阻抗大小有關(guān),對(duì)65 Ω的傳輸線(xiàn),選用50 Ω串聯(lián)匹配電阻。
⑤視頻采集卡的PCI主總線(xiàn)控制信號(hào)必須進(jìn)行上拉,保證在沒(méi)有設(shè)備使用時(shí)能保持穩(wěn)定。這些信號(hào)包括:FRAME,IRDY,TRDY,STOP ,DEVSEL,PERR,SERR,LOCK,INTA~I(xiàn)NTD 。電阻的大小根據(jù)設(shè)備的負(fù)載而定,本設(shè)計(jì)中電阻值使用了典型值8.2 kΩ。
⑥為了減少視頻采集卡對(duì)背板的影響,除了CLK、REQ和GNT 信號(hào)外,其他PCI信號(hào)都要串接10 Ω的終端匹配電阻。
⑦要正確設(shè)置總線(xiàn)的信號(hào)環(huán)境。由于本設(shè)計(jì)中的PCI總線(xiàn)信號(hào)環(huán)境為3.3 V,設(shè)計(jì)時(shí)將 PCI2050BI的P_VCCP連接到3.3 V;S_VCCP連接到背板的VIO上,根據(jù)背板VIO電壓的設(shè)置,可能是3.3 V或5 V,由此完成對(duì)信號(hào)環(huán)境的設(shè)置。
I2C總線(xiàn)是一種用于IC器件之間連接的二線(xiàn)制總線(xiàn)。它通過(guò)SDA(串行數(shù)據(jù)線(xiàn))及SCL(串行時(shí)鐘線(xiàn))兩根線(xiàn)在連到總線(xiàn)上的器件之間傳送信息,并根據(jù)地址識(shí)別每個(gè)器件。AT24C02是Atmel公司的低功耗CMOS串行EEPROM,內(nèi)含256×8位存儲(chǔ)空間,具有工作電壓寬(2.5~5.5 V)、擦寫(xiě)次數(shù)多(大于10 000次)、寫(xiě)入速度快(小于10 ms)等特點(diǎn)。AT24C02主要完成CPCI視頻采集卡的上電配置。
本次設(shè)計(jì)選擇制作6層的PCB板。CPCI板卡的總線(xiàn)標(biāo)準(zhǔn)連接器引腳間距為2.0 mm,焊盤(pán)孔徑為0.6 mm,焊盤(pán)直徑為1.1 mm,所以?xún)珊副P(pán)之間走線(xiàn)空間僅為0.9 mm,線(xiàn)寬為6 mil。線(xiàn)間距6 mil的線(xiàn)單層只能走2根,而CPCI總線(xiàn)連接器單排有5個(gè)引腳,即必須走5根線(xiàn),所以信號(hào)層不能少于3層。CPCI視頻采集模塊主要供電為3.3 V,考慮到此板信號(hào)的完整性,將信號(hào)層設(shè)計(jì)為4層,地平面和電平面分別設(shè)計(jì)1層。印制板最終的層分布設(shè)計(jì)依次為:頂層信號(hào)層、地層、內(nèi)信號(hào)層1、內(nèi)信號(hào)層 2、3.3 V電層、底層信號(hào)層。
在CPCI視頻采集模塊的設(shè)計(jì)和布線(xiàn)過(guò)程中,嚴(yán)格遵循PCI2.1規(guī)范和PICMG2.0 R3.0規(guī)范,使用符合IEC—1076國(guó)際標(biāo)準(zhǔn)的高精度、屏蔽型、針孔式的CPCI連接器。在進(jìn)行CPCI視頻采集模塊PCB布局和布線(xiàn)設(shè)計(jì)時(shí),設(shè)計(jì)要點(diǎn)如下:
①為減小CPCI背板總線(xiàn)上時(shí)鐘之間的偏移(skew),必須將PCI2050BI從總線(xiàn)的S_CLKOUT9信號(hào)反饋給從總線(xiàn)的S_CLK,PCI2050BI供給擴(kuò)展槽的8根時(shí)鐘線(xiàn)(8個(gè)S_CLKOUT)與S_CLK必須等長(zhǎng)。
②對(duì)PCI2050BI的每個(gè)電源引腳提供一個(gè)0.1 μ F的高速去耦電容,并且在布線(xiàn)時(shí)盡量靠近電源引腳。
③在布線(xiàn)時(shí),讓PCI2050B盡量靠近J1和J2連接器,使PCI總線(xiàn)信號(hào)到連接器的距離盡量短。
④根據(jù)CPCI規(guī)范,PCI總線(xiàn)信號(hào)線(xiàn)的10 Ω終端匹配電阻應(yīng)該設(shè)置在信號(hào)連接器引腳的15.2 mm之內(nèi)。這些總線(xiàn)信號(hào)包括 AD0~AD31、C/BE0~C/BE3、PAR、FRAME、IRDY、TRDY、STOP、LOCK 、IDSEL 、DEVSEL、PERR、SERR和RST。
⑤PCICLK的信號(hào)線(xiàn)長(zhǎng)度必須為(63.5±2.54)mm,長(zhǎng)度不夠時(shí)通過(guò)走蛇形線(xiàn)來(lái)增加長(zhǎng)度以符合標(biāo)準(zhǔn)。
⑥PCI信號(hào)線(xiàn)都要進(jìn)行阻抗控制,阻抗為(65±10%)Ω。
本系統(tǒng)基于Windows操作平臺(tái),故采用WDM(Windows Device Model)來(lái)設(shè)計(jì)系統(tǒng)的驅(qū)動(dòng)程序。一個(gè)完整的WDM驅(qū)動(dòng)程序需要完成初始化硬件設(shè)備、創(chuàng)建和刪除設(shè)備、處理Win32打開(kāi)和關(guān)閉文件句柄的請(qǐng)求、處理Win32系統(tǒng)的I/O請(qǐng)求等一系列工作。Win2000的驅(qū)動(dòng)可以分為3種:高層、中間層和低層。由于本系統(tǒng)的設(shè)計(jì)是針對(duì)視頻流媒體,所以采用中間層的視頻驅(qū)動(dòng)程序。中間層的驅(qū)動(dòng)依賴(lài)Class Driver(類(lèi)驅(qū)動(dòng))和 Mini Driver(迷你驅(qū)動(dòng))。Class Driver是微軟提供的一種中間驅(qū)動(dòng),在硬件廠(chǎng)商提供的Mini Driver和操作系統(tǒng)之間提供一個(gè)簡(jiǎn)單的接口。Mini Driver是一個(gè)硬件相關(guān)的動(dòng)態(tài)鏈接庫(kù),通過(guò)函數(shù)調(diào)用的方式使用Class Driver完成大部分的工作,而它只提供和設(shè)備緊密相關(guān)的控制。用戶(hù)態(tài)的客戶(hù)代碼可通過(guò)WDM流訪(fǎng)問(wèn)Class Driver。
在測(cè)試中,基于CPCI總線(xiàn)的視頻采集卡結(jié)構(gòu)牢固,能夠適應(yīng)惡劣的環(huán)境,并且能夠保證圖像傳輸?shù)膶?shí)時(shí)性。該視頻采集卡達(dá)到了預(yù)期目的,縮短了開(kāi)發(fā)周期,具有較高性?xún)r(jià)比。
[1]PICMG.Compact PCI Specification.R3.0,1999-09-24.
[2]宗靖國(guó),向健勇,王新懷.基于SAA7130HL的視頻采集卡的設(shè)計(jì)[J].電子科技,2005(10):54-57.
[3]Texas Instruments Incorporated.PCI2050,Data manual,2003-06.
[4]Philips Semiconductors.SAA7130HL Data Sheet,2002-12.
單片機(jī)與嵌入式系統(tǒng)應(yīng)用2010年3期