<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于PCI總線的嵌入式實(shí)時(shí)圖像處理系統(tǒng)

          基于PCI總線的嵌入式實(shí)時(shí)圖像處理系統(tǒng)

          作者: 時(shí)間:2013-03-14 來(lái)源:網(wǎng)絡(luò) 收藏


          DSP完成的功能主要是對(duì)從FIFO讀入的數(shù)據(jù)進(jìn)行處理,包括依照程序進(jìn)行識(shí)別、特征提取以參數(shù)檢測(cè)等。當(dāng)視頻頭采集速度為每秒25幀圖像時(shí),它留給DSP處理的時(shí)間最多為每幀40ms,如果考慮系統(tǒng)中一定的延時(shí)以及處理后圖像的存儲(chǔ)時(shí)間,那么DSP處理一幅圖像時(shí)間不能超過(guò)30ms,按照C6211的處理速度,在30ms內(nèi)可以處理36M條指令。DSP讀出FIFO中的行數(shù)據(jù)并存入SDRAM,一幀圖像有576行,在最后一行時(shí)會(huì)收到幀中斷,這時(shí)SDRAM中的圖像數(shù)據(jù)總共有1440×576=810KB。讓C6211用36M條指令的時(shí)間處理810K的數(shù)據(jù)是綽綽有余。

          (2) SDRAM存儲(chǔ)器

          HY57V651620B是現(xiàn)代公司發(fā)布的128Mb SDRAM,支持分頁(yè)尋址,訪問(wèn)速度為7.5ns,與DSP系統(tǒng)同步工作,但因?yàn)镈SP工作在150MHz,故系統(tǒng)中SDRAM工作在DSP時(shí)鐘的一半或者2/3,即75MHz或者100MHz。當(dāng)工作在100MHz時(shí)候,SDRAM在時(shí)序上需要一些特殊的控制,不是簡(jiǎn)單的與DSP同步。SDRAM主要在系統(tǒng)運(yùn)行過(guò)程中存儲(chǔ)臨時(shí)數(shù)據(jù)和處理結(jié)果。系統(tǒng)中共有256Mb的存儲(chǔ)空間,其消耗情況視啟動(dòng)程序和圖像處理程序的大小而定。

          (3) FLASH存儲(chǔ)器

          AM29LV800B是AMD公司發(fā)布的8Mb FLASH芯片,同樣支持分頁(yè)尋址,工作在異步方式。啟動(dòng)程序固化在FLASH芯片中。當(dāng)系統(tǒng)加電啟動(dòng)時(shí),F(xiàn)LASH中的程序下載到DSP的SDRAM中運(yùn)行。FLASH具有在線重寫(xiě)入功能,這對(duì)系統(tǒng)啟動(dòng)程序的修改和升級(jí)都帶來(lái)了很大的方便。

          2.2 視頻解碼模塊

          本系統(tǒng)視頻A/D采用的是Philips公司的SAA7111A作為視頻解碼芯片,SAA7111A可以提供四路模擬視頻輸入,具有兩個(gè)模擬處理通道,支持四路CVBS模擬信號(hào)或二路Y/C模擬信號(hào)或(2×CVBS和1×Y/C)。SAA7111A對(duì)視頻頭輸入的標(biāo)準(zhǔn)PAL格式的模擬圖像信號(hào)進(jìn)行A/D轉(zhuǎn)換,然后輸出符合CCIR601建議格式的4:2:2的16位YUV數(shù)據(jù)到FIFO,其中亮度信號(hào)Y為8位、色度信號(hào)Cr和Cb合為8位數(shù)據(jù)。FIFO采用的是IDT公司的IDT72V215LB芯片,深度為512×18。按照CCIR601標(biāo)準(zhǔn),YUV圖像分辨率為720×576,那么按行輸出時(shí),SAA7111A輸出數(shù)據(jù)流大小為:720×16=1440bit。因?yàn)镈SP通過(guò)32位的SBSRAM接口與FIFO通信,故YUV數(shù)據(jù)寫(xiě)入FIFO時(shí)需要在FIFO之間實(shí)現(xiàn)乒乓切換,這時(shí)一行720×16的數(shù)據(jù)在兩片F(xiàn)IFO中存儲(chǔ)變?yōu)?60×32。

          2.3 PCI通信模塊

          PCI(Peripheral Component Interconnect,外圍組件接口)它既可以作為中間層的總線也可以作為周邊總線系統(tǒng)使用。與其他普通總線規(guī)范相對(duì)照,為高速I(mǎi)/O設(shè)備提供了更好的支持,比如可以很好的支持圖像適配器、網(wǎng)絡(luò)接口控制器、磁盤(pán)控制器等?,F(xiàn)行的標(biāo)準(zhǔn)允許在33MHz下使用64根數(shù)據(jù)線,傳輸速率可達(dá)2.12Gbps。并且支持線性突發(fā)的數(shù)據(jù)傳輸模式,可確??偩€不斷滿載數(shù)據(jù),因此能有效利用總線帶寬。另外,還具有低延時(shí)的隨機(jī)存取特性,對(duì)從總線上的主控寄存器到從屬寄存器的寫(xiě)延時(shí)為60ns。

          PCI總線規(guī)范吸引人的地方不僅是其高速度,更在于它適應(yīng)了現(xiàn)代I/O設(shè)備對(duì)系統(tǒng)的要求,對(duì)PCI擴(kuò)展卡及器件能進(jìn)行全自動(dòng)配置,并且只需很少的接口邏輯就可以實(shí)現(xiàn)并支持其他總線系統(tǒng)。

          TMS320C6211的HPI口不支持PCI總線的無(wú)縫接口。本系統(tǒng)中采用TI公司的PCI2040來(lái)實(shí)現(xiàn)DSP的HPI與PCI總線的連接。DSP處理后的數(shù)據(jù)經(jīng)HPI口輸出到PCI2040進(jìn)行解碼,然后輸出到PCI總線上。其邏輯結(jié)構(gòu)圖如圖3所示。

          PCI2040是TI公司設(shè)計(jì)的專門(mén)用來(lái)完成C5000系列和C6000系列DSP和PCI總線進(jìn)行接口的專用芯片。PCI2040符合PCI局部總線2.2規(guī)范,能夠方便的實(shí)現(xiàn)PCI總線與TMS320C54X或TMS320C6X DSP的HPI斷口的無(wú)縫連接。PCI2040可以兼容3.3V和5V,以適應(yīng)不同的PCI總線電壓。PCI2040與C6211之間不需要進(jìn)行信號(hào)的電平轉(zhuǎn)換,也不需要額外的控制邏輯電路,因此接口電路十分簡(jiǎn)單。

          在本系統(tǒng)中,PCI2040上存在2種電壓:5V和3.3V,其中3.3V是HPI口電壓,而5V是PCI總線電壓。PCI2040在啟動(dòng)時(shí)需要對(duì)其PCI總線寄存器和HPI寄存器參數(shù)進(jìn)行預(yù)加載。系統(tǒng)中PCI解碼模塊包括一塊配置ROM--AT24C08A,屬于EEPROM型ROM,便于對(duì)配置參數(shù)的修改和升級(jí)。當(dāng)系統(tǒng)啟動(dòng)時(shí),存儲(chǔ)在AT24C08A的數(shù)據(jù)被下載到PCI2040的寄存器中并進(jìn)行配置。

          圖中/HINT[3:0]、/HCS[3:0]、HRDY[3:0]、HRST[3:0]分別與4片DSP中的相應(yīng)信號(hào)相連,即PCI2040可以同時(shí)與4片DSP接口。

          3 PCI總線驅(qū)動(dòng)實(shí)現(xiàn)方法


          在系統(tǒng)軟件方面,基于PCI總線的圖像面臨的難點(diǎn)頗多,其中難度最大的是PCI驅(qū)動(dòng)問(wèn)題。

          為闡明如何在Windows操作系統(tǒng)下實(shí)現(xiàn)PCI總線的驅(qū)動(dòng),還需了解PCI設(shè)備的配置空間系統(tǒng)。PCI設(shè)備有3種物理存儲(chǔ)空間:配置空間、存儲(chǔ)器空間和I/O空間。配置空間是長(zhǎng)度為256字節(jié)的一段連續(xù)空間,空間的定義如圖4。在配置空間中只讀空間有設(shè)備標(biāo)識(shí)、供應(yīng)商代碼、修改版本、分類代碼以及頭標(biāo)類型。其中供應(yīng)商代碼用來(lái)標(biāo)識(shí)設(shè)備供應(yīng)商的代碼;設(shè)備標(biāo)識(shí)用來(lái)標(biāo)識(shí)某一特殊的設(shè)備;修改版本標(biāo)識(shí)設(shè)備的版本號(hào);分類代碼用來(lái)標(biāo)識(shí)設(shè)備的種類;而頭標(biāo)類型用來(lái)標(biāo)識(shí)頭類型以及是否為多功能設(shè)備。除供應(yīng)商代碼之外,其他字段的值由供應(yīng)商分配?;刂芳拇嫫髯钪匾墓δ苁欠峙銹CI設(shè)備的系統(tǒng)地址空間。在基地址寄存器中bit0(最低位)用來(lái)標(biāo)識(shí)存儲(chǔ)器空間還是I/O地址空間,基地址寄存器映射到存儲(chǔ)器空間時(shí)bit0為“0”,映射到I/O地址空間時(shí)bit0為“1”。

          3.1 Windows環(huán)境下驅(qū)動(dòng)程序

          驅(qū)動(dòng)程序可以理解為一系列控制硬件設(shè)備的函數(shù)。在Windows操作系統(tǒng)中,封裝驅(qū)動(dòng)程序的方法是制作一個(gè)DLL或VxD。當(dāng)硬件是非標(biāo)準(zhǔn)設(shè)備時(shí),必須針對(duì)特定的硬件來(lái)設(shè)計(jì)Windows環(huán)境下的設(shè)備驅(qū)動(dòng)程序。

          在DOS操作系統(tǒng),對(duì)于一個(gè)應(yīng)用程序而言它總認(rèn)為自己是唯一運(yùn)行的程序,因此應(yīng)用程序可以直接訪問(wèn)硬件,獨(dú)占所有的系統(tǒng)內(nèi)存以及系統(tǒng)運(yùn)行時(shí)間,當(dāng)然也就不需要設(shè)備驅(qū)動(dòng)程序。但到了Windows操作系統(tǒng),系統(tǒng)中同時(shí)可能有若干個(gè)應(yīng)用程序在運(yùn)行,這就使得系統(tǒng)不可能讓它隨意的直接訪問(wèn)硬件,否則就會(huì)引起應(yīng)用程序訪問(wèn)沖突而導(dǎo)致系統(tǒng)崩潰。為解決這一問(wèn)題,人們提出將系統(tǒng)的資源虛擬化,讓?xiě)?yīng)用程序運(yùn)行在一個(gè)虛擬定環(huán)境中的虛擬機(jī)(VM)上,而管理程序和驅(qū)動(dòng)程序運(yùn)行在實(shí)際機(jī)器上(Ring0級(jí)),由它們來(lái)處理針對(duì)硬件的操作。虛擬資源是硬件(甚至軟件)資源的仿真,當(dāng)系統(tǒng)虛擬了所有或者幾乎所有的程序可以訪問(wèn)的資源時(shí),它就創(chuàng)造了一個(gè)“虛擬機(jī)”(VM)。Windows虛擬機(jī)完全透明的仿真了以下資源和性能:

          (1) 可訪問(wèn)的內(nèi)存空間
          (2) I/O操作
          (3) 中斷操作
          (4) 外圍設(shè)備(顯示器、鍵盤(pán)等)

          如此以來(lái),Windows應(yīng)用程序在Ring3級(jí)(最低級(jí))的保護(hù)模式上運(yùn)行,不能直接訪問(wèn)硬件,執(zhí)行一個(gè)對(duì)硬件的操作就會(huì)引起一個(gè)異常事件,此時(shí)處理器切換到Ring0級(jí),并且將控制權(quán)交給相應(yīng)當(dāng)控制器。所有Windows應(yīng)用程序分享一個(gè)系統(tǒng)虛擬機(jī)。


          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();