基于Virtex 6的PCI Express高速采集卡設(shè)計(jì)
隨著計(jì)算機(jī)技術(shù)的發(fā)展,以及大數(shù)據(jù)量交互的需要,硬件系統(tǒng)對(duì)PC總線傳輸速率、數(shù)據(jù)完整性提出了越來越高的應(yīng)用要求。傳統(tǒng)的PCI總線技術(shù)雖然經(jīng)過不斷的改進(jìn),開發(fā)出64b,66MHz的并行協(xié)議PCI-X標(biāo)準(zhǔn),但由于并行總線整體設(shè)計(jì)難度以及造價(jià)高昂,主流的PCI技術(shù)已經(jīng)成為限制數(shù)據(jù)傳輸系統(tǒng)性能發(fā)揮的瓶頸[1-2]。因此,第3代I/O技術(shù)PCIExpress總線標(biāo)準(zhǔn)一經(jīng)推出即成為取代PCI總線的下一代標(biāo)準(zhǔn),并得到迅速的發(fā)展。
本文引用地址:http://2s4d.com/article/189684.htmPCIExpress總線利用串行的連接特點(diǎn)能輕松的將數(shù)據(jù)整體傳輸速度提到一個(gè)更高的頻率,達(dá)到遠(yuǎn)遠(yuǎn)超出以往PC總線的傳輸速度,同時(shí)保證了數(shù)據(jù)的完整性[2]。PCIExpress連接采用點(diǎn)對(duì)點(diǎn)差分傳輸,可以被配置成最高x32的數(shù)據(jù)帶寬,其中PCIExpressGen2.0標(biāo)準(zhǔn)的x1通道傳輸能力達(dá)到單向5Gb/s.PCIExpress總線設(shè)備可以通過主機(jī)橋接器芯片進(jìn)行基于主機(jī)的傳輸,也可以通過交換器進(jìn)行多點(diǎn)傳輸,這極大的拓展了PC總線的開發(fā)靈活性。Xilinx公司的Virtex-6系列FPGA芯片內(nèi)嵌了PCIExpress協(xié)議硬核,支持x1,x2,x4和x8通道傳輸,為實(shí)現(xiàn)PCIExpress總線解決方案單片集成提供了可能[3]。
本文在研究PCIExpress協(xié)議標(biāo)準(zhǔn)及其接口技術(shù)的基礎(chǔ)上,設(shè)計(jì)了基于Virtex-6FPGA芯片的PCIExpress高速數(shù)據(jù)采集卡,實(shí)現(xiàn)了外部系統(tǒng)與PC的數(shù)據(jù)交互。
1系統(tǒng)總體設(shè)計(jì)
PCIExpress采集系統(tǒng)組成框圖如圖1所示。
圖1系統(tǒng)整體框圖
采集系統(tǒng)以FPGA作為采集卡的控制核心,外部數(shù)據(jù)經(jīng)數(shù)據(jù)接口傳入FPGA,F(xiàn)PGA通過內(nèi)部邏輯對(duì)高速數(shù)據(jù)進(jìn)行必要的時(shí)序控制和相關(guān)處理后將數(shù)據(jù)存儲(chǔ)到片外的SDRAM進(jìn)行緩存,然后采集卡在總線主控DMA控制器的控制下,通過PCIEx8通道將緩存的數(shù)據(jù)寫入計(jì)算機(jī)內(nèi)存[4]。上位機(jī)由驅(qū)動(dòng)軟件識(shí)別PCI Express采集卡,并設(shè)置DMA控制寄存器,通過上層應(yīng)用軟件接收硬件電路發(fā)送到內(nèi)存的數(shù)據(jù),并在每次傳輸結(jié)束是處理中斷。采用DMA模式傳輸實(shí)現(xiàn)了在實(shí)時(shí)數(shù)據(jù)高速采集的同時(shí),不影響上位機(jī)對(duì)數(shù)據(jù)的處理工作,不僅提高了采集系統(tǒng)整體的采集速度,也保證了數(shù)據(jù)質(zhì)量,以及測(cè)試分析完整性。
數(shù)據(jù)接口模塊完成外部數(shù)據(jù)的差分接收,這有利于保證高速數(shù)據(jù)的傳輸質(zhì)量。Virtex-6FPGA實(shí)時(shí)接收差分信號(hào),并在DataProcessor模塊中進(jìn)行解碼然后根據(jù)一定時(shí)序通過高速FIFO緩存送入外部SDRAM存儲(chǔ)模塊。PCIExpressIPCore為Virtex-6FPGA內(nèi)部集成協(xié)議硬核,完成數(shù)據(jù)的分層打包,DMA控制器作為PCIExpress總線傳輸?shù)闹骺?,?shí)現(xiàn)了DMA方式傳輸。
2采集卡硬件設(shè)計(jì)
2.1基于IPCore的PCIExpress接口設(shè)計(jì)
本采集卡采用Xilinx公司的Virtex-6系列FPGA芯片作為核心控制器。該款FPGA中內(nèi)置了PCIExpress集成模塊和RocketIOGTP收發(fā)器,提供了符合《PCIExpress基本規(guī)范v2.0》的PCI-E解決方案,單通道最高設(shè)計(jì)速度[5]達(dá)到5Gb/s.根據(jù)PCI-E總線的分層模型,Virtex-6集成端點(diǎn)模塊提供事務(wù)層(TL)、數(shù)據(jù)鏈路層(DLL)、物理層(PHYMAC)以及配置空間所具有的全部功能。通過使用Xilinx公司提供的PCIExpress LogiCOREIPEndpointBlockPlus核,可實(shí)現(xiàn)符合PCI-E總線協(xié)議的數(shù)據(jù)傳輸[6]。EndpointBlock Plus核在內(nèi)部例化了Virtex-6集成端點(diǎn)模塊,實(shí)現(xiàn)了集成端點(diǎn)模塊和GTP收發(fā)器之間的數(shù)據(jù)傳輸。集成硬核頂層模塊接口組成如圖2所示。
Xilinx公司所提供的PCIExpress解決方案,遵守了PCIE分層協(xié)議標(biāo)準(zhǔn),從完成對(duì)接收的數(shù)據(jù)進(jìn)行分層打包,通過PCIE接口與計(jì)算機(jī)通信。分層傳輸過程如圖3所示。
其中處理層主要是接受從軟件層送來的讀寫請(qǐng)求,并且建立一個(gè)請(qǐng)求包傳輸?shù)綌?shù)據(jù)鏈路層。作為事務(wù)層和物理層之間的接口,數(shù)據(jù)鏈路層通過維護(hù)鏈路活躍狀態(tài)信息、流控制初始化和流控制來確保數(shù)據(jù)的完整性、數(shù)據(jù)包的有序性和數(shù)據(jù)傳輸?shù)目煽啃?。物理層位于PCIE結(jié)構(gòu)的最底層,主要實(shí)現(xiàn)鏈路的建立、通路的分配、時(shí)鐘的編碼和并行數(shù)據(jù)與串行數(shù)據(jù)的之間的轉(zhuǎn)換。
評(píng)論