<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > EDA/PCB > 設計應用 > CCD系統下基于FPGA的PCI圖像采集卡設計與實(shí)現

CCD系統下基于FPGA的PCI圖像采集卡設計與實(shí)現

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

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

本文引用地址:http://dyxdggzs.com/article/190453.htm

e.JPG


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



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

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>