??? 摘 要: 介紹了基于計算機PCI總線的變參差工作雷達數據采集" title="數據采集">數據采集系統的設計和實現方法。該系統提供一路20MHz最高采樣頻率、8位采樣精度的數據采集通道,在FPGA邏輯控制下,系統可以對16種參差模式的雷達信號" title="雷達信號">雷達信號進行預置采樣。實驗證明,數據采集速率滿足設計要求,數據傳輸最高達到100MB/s,可供后續雷達信號實時處理。
??? 關鍵詞: PCI總線? 數據采集? 變參差工作模式? PLX9054? FPGA? SDRAM
?
??? 數據采集技術是現代信號處理的基礎,廣泛應用于雷達、通信等領域。為了給雷達數據處理提供更加精細的數據,高速、大容量并具有可變參差模式的雷達數據采集系統" title="數據采集系統">數據采集系統是現代雷達需要解決的迫切問題。利用計算機通用平臺,可以將16種參差工作模式的雷達信號采集到計算機上,為后續信號處理做好準備。在板卡向計算機進行數據傳輸時, PCI總線[1][2]以其峰值傳輸速率高達132MB/s、支持突發傳輸等突出的性能,成為雷達數據采集首選的計算機I/O接口。
1 雷達信號及采集容量
??? 本課題涉及的雷達天線掃描周期為1s;雷達脈沖重復頻率可為2kHz、4kHz、6kHz、8kHz,在一個天線掃描周期內可以指定變換頻率;每個雷達回波采樣有效個數可為1000、800、600、400。在天線掃描一個周期內,4個可變采樣頻率和4個可變采樣點數構成了16種參差工作模式。密耳為圓周方位角刻度單位,一個圓周有6000個密耳。用戶可以任意設定在不同的密耳之間,選擇任意的參差工作模式。
??? 從最高脈沖重復頻率8kHz計算,兩次發射脈沖方位角差為0.75密耳。一幀雷達掃描時間內需要存儲的采集樣本容量至少為8MB。
??? 16種參差模式體現在不同的觸發信號上,分為幀同步信號和脈沖同步信號。幀同步信號(Frame_syn)也叫正北信號,代表雷達掃描線為正北方向,每一秒產生一次。脈沖同步信號(Pulse_syn)代表脈沖回波的開始,即對每個回波采樣的開始,由雷達脈沖重復頻率確定,如圖1所示。
????????????????????
2 數據采集系統的結構
??? 數據采集系統的結構如圖2所示。具有16種參差模式的雷達輸出視頻信號通過數據采集卡的信號調理電路,經隔離限幅放大后,送到模數轉換器。這里,采用TI公司的TLC5510芯片,模擬信號將被轉換成8位的數字信號。然后將8位數字信號經過FPGA內部生成的雙口RAM,并在FPGA的控制下以16位的數據寬度送入SDRAM中緩存。由于需要充足的RAM資源和PLL資源,選用Altera公司的低成本高效Cyclone系列的EP1C12型號芯片。兩片SDRAM起到乒乓緩存的作用,當一塊SDRAM存滿一幀數據后,在FPGA的控制下,這一幀緩存數據以32位的數據寬度通過PCI橋接芯片PLX9054,以DMA方式傳輸到計算機內存,并生成雷達數據文件,留給后續信號處理用。同時,FPGA向另一個SDRAM寫入下一幀雷達數據。SDRAM大小為8M×16位,滿足緩存要求。
????????????????????
??? 采集卡上電后,用戶通過程序界面設置16種參差模式,由PLX9054將參數傳入FPGA內部寄存器中,完成初始化工作。16種參差模式體現在不同的觸發信號上。在FPGA內部生成了一個內觸發源,用于產生幀同步信號(Frame_syn)和脈沖同步信號(Pulse_syn)。內觸發源和外觸發信號一起接到FPGA邏輯控制模塊,由控制模塊根據用戶設置的參差來選擇使用不同的觸發信號。
3 數據采集卡主要功能模塊的實現
3.1 PCI接口模塊
??? 實現PCI總線接口的方法主要有2種:一種是采用可編程器件實現,這種方法比較靈活,多用于實現PCI接口部分的功能,但設計難度大。另一種采用專用的PCI接口芯片,它可提供可靠的PCI邏輯和功能模塊,實現簡便。綜合考慮,本設計采用PLX公司的PLX9054作為PCI總線接口芯片。
??? PLX9054[3]是一種符合PCI V2.2規范的32位33MHz PCI總線接口控制器,它可以作為PCI總線的主控設備控制總線,也可以作為目標設備響應總線。PLX9054提供了PCI總線、LOCAL總線、EEPROM三個接口。LOCAL總線是與PCI總線相對應的用戶端總線,PCI端的接口由PLX9054完成,它可以完成完整的PCI總線規范2.2版的要求。LOCAL總線有M、C和J三種模式。本設計采用C模式工作。
??? C模式下的數據傳輸模式分為PCI Initiator操作和PCI Target操作。在PCI Initiator操作過程中,本地處理器或本地總線主控設備能夠直接通過PLX9054訪問PCI總線,發起Local-to-PCI的數據傳輸。而在PCI Target操作過程中,PCI總線主控設備可以以可編程的等待狀態、總線寬度和突發傳輸功能訪問PLX9054的三個本地空間(空間0、空間1和擴充ROM空間)。
????PLX9054還支持DMA數據傳輸模式,它作為PCI和LOCAL總線的主設備,從PCI總線存儲空間讀數據到LOCAL總線存儲空間或者從LOCAL總線存儲空間讀數據到PCI總線存儲空間。
??? 在實際的數據采集中。PCI Target模式用于將16種參差模式寫入到FPGA內部的采集卡工作參數寄存器。DMA模式用于雷達數據采集后,從LOCAL端到PCI端的數據傳輸。
??? PLX9054提供一個串行EEPROM配置接口。在EEPROM中存放了廠家標示、設備標示、本地總線的基地址空間、I/O空間、中斷控制信號等信息。當初始化時,系統自動將EEPROM中的配置參數裝入PCI配置寄存器,并根據本地總線對內存、I/O口和中斷的需求統一劃分,自動配置。在設計時采用93LC56作為EEPROM。
3.2 信號調理和模數轉換
??? 本設計的雷達信號峰峰值為1V,而模數轉換器TLC5510的輸入量程為2V,所以需要對輸入的雷達信號進行隔離限幅放大。信號調理模塊由運放MAX4223構成。經過調理后的雷達信號送到模數轉換芯片TLC5510進行模數轉換,模數轉換時鐘由FPGA產生,并且根據參差設置的不同,模數轉換時鐘將進行變化。
3.3 FPGA邏輯控制模塊
??? 設計中對A/D轉換器、PLX9054、SDRAM的控制都是在FPGA中完成的。選用EP1C12型號芯片,采用Verilog語言設計[4]~[6]。在自頂向下的模塊設計中,主要劃分了三個模塊:AD_control,sdram_control,9054_control,以同步狀態機的形式實現。圖3為FPGA邏輯控制模塊框圖。
?????????????????????
??? 具體工作流程為:
??? (1)開機或者復位后,系統進入初始化狀態,對SDRAM進行初始化,并且等待主機發出的配置命令REG_CMD。當REG_CMD有效時,主機通過PLX9054以PCI Target方式向FPGA內部工作參數寄存器寫入16種參差工作模式參數,完成系統初始化。A/D轉換器將按照工作參數在采樣過程中運行。
??? (2)系統進入空閑狀態,當接收到觸發源產生的幀同步信號Frame_syn后,系統進入工作狀態,開始采樣和傳輸。
??? (3)系統進入工作狀態后,又分為以下子過程:
??? ①將第一個脈沖同步信號Pulse_syn后的采樣數據存入FPGA內部生成的AD_ram0中,將第二個Pulse_syn后的采樣數據存入AD_ram1中,同時將AD_ram0中數據讀到SDRAM0中。二者交替,AD_ram0和AD_ram1形成乒乓式存儲。
?? ?②當SDRAM0存滿第一幀數據后,FPGA向PLX9054發出sdram0_ready信號,進而PLX9054向主機發出INTA#中斷,要求主機讀SDRAM0。同時由SDRAM1存放第二幀數據。SDRAM0和SDRAM1形成乒乓式存儲。
??? ③主機響應中斷,向PLX9054發出讀命令Lwr#、Ads#、Blast#等,在FPGA的控制下,把SDRAM0中數據讀到FPGA內部生成的PCI_ram0或PCI_ram1中,又從PCI_ram0或PCI_ram1中將數據通過PLX9054讀到主機內存中。PCI_ram0和PCI_ram1形成乒乓式存儲。
??? ④主機內存讀滿一幀數據,可以進行后續處理或將其保存成雷達數據文件。
??? 用FPGA生成內部RAM的目的有兩點:一是作為緩存,實現時序匹配;二是數據位擴展,將8位A/D數據擴展到16位SDRAM數據,再擴展到32位PCI數據,提高傳輸效率。
3.4 SDRAM模塊
??? 高速數據采集具有數據吞吐率高的特點,大容量的數據存儲能力是設計關鍵之一。SRAM和FIFO存在容量小的缺點,所以本設計應用兩塊Mircon公司產128Mbit的16位SDRAM組成乒乓式緩存空間,完全滿足采集要求。
??? SDRAM的控制涉及刷新、預充電、行列地址復用等復雜問題,為此自行設計了SDRAM控制器。SDRAM采取了8字節突發讀寫模式,工作于80MHz,工作時鐘由FPGA的PLL倍頻得到。SDRAM控制器包括:命令產生器" title="產生器">產生器、地址產生器、刷新定時器、仲裁電路等。SDRAM控制器實現對SDRAM的初始化,產生SDRAM存儲器工作時所需要的各種時序信號。其中,命令產生器根據時序要求產生讀、寫、刷新、預充電、配置等命令;地址產生器產生SDRAM控制器所需的行地址和列地址;刷新定時器對SDRAM控制器進行定時刷新;當PCI讀請求和刷新定時電路的刷新請求同時到達時,由仲裁電路對兩者進行優先權判定。SDRAM控制器的時序狀態圖見圖4。
????????????????????????
4 數據采集卡配套軟件的開發
??? 數據采集系統應用于通用的計算機平臺,其配套軟件的開發要做到:設定16種參差模式(即在可變方位內設定采樣頻率和設定有效采樣點數)、傳達主機命令、返回板卡的配置和狀態信息、按每一幀存儲雷達數據等功能。采用PCI SDK軟件開發包4.2版,在Windows XP下利用Visual C++開發驅動程序和相應的應用程序。PCI SDK軟件開發包向用戶提供自己的PCI產品的總線開發驅動程序。其中,將用到的開發驅動程序包括:PLX主機端API函數庫、PLX器件驅動、用戶API函數。使用PCI SDK可以很容易地執行DMA操作、訪問IO端口和存儲器空間、處理器中斷以及訪問PCI寄存器空間和LOCAL寄存器空間。這種易用性是通過開發者調用API來產生驅動程序代碼。這樣就不需要詳細學習操作系統的內部原理和內核API(DDK),降低了開發難度。
??? 利用PCI SDK開發設備驅動程序的步驟如下:
??? (1)安裝PCI SDK軟件開發包。
??? (2)經過硬件調試,確認板卡設計正確后,將板卡插入PCI插槽,上電。系統顯示發現新硬件,安裝PLX9054.sys驅動文件。
??? (3)用Visual C++生成基于對話框的工程文件,將plxapi.lib以及其余所需的SDK提供的源文件和頭文件加入工程。
??? (4)調用合適的API函數,并按照實際需要修改,編譯并運行程序。
??? 程序流程如圖5所示。
????????????????????????
??? 采集的數據利用DMA方式傳輸到計算機內存,需要為DMA在計算機存儲空間分配緩沖區,并且需要修改注冊表,達到相應設置。
??? 本文以16種可變參差工作模式為核心介紹了基于PCI總線的變參差工作雷達數據采集系統的硬件、軟件設計方案。在FPGA邏輯控制下,系統能夠對16種參差模式的雷達信號進行預置采樣。PCI總線橋接芯片PLX9054功能強大、接口簡潔,用戶只需要關心Local總線接口電路的設計,使用方便。實驗證明,在DMA方式的數據傳輸下,成功實現最高100MBps的雷達數據高速傳輸,解決了數據采集的瓶頸問題,使得系統可以滿足實時性的要求。
參考文獻
[1] 李貴山,戚德虎.PCI局部總線開發者指南.西安:西安電子科技大學出版社,1997.
[2] SHANLEY T,ANDERSON D.PCI系統結構.北京:電子工業出版社,2000.
[3] PCI9054 Data Book,Version 2.1.PLX Technology,2000.
[4] 夏宇聞.Verilog數字系統設計教程.北京:北京航空航天大學出版社,2003.
[5] 王誠,吳繼華,范麗珍,等.Altera FPGA/CPLD 設計(基礎篇).北京:人民郵電出版社,2005.
[6] 吳繼華,王誠.Altera FPGA/CPLD設計(高級篇).北京:人民郵電出版社,2005.