PCI IP核在CPCI總線(xiàn)數(shù)據(jù)采集卡的應(yīng)用設(shè)計(jì)
隨著CompactPCI在中國(guó)大范圍的普及和使用,越來(lái)越多的企業(yè)開(kāi)始研制基于CompactPCI接口的產(chǎn)品,市場(chǎng)上有一些專(zhuān)用PCI接口芯片。FPGA(現(xiàn)場(chǎng)可編程門(mén)陣列)技術(shù)的快速發(fā)展使得萬(wàn)門(mén)以上乃至幾十萬(wàn)門(mén)邏輯陣列的使用越來(lái)越普遍。與專(zhuān)用PCI接口芯片相似,很多FPGA制造商都提供了PCI接口核邏輯。設(shè)計(jì)者可以將PCI用戶(hù)邏輯與PCI Core集成在一片F(xiàn)PGA里,并且可以在頂層通過(guò)仿真來(lái)驗(yàn)證PCI接口以及用戶(hù)邏輯設(shè)計(jì)的正確與否,這樣可以大幅度提高調(diào)試速度、縮短開(kāi)發(fā)周期、提高電路板的集成度和系統(tǒng)的性能。目前,開(kāi)發(fā)者最常用的兩種PCI IP核是ALTERA公司的PCI MEGACORE和XILINX公司的PCI Logicore。本文所介紹的PCI_MT64 IP核是ALTERA公司開(kāi)發(fā)的一個(gè)功能強(qiáng)大的CPCI接口內(nèi)核,最高能實(shí)現(xiàn)64位的數(shù)據(jù)寬度和66MHz的工作頻率。文章介紹了PCI_MT64的工作原理以及此IP核在CPCI總線(xiàn)數(shù)據(jù)采集卡的應(yīng)用設(shè)計(jì),并通過(guò)本地邏輯設(shè)計(jì)測(cè)試了此IP核的功能。
PCI_MT64 IP核的原理和結(jié)構(gòu)
根據(jù)用戶(hù)性質(zhì)的不同,CPCI接口類(lèi)型分為兩種:MASTER(主設(shè)備) 和TARGET(從設(shè)備)。ALTERA公司據(jù)此開(kāi)發(fā)了多種 PCI IP核:PCI_MT64、PCI_MT32、PCI_T64和PCI_T32。由于設(shè)計(jì)需要完成66MHz、64位寬度數(shù)據(jù)傳輸,且在主模式下DMA控制器才能工作,因此選擇了PCI_MT64。
PCI_MT64是支持33/66MHz工作頻率、64位PCI總線(xiàn)、支持主/從模式的PCI IP功能模塊。當(dāng)其寬度為64位、系統(tǒng)時(shí)鐘為66 MHz時(shí),峰值傳輸速率為528 MB/s。其主要由8個(gè)模塊組成,如圖1所示。
圖1 PCI_MT64的模塊結(jié)構(gòu)
參數(shù)配置寄存器:提供參數(shù)確定的寄存器,包括設(shè)備識(shí)別、供應(yīng)商識(shí)別、分類(lèi)代碼、修訂版本、基址寄存器和子系統(tǒng)供應(yīng)商等信息。在設(shè)計(jì)中,ALTERA公司提供了參數(shù)化的圖形界面,用戶(hù)只需按PCI協(xié)議輸入或選擇合理的值即可完成該寄存器的配置。
PCI側(cè)地址/數(shù)據(jù)緩沖模塊:用來(lái)緩存PCI總線(xiàn)側(cè)的地址數(shù)據(jù)輸入、輸出信號(hào)。
PCI側(cè)主/從模式控制模塊:用于控制PCI總線(xiàn)的主設(shè)備和從設(shè)備的各種時(shí)序操作。
Local側(cè)主/從模式控制模塊:用于控制PCI_MT64與本地邏輯的各種操作。
Local側(cè)地址/數(shù)據(jù)/命令/字節(jié)使能模塊:接收和輸出用戶(hù)側(cè)的所有地址、數(shù)據(jù)、命令、字節(jié)使能等信號(hào)。
奇偶校驗(yàn)?zāi)K:用于對(duì)數(shù)據(jù)、地址、命令進(jìn)行奇偶校驗(yàn)。
PCI_MT64 IP核在CPCI數(shù)據(jù)采集卡中的應(yīng)用設(shè)計(jì)
PCI_MT64 IP核在CPCI數(shù)據(jù)采集卡中的功能:與CPCI總線(xiàn)之間的通信和數(shù)據(jù)傳輸,并做奇偶校驗(yàn)以保證正確性,即將復(fù)雜的CPCI總線(xiàn)信號(hào)轉(zhuǎn)換為相對(duì)簡(jiǎn)單易操作的CPCI本地總線(xiàn)信號(hào),它從CPCI總線(xiàn)側(cè)獲得傳輸命令和讀寫(xiě)數(shù)據(jù)的地址后,一方面對(duì)這個(gè)操作命令做出反應(yīng),將其傳達(dá)給本地邏輯,另一方面將CPCI總線(xiàn)傳送過(guò)來(lái)的數(shù)據(jù)地址映射為本地邏輯可識(shí)別的地址。當(dāng)本地端總線(xiàn)準(zhǔn)備好后,PCI IP核會(huì)收到本地邏輯做出的響應(yīng)信號(hào),然后根據(jù)主從模式,讀/寫(xiě)命令的不同執(zhí)行相應(yīng)的時(shí)序。簡(jiǎn)單的說(shuō),它是CPCI總線(xiàn)和本地邏輯的橋梁,所以首先要設(shè)計(jì)CPCI本地側(cè)邏輯實(shí)現(xiàn)PCI IP核功能驗(yàn)證,如圖2所示。
圖2 CPCI本地端邏輯設(shè)計(jì)
以上設(shè)計(jì)能快速評(píng)估PCI IP核的功能,當(dāng)PCI_MT64作為一個(gè)主設(shè)備,主模式控制邏輯連接DMA控制器來(lái)完成一次PCI主模式讀寫(xiě)傳輸。當(dāng)PCI_MT64作為一個(gè)從設(shè)備,它觸發(fā)從模式控制邏輯來(lái)執(zhí)行一次從模式傳輸。CPCI數(shù)據(jù)采集卡使用DMA方式上傳數(shù)據(jù),即將數(shù)據(jù)采集模塊的數(shù)據(jù)處理后,緩存到FIFO,從FIFO中傳輸數(shù)據(jù)到上位機(jī);使用從模式寫(xiě)傳輸發(fā)送控制命令到板卡不同寄存器。當(dāng)進(jìn)行一次從模式傳輸時(shí),PCI IP核不能啟動(dòng)總線(xiàn)操作,只能依賴(lài)于主設(shè)備從其中讀取數(shù)據(jù)或向其傳送數(shù)據(jù),相關(guān)設(shè)計(jì)較為簡(jiǎn)單,而DMA模式是PCI_MT64配合自主設(shè)計(jì)的DMA控制器來(lái)實(shí)現(xiàn)的,所以DMA控制器是整個(gè)設(shè)計(jì)的關(guān)鍵。
評(píng)論