數據傳輸是數字信號處理過程中的重要一環,其效率影響整個數據處理系統的性能。數據傳輸往往采用行業中標準化的總線技術,使數字系統的設計可靠、方便、易于升級。PCI作為一種成熟的總線標準,應用于許多系統的數據傳輸過程。針對工業環境建立的CompactPCI標準結合了PCI的電氣特性與優良的機械特性,在工業領域的應用更為廣泛。在設計基于PCI或CompactPCI總線的數字設備時,采用各公司提供的通用PCI I/O芯片或IP核,可簡化復雜的PCI接口設計,加快產品的研發和升級。PCI 9656是PLX公司為高速PCI(CompactPCI)總線應用而設計的通用I/O芯片,適用于66MHz、64bit的PCI(CompactPCI)總線,提供了528MB/s(PCI總線)和264MB/s(局部總線)的突發傳輸速度,能夠滿足大多高速數字系統的性能要求。 1 PCI 9656功能簡述 PCI 9656支持66Mhz、64bit的PCI R2.2規范,提供了兼容PICMG 2.1 R2.0規范的CompactPCI Hot Swap接口,其局部總線達到66MHz、32bit(支持0"66MHz、8/16bit),可為PCI(CompactPCI)適配器及嵌入式系統設計提供高性能的總線接口。PCI 9656的配置寄存器與PCI 9054、PCI9056兼容,也方便了原有設計的移植。 PCI 9656具有6條獨立的數據通道,用于Direct Master、Direct Slave以及DMA功能模式下的數據傳輸,其深FIFO設計有效提升了總線的突發傳輸性能。 1 Direct Master模式。用于局部總線到PCI(CompactPCI)的數據傳輸,16 QWords(128byte)和32 QWords(256byte)的FIFO各應用于數據的讀、寫通道。 2 Direct Slave模式。用于PCI(CompactPCI)到局部總線的數據傳輸,16 QWords(128byte)和32 QWords(256byte)的FIFO各應用于數據的讀、寫通道。 3 DMA模式。PCI 9656提供了兩條DMA通道(Channel 0、Channel 1),使用了兩獨立的32 QWords(256byte)雙向FIFO。兩條DMA通道可同時傳輸數據,通過PCI 9656的MARBR寄存器可配置其優先級關系。PCI 9656的DMA方式有常規的塊模式(Block mode)和集散模式(Scatter/Gather mode),而且支持以DREQ#、DASK#信號請求、應答的命令模式(Demand mode),可應用于通信領域中的實時數據傳輸。 在局部總線端,PCI 9656簡化了數據的傳輸控制邏輯,與ISA總線類似,方便了傳輸控制的設計實現。PCI 9656的局部總線有三種應用模式,可以適用不同的嵌入式處理器。 1 M模式。支持Motorola 32bit的處理器,提供了可與MPC850、MPC860 PowerQCICC 直接相連的接口。 2 C模式。適合大多數處理器的通用模式,在設計中多采用此模式。 3 J模式。與C模式類似,但其地址線與數據線復用。 2 數據接收卡設計 PCI 9656片內資源豐富,功能多樣,采用PCI 9656為接口芯片,可方便地進行PCI(Compact)適配器的設計。而在PCI 9656的局部總線端,往往不需要實現其全部邏輯功能,可依據需要選取配置,更進一步簡化設計。 圖1是應用PCI 9656的CompactPCI數據記錄卡的設計框圖,此數據接收卡應用于一款合成孔徑雷達的數據記錄器中,數據源為34bit的差分信號,32bit數據,1bit采樣時鐘,1bit數據有效標志位。圖1中:時鐘驅動ICS553向PCI 9656、邏輯控制模塊和FIFO提供同步時鐘信號;初始化配置芯片采用Microchip 93LC56B,PCI 9000系列提供3線的E2PROM串行接口,可在系統上電時初始化內部配置寄存器;差分到單端信號的轉換經由Ti公司的LVDT386和390完成;FIFO采用了IDT公司所設計的高速、低功耗的72T36135M,數據容量為512K×36bit,使用易于級聯的First Word Follow Through工作模式;邏輯控制部分采用Altera的MAXII EPM1270,實現FIFO到PCI 9656局部總線間的數據傳輸控制。 2.1 PCI9656的設計應用 在CompactPCI端,PCI 9656提供了66MHz、64bit總線應用所需信號,可依據CompactPCI規范連接,通過簡單的外部電路,可實現Hot Swa p功能。 在局部總線端,采用了PCI 9656的C模式。在C模式下,PCI 9656的局部總線可配置實現三種數據傳輸邏輯。(1)Single cycle mode。每次傳輸1個數據(8/16/32bit),默認的傳輸模式。(2)Burst-4 mode。每次4個數據,應用Intel i960與IBM PPC401處理器時的推薦模式。(3)Continuous burst mode。多數據的連續突發傳輸模式,提供了最大的數據吞吐量。在傳輸過程中,從設備(Slave)可通過Bterm#信號停止傳輸過程。模式2與模式3只選其一,模式1始終可用。在數據接收卡中,采用了連續突發(Continuous burst)模式,可以有效的利用局部總線帶寬。 分析接收卡的設計:局部總線端無處理器,PCI 9656在此端為主設備(Master),始終占用總線,負責邏輯控制的CPLD為從設備(Slave),始終響應PCI 9656。數據傳輸過程只利用了PCI 9656的Direct Slave和DMA模式,,而且不需DMA的命令模式,運行過程中數據通過FIFO單向傳輸,不需解碼地址信號,對CPLD的控制可通過向其寫命令碼完成。因此,可以對PCI 9656的許多信號簡化處理,只需實現如下信號的時序要求: LD[31:0],32bits數據信號。 ADS#,總線操作的開始標志。 Blast#,突發傳輸的結束標志。 LW/R#,寫/讀信號。 Wait#,主設備暫停傳輸信號,信號無效標志主設備正常。 Ready#,從設備操作完成信號,信號有效標志從設備正常。 EOT#,數據傳輸異常中止信號,用于FIFO溢出或空時中斷數據傳輸。 Lint#,中斷信號輸入,用于引起CompactPCI總線端的中斷。 LRST#,局部總線端重置。 信號經簡化后,在正常的讀寫操作中,只需要處理ADS#、Blast#、LW/R#、Wait#、Ready#與數據的邏輯關系,Single cycle可認為是Continuous burst的特例,從而將兩種模式下的邏輯時序統一處理。正常操作中,ADS#、Blast#、Wait#、Ready#需滿足的邏輯關系如圖2所示: 圖2中,ADS#、Blast#、Wait#信號由PCI 9656驅動,LW/R#(圖2中未標出)也由PCI 9656驅動,在整個過程中處于低或高,標志PCI 9656對總線的讀或寫操作。Ready#由CPLD驅動,Data為雙向信號。CPLD空閑狀態時監測ADS#信號,一旦ADS#有效,則根據LW/R#轉入讀或寫操作。讀操作中,CPLD將FIFO數據讀出,同時將Ready#置為有效狀態,需監測Wait#,Wait#無效時,才可繼續讀取下一數據;寫操作中,CPLD需將Ready#置為有效狀態,監測Wait#,Wait#無效時,CPLD才可完成總線上數據的寫入;當CPLD檢測到Blast#、Wait# 、Ready#均為有效狀態時,便完成最后一個數據的傳輸操作,轉至空閑狀態。 實現上述的數據傳輸邏輯,再加上適當的異常情況和測試轉換控制,便可設計CPLD的邏輯控制模塊。 2.2 MAXII EPM1270應用 MAXII系列是Altera公司的新型架構CPLD,與傳統架構的CPLD相比,MAXII的功耗和成本大幅降低,資源密度和性能卻顯著提升,非常適用于接口間的控制協議轉換。設計中采用了MAXII的EPM1270型號CPLD,其設計結構如圖3所示。MAXII EPM1270內部主要分為邏輯控制、測試、FIFO三個模塊: 1 FIFO采用Altera提供的IP核實現,容量可根據資源利用情況調節,使用FWFT(First Word Follow Through)模式,為CPLD提供與外部FIFO簡便的接口。 2 測試模塊產生測試數據,控制數據通道在真實數據源與測試數據源間切換,在測試接收卡時使用。 3 邏輯控制模塊內有異常和測試控制、狀態轉換控制兩部分,通過一個8bit寄存器進行通信。(1)寄存器控制CPLD的測試模塊、狀態選擇,同時記錄FIFO的狀態變化。(2)異常和測試控制部分依據狀態寄存器內容控制測試模塊,監測FIFO的溢出、半滿、空等狀態,產生Lint#信號或通過控制寄存器傳遞到狀態轉換控制部分,使之有效EOT#,中斷數據傳輸。(3)狀態轉換控制部分執行局部總線的數據讀寫邏輯,建立了四個狀態:S0,空閑狀態;S1,數據讀狀態;S2,寄存器讀狀態;S3,命令寫狀態。S0狀態下根據LW/R#信號和寄存器內容確定向S1、S2、S3狀態的轉換。S1狀態下讀取FIFO數據,根據FIFO狀態產生異常中止信號EOT#。S2狀態下 讀取8bit寄存器內容。S3狀態下向8bit寄存器寫入命令碼來改寫和重置其相關比特位,從而控制CPLD的測試模塊,切換S1、S2狀態,清空FIFO。 通過上述設計模塊,MAXII CPLD便可在PCI 9656與IDT 72T36135M之間建立一個簡捷的數據傳輸通道。 3 結束語 PCI 9656采用了PLX公司業界領先的數據通道架構技術,其豐富的功能為高速的PCI(CompactPCI)總線應用提供了簡捷的I/O設計途徑。文章介紹了采用PCI 9656作為PCI I/O設計的一款應用于66Mhz、64bit CompactPCI總線系統的數據接收卡。本文作者創新點: 1 將PCI 9656應用于66Mhz、64bit CompactPCI總線系統,滿足高速數據傳輸的要求。2 采用CPLD內建FIFO的IP核實現FIFO與PCI 9656的接口連接,優化了CPLD的轉換邏輯。 |