當(dāng)前位置:首頁(yè) > 工業(yè)控制 > 電子設(shè)計(jì)自動(dòng)化

  摘 要: 一種在計(jì)算機(jī)工業(yè)測(cè)控系統(tǒng)中應(yīng)用FPGA和軟IP核實(shí)現(xiàn)PCI總線接口的方法。重點(diǎn)介紹了本地總線讀寫(xiě)狀態(tài)機(jī)的設(shè)計(jì),3.3V FPGA兼容PCI2.2、5V規(guī)范的電氣設(shè)計(jì)及其時(shí)序和布線問(wèn)題,并給出了使用嵌入式邏輯分析儀實(shí)際捕獲的信號(hào)時(shí)序。實(shí)驗(yàn)證明,該結(jié)構(gòu)的PCI接口測(cè)控系統(tǒng)工作穩(wěn)定可靠。
  關(guān)鍵詞: 現(xiàn)場(chǎng)可編程門(mén)陣列 IP核 PCI總線


  PCI總線是高性能的32/64位同步總線,具有嚴(yán)格的規(guī)范保證數(shù)據(jù)傳輸?shù)目煽啃裕瑸樘幚砥髋c高集成度的外圍設(shè)備提供高速安全的接口,是迄今為止最成功的總線規(guī)范之一。
  由于PCI總線協(xié)議非常復(fù)雜,目前實(shí)現(xiàn)PCI總線接口主要使用兩種方式:(1)采用專用接口芯片,如AMCC公司的S5933和PLX公司的9054、9080。使用接口芯片開(kāi)發(fā)人員可以不考慮PCI接口的實(shí)現(xiàn)問(wèn)題,但是在實(shí)際應(yīng)用中通常只用到接口芯片的部分功能,造成了資源的浪費(fèi)。同時(shí)接口芯片占用了板卡上的有限空間,給應(yīng)用設(shè)計(jì)帶來(lái)不便。(2)使用可編程邏輯器件實(shí)現(xiàn)PCI總線控制器。使用這種方式開(kāi)發(fā)難度大,消耗周期長(zhǎng),系統(tǒng)驗(yàn)證困難,且不具備通用性。
  隨著IC產(chǎn)業(yè)的迅速發(fā)展,傳統(tǒng)的、基于標(biāo)準(zhǔn)單元的數(shù)字IC設(shè)計(jì)方法已經(jīng)發(fā)展到基于IP(知識(shí)產(chǎn)權(quán))復(fù)用的SoC設(shè)計(jì)方法。根據(jù)實(shí)現(xiàn)的硬件描述級(jí)的不同,IP核分為軟核、硬核和固核。其中軟核是采用可綜合的HDL實(shí)現(xiàn)的RTL級(jí)設(shè)計(jì),與具體實(shí)現(xiàn)工藝無(wú)關(guān),相比于固核和硬核具有較大的靈活性。在FPGA中定制PCI接口軟核實(shí)現(xiàn)PCI接口控制具有明顯的優(yōu)勢(shì):可以在單片F(xiàn)PGA中同時(shí)完成PCI接口和用戶邏輯的設(shè)計(jì),縮減成本,提高集成度,減少資源浪費(fèi);實(shí)現(xiàn)32/64位的PCI、PCI-X及兼容Compact PCI的PCI主設(shè)備/目標(biāo)設(shè)備接口;消除PCI接口芯片與本地通信的信號(hào)線的硬線連接,提高用戶邏輯設(shè)計(jì)的彈性,降低因硬件設(shè)計(jì)不當(dāng)造成的損失;統(tǒng)一設(shè)計(jì)工具和平臺(tái),縮短開(kāi)發(fā)周期。
  本文應(yīng)用PCI接口控制IP實(shí)現(xiàn)了PCI多卡測(cè)控系統(tǒng)中PCI總線到本地總線的轉(zhuǎn)換。實(shí)際應(yīng)用表明,采用此設(shè)計(jì)方案的PCI卡運(yùn)行穩(wěn)定可靠。
1 應(yīng)用背景
  本文的應(yīng)用背景為某一工業(yè)測(cè)控系統(tǒng)。該系統(tǒng)采用FPGA實(shí)現(xiàn)測(cè)量數(shù)據(jù)的采集和控制信號(hào)的輸出,通過(guò)定制PCI接口IP實(shí)現(xiàn)一個(gè)32位目標(biāo)設(shè)備的PCI總線接口轉(zhuǎn)換。PCI核選用Altera PCI編譯器所包括的pci_t32兆核函數(shù)。FPGA選用Altera公司的Cyclone系列芯片ep1c6q240c8,以配合32位/33MHz的PCI接口的I/O標(biāo)準(zhǔn)和速度要求。在硬件設(shè)計(jì)上,為保證3.3V FPGA對(duì)PCI 2.2、5V總線的兼容性要求,在PCI總線接口與FPGA引腳間加入總線開(kāi)關(guān)進(jìn)行電平轉(zhuǎn)換。由于系統(tǒng)應(yīng)用在工業(yè)生產(chǎn)控制場(chǎng)合,因此FPGA與外部數(shù)據(jù)的I/O接口間需加入光電隔離器件以增強(qiáng)系統(tǒng)的抗干擾能力。系統(tǒng)結(jié)構(gòu)如圖1所示。


2 PCI接口兆核函數(shù)
  Altera的PCI編譯器(PCI Compiler)提供了使用Altera器件實(shí)現(xiàn)PCI接口設(shè)計(jì)的完全解決方案,包括4個(gè)32/64位、主/從模式PCI接口控制器兆核函數(shù)(即接口IP)及相關(guān)測(cè)試平臺(tái)。通過(guò)選擇合適的芯片速度,可以滿足運(yùn)行在33MHz或66MHz PCI時(shí)鐘下的時(shí)序要求。支持Altera的Stratix Ⅱ、Stratix、Stratix GX、Cyclone、Cyclone Ⅱ和MAX Ⅱ系列器件;支持PCI配置空間讀寫(xiě)、內(nèi)存方式讀寫(xiě)和I/O方式讀寫(xiě);支持預(yù)先讀取模式;支持可參數(shù)化的配置寄存器,包括參數(shù)化的設(shè)備信息、6個(gè)可變長(zhǎng)度的基址空間和一個(gè)擴(kuò)展ROM空間;具有奇偶校驗(yàn)檢錯(cuò);支持PCI終止、重試和斷開(kāi)作業(yè)及中斷操作,并提供靈活的本地端接口。pci_t32兆核函數(shù)是32位目標(biāo)設(shè)備控制器,其結(jié)構(gòu)和總線接口信號(hào)如圖2所示。


  在PCI總線端,IP核提供32位數(shù)據(jù)線和目標(biāo)設(shè)備控制信號(hào)、中斷請(qǐng)求信號(hào)及錯(cuò)誤報(bào)告信號(hào);本地總線端提供32位數(shù)據(jù)線和地址線、控制信號(hào)、中斷輸入信號(hào)和狀態(tài)表示信號(hào)接口。其中,本地端信號(hào)l_adi為地址/數(shù)據(jù)輸入,l_adro為地址輸出,l_dato為數(shù)據(jù)輸出,l_beno為字節(jié)使能輸出,l_cmdo為本地命令輸出??刂菩盘?hào)lt_abortn、lt_discn和lt_rdyn為本地端輸入,分別標(biāo)志本地設(shè)備終止、斷開(kāi)和準(zhǔn)備好,lt_framen、lt_ackn和lt_dxfrn為目標(biāo)傳輸控制信號(hào),相當(dāng)于PCI總線的frame#、devsel#和trdy#。lt_tsr為目標(biāo)作業(yè)狀態(tài)寄存器輸出。lirqn為中斷輸入信號(hào)。
  可以通過(guò)PCI編譯器IP工具臺(tái)或編輯兆核函數(shù)頭文件的方式修改PCI配置空間信息。本系統(tǒng)PCI兆核函數(shù)的配置信息如下:
  CLASS_CODE=24′hFF0000
  DEVICE_ID=16′h1100
  VENDOR_ID=16′h1172,為Altera的廠商編號(hào)
  REVISION_ID=8′h01
  BAR0=32′hFFFFFC00,BAR0空間為1KB,使用內(nèi)存方式讀寫(xiě)
  NUMBER_OF_BARS=32′h00000001
  INTERRUPT_PIN_REG=8′h00,未使用中斷
3 本地總線讀寫(xiě)狀態(tài)機(jī)
  在用戶邏輯中,通過(guò)總線讀寫(xiě)狀態(tài)機(jī)實(shí)現(xiàn)內(nèi)存方式單周期或迸發(fā)讀寫(xiě)、I/O單周期或迸發(fā)讀寫(xiě)以及在設(shè)備不能完成作業(yè)時(shí)發(fā)起(目標(biāo))或響應(yīng)(主)終止、斷開(kāi)或重試等作業(yè),保證PCI作業(yè)正確結(jié)束。以帶迸發(fā)模式的內(nèi)存讀寫(xiě)作業(yè)為例,作為目標(biāo)設(shè)備的本地總線讀寫(xiě)狀態(tài)轉(zhuǎn)移圖如圖3所示。


  IDLE為設(shè)備空閑狀態(tài)。
  ADD_LATCH為地址鎖定狀態(tài)。lt_framen有效表示IP核接到一次PCI讀寫(xiě)作業(yè)并啟動(dòng)本地端做出響應(yīng),此時(shí)目標(biāo)設(shè)備鎖存地址l_adro及命令l_cmdo,并對(duì)命令做出解釋。l_cmdo的值為6,則進(jìn)入MEMORY_READ狀態(tài);為7,則進(jìn)入IP_READY狀態(tài);其他值,則使能lt_discn并進(jìn)入RETRY狀態(tài)。
  MEM_READ為內(nèi)存讀作業(yè)狀態(tài),lt_ackn有效驅(qū)使目標(biāo)設(shè)備將數(shù)據(jù)放到總線上;如為迸發(fā)方式,則lt_rdyn和lt_dxfrn持續(xù)有效,驅(qū)使目標(biāo)設(shè)備連續(xù)將地址相連的數(shù)據(jù)輸出。如目標(biāo)設(shè)備在迸發(fā)作業(yè)中需延緩迸發(fā)作業(yè),則可使lt_rdyn無(wú)效來(lái)加入等待周期,此時(shí)狀態(tài)機(jī)回到ADD_LATCH狀態(tài),直到目標(biāo)設(shè)備再次準(zhǔn)備好,并同時(shí)使lt_rdyn有效并輸出數(shù)據(jù)。
  RETRY為設(shè)備重試狀態(tài)。在作業(yè)開(kāi)始,目標(biāo)設(shè)備尚未準(zhǔn)備好發(fā)送或接收數(shù)據(jù),則發(fā)起一次重試作業(yè),即在lt_framen有效后使lt_discn有效并等待主設(shè)備結(jié)束作業(yè)。
  DISCN為設(shè)備斷開(kāi)狀態(tài)。在迸發(fā)讀寫(xiě)作業(yè)中,目標(biāo)設(shè)備檢測(cè)到地址超出有效范圍,則發(fā)起目標(biāo)斷開(kāi)作業(yè);在迸發(fā)寫(xiě)作業(yè)中斷開(kāi),在最后一次有效寫(xiě)數(shù)據(jù)前一時(shí)鐘使lt_discn有效。在迸發(fā)讀作業(yè)中,將最后一個(gè)數(shù)據(jù)放在總線上的同時(shí)使lt_discn有效。
  IP_READY為內(nèi)存寫(xiě)操作IP核準(zhǔn)備傳輸數(shù)據(jù)狀態(tài)。
  MEM_WRITE為內(nèi)存寫(xiě)作業(yè)狀態(tài)。在同時(shí)使能lt_rdyn后等待lt_ackn和lt_dxfrn有效時(shí)讀取總線上的數(shù)據(jù)l_dato,迸發(fā)寫(xiě)或加入等待周期的時(shí)序與讀作業(yè)類似。
  STAT_CHECK為狀態(tài)檢測(cè)。lt_ackn和lt_dxfrn同時(shí)無(wú)效標(biāo)志著內(nèi)存單次/迸發(fā)讀作業(yè)完成,然后檢測(cè)作業(yè)狀態(tài)寄存器lt_tsr并返回IDLE狀態(tài)。
  在每一次作業(yè)開(kāi)始,都啟動(dòng)計(jì)數(shù)器,防止操作超時(shí)。
  使用SignalTap II嵌入式邏輯分析儀實(shí)際捕獲的PCI內(nèi)存讀寫(xiě)作業(yè)的PCI和本地總線信號(hào)時(shí)序圖如圖4所示,采樣時(shí)鐘為PCI總線時(shí)鐘。


4 PCI電氣特性要求設(shè)計(jì)
  由于目前絕大多數(shù)主板采用5V的PCI規(guī)范,而Altera的Cyclone系列FPGA的I/O口電壓只支持3.3V,因此需要在FPGA和PCI連接器間加入電平轉(zhuǎn)換電路。
  實(shí)現(xiàn)電平轉(zhuǎn)換的原理是在總線間加入NMOS總線開(kāi)關(guān),實(shí)現(xiàn)方式如圖5所示。


  其中總線開(kāi)關(guān)選用IDT公司的QS3861。首先,考慮電平轉(zhuǎn)換的實(shí)現(xiàn)方法。當(dāng)總線選通信號(hào)BE#使能,總線A的輸入電壓上升,總線B的電壓隨之上升。當(dāng)總線A的電壓超過(guò)vcc-Vt(Vt的典型值為1V)時(shí),總線B的電壓將被箝位到vcc-Vt,而不會(huì)繼續(xù)上升。因此選擇vcc為4.3V,則能保證總線B的信號(hào)滿足3.3V標(biāo)準(zhǔn)。當(dāng)3.3V總線B驅(qū)動(dòng)總線A時(shí),由于5V PCI規(guī)范中定義的邏輯高電壓是2V~5.5V,因此也能夠保證FPGA端驅(qū)動(dòng)PCI的高電壓要求。
  其次,驗(yàn)證是否滿足PCI時(shí)序要求。PCI2.2協(xié)議規(guī)定一個(gè)時(shí)鐘周期分為4部分:
  t(30ns)=tval+tprop+tsu+tskew
  其中:tval為時(shí)鐘到輸出信號(hào)有效延遲,tsu為輸入建立時(shí)間,tpro為最大總線傳輸時(shí)間,tskew為時(shí)鐘抖動(dòng)時(shí)間。PCI 2.2協(xié)議規(guī)定的保持時(shí)間為0。tprop是由于PCI總線采用反射波技術(shù)引入的,典型值為10ns,tprop與tskew的和不超過(guò)12ns。PCI 2.2規(guī)范規(guī)定33MHz信號(hào)的建立時(shí)間為7ns,66MHz信號(hào)的建立時(shí)間為3ns。由QS3861引入的數(shù)據(jù)傳輸延遲為0.25ns。但由于所有PCI信號(hào)都經(jīng)過(guò)總線開(kāi)關(guān)進(jìn)行電平轉(zhuǎn)換,到達(dá)FPGA的信號(hào)整體只有0.25ns的延遲,因此FPGA的建立時(shí)間仍然設(shè)置為7ns。FPGA經(jīng)過(guò)運(yùn)算輸出的信號(hào)時(shí)序由時(shí)鐘到信號(hào)有效延遲tval所限定。PCI 2.2規(guī)范規(guī)定33MHz時(shí)tval最大為11ns,最小為2ns。由于電平轉(zhuǎn)換芯片在雙向數(shù)據(jù)通路的延遲累加,F(xiàn)PGA必須保證時(shí)鐘到信號(hào)最大延遲在10.5ns以內(nèi)。
  最后,考慮布局布線因素。在加入總線開(kāi)關(guān)后,要保證從PCI連接器到總線開(kāi)關(guān)及總線開(kāi)關(guān)到FPGA的所有32位信號(hào)線(除中斷輸入信號(hào)、系統(tǒng)信號(hào)和JTAG信號(hào))的走線長(zhǎng)度和不大于1.5英寸,時(shí)鐘線長(zhǎng)度和為2.5±0.1英寸。
  在FPGA中定制IP核實(shí)現(xiàn)PCI總線到本地總線的轉(zhuǎn)換,能夠有效節(jié)約PCI設(shè)備的成本,提高硬件資源利用率,縮短開(kāi)發(fā)時(shí)間。目標(biāo)設(shè)備讀寫(xiě)狀態(tài)機(jī)對(duì)本地總線進(jìn)行監(jiān)測(cè),完成設(shè)備的內(nèi)存、I/O讀寫(xiě)并提供迸發(fā)作業(yè)支持,在發(fā)生異常狀況時(shí),及時(shí)發(fā)起重試、斷開(kāi)或終止作業(yè),保證PCI總線傳輸正確結(jié)束,防止不安全的數(shù)據(jù)操作出現(xiàn)。為了滿足PCI電氣規(guī)范,在硬件設(shè)計(jì)時(shí)需要注意3.3V設(shè)備掛接5V總線的電平轉(zhuǎn)換及其帶來(lái)的時(shí)序和布線問(wèn)題。
參考文獻(xiàn)
1 任愛(ài)鋒.基于FPGA的嵌入式系統(tǒng)設(shè)計(jì).西安:西安電子科技大學(xué)出版社,2004
2 PCI Compiler User Guide(Version 3.2.0).Altera Corporation,2004
3 Connecting Altera 3.3-V PCI devices to a 5-V PCI Bus (Version 1.0).Altera Corporation,2004
4 PCI Local Bus Specification(Revision 2.2).PCI SIG,1998

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車(chē)的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車(chē)技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車(chē)工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車(chē)。 SODA V工具的開(kāi)發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車(chē) 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開(kāi)幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉