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

          新聞中心

          EEPW首頁(yè) > EDA/PCB > 設(shè)計(jì)應(yīng)用 > CCD系統(tǒng)下基于FPGA的PCI圖像采集卡設(shè)計(jì)與實(shí)現(xiàn)

          CCD系統(tǒng)下基于FPGA的PCI圖像采集卡設(shè)計(jì)與實(shí)現(xiàn)

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

          3.2 接口的設(shè)計(jì)
          圖像采集卡的接口設(shè)計(jì)非常重要。由于總線規(guī)范復(fù)雜,設(shè)計(jì)復(fù)雜,為了加快開(kāi)發(fā)周期,采用Xilinx提供的PCI core來(lái)完成PCI總線控制器的設(shè)計(jì)。PCI控制器核logic core的內(nèi)部框圖如圖4所示。

          本文引用地址:http://www.ex-cimer.com/article/190453.htm

          e.JPG


          PCI控制核主要完成用戶設(shè)備和PCI總線之間的數(shù)據(jù)傳輸。PCI核可工作在Target傳輸模式和Initiator傳輸模式。每種傳輸模式又可以分單次傳輸和突發(fā)傳輸。由于單次傳輸速度達(dá)不到要求,我們選擇突發(fā)傳輸模式以便提高傳輸速度。
          Target模式下的突發(fā)傳輸模式相對(duì)Initiator下的突發(fā)傳輸模式的控制邏輯簡(jiǎn)單,但是考慮到PCI圖像采集卡的可移植性,故采用Initia tor突發(fā)傳輸模式。在Initiator突發(fā)傳輸模式下,PCI圖像采集卡主動(dòng)向橋芯片申請(qǐng)PCI總線控制權(quán),并主動(dòng)傳送數(shù)據(jù);在Target模式下,必須用軟件對(duì)橋芯片進(jìn)行配置,也就是說(shuō)PCI圖像采集卡作為一個(gè)PCI從設(shè)備等待橋芯片的配置、數(shù)據(jù)讀取等。所以采用Initiator下的突發(fā)傳輸模式邏輯控制復(fù)雜,但是移植性好。
          3.3 PCI圖像采集卡地址空間配置
          PCI的地址空間可分為三種,分別是PCI配置空間、PCI I/O空間和PCI內(nèi)存空間。
          我們需要對(duì)PCI核進(jìn)行配置。
          Xilinx提供的PCI核提供了BAR0、BAR1、BAR2三個(gè)地址空間。這三個(gè)地址空間可以配置成內(nèi)存地址空間或I/O地址空間。為了PCI圖像采集卡在不同橋芯片下和不同的操作下工作。我們把所有的地址空間都配置成了內(nèi)存空間,因?yàn)椴皇撬刑幚砥鞫贾С諭/O操作。在我們的設(shè)計(jì)中,使用了BAR0和BAR1兩個(gè)地址空間,配置成了內(nèi)存空間,并全部配置成可以預(yù)取模式。以配制BAR0為例說(shuō)明配置方法。
          f.JPG
          3.4 地址指針的設(shè)計(jì)
          對(duì)于Initiator下的突發(fā)模式傳輸,因?yàn)閺脑O(shè)備可以在任何時(shí)刻結(jié)束數(shù)據(jù)的傳輸,應(yīng)用程序必須始終對(duì)地址進(jìn)行跟蹤,以便在Initiator再次發(fā)起傳輸時(shí)能得到正確的地址進(jìn)行重新傳送。
          我們?cè)谠O(shè)計(jì)的時(shí)候用了一個(gè)32bit的寄存器對(duì)地址進(jìn)行跟蹤,其中低2位始終為0,高30位用來(lái)保存數(shù)據(jù)。利用M_DATA_VLD信號(hào)來(lái)控制地址的增加。當(dāng)M_ADDR_N有效的時(shí)候把地址輸送到地址總線上。
          g.JPG
          3.5 Initiator突發(fā)數(shù)據(jù)傳輸狀態(tài)機(jī)的實(shí)現(xiàn)
          狀態(tài)機(jī)用來(lái)控制突發(fā)模式的讀寫(xiě)時(shí)序。整個(gè)狀態(tài)機(jī)由六個(gè)狀態(tài)組成,分別是IDLES、REOS、WRITES、READS、RSTS、OOPS。下面分對(duì)這六
          個(gè)狀態(tài)的功能進(jìn)行描述。
          IDLES:狀態(tài)機(jī)處于空閑狀態(tài),狀態(tài)機(jī)等待用戶發(fā)起讀或者寫(xiě)請(qǐng)求。
          REOS:用戶發(fā)起了傳送請(qǐng)求。當(dāng)是讀請(qǐng)求時(shí),狀態(tài)機(jī)進(jìn)入READS狀態(tài)。當(dāng)是寫(xiě)請(qǐng)求時(shí),狀態(tài)機(jī)進(jìn)入WRITES狀態(tài)。
          READS:狀態(tài)機(jī)一直處于數(shù)據(jù)讀取狀態(tài)直到傳輸完成,或者在傳輸過(guò)程中發(fā)生了不可恢復(fù)的錯(cuò)誤。當(dāng)數(shù)據(jù)正常傳輸完成時(shí),狀態(tài)機(jī)會(huì)跳到OOPS_S狀態(tài);當(dāng)發(fā)生致命錯(cuò)誤時(shí),狀態(tài)機(jī)會(huì)處于RSTS。
          WRITES:狀態(tài)WRITES和READS基本類(lèi)似。不同的是數(shù)據(jù)傳輸方向不同。
          RSTS:當(dāng)狀態(tài)機(jī)處于RSTS時(shí)說(shuō)明整個(gè)發(fā)生了不可恢復(fù)的錯(cuò)誤,必須重新復(fù)位讓軟硬件。
          OOPS:當(dāng)狀態(tài)機(jī)處于OOPS狀態(tài),如果需要對(duì)前端的FIFO進(jìn)行回滾操作,狀態(tài)機(jī)就一直處于OOPS。如果前端FIFO檢測(cè)傳輸完成信號(hào),完成則進(jìn)入IDLES狀態(tài),否則進(jìn)入申請(qǐng)總線狀態(tài)REQS。
          3.6 異步存儲(chǔ)器的實(shí)現(xiàn)
          由于PCI讀存儲(chǔ)器的時(shí)鐘頻率和數(shù)據(jù)寬度與收發(fā)器寫(xiě)存儲(chǔ)器的時(shí)鐘頻率和數(shù)據(jù)寬度不一致,所以要設(shè)計(jì)在兩個(gè)異步時(shí)鐘之間傳輸數(shù)據(jù)的接口電路。Xilinx自帶的FIFO IP核是一種解決方案。但是由于異步FIFO沒(méi)有Initiator突發(fā)數(shù)據(jù)傳輸下的需要的back_up信號(hào),所以利用Xilinx自帶的塊RAM作為數(shù)據(jù)寬度可以控制的存儲(chǔ)器。



          關(guān)鍵詞: FPGA CCD PCI 系統(tǒng)

          評(píng)論


          相關(guān)推薦

          技術(shù)專(zhuān)區(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); })();