陳曉靜 (長江大學電子信息學院,湖北 荊州 434023)
雷電地閃探測單元中的PCI接口設計
陳曉靜 (長江大學電子信息學院,湖北 荊州 434023)
介紹了雷電地閃探測單元研制的背景意義,給出了地閃探測單元的PCI接口設計的方法:采用了PCI9054作為PCI接口芯片,闡述了PCI9054的配置過程,給出了接口的FPGA設計原理框圖以及數據傳輸過程。試驗結果表明,該設計方法能夠實現正確的PCI數據傳輸。
PCI接口;PCI9054;FPGA;地閃探測
雷電地閃探測單元是全能型雷電探測設備的一個子課題,全能型雷電探測設備的研制和應用將會滿足有關部門雷電監測和氣象災害預警應用的需求。雷電地閃探測單元的主要任務是拾取天線接收的地閃磁場信號和大氣電場信號,并提取雷電信號的特征量包括波達時間、磁場/電場峰值、方位角等信息,同時保存地閃波形數據供探測站主機讀取。探測站主機為一臺高性能PXI工控機,雷電地閃探測單元以板卡的形式插入CPCI插槽,地閃波形和特征量數據通過工控機的CPCI總線傳送至主機硬盤,PCI接口數據傳輸是整體系統的一個重要的功能。
PCI總線開發通常會采用2種方式[1],一是用CPLD來設計控制接口,其最大好處是比較靈活,用戶可以根據自己的需要開發出合適的接口,而不必實現PCI的全部功能。但由于PCI總線協議復雜,設計PCI控制接口難度較大,對不大的系統來說一般不采取該方案。二是采用通用PCI接口芯片,例如PLX公司的PCI9054,AMCC公司的S5933等,通用PCI接口芯片可實現PCI規范所要求的所有硬件接口信號和配置空間寄存器,能將復雜的PCI總線接口轉換為相對簡單的用戶接口,能夠有效降低接口設計的難度,縮短開發時間。在通用PCI接口芯片中,PCI9054是使用比較廣泛的一種。
PCI9054是由美國PLX公司生產的先進的PCI I/O加速器,采用了先進的PLX數據流水線結構技術,是32位、133MHz的PCI總線主I/O加速器,突發傳輸速率達到132MB/s,本地總線支持復用/非復用的32位地址/數據,針對不同的處理器及局部總線特性,有M、C、J共3種模式可選,本地總線時鐘可和PCI時鐘異步,支持主模式、從模式、DMA傳輸模式, 因其強大的功能可應用于適配卡和嵌入式系統中。在雷電地閃探測單元設計中,筆者采用PCI9054芯片來設計PCI接口。
雷電地閃探測單元是一個高速多通道數據采集系統,整體設計基于FPGA來完成,所選擇FPGA的型號為StratixII公司的EP2S60F672,總體框圖如圖1所示。被采集的信號包括2路雷電脈沖磁場信號和1路大氣電場信號,分別由正交環磁場天線和平板電場天線拾取,經過前置處理電路和AD轉換電路后被送至FPGA中。FPGA主要完成數據特征量的提取、特征量和波形數據的SDRAM存儲以及PCI上傳至主機硬盤。
PCI接口設計主要包括2個部分:PCI9054配置和FPGA接口實現。

圖1 地閃探測單元總體框圖
3.1PCI9054配置
PCI9054的配置是通過讀取EEPROM中的內容實現的。因此,PCI9054的配置就是要向EEPROM中寫入配置信息。PCI9054支持93LC56(2K)或93LC66(4K)的EEPROM來存儲相應的寄存器配置信息。復位之后,PCI9054首先確認串行EEPROM是否存在以及是否被配置,只有被正確配置的EEPROM才能保證PCI9054的正確運行。EEPROM的配置文件后綴名為EEP,該設計中EEPROM配置情況如圖2所示。EEPROM可以通過PLX公司提供的PLXMON軟件來配置,具體配置過程如下:將含有PCI9054的板卡插入PCI插槽,系統硬件自動掃描改動;更新驅動程序;驅動程序正確裝好后,應能通過PLXMON軟件可觀察到PCI9054硬件的存在,在系統硬件中也可以觀察到存在PCI9054;運行PLXMON軟件將EEP文件載入到空白EEPROM;至此,系統復位之后,PCI9054將EEPROM內容載入到PCI9054配置寄存器就可以實現PCI BUS 和LOCAL BUS間的DMA數據傳輸。
3.2PCI接口的FPGA設計
1)設計 PCI接口的FPGA設計如圖3所示,包含有4個部分:時序控制單元、SDRAM驅動模塊、READ FIFO和LOCAL BUS控制器。SDRAM驅動模塊用于對時序控制單元發出的SDRAM命令地址的譯碼以及數據的緩沖,時序控制單元的作用是一旦檢測到READ FIFO的半空狀態,則產生要訪問的SDRAM存儲單元的地址,并發出讀SDRAM的控制信號,SDRAM在讀控制命令下把數據輸出至READ FIFO,READ FIFO的作用是數據緩存,解決了讀SDRAM速率和PCI總線傳輸速率不匹配的矛盾,容量為1K字,PCI每次從SDRAM讀出的數據為512字。LOCAL BUS控制器的作用是對PCI9054的控制信號和地址信號進行譯碼,產生READ FIFO所需要的控制信號,并緩沖READ FIFO向PCI9054輸出的數據信號。

圖2 EEPROM配置內容 圖3 PCI接口的FPGA設計框圖
2)數據傳輸過程 READ FIFO預先存滿數據,為PCI總線讀數據作準備。當探測站主機發出啟動DMA傳輸的命令時,PCI9054將執行LOCAL-to-PCI傳輸過程。此時,LOCAL BUS控制器要將READ FIFO中的數據送至PCI9054的局部總線端以保證傳輸的正常進行。當LOCAL BUS控制器將READ FIFO讀至半空狀態時,PCI接口時序控制器控制SDRAM驅動模塊將SDRAM的數據寫至READ FIFO中,直至READ FIFO填滿。由于READ FIFO寫入速率133MHz大于READ FIFO讀出速率50MHz,所以該設計可以保證READ FIFO不會出現讀空的情況,也保證了數據不間斷地快速傳輸。當所有數據全部傳輸完,則設置讀完標志位為1,采集部分檢測到該標志位為1后準備下一次雷電數據的采集存儲。
采用信號發生器產生3路正弦信號模擬3路雷電信號,用quartus Ⅱ 軟件自帶邏輯分析儀signaltap Ⅱ 測試PCI總線傳輸情況[2]。3路正弦信號的頻率為15kHz(通道0)、7kHz(通道1)、2kHz(通道2),觀測結果如圖4所示。由圖4可看出在PCI總線的讀控制命令下,SDRAM的3路波形數據被讀出送至PCI總線。

圖4 PCI總線數據傳輸結果
介紹了雷電地閃探測單元中的PCI接口設計方法。試驗結果證明該設計方案能夠正確實現將數據從SDRAM中傳輸到PCI總線上。該設計方案對基于FPGA的PCI接口設計具有借鑒意義。
[1]姜萬波,徐興,徐德炳. 幾種典型PCI總線接口芯片性能分析比較[J]. 測控技術,2001,20(8):48-50.
[2]吳繼華,王誠. Altera FPGA/CPLD設計(高級篇)[M]. 北京:人民郵電出版社,2005.
10.3969/j.issn.1673-1409(N).2012.09.040
TP334.7
A
1673-1409(2012)09-N115-03
2012-02-18
陳曉靜(1980-),女,2001年大學畢業,碩士,講師,現主要從事電磁測量與儀器方面的教學與研究工作。
[編輯] 洪云飛