關(guān)鍵詞:PCI總線 DSP VxWorks操作系統(tǒng) 圖像采集系統(tǒng)
本文從實時性和大容量兩方面介紹了在通用計算機上加入DSP加速卡實現(xiàn)的圖像采集系統(tǒng)。利用DSP芯片的高速處理特性完成大部分的圖像處理工作,上位機只完成輔助操作和存儲系統(tǒng)。這種方法發(fā)揮了DSP的高速性能又具有相當(dāng)大的靈活性,而且開發(fā)工具比較完善。
實時性要求足夠的傳輸速度,PCI總線速度最高可達528MB/s(66MHz、64位)。這是其他總線無法比擬的速度,如ISA總線速度只有5MB/s。另外,系統(tǒng)中DSP的可擴展存儲空間高達1GB。這完全可以滿足一般圖像處理系統(tǒng)的需要。
1 基于PCI總線的DSP圖像采集系統(tǒng)
本系統(tǒng)主要用于路口違章車輛抓拍,包括闖紅燈抓拍、超速行駛抓拍等。通過攝像頭對車流進行監(jiān)測,當(dāng)有車輛在紅燈期間越過停止線或在限速地段超速行駛,系統(tǒng)拍下車輛的行為并把數(shù)據(jù)傳送到DSP進行處理,然后經(jīng)PCI總線把處理后的數(shù)據(jù)上傳到上位機。當(dāng)然這套系統(tǒng)也可用于其他的監(jiān)控系統(tǒng),如樓宇監(jiān)控等,其硬件系統(tǒng)基本一致,只是軟件功能有所區(qū)別。
本系統(tǒng)采用TI公司C6000系列DSP中的TMS320C6211作為系統(tǒng)的CPU。圖像數(shù)據(jù)通過攝像機采集并輸出模擬圖像信號。這些信號經(jīng)視頻解碼芯片轉(zhuǎn)換為數(shù)字信號;再經(jīng)FIFO輸入DSP進行圖像的增強、分割、特征提取和數(shù)據(jù)壓縮等;然后輸出信號經(jīng)PCI解碼芯片轉(zhuǎn)換為符合PCI總線規(guī)范的標(biāo)準(zhǔn)信號,通過PCI總線接口傳到上位機。系統(tǒng)的控制邏輯由EPLD(Erasable Programmable Logic Device)控制器實現(xiàn)。系統(tǒng)結(jié)構(gòu)圖如圖1。
(1)視頻解碼芯片
系統(tǒng)中采集的圖像信號采用Philips公司的SAA7111A完成A/D轉(zhuǎn)換。SAA7111A允許四路模擬視頻輸入,具有兩個模擬處理通道,支持四路CVBS模擬信號或二路Y/C模擬信號或二路CVBS信號和一路Y/C信號。SAA7111A對攝像頭輸入的標(biāo)準(zhǔn)PAL格式的模擬圖像信號進行A/D轉(zhuǎn)換,然后輸出符合CCIR601格式的4:2:2的16位YUV?jǐn)?shù)據(jù)到FIFO。其中亮度信號Y為8位、色度信號Cr和Cb合為8位數(shù)據(jù)。FIFO采用IDT公司的IDT72V215LB芯片,FIFO的深度為512×18bit,支持STANDARD(標(biāo)準(zhǔn))和FWFT(First Word Fall-Through,首字直接通過)兩種工作模式。按照CCIR601格式,YUV圖像分辨率為720×576象素,當(dāng)按行輸出時,SAA7111A輸出數(shù)據(jù)流大小為:720×16=1440bit。因為DSP通過32位的SBSRAM接口與FIFO通信,故YUV?jǐn)?shù)據(jù)寫入FIFO時需要在FIFO之間實現(xiàn)乒乓切換。這時一行720×16bit的數(shù)據(jù)在兩片FIFO中存儲變?yōu)椋常叮啊粒常玻猓椋簟善疲桑疲峡梢詽M足上述要求。FIFO的初始化及時序由EPLD實現(xiàn)。
(2)DSP圖像處理模塊
TMS320C6211是TI公司發(fā)布的面向視頻處理領(lǐng)域的新款高速數(shù)字處理芯片,適用于移動通信基站、圖像監(jiān)控、雷達系統(tǒng)等對速度要求高和高度智能化的應(yīng)用領(lǐng)域。存儲空間分兩部分:運行過程的臨時數(shù)據(jù)存在Winbond公司的兩片128Mbit的W981216BH中;系統(tǒng)程序則固化在FLASH存儲器中,該存儲器選用AMD公司生產(chǎn)的8Mbit的AM29LV800B。Flash存儲器具有在線重寫入功能。這對系統(tǒng)啟動程序的修改和升級都帶來了很大的方便。DSP處理模塊結(jié)構(gòu)如圖2所示。圖2中的HPI(Host Port Interface)為主機口;EMIF(External Memory Interface)為外部存儲器接口,兼容同步/異步傳輸方式。
TMS320C6211 DSP的高速性能主要體現(xiàn)在以下方面:①TMS320C6211的存儲空間最大可擴展到1GB,完全可以滿足各種圖像處理系統(tǒng)所需的內(nèi)存空間,而且其最高時鐘可達200MHz,峰值性能可達1600MIPS(百萬條指令/秒)、2400MOPS(百萬次操作/秒)。②并行處理結(jié)構(gòu)。TMS320C6211芯片內(nèi)有8個并行處理單元,分為相同的兩組,并行結(jié)構(gòu)大大提高芯片的性能。③芯片體系采用VelociTI結(jié)構(gòu)。VelociTI是一種高性能的甚長指令字(VLIW)結(jié)構(gòu),單指令字字長為32bit,8個指令組成一個指令包,總字長為256bit。即每秒鐘可以執(zhí)行8條指令。VelociTI結(jié)構(gòu)大大提高了DSP芯片的性能。④采用流水線操作實現(xiàn)高速度、高效率。TMS320C6211只有在流水線充分發(fā)揮作用的情況下,才能達到最高的峰值性能。與其他系列DSP相比,優(yōu)勢在于簡化了流水線的控制以消除流水線互鎖,并增加流水線的深度來消除傳統(tǒng)流水線的取指、數(shù)據(jù)訪問和乘法操作上的瓶頸。
本系統(tǒng)DSP主要完成從FIFO讀出數(shù)據(jù)的處理以及壓縮等。數(shù)據(jù)處理由自行編寫的算法實現(xiàn),數(shù)據(jù)壓縮算法采用JPEG(Joint Photographic Expert Group)標(biāo)準(zhǔn)。當(dāng)攝像頭采集速度為每秒25幀圖像時,它留給DSP處理的時間最多為每幀40ms。如果考慮系統(tǒng)有一定的延時以及處理后圖像的存儲時間,那么DSP處理一幅圖像時間不能超過30ms。按照C6211的處理速度,在30ms內(nèi)可以處理48M(0.03×1600MIPS)條指令。DSP讀出FIFO中的行數(shù)據(jù)并存入SDRAM,一幀圖像有576行,在最后一行時會收到系統(tǒng)的幀中斷,這時SDRAM中的圖像數(shù)據(jù)總共有1440×576=810KB。讓C6211用36M條指令周期的時間處理810KB的數(shù)據(jù)顯然綽綽有余。粗略的計算過程如下:
系統(tǒng)采用快速DCT(離散余弦變換),每8×8矩陣需要11次乘法、29次加法,因此一幀圖像的FDCT,共需要(11+29)×720×576×2/64=518400個指令周期;對于量化模塊,每8×8矩陣需要64個量化指令周期,一幀需要64×720×576×2/64=829440個指令周期;對于編碼部分,假設(shè)編碼后非0元素占25%,對每8×8矩陣進行Zig-Zag掃描、編碼估計需要120個指令周期,則共需120×720×576×2/64=1555200個指令周期。按以上計算,在系統(tǒng)中進行JPEG編碼大約需要2903040個指令周期,耗時19.3536ms(TMS320C6211工作在150MHz時)。可以看出,實際需要的指令遠(yuǎn)小于36M條,而時間也遠(yuǎn)小于30ms,DSP完全可以實時處理從FIFO傳過來的數(shù)據(jù)。
(3)PCI總線模塊
PCI總線規(guī)范吸引人的地方不僅是其高速度,更在于它適應(yīng)了現(xiàn)代I/O設(shè)備對系統(tǒng)的要求,對PCI擴展卡及器件能進行全自動配置,并且只需很少的接口邏輯就可以實現(xiàn)并支持其他總線系統(tǒng)。
TMS320C6211的HPI口不支持PCI總線的無縫接口。本系統(tǒng)采用TI公司的PCI2040實現(xiàn)DSP的HPI與PCI總線的連接。DSP處理后的數(shù)據(jù)經(jīng)HPI口輸出到PCI2040進行解碼,然后輸出到PCI總線上。其邏輯結(jié)構(gòu)如圖3所示。
PCI2040是TI公司設(shè)計的專門用來完成C5000系列和C6000系列DSP與PCI總線進行接口的專用芯片。PCI2040符合PCI局部總線2.2規(guī)范,能夠方便地實現(xiàn)PCI總線與TMS320C54X或TMS320C6X DSP的HPI接口的無縫連接。PCI2040可以兼容3.3V和5V,以適應(yīng)不同的PCI總線電壓。PCI2040與C6211之間不需要信號的電平轉(zhuǎn)換,也不需要額外的控制邏輯電路,接口電路十分簡單。
在本系統(tǒng)中,PCI2040上存在兩種電壓:5V和3.3V。其中3.3V是HPI口電壓,5V是PCI總線電壓。PCI2040啟動時需要對其PCI總線寄存器和HPI寄存器參數(shù)進行預(yù)加載。系統(tǒng)中PCI解碼模塊包括一塊配置ROM——AT24C08A,屬于EEPROM型ROM,便于對配置參數(shù)修改和升級。當(dāng)系統(tǒng)啟動時,存儲在AT24C08A的數(shù)據(jù)下載到PCI2040的寄存器中并進行配置。
圖3中HINT[3:0]、HCS[3:0]、HRDY[3:0]、HRST[3:0]分別與四片DSP中的相應(yīng)信號相連。即PCI2040可以同時與四片DSP接口。
2 系統(tǒng)的軟件設(shè)計
本軟件系統(tǒng)包括兩部分,即底層軟件和系統(tǒng)軟件。
底層軟件主要是DSP圖像處理算法以及啟動等運行程序。這些程序主要在CCS環(huán)境下由C語言編寫并進行匯編優(yōu)化。CCS即Code Composer Studio,是TI公司發(fā)布的DSP軟件運行環(huán)境。
在系統(tǒng)軟件方面,基于PCI總線的圖像處理系統(tǒng)面臨的難點頗多,其中難度最大的是PCI驅(qū)動問題。當(dāng)然這對于不同的系統(tǒng)軟件可能難度各異。若在Windows操作系統(tǒng)下,可以充分利用Windows的窗口特性:一方面,因為Windows技術(shù)成熟,軟件編寫相對比較簡單;另一方面,在Windows平臺下,PCI驅(qū)動無需開發(fā),可以直接利用Windows的PCI驅(qū)動程序?qū)崿F(xiàn)圖像卡的驅(qū)動。但是Windows操作系統(tǒng)比較龐大,而且無法依照系統(tǒng)的需要進行自由裁減,不適合做成嵌入式系統(tǒng)。這里主要闡述在VxWorks操作系統(tǒng)下的軟件設(shè)計方法。
相對于Windows操作系統(tǒng),VxWorks的優(yōu)點表現(xiàn)在:①VxWorks系統(tǒng)具有較好的可裁減性,可裁剪的組件超過80個,用戶可根據(jù)自己系統(tǒng)的功能目標(biāo)通過交叉開發(fā)環(huán)境方便地配置;②VxWorks支持應(yīng)用程序的動態(tài)鏈接和動態(tài)下載,開發(fā)者省去了每次調(diào)試都將應(yīng)用程序與操作系統(tǒng)內(nèi)核進行鏈接和下載的步驟,縮短了編輯/調(diào)試周期;③VxWorks具有較好的兼容性,它是最早兼容POSIX1003.1b標(biāo)準(zhǔn)的嵌入式實時操作系統(tǒng)之一;④VxWorks具有很高的可靠性和穩(wěn)定性;⑤VxWorks具有很好的實時性,實時性的強弱以完成規(guī)定功能和做出響應(yīng)時間的長短來衡量。VxWorks的多任務(wù)機制對任務(wù)的控制采用了優(yōu)先級搶占(Preemptive Priority Scheduling)和輪轉(zhuǎn)調(diào)度(Round-Robin Scheduling)機制。這充分保證了可靠的實時性,使同樣的硬件配置能滿足更強的實時性要求,為應(yīng)用的開發(fā)留下更大的余地。
為闡明如何在VxWorks操作系統(tǒng)下實現(xiàn)PCI總線的驅(qū)動,還需了解PCI設(shè)備的配置空間。PCI設(shè)備有三種物理存儲空間:配置空間、存儲器空間和I/O空間。配置空間是長度為256字節(jié)的一段連續(xù)空間,空間的定義如圖4?眼1?演。在配置空間中只讀空間有設(shè)備標(biāo)識、供應(yīng)商代碼、修改版本、分類代碼以及頭標(biāo)類型。其中供應(yīng)商代碼用來標(biāo)識設(shè)備供應(yīng)商的代碼;設(shè)備標(biāo)識用來標(biāo)識某一特殊的設(shè)備;修改版本標(biāo)識設(shè)備的版本號;分類代碼用來標(biāo)識設(shè)備的種類;而頭標(biāo)類型用來標(biāo)識頭類型以及是否為多功能設(shè)備。除供應(yīng)商代碼之外,其他字段的值由供應(yīng)商分配。
基地址寄存器最重要的功能是分配PCI設(shè)備的系統(tǒng)地址空間。在基地址寄存器中bit0(最低位)用來標(biāo)識存儲器空間還是I/O地址空間,基地址寄存器映射到存儲器空間時bit0為“0”,映射到I/O地址空間時bit0為“1”。
PCI設(shè)備的驅(qū)動過程主要包括下面幾個步驟:
首先,PCI設(shè)備的查找。在嵌入式操作系統(tǒng)中一般提供相應(yīng)的API函數(shù)查找。在VxWorks操作系統(tǒng)中通過函數(shù)pciFindDevice(PCI_VENDOR_ID,PCI_DEVICE,index, &pciBus, &pciDevice,&pciFunc_可以找到供應(yīng)商代碼為PCI_VENDOR_ID、設(shè)備標(biāo)識為PCI_DEVICE的第n(index+1)個設(shè)備,并且返回總線號、設(shè)備號以及功能號,分別保存于&pciBus、&pciDevice、&pciFunc中。
其次,PCI設(shè)備的配置。通過操作系統(tǒng)提供的API函數(shù)訪問PCI設(shè)備的配置空間,配置PCI設(shè)備基址寄存器的配置、中斷配置、ROM基地址寄存器的配置等,這樣可以得到PCI的存儲器空間和I/O地址空間映射、設(shè)備的中斷號等。在VxWorks操作系統(tǒng)中訪問PCI設(shè)備配置空間的API函數(shù)有pciConfigOutLong、pciConfigInLong等,它們分別完成對PCI設(shè)備配置空間的讀寫操作。
然后,根據(jù)PCI設(shè)備的配置參數(shù),對不同的設(shè)備編寫初始化程序、中斷服務(wù)程序以及對PCI設(shè)備存儲空間的訪問程序。
很顯然,用VxWorks操作系統(tǒng)實現(xiàn)雖然有一定的難度,但是系統(tǒng)具有很大的靈活性,系統(tǒng)比較小、適應(yīng)性強,并且可以在工業(yè)控制計算機上運行。
圖像采集系統(tǒng)的關(guān)鍵在于如何對大容量的信息進行暫存、壓縮和傳輸?shù)葐栴}進行處理。本系統(tǒng)很好地解決了這三個難題。在圖像信息暫存方面充分利用了DSP存儲空間的可擴展性,保證了系統(tǒng)可暫存的信息量足夠大;信息壓縮是DSP最擅長做的事情,可以在很短的時間內(nèi)完成大量的信息壓縮工作;PCI總線的引入保證了信息在足夠的帶寬下進行快速傳輸。采用嵌入式VxWorks操作系統(tǒng)實現(xiàn)使得系統(tǒng)具有良好的靈活性和適應(yīng)性,并大大降低了系統(tǒng)的成本。
- 采集系統(tǒng)(20330)
相關(guān)推薦
PCI Express在嵌入式系統(tǒng)中有哪些應(yīng)用?
實時圖像采集模塊怎么實現(xiàn)?
實時圖像(視頻)處理嵌入式系統(tǒng)
嵌入式圖像監(jiān)控系統(tǒng)怎么設(shè)計?
嵌入式實時系統(tǒng)從優(yōu)盤怎么啟動?
嵌入式實時系統(tǒng)是什么
嵌入式實時系統(tǒng)有哪些關(guān)鍵特征?
嵌入式實時系統(tǒng)設(shè)計模式是什么?
嵌入式實時操作系統(tǒng)如何簡化應(yīng)用軟件的設(shè)計
嵌入式系統(tǒng)采集圖像數(shù)據(jù)的遠(yuǎn)程測量有什么優(yōu)點?
嵌入式系統(tǒng)和實時系統(tǒng)開發(fā)的關(guān)鍵工藝
嵌入式系統(tǒng)和實時系統(tǒng)開發(fā)的關(guān)鍵工藝是什么?
嵌入式系統(tǒng)是由哪些部分組成的?實時嵌入式系統(tǒng)特征有哪些
嵌入式系統(tǒng)概論
嵌入式系統(tǒng)電子的實時性是什么?
嵌入式系統(tǒng)的實時性與快速性有關(guān)
嵌入式系統(tǒng)的實時性問題有哪些?
嵌入式系統(tǒng)的特點
嵌入式系統(tǒng)的特點、分類、發(fā)展和應(yīng)用
嵌入式系統(tǒng)總線
嵌入式FIFO怎么配置和使用?
嵌入式單片機視頻報警系統(tǒng)的工作原理是什么?
嵌入式機器視覺系統(tǒng)中有哪些ARM與DSP的數(shù)據(jù)通信方法?
嵌入式電能計量及查詢系統(tǒng)有什么功能?
嵌入式虹膜圖像采集怎么實現(xiàn)?
ARM嵌入式圖像處理
ARM如何運用WINCE進行嵌入式視頻數(shù)據(jù)采集
CS4235在DSP嵌入式系統(tǒng)中有哪些應(yīng)用?
MPC8260和PLX9656組成的嵌入式系統(tǒng)的PCI接口設(shè)計方案
【OK210申請】基于嵌入式系統(tǒng)的圖像處理
【TL6748 DSP申請】嵌入式分析和實時信號處理
一種基于ARM的嵌入式圖像處理系統(tǒng)設(shè)計
什么是嵌入式系統(tǒng)復(fù)合通信模式?
什么是嵌入式系統(tǒng)?
基于DSP+ARM的雙核嵌入式系統(tǒng)通信接口設(shè)計
基于DSP和PCI總線的通用數(shù)字信號處理系統(tǒng)
基于PCI總線和DSP技術(shù)的虛擬儀器設(shè)計
基于PCI和DSP的導(dǎo)彈景象匹配制導(dǎo)系統(tǒng)設(shè)計
基于ARM嵌入式系統(tǒng)的自動化配送系統(tǒng)
基于WinCE的嵌入式圖像采集系統(tǒng)該怎么設(shè)計?
基于采用FPGA控制MV-D1024E系列相機的圖像采集系統(tǒng)設(shè)計
如何利用ARM7嵌入式單片機設(shè)計視頻報警系統(tǒng)?
如何利用TS101DSP芯片實現(xiàn)嵌入式實時操作系統(tǒng)的設(shè)計?
如何實現(xiàn)基于1394b接口的車載嵌入式圖像實時采集與顯示系統(tǒng)設(shè)計?
如何提升嵌入式系統(tǒng)的VxWorks安全性?
如何設(shè)計嵌入式FIFO數(shù)據(jù)傳輸系統(tǒng)?
如何設(shè)計嵌入式Linux下的PCI設(shè)備驅(qū)動?
怎樣去更好地使用嵌入式實時操作系統(tǒng)RTOS呢
怎樣去設(shè)計一種嵌入式實時系統(tǒng)?
數(shù)據(jù)采集卡/分布式采集模塊/無線通訊采集模塊/嵌入式系統(tǒng)
新型多總線在嵌入式系統(tǒng)設(shè)計中的應(yīng)用是什么?
請問有適用嵌入式系統(tǒng)的數(shù)字圖像采集模塊設(shè)計方案嗎?
調(diào)試嵌入式系統(tǒng)設(shè)計中的低速串行總線
采用PCI總線流水式高速數(shù)據(jù)采集系統(tǒng)設(shè)計
基于DSP 的實時圖像數(shù)據(jù)采集系統(tǒng)設(shè)計

基于DSP 的實時圖像數(shù)據(jù)采集系統(tǒng)設(shè)計1

基于VxWorks的PCI總線驅(qū)動設(shè)計

基于PCI總線的GPS圖像標(biāo)時系統(tǒng)設(shè)計

DSP與PCI網(wǎng)卡接口設(shè)計

基于PCI總線和DSP的實時圖像采集與處理系統(tǒng)

基于DSP的PCI總線數(shù)據(jù)采集系統(tǒng)的研究

基于ARM的實時圖像采集壓縮系統(tǒng)設(shè)計與實現(xiàn)

一種基于FPGA和PCI總線的天文圖像實時采集與處理系統(tǒng)的設(shè)計

嵌入式實時圖像采集傳輸與錄制系統(tǒng)設(shè)計

如何使用FPGA和PCI總線實現(xiàn)天文圖像實時采集與處理系統(tǒng)的設(shè)計

基于PCI總線芯片PCI9056實現(xiàn)機載嵌入式計算機系統(tǒng)的設(shè)計


評論