《電子技術應用》
您所在的位置:首頁 > 模擬設計 > 設計應用 > 基于PXI總線的數據傳輸接口設計與實現方案[圖]
基于PXI總線的數據傳輸接口設計與實現方案[圖]
摘要: 本文采用PLX公司生產的PCI9054接口芯片以及符合PXI總線電氣化特性的物理連接器來實現PXI總線協議。使用PCI9054提供的DMA傳輸方式,并由其Local端配置和啟動DMA傳輸來完成數字頻譜數據的傳輸,達到用PXI總線實現數字頻譜分析儀與工控機的高速數據傳輸的目的。
Abstract:
Key words :
0 引言

隨著無線通信業務的飛速發展,頻譜資源顯得越來越缺乏,而實際中像廣播電視等頻段的頻譜利用率卻并不高,提高頻譜的利用率成為一種共識。認知無線電是一種按伺機方式充分利用頻譜的共享頻譜技術,因此可以用來提高頻譜利用率。快速準確的數字頻譜分析對認知無線電的頻譜感知有非常重要的影響。在認知無線電系統中,數字頻譜分析儀與下一級的處理模塊的數據傳輸速率是制約認知無線電系統處理速度的一個瓶頸,因此需要選擇一種高速穩定的數據傳輸接口技術。

本文利用PXI總線技術來實現數字頻譜分析儀與下一級處理模塊的數據傳輸接口。PXI是CompactPCI extend for Instrumentation的簡稱,即面向儀器系統的PCI擴展,由NI(美國國家儀器公司)于1997年10月率先推出。它將CompactPCI規范定義的PCI總線技術發展為適合于工業控制、測量、數據采集和試驗應用的電氣、機械和軟件規范,從而形成了新的虛擬儀器體系結構。PXI總線是一種高性能的32/64位地址數據復用總線,支持突發傳輸,是一種堅固的基于PC的測量和自動化平臺,它的數據傳輸速率的峰值于33MHz、32bit的總線上可達132MB/s;于66MHz、64bit的總線上則可高達528MB/s,遠高于GPIB(General-Purpose Interface Bus,通用接口總線)與VXI(VME bus eXtension for Instrumentation,面向儀器系統的VME總線的擴展)接口的傳輸速率。基于PCI總線發展而來的PXI系統具有較好兼容性、存取延時小、成本低等優點。PXI總線數據傳輸接口以其高傳輸速率和穩定可靠的傳輸性能得到了越來越廣泛的應用。

PXI總線協議比較復雜,工程應用中一般采用兩種方式,一是采用FPGA(FieldProgrammable Gata Array,現場可編程門陣列)來設計控制接口,缺點是控制接口難度較大、開發周期長、成本大;二是采用接口芯片,將復雜的PXI總線接口轉換為相對簡單的用戶接口,用戶只要設計轉換后的總線接口。本文采用PXI總線專用接口芯片PCI9054來實現PXI總線的數據傳輸。

1 PCI9054接口芯片

PCI9054是PLX公司提供的一款PCI專用接口芯片,它兼容PCI V2.2的協議規范。其內部結構圖如圖1所示。由圖可知,PCI9054實現的是PCI Bus端和Local Bus端的信號轉換,使得Local Bus端不需要進行復雜的PCI協議邏輯的設計,只需要進行簡單的數據傳輸邏輯的設計就能實現符合PCI協議規范的信號生成。

基于PXI總線的數據傳輸接口設計與實現方案
圖1 PCI9054內部結構示意圖

PCI9054內部狀態機給用戶提供了三種傳輸方式:PCI Initiator傳輸方式、PCI Target傳輸方式以及PCI DMA傳輸方式。PCI Initiator傳輸方式下,PCI9054成為PCI Bus端的主機,同時是Local Bus端的從機,由Local Bus端主動發起數據傳輸,PCI9054被動后再主動向PCI Bus發起傳輸。PCI Target傳輸方式下PCI9054的角色剛好與PCI Initiator方式相反,成為PCI Bus端的從機以及Local Bus端的主機。而在PCI DMA方式下PCI9054同時是PCI Bus端和Local Bus端的主機。在PCI9054內部分別提供了這三種傳輸方式下的內部寄存器,方便設計者來對每一種傳輸方式進行配置。

PCI9054的本地端支持可編程的特點,通過兩個模式選擇管腳MODE[1:0]來設置LocalBus端分別工作在C模式、J模式、M模式。這樣可以使得PCI9054的Local Bus可以掛載不同類型的其他設備。

PCI9054提供了兩個獨立的可編程DMA(Direct Memory Access,直接存儲器存取)控制器;每個通道均支持塊和分散/集中的DMA方式;在PCI總線端支持32位的數據位寬,時鐘速率達到33MHz;本地端可以編程實現8、16或32位的數據寬度;傳輸速率最高可達132MB/s;本地總線端時鐘最高可達50MHz支持復用/非復用的32位地址數據。

2 接口電路設計

PXI總線接口電路的設計主要是對PCI9054芯片的外圍電路進行設計,主要包括四個部分:電源方案的設計、時鐘方案的設計、EEPROM電路的設計,Local端的連線方案設計。

PCI9054芯片的正常工作電壓是3.3V,而在上位機的PXI接口中,提供了三種電壓,3.3V、5V和12V,因此PCI9054的供電完全可以由上位機來提供。設計中,可以增加一個外部電壓的接入接口,方便開發過程中的調試。

PCI9054芯片需要兩個工作時鐘,一個是PCI Bus端的工作時鐘,一個是Local Bus端的工作時鐘,這兩個工作時鐘是獨立的,均需要外部邏輯輸入。PCI Bus端的工作時鐘由上位機的PXI接口提供,主要在PCB(Printed Circuit Board,印刷電路板);布線的時候需要對該時鐘線進行蛇形走線處理。Local Bus端的工作時鐘由晶振提供,本方案中采用50MHz的晶振。

EEPROM電路的設計中需要注意EEDI和EEDO兩個管腳的連接,電路原理圖如圖2所示。注意在沒有掛載Local端的設備同時又沒有EEPROM時,EEDI和EEDO需要通過一個1KΩ的電阻拉低。設計中,往往需要加上一個EEPROM用來存儲對PCI9054芯片的內部寄存器的設置。這些設置在每次上電時自動進行加載,對PCI9054芯片的內部寄存器進行配置,使得每次上電后,PCI9054能按事先所配置的方式工作。因此,在設計電路完成之后還需要對EEPROM的內容進行設置,并通過PlxMon工具寫入。

基于PXI總線的數據傳輸接口設計與實現方案
圖2 EEPROM電路設計原理圖

在Local端的連線方案設計中,需要注意兩點:一是本地時鐘的接入,本地時鐘作為PCI9054識別Local端是否有設備的依據,若在EEPROM的EEDI和EEDO沒有下拉的情況下,一定要接入本地時鐘,不然連接上位機后,上位機進入不了系統。二是若需要用到PCI Initiator傳輸方式,則必須將LBE[3:0]#全部拉低,否則就會造成讀寫出現上位機死機現象。

3 接口程序設計

由于數據傳輸接口涉及到數字頻譜儀和上位機,其程序設計也包括兩個部分:一部分是數字頻譜儀端的程序設計,即PCI9054 Local端的程序設計,由于本項目中在PCI9054的Local端掛載的是FPGA芯片,需要在FPGA中進行Local端的接口邏輯程序設計;另一部分是上位機端的程序設計,主要是基于操作系統的驅動程序以及上層應用程序設計。

3.1 FPGA程序設計

FPGA程序的設計主要是對PCI9054的Local端時序邏輯進行設計。由圖2可知,在PCI9054內部的Local端存在三種傳輸方式狀態機:PCI Initiator方式、PCI Target方式、PCIDMA方式。因此,在對Local端的控制進行設計時,可以用不同的狀態機來匹配PCI9054的內部狀態機,達到實現各種方式的數據傳輸。

本文根據系統的特點,選擇使用PCI DMA的傳輸方式。在FPGA端的程序采用層次化和模塊化的設計,分為上下兩層結構:下層是鏈路層,實現PCI DMA方式下,長字(4Bytes)數據流的雙向傳輸鏈路的建立;上層是鏈路適配層,實現數字頻譜儀的數據按照一定的幀格式封轉成幀。PCI DMA方式的設置和啟動也在FPGA中完成,程序采用模塊化的設計方式,將數據傳輸模塊與控制模塊區分。在控制模塊中,分成三層:第一層是寄存器讀寫層,實現對PCI9054內部寄存器的讀寫操作;第二層是參數獲取與PCI DMA方式配置層,實現從PCI9054內部消息寄存器獲取數字頻譜儀的控制參數以及對PCI DMA方式進行配置與啟動控制;第三層是上層控制層,用來解析控制參數以及控制生成數據幀。整個程序結構圖如圖3所示。

基于PXI總線的數據傳輸接口設計與實現方案
圖3 FPGA程序結構圖

上述FPGA程序中主要包括了兩個狀態機的設計,一個PCI DMA數據傳輸方式的狀態機設計,一個是PCI 9054內部寄存器讀寫操作的狀態機設計。它們的狀態轉移圖分別如圖4和圖5所示。

基于PXI總線的數據傳輸接口設計與實現方案
圖4 PCI DMA數據傳輸狀態轉移圖

圖4中,S0為空閑狀態;S1若在PCI9054對Local Bus進行寫的操作中為數據接收狀態,若在PCI9054讀Local Bus的操作中為數據準備狀態;S2為PCI 9054讀Local Bus的操作中的數據發送狀態;S3為讀寫操作的終止狀態。圖中各狀態轉移觸發信號均為PCI 9054Local Bus端的控制信號。

基于PXI總線的數據傳輸接口設計與實現方案
圖5 PCI 9054內部寄存器讀寫操作的狀態轉移圖

圖5中,S0為空閑狀態,在讀寫啟動信號en_rwreg=1的情況下進入工作狀態;S1為讀寫周期開始狀態,有效Local Bus端的讀寫周期開始信號;S2為讀寫周期等待狀態,等待PCI9054的LREADY#有效;S3為突發讀寫方式下的響應狀態,突發讀寫方式下,PCI9054的LREADY#有效后,使能內部邏輯進行相應的響應;S4為讀寫周期響應狀態,在非突發讀寫方式下或者突發讀寫的終止周期中的響應狀態。

在實現了上述兩個狀態機模塊后,FPGA的程序還需要包括對FFT處理器的輸出數據進行數據幀封裝,即給每一次FFT處理器根據相應的配置參數進行處理輸出的數據加上幀頭,幀頭中包含了此次傳輸的FFT數據所覆蓋的頻段以及數據的長度信息。這樣做的好處是上位機不需要額外的同步信息,只需要根據幀頭中的頻段信息以及長度信息就可以判斷當前數據幀所表示的頻譜信息。利用PCI9054內部寄存器中的MailBox寄存器組來實現數字頻譜儀與上位機之間的參數傳遞。由于數字頻譜儀需要的參數信息比較少,只需要頻段選擇信息,以及開始和結束數字頻譜儀的控制信號,選擇MailBox寄存器組中的第七個位寬為32位的寄存器來傳遞控制信息。

整個FPGA程序的流程示意圖如圖6所示。

基于PXI總線的數據傳輸接口設計與實現方案
圖6 FPGA程序流程示意圖

3.2 接口驅動程序的設計

接口驅動程序的設計可以通過兩種方式實現,一種是通過專用的驅動程序開發工具進行驅動程序的設計,如DDK、DriverStudio和WinDriver等,另外一種方式是通過PLX公司提供的PCI軟件工具包SDK(Software Development Kit)實現接口的驅動設計,它提供了能夠實現各種傳輸方式所需要的基本API函數。

為了縮短開發周期,本文采用由PLX公司提供的SDK工具包進行驅動程序的開發。運用其SDK提供的工作API函數實現Block DMA模式下的Burst Forever(無限突發)方式的數據傳輸。主要用到的函數如表1所示。

由于本系統的特殊應用,還需要增加一些上層的應用程序,才能實現整個數字頻譜儀數據的正常工作,主要包括數字頻譜儀的參數控制字的生成和寫PCI9054內部寄存器MailBoxReg7,以及對接收的數據幀進行解封裝的相關程序開發。

表1 Block DMA模式下的SDK API函數應用列表
基于PXI總線的數據傳輸接口設計與實現方案

4 結論

本文使用了PCI9054的DMA傳輸方式,并且在Local端發起DMA傳輸,在上位機上采用中斷的形式進行響應,可以減少占用上位機CPU處理時間,使得上位機在進行數據傳輸的同時可以進行其他的操作。PXI接口加上PCI9054的開發模式,使得開發周期縮短了很多,避免了復雜的PXI總線協議的邏輯設計和驗證工作。本系統采用的PXI總線的傳輸位寬32位,采用無限突發的傳輸方式,在數據傳輸周期中的數據傳輸速率為132MB/s,但是由于增加了額外的控制周期以及其他的一些控制邏輯,使得數據的平均傳輸速率并沒有達到這個值,但是完全可以匹配目前FFT處理器的處理速率,可以保證數據傳輸的實時性。

此內容為AET網站原創,未經授權禁止轉載。
主站蜘蛛池模板: 一个人在线免费观看www视频 | 琪琪在线视频 | 欧美日韩在线亚洲国产人 | 日本天天操 | 欧美激情一区二区三级高清视频 | 国产亚洲人成网站天堂岛 | 欧美性xxx极品hd高清 | 美妇乱人伦小说目录 | 丝袜诱惑中文字幕 | 国产日韩欧美综合色视频在线 | 欧美国产成人精品一区二区三区 | 久久精品亚洲精品国产欧美 | 手机看片a永久免费看大片 手机看片91精品一区 | 成人影视大全 | 国产高清精品一级毛片 | 最好看的中文字幕2019免费 | 三级黄色a | 免费视频亚洲 | 久久免费小视频 | 91视频最新网站 | 亚洲日韩天堂 | 亚洲va欧美va国产va天堂 | 国产精品123| 午夜视频高清在线aaa | 亚洲欧洲在线观看 | 成人黄漫画免费观看网址 | 国产成人福利精品视频 | 欧美一级成人一区二区三区 | 日本不卡视频在线播放 | 毛片a级三毛片免费播放 | 亚洲欧美日韩v中文在线 | 成人精品一区二区不卡视频 | 成人视屏网站 | 激情图片五月天 | 日韩欧美在线不卡 | 精品视频一区二区三区在线观看 | 日本xxx18hd| 欧美性xxx极品hd高清 | 成人在激情在线视频 | 最近的2019中文字幕国语hd | 美女黄色毛片 |