基于FPGA實(shí)現(xiàn)CPCI數(shù)據(jù)通信
本文設(shè)計(jì)的系統(tǒng)采用PLX公司生產(chǎn)的PCI協(xié)議轉(zhuǎn)換" title="CPCI協(xié)議轉(zhuǎn)換">CPCI協(xié)議轉(zhuǎn)換芯片PCI9054,通過Verilog HDL語言在FPGA中產(chǎn)生相應(yīng)的控制信號(hào),完成對數(shù)據(jù)的快速讀寫,從而實(shí)現(xiàn)了與CPCI總線的高速數(shù)據(jù)通信。
高速數(shù)據(jù)傳輸技術(shù)是現(xiàn)代信息技術(shù)的前沿科技,同時(shí)也是整個(gè)數(shù)據(jù)鏈技術(shù)的瓶頸之一,為此技術(shù)人員不斷地尋找新的方法。CPCI(Compact PCI)總線就是其中一個(gè)解決方案。CPCI總線是當(dāng)前流行的高速嵌入式計(jì)算機(jī)總線,目前大多數(shù)嵌入式計(jì)算機(jī)系統(tǒng)的接口最終都要經(jīng)過CPCI總線與計(jì)算機(jī)內(nèi)存進(jìn)行交互。CPCI的總線規(guī)范保證了其具有良好的兼容性和可靠性。
1 系統(tǒng)設(shè)計(jì)
系統(tǒng)主要由PCI9054和FPGA構(gòu)成,系統(tǒng)結(jié)構(gòu)圖以及信號(hào)連接如圖1所示。通過利用FPGA的可編程性,可實(shí)現(xiàn)更多的擴(kuò)展功能,如與DSP,A/D等不同速率間接高速通信等。協(xié)議轉(zhuǎn)換芯片PCI9054的作用就是保證本地?cái)?shù)據(jù)采集板卡和主CPU板卡之間的數(shù)據(jù)可以高速準(zhǔn)確地傳輸。
2 PCI9054性能分析
PCI9054是由PLX公司生產(chǎn)的一種基于PCI V2.2總線規(guī)范的通用接口芯片。它支持單字節(jié)方式和突發(fā)方式兩種傳輸方式。其總線端支持32位/33 MHz傳輸,本地端可以通過突發(fā)方式達(dá)到最大132 Mbit·s-1的傳輸速率,并且可以控制改變本地端的總線寬度。
PCI9054可以看做一座建立在CPCI總線和本地用戶局部總線之間的橋梁。因?yàn)镻CI9054具有6個(gè)可編程FIFO存儲(chǔ)器進(jìn)行數(shù)據(jù)緩存,從而保證兩者之間數(shù)據(jù)傳輸?shù)恼_性和實(shí)時(shí)性。并且PCI9054允許其中任意一端作為主控設(shè)備去控制總線,同時(shí)另外一端作為目標(biāo)設(shè)備去響應(yīng)總線。
PCI9054內(nèi)部具有多個(gè)寄存器組,用以對其兩端的工作狀態(tài)和工作方式進(jìn)行控制。PCI9054對其內(nèi)部的所有寄存器組和FIFO都行了統(tǒng)一的地址映射,用戶可以從兩端通過編程訪問所有FIFO及寄存器組的每個(gè)字節(jié),從而查看兩端的工作狀態(tài)和改變兩端的工作方式。
3 PCI9054局部總線的接口設(shè)計(jì)
整個(gè)CPCI接口的設(shè)計(jì)思路為:FPGA通過橋接芯片PCI9054與CPCI總線連接,其內(nèi)部使用異步雙口RAM來進(jìn)行高速數(shù)據(jù)的緩沖,通過使用VerilogHDL語言編程來控制FPGA中的異步雙口RAM,以實(shí)現(xiàn)系統(tǒng)數(shù)據(jù)在嵌入式CUP板卡內(nèi)存與CPCI板卡之間的高速傳輸。
PCI9054提供了3種物理總線接口:CPCI總線接口、LOCAL總線接口和串行EPROM接口。其中CPCI總線接口協(xié)議在嵌入式操作系統(tǒng)中的驅(qū)動(dòng)包已經(jīng)帶有,而串行EEPROM的初始化是由PLX公司的PLXMON軟件在嵌入式操作系統(tǒng)中進(jìn)行在線燒寫的,所以本系統(tǒng)設(shè)計(jì)的重點(diǎn)就是關(guān)于LOCAL總線接口的控制和傳輸,其接口電路示意圖如圖2所示。
PCI9054與本地總線之間的接口稱之為LOCAL BUS,是CPCI總線系統(tǒng)設(shè)計(jì)中十分重要的一環(huán)。PCI9054 LOCAL BUS在系統(tǒng)設(shè)計(jì)中,其總線直接與Alter公司的EP2S90F78014芯片的數(shù)據(jù)總線相連,同時(shí)通過運(yùn)用Verilog HDL語言編程來實(shí)現(xiàn)對雙口RAM控制器的功能。
PCI9054 LOCAL BUS有3種工作模式,分別為M、J和C模式。M模式是專為Motorola公司開發(fā)和設(shè)計(jì)的,而另外兩種工作模式就應(yīng)用的比較廣泛。其中J模式因?yàn)闆]有LocaL Master,所以它的地址總線和數(shù)據(jù)線沒有分開,從而增加了開發(fā)難度。而在C模式下,PCI9054芯片通過片內(nèi)的邏輯控制可以將CPCI的局部地址和數(shù)據(jù)總線分開,從而有效地降低了開發(fā)難度,并且能靈活地為本地工作時(shí)序提供各種工作方式,所以本系統(tǒng)設(shè)計(jì)方案選擇了LOCAL總線的C工作模式,工作頻率為40 MHz。
4 局部總線的實(shí)現(xiàn)
PCI9054支持主模式、從模式和DMA傳輸方式,根據(jù)本系統(tǒng)設(shè)計(jì)的需求,采用從模式傳輸方式,即允許CPCI總線上的主設(shè)備訪問局部總線上的配置寄存器或內(nèi)存,支持多種模式傳輸。如圖3所示。
FPGA內(nèi)部邏輯要設(shè)計(jì)本地端總線控制模塊,實(shí)現(xiàn)局部總線的狀態(tài)控制,同時(shí)產(chǎn)生片內(nèi)的讀寫時(shí)序及地址信號(hào)以支持突發(fā)傳輸和單周期傳輸,因此使用Verilog HDL語言中的狀態(tài)機(jī)來完成上述功能。其狀態(tài)轉(zhuǎn)換,如圖4所示。
5 測試結(jié)果
利用SingnalTap采集到的單周期時(shí)序傳輸圖,如圖5所示。
6 結(jié)束語
以PCI9054為核心介紹了CPCI板卡與嵌入式CPU板卡之間高速數(shù)據(jù)通信系統(tǒng)接口的軟硬件設(shè)計(jì)。PCI9054因其靈活和方便的接口功能,使操作者只需關(guān)心LOCAL BUS接口電路的時(shí)序設(shè)計(jì),并且利用其傳輸速率高的特性,可以幫助一些對實(shí)時(shí)性要求較高的系統(tǒng)解決其傳輸數(shù)據(jù)的問題。