李晨陽,續志軍
(中國科學院 長春光學精密機械與物理研究所,長春 130033)
隨著市場經濟的發展和科學技術的進步,對圖像與視頻的采集和處理己經得到了越來越廣泛的應用。無論在居民的日常生活中還是在科研單位,人們對圖像與視頻采集處理的需求越來越廣泛。由于人們對圖像分辨率與畫質的要求的不斷增高,這對信號的采集尤其是實時處理提出了更高的要求。這是由圖像信號的特點決定的。由于市場中不斷增長的業務需求,視頻DSP系統在近年來有了較大的發展。出于現在的視頻DSP系統主要以視頻采集卡(盒)的形式出現,本節將主要介紹視頻采集卡的現狀。當今市場上的主流視頻采集卡在功能上己經十分強大,已經基本可以滿足視頻信號的實時采集、處理和傳輸。大多數采集卡的主要工作步驟為:視頻信號的數字采樣,并可實時完成一些簡單的數字圖像處理,通過數據總線傳輸至計算機,然后由計算機完成進一步的處理。
目前,市場上主要應用的圖像采集卡的功能處理單元的實現主要采用:一是不進行任何圖像處理,只是單一的實現圖像的采集。這種產品己經比較少見,主要出現在早期的圖像采集卡中。二是使用專用DSP芯片,以實現一些圖像處理算基于PCI的實時視頻DSP平臺法。三是采用專用ASIC芯片。這種產品往往擁有比較完善和強大的處理功能。采用后兩種方式的產品在目前比較常見。
采集卡在進行數字采集和初步的圖像處理后,會將數據傳輸至計算機中進一步處理。目前主流的視頻采集卡均使用PCI總線作為其與計算機通信的數據總線,個別外置采集設備則通過IEEE1394,USB2.0等高速數據接口與計算機通信.PCI作為一種高性能的計算機局部總線,近年來早己成為主流的計算機內部總線。當前主流PC中的PCI總線擁有33MHz工作頻率、32bit位數據位寬,和最大132MB/s的傳輸速度,非常適于一些高速外接設備與PC進行數據通信。未來,PC中的PCI總線還將向66MHz,64bit過渡,這將提供更高的的傳輸速度(264MB/s或者更高)。視頻處理和傳輸需要較大的帶寬,由于PCI總線帶寬大、兼容性強以及發展潛力大等優點,使其十分適合作為圖像與視頻處理系統的接口總線。
文中所提出的實時視頻DSP平臺方案使用FPGA芯片。首先搭建平臺基本框架之后,利用FPGA的靈活及高速并行處理的特性,可以方便的實現多種功能,也可添加一些特定的功能,以滿足特殊的需要。這就克服了DSP芯片和ASIC芯片的的缺點并充分實現了兩者的優點。靈活的實現了全程硬件實時處理。本平臺對于一些需要經常進行特殊圖像處理的研究型單位,如學校、科研機構等,進行教學、研究具有一定的意義。
PC19054有3類數據直接傳輸模式,分別是PCIInitiator(PCI發起者模式,或稱主模式)、PCITarget(PCI目標模式,或稱從模式)和DMA(直接存儲器訪問模式)。其中,主模式是山本地處理器發起訪問PCI存儲器或I/O,從模式是由PCI主設備發起訪問本地存儲器或I/O,DMA模式是由PC19054的DMA控制器控制本地總線的存儲器或1/O與PCI總線的存儲器或I/O之間的數據交換。
本平臺中主要的數據交換為:圖像數據的雙向傳輸和FPGA控制寄存器的配置信息的寫入。圖像數據為大量的高速連續信號,最大速度達到了27MB/s,為了保證信號傳輸的實時性,選擇用DMA方式傳輸;FPGA中含有許多控制寄存器,用于選擇和控制自身的工作狀態以及SAA7113的IC電路初始化,在進行這些控制寄存器配置和SAA7113的初始化時,寫入多為幾個或幾十字節長度的數據,對實時性要求不高,所以采用從模式傳輸。
PCI總線最早是由Intel公司提出概念,并聯合IBM,HP等100多家公司于1993年正式推出的一種高性能局部總線。PCI總線是32位或64位地址/數據復用的總線,即外部設備互聯。其用途是在高度集成的外設控制器器件、擴展板和處理器系統之間提供一種內部連接機制。目前,PCI總線己經成為工業標準,并廣泛使用于個人計算機、蘋果的Mac機以及小型服務器之中。
PCI總線特點:
PCI局部總線不受制于處理器,為中央處理器和外圍設備提供了一座數據傳輸的橋梁,可以同時支持多組外設。其特點如下:
1)高性能
PCI局部總線以33MHz的時鐘頻率工作,采用32位數據總線,可支持多種外設和附加卡。數據傳輸率可高達132MB/s,遠遠超過之前的標準ISA總線5MB/s的速率。
2)線性突發傳輸
PCI能支持線性突發的傳輸方式,可確保總線不斷的滿載數據。線性突發傳輸能夠更有效地運用總線的帶寬去傳送數據,以減少無謂的地址操作。另外,PCI支持突發讀取和突發寫入。
3)極小的存取延遲
支持PCI的設備,存取延遲很小,能夠大幅度減少外圍設備取得總線控制權所需的時間。
4)采用總線主控和同步操作
總線主控可以讓任何一個具有處理能力的外圍設備暫時接管總線,以加速執行高優先級、高吞吐量的任務;同步操作可以保證微處理器能與這些總線主控同時操作,不必等待后者的完成。
5)不受處理器限制基于PCI的實時視頻DSP平臺
PCI獨立于處理器,將中央處理器子系統與外圍設備分開。這可以保證處理器技術的變化不會使任何個別的系統的設計過時,使得系統升級平化。
6)兼容性強
PCI總線可與ISA.EISA及MCA總線完全兼容。
7)預留了發展空間
考慮到新一代的高性能外設最總將需要64位寬的數據通道,PCI支持64位地址/數據多路復用,可將數據傳輸率提高到264MB/s
8)低成本、高效益
PCI的芯片將大量系統功能高度集成,節省了邏輯電路,耗用較小的線路板空間,成本降低。采用地址/數據復用,使得PCI部件用以連接其他部件的引腳數較少。
PCI局部總線是計算機界公認的最具高瞻遠矚的局部總線標準,它的高性能、高效率及與現有標準的兼容性和充裕的發展潛力,是其它總線部不可及的。它可作為當今及未來的設計指引。
PLXSDK提供了功能豐富的API函數,通過調用這些函數可以方便的實現對所有控制寄存器的訪問與設置。編程者只需要遵照API函數調用規則編寫程序即可實現完全控制PC19054的工作。
Windows操作系統在虛擬環境中實現內存空間,輸入/輸出操作,外圍設備,終端操作的虛擬化.虛擬環境中無法直接訪問和控制硬件單元,即管理硬件的程序是在實際的機器上運行而不是在虛擬機上。與管理程序相類似的還有VxD〔虛擬設備驅動程序)。Windows類操作系統(Windows9x,Wind owsNT,Windows2000)為了保證系統的安全性、穩定性和可移植性,對應用程序訪問硬件資源加以限制。Windows下的驅動程序通常有兩種方式。
第一種是程序被包裝成DLL形式的文件,應用程序可以通過加載相應的DLL文件實現對硬件的訪問。編寫DLL程序以通過標袱的Windows開發工具,如VC++(DLL是運行在虛擬環境中的程序)。第二種方式是通過到月的開發工具如VtoolsD等,編寫虛擬驅動程序,這種方法的效率較高。以一個簡單的例子來看在系統對硬件中斷響應速度上的表現。如果將ISR(中斷服務程序)在應用程序以及編寫,由于系統在相應ISR之前存在一連串的中斷反射過程將使系統響應速度較慢,即系統要先調度虛擬環境后才響應中斷,所以可能會是DOS系統下響應時間的20倍以上。如果將中斷服務程序放入VxD中編寫,則會避免調度虛擬環境而使得響應速度加快。為了方便基于PCI總線的適配卡的設計,PLX公司推出了一套軟件輔助設計的解決方案—PLX SDK(Sotfwaer Development Kit).
在編寫驅動程序時使用VC環境直接編寫應用級程序,通過調用PLX提供的功能豐富強大的API函數(包裝在PlxApi.dll中),實現對硬件資源的訪問。這樣一來就避免了學習Widows下甚至是運用匯編語言編寫設備驅動的復雜過程,縮短了系統開發周期。這樣做唯一的不利就是降低了系統的工作效率,但不影響系統的正常工作。利用PLXSDK在VC環境下編寫程序時應遵循以下步驟:
I)先在VC環境中建立一個Win32 Console Application工程.
2)將P1xMon的頭文件包括在工程文件中,在VC環境的Option菜單中的Derection標簽加入PIxMon的安裝路徑.
3)在主函數中定義#define PCI_CODE.應將該句定義放在最開頭(任何一個#include之前),因為PCI主設備運行在本地芯片中的軟件共享很多頭文件,該定義放在最開始可以保證只有與PCI主設備有關的頭文件被包括。
4)定義#define LITTLE_ENDIAN。用來確定芯片是工作在LITTLE_ENDIAN模式下.
5)include"PlxApi.h"這個文件中包括TPlx函數的定義.以及數據類型的定義。
6)將PlxLib.h庫函數加入該工程.這個庫文件中包括與PIxApi.dll文件的連接消息,當程序運行并調用到PLX的API函數時,其中的API DLL函數會被自動加載。
按照以上的步驟建立工程文件后,就可以編寫驅動函數了。
在API函數中,對PCI9054寄存器的訪問以一種直觀的方式表現出來,可以直接在軟件中設置,這樣極大的方便了對PCI9054的控制。圖1給出了平臺驅動程序流程。采集生成的圖像數據將存儲至計算機中或直接播放。

圖1 驅動程序設計流程圖
本驅動程序的優點在于采用FPGA完成圖像處理功能。首先,可利用FPGA的靈活性根據需要隨時增加新的處理功能或刪減不必要的功能;其次,利用FPGA高速并行處理的優點,實現了全部處理功能在平臺內實時完成,避免了傳統視頻采集卡,只進行部分初級處理的缺點,提高了實時性。
[1] DonaldE.Thomas.劉明業等譯.描述語言Verilog[M].第四版清華大學出版社.
[2] 夏宇聞.復雜數字電路與系統的VerilogHDL設計技術[M].北京航空航天大學出版社,1998.
[3] J.Bhasker,徐振林,譯.AVerilogHDLPremier.第二版[M].機械工業出版社,2000.
[4] 章毓晉,圖像工程(上冊)—圖像處理和分析[M].清華大學出版社,1999.
[5] 張兢.PCI總線主控1/O加速器PCI9054[J].國外電子元器件,2007,1.
[6] 陳露晨,PC19054性能分析及外部FIFO擴充[J].電子產品世界.2008,11.