資料介紹
Linux是開放源代碼、網(wǎng)絡化的操作系統(tǒng),具有穩(wěn)定、高效、內(nèi)核可自由配置等特點。采用Linux 操作系統(tǒng)作為開發(fā)平臺與采用VxWorks 和Windows 作為開發(fā)平臺相比不僅有免費的優(yōu)勢,而且對于發(fā)展核心技術,提高信息安全有著極其重要的意義,是自主研發(fā)的一個方向。隨著我國天氣雷達的快速發(fā)展,天氣雷達在民用和軍事領域的應用越來越廣泛。目前,天氣雷達高速數(shù)據(jù)采集、傳輸?shù)裙δ艽蠖蓟赪indows平臺進行開發(fā)實現(xiàn),實現(xiàn)由Windows平臺向Linux平臺的轉換,對于發(fā)展中國自主知識產(chǎn)權氣象軟件核心技術, 提高信息安全有著極其重要的意義。本文基于Linux 操作系統(tǒng)(2.6.23內(nèi)核),實現(xiàn)了天氣雷達高速數(shù)據(jù)采集及處理,對天氣雷達系統(tǒng)由Windows平臺向Linux平臺移植具有參考價值。
1 數(shù)據(jù)采集系統(tǒng)分析
1.1 工作原理
天氣雷達高速數(shù)據(jù)采集系統(tǒng)由I/Q數(shù)據(jù)采集、FIFO緩沖、FPGA控制模塊及PCI總線芯片PLX9054組成,系統(tǒng)結構框圖如圖1所示。

其核心部分為FPGA控制模塊,主要實現(xiàn)4個功能:(1)根據(jù)雷達量程和距離分辨率調(diào)整AD采樣時鐘的頻率;(2)控制AD兩路采樣數(shù)據(jù)寫入FIFO 緩沖以及DMA 傳輸時從FIFO中連續(xù)讀出數(shù)據(jù); (3)與PCI總線控制芯片PLX9054 進行控制交互, 實現(xiàn)局部總線的讀寫控制、地址譯碼和中斷觸發(fā);(4)與PLX9054 進行數(shù)據(jù)交互,使用FPGA內(nèi)部RAM保存控制天氣雷達發(fā)射機和接收機工作的命令及數(shù)據(jù),完成對雷達工作的控制。
I/Q數(shù)據(jù)采集輸出數(shù)據(jù)速度為2.4 Mb/s(I、Q數(shù)據(jù)各為24 bit),通過FPGA控制,合并寫入到FIFO緩沖。FIFO緩沖為32 bit、深度為16 KB的數(shù)據(jù)緩存,有效位為24 bit;與計算機總線的接口采用32 bit的PCI總線接口芯片PLX9054,PC機通過它完成與數(shù)據(jù)采集系統(tǒng)的數(shù)據(jù)交互。
1.2 PC機與采集系統(tǒng)數(shù)據(jù)訪問
1.2.1 局部地址分配
PC機與天氣雷達高速數(shù)據(jù)采集系統(tǒng)的數(shù)據(jù)訪問通過PCI總線芯片PLX9054實現(xiàn),訪問目標為FIFO緩沖和FPGA片內(nèi)RAM。對FIFO緩沖和FPGA片內(nèi)RAM分配不同局部地址,通過對局部地址總線進行譯碼確定需要訪問的目標。FIFO 數(shù)據(jù)采用DMA傳輸方式連續(xù)讀出, 每次傳輸長度最大為8 KB,因此,設置FIFO空間32 bit局部地址范圍為0x20000000~0x2000FFFF,映射空間為PCI 地址空間bar2。
FPGA片內(nèi)RAM位寬為32 bit, 采用局部地址范圍為0x40000000~0x400FFFFF。映射空間為PCI地址空間bar3。
1.2.2 數(shù)據(jù)訪問方式
FIFO緩沖為可編程FIFO,由FPGA根據(jù)片內(nèi)存儲的雷達參數(shù)進行控制。當FIFO中數(shù)據(jù)達到設置的大小時,觸發(fā)PCIPLX9054引發(fā)PCI中斷,通過該中斷向驅(qū)動程序申請發(fā)起DMA 傳輸。驅(qū)動程序響應該中斷后設置PCIPLX9054的DMA寄存器, 發(fā)起方向從局部總線到PCI總線的DMA傳輸,完成FIFO數(shù)據(jù)向PC機的傳輸。
FPGA片內(nèi)RAM通過PCI地址映射,使用IO操作方式進行數(shù)據(jù)讀寫訪問。
2 Linux程序?qū)崿F(xiàn)
天氣雷達高速數(shù)據(jù)采集系統(tǒng)基于Linux2.6內(nèi)核平臺程序,由基于PCI總線的設備驅(qū)動程序、數(shù)據(jù)采集及處理程序組成。
2.1 設備驅(qū)動程序?qū)崿F(xiàn)
設備驅(qū)動程序的功能是在Linux2.6系統(tǒng)平臺下,通過對PCI總線控制芯片PLX9054的控制,實現(xiàn)PC機與采集板的數(shù)據(jù)交互,實現(xiàn)雷達采集數(shù)據(jù)的實時接收及雷達工作狀態(tài)的控制。從功能結構上,設備驅(qū)動主要由設備裝載及初始化、提供給用戶層的接口函數(shù)、中斷及DMA數(shù)據(jù)傳輸三部分組成。
2.1.1 設備裝載及卸載
設備裝載和卸載即是Windows系統(tǒng)中設備驅(qū)動安裝和卸載。在Linux2.6中,裝載和卸載主要通過調(diào)用系統(tǒng)提供的PCI總線驅(qū)動注冊函數(shù)pci_register_drive和注銷函數(shù)pci_unregister_driver來實現(xiàn),其注冊的driver數(shù)據(jù)結構如下:
static struct pci_driver plx9054_pci_driver = {
.name = ‘pci9054’,
.id_table = plx9054_pci_tbl,
.probe = plx9054_probe,
.remove = plx9054_remove,
};
當系統(tǒng)引導時,高速數(shù)據(jù)采集系統(tǒng)板上電后,板上PCI總線固件對PLX9054設備進行缺省配置,為設備的每個地址區(qū)域分配好資源。裝載函數(shù)在驅(qū)動中用module_init聲明,進行設備的初始化工作,調(diào)用PCI總線驅(qū)動注冊函數(shù),根據(jù)id_table定義的信息對PCI設備PLX9054進行探測識別,完成PLX9054設備驅(qū)動的PCI總線注冊,然后調(diào)用驅(qū)動注冊的probe函數(shù),完成PLX9054設備使能、PCI地址空間映射、PLX9054設備數(shù)據(jù)結構初始化、設備注冊(注冊為字符設備)等操作。卸載函數(shù)用module_exit聲明,是裝載的逆過程,通過調(diào)用PCI總線驅(qū)動卸載函數(shù),繼而調(diào)用注冊的remove函數(shù)、注銷設備及PCI地址空間映射、釋放分配給設備的數(shù)據(jù)結構空間等操作,完成系統(tǒng)資源釋放。
2.1.2 設備接口函數(shù)
設備接口函數(shù)為用戶提供與設備進行交互的不同功能接口,主要完成用戶與設備的讀、寫及設備控制訪問等功能,其數(shù)據(jù)結構設計為:
static const struct file_operations plx9054_fops = {
.owner = THIS_MODULE,
.open = plx9054_open, /*打開設備*/
.release = plx9054_close, /*釋放設備*/
.ioctl = plx9054_ioctl, /*IO操作*/
.read = plx9054_read, /*讀設備*/
};
這個數(shù)據(jù)結構在設備裝載過程中,作為設備注冊的參數(shù)完成與設備掛接、使用戶在系統(tǒng)調(diào)用中能訪問到上述關聯(lián)的設備接口函數(shù)。
設備打開函數(shù)plx9054_open完成以下操作:設備私有數(shù)據(jù)結構內(nèi)存空間分配及初始化,DMA連續(xù)物理內(nèi)存空間申請,為天氣雷達最大距離探測采集數(shù)據(jù)的大??;調(diào)用pci_map_single將分配的DMA內(nèi)存空間映射為用于DMA傳輸?shù)刂?;DMA數(shù)據(jù)緩沖區(qū)分配(容量為2 MB),緩沖區(qū)保存每次DMA傳輸中獲取的數(shù)據(jù);調(diào)用request_irq對中斷函數(shù)p9054_interrupt進行中斷號申請;對天氣雷達工作參數(shù)進行缺省配置,啟動雷達工作。設備釋放函數(shù)PLX9054_close完成的操作與設備打開函數(shù)與PLX9054_open相反。IO操作函數(shù)PLX9054_ioctl通過sys_ioctl系統(tǒng)調(diào)用,完成用戶與設備的信息查詢、雷達工作參數(shù)配置與查詢,如驅(qū)動軟件版本號、雷達當前工作各參數(shù)配置和查詢,主要用于對FPGA中RAM內(nèi)存空間的雷達工作參數(shù)數(shù)據(jù)訪問。由于這部分數(shù)據(jù)對訪問速度要求不高,使用IO操作能很好地滿足設計要求。讀設備函數(shù)PLX9054_read將驅(qū)動DMA數(shù)據(jù)緩沖區(qū)中的數(shù)據(jù)實時讀取到用戶空間緩沖區(qū)內(nèi),完成采集數(shù)據(jù)從設備到用戶的讀取操作。
1 數(shù)據(jù)采集系統(tǒng)分析
1.1 工作原理
天氣雷達高速數(shù)據(jù)采集系統(tǒng)由I/Q數(shù)據(jù)采集、FIFO緩沖、FPGA控制模塊及PCI總線芯片PLX9054組成,系統(tǒng)結構框圖如圖1所示。

其核心部分為FPGA控制模塊,主要實現(xiàn)4個功能:(1)根據(jù)雷達量程和距離分辨率調(diào)整AD采樣時鐘的頻率;(2)控制AD兩路采樣數(shù)據(jù)寫入FIFO 緩沖以及DMA 傳輸時從FIFO中連續(xù)讀出數(shù)據(jù); (3)與PCI總線控制芯片PLX9054 進行控制交互, 實現(xiàn)局部總線的讀寫控制、地址譯碼和中斷觸發(fā);(4)與PLX9054 進行數(shù)據(jù)交互,使用FPGA內(nèi)部RAM保存控制天氣雷達發(fā)射機和接收機工作的命令及數(shù)據(jù),完成對雷達工作的控制。
I/Q數(shù)據(jù)采集輸出數(shù)據(jù)速度為2.4 Mb/s(I、Q數(shù)據(jù)各為24 bit),通過FPGA控制,合并寫入到FIFO緩沖。FIFO緩沖為32 bit、深度為16 KB的數(shù)據(jù)緩存,有效位為24 bit;與計算機總線的接口采用32 bit的PCI總線接口芯片PLX9054,PC機通過它完成與數(shù)據(jù)采集系統(tǒng)的數(shù)據(jù)交互。
1.2 PC機與采集系統(tǒng)數(shù)據(jù)訪問
1.2.1 局部地址分配
PC機與天氣雷達高速數(shù)據(jù)采集系統(tǒng)的數(shù)據(jù)訪問通過PCI總線芯片PLX9054實現(xiàn),訪問目標為FIFO緩沖和FPGA片內(nèi)RAM。對FIFO緩沖和FPGA片內(nèi)RAM分配不同局部地址,通過對局部地址總線進行譯碼確定需要訪問的目標。FIFO 數(shù)據(jù)采用DMA傳輸方式連續(xù)讀出, 每次傳輸長度最大為8 KB,因此,設置FIFO空間32 bit局部地址范圍為0x20000000~0x2000FFFF,映射空間為PCI 地址空間bar2。
FPGA片內(nèi)RAM位寬為32 bit, 采用局部地址范圍為0x40000000~0x400FFFFF。映射空間為PCI地址空間bar3。
1.2.2 數(shù)據(jù)訪問方式
FIFO緩沖為可編程FIFO,由FPGA根據(jù)片內(nèi)存儲的雷達參數(shù)進行控制。當FIFO中數(shù)據(jù)達到設置的大小時,觸發(fā)PCIPLX9054引發(fā)PCI中斷,通過該中斷向驅(qū)動程序申請發(fā)起DMA 傳輸。驅(qū)動程序響應該中斷后設置PCIPLX9054的DMA寄存器, 發(fā)起方向從局部總線到PCI總線的DMA傳輸,完成FIFO數(shù)據(jù)向PC機的傳輸。
FPGA片內(nèi)RAM通過PCI地址映射,使用IO操作方式進行數(shù)據(jù)讀寫訪問。
2 Linux程序?qū)崿F(xiàn)
天氣雷達高速數(shù)據(jù)采集系統(tǒng)基于Linux2.6內(nèi)核平臺程序,由基于PCI總線的設備驅(qū)動程序、數(shù)據(jù)采集及處理程序組成。
2.1 設備驅(qū)動程序?qū)崿F(xiàn)
設備驅(qū)動程序的功能是在Linux2.6系統(tǒng)平臺下,通過對PCI總線控制芯片PLX9054的控制,實現(xiàn)PC機與采集板的數(shù)據(jù)交互,實現(xiàn)雷達采集數(shù)據(jù)的實時接收及雷達工作狀態(tài)的控制。從功能結構上,設備驅(qū)動主要由設備裝載及初始化、提供給用戶層的接口函數(shù)、中斷及DMA數(shù)據(jù)傳輸三部分組成。
2.1.1 設備裝載及卸載
設備裝載和卸載即是Windows系統(tǒng)中設備驅(qū)動安裝和卸載。在Linux2.6中,裝載和卸載主要通過調(diào)用系統(tǒng)提供的PCI總線驅(qū)動注冊函數(shù)pci_register_drive和注銷函數(shù)pci_unregister_driver來實現(xiàn),其注冊的driver數(shù)據(jù)結構如下:
static struct pci_driver plx9054_pci_driver = {
.name = ‘pci9054’,
.id_table = plx9054_pci_tbl,
.probe = plx9054_probe,
.remove = plx9054_remove,
};
當系統(tǒng)引導時,高速數(shù)據(jù)采集系統(tǒng)板上電后,板上PCI總線固件對PLX9054設備進行缺省配置,為設備的每個地址區(qū)域分配好資源。裝載函數(shù)在驅(qū)動中用module_init聲明,進行設備的初始化工作,調(diào)用PCI總線驅(qū)動注冊函數(shù),根據(jù)id_table定義的信息對PCI設備PLX9054進行探測識別,完成PLX9054設備驅(qū)動的PCI總線注冊,然后調(diào)用驅(qū)動注冊的probe函數(shù),完成PLX9054設備使能、PCI地址空間映射、PLX9054設備數(shù)據(jù)結構初始化、設備注冊(注冊為字符設備)等操作。卸載函數(shù)用module_exit聲明,是裝載的逆過程,通過調(diào)用PCI總線驅(qū)動卸載函數(shù),繼而調(diào)用注冊的remove函數(shù)、注銷設備及PCI地址空間映射、釋放分配給設備的數(shù)據(jù)結構空間等操作,完成系統(tǒng)資源釋放。
2.1.2 設備接口函數(shù)
設備接口函數(shù)為用戶提供與設備進行交互的不同功能接口,主要完成用戶與設備的讀、寫及設備控制訪問等功能,其數(shù)據(jù)結構設計為:
static const struct file_operations plx9054_fops = {
.owner = THIS_MODULE,
.open = plx9054_open, /*打開設備*/
.release = plx9054_close, /*釋放設備*/
.ioctl = plx9054_ioctl, /*IO操作*/
.read = plx9054_read, /*讀設備*/
};
這個數(shù)據(jù)結構在設備裝載過程中,作為設備注冊的參數(shù)完成與設備掛接、使用戶在系統(tǒng)調(diào)用中能訪問到上述關聯(lián)的設備接口函數(shù)。
設備打開函數(shù)plx9054_open完成以下操作:設備私有數(shù)據(jù)結構內(nèi)存空間分配及初始化,DMA連續(xù)物理內(nèi)存空間申請,為天氣雷達最大距離探測采集數(shù)據(jù)的大??;調(diào)用pci_map_single將分配的DMA內(nèi)存空間映射為用于DMA傳輸?shù)刂?;DMA數(shù)據(jù)緩沖區(qū)分配(容量為2 MB),緩沖區(qū)保存每次DMA傳輸中獲取的數(shù)據(jù);調(diào)用request_irq對中斷函數(shù)p9054_interrupt進行中斷號申請;對天氣雷達工作參數(shù)進行缺省配置,啟動雷達工作。設備釋放函數(shù)PLX9054_close完成的操作與設備打開函數(shù)與PLX9054_open相反。IO操作函數(shù)PLX9054_ioctl通過sys_ioctl系統(tǒng)調(diào)用,完成用戶與設備的信息查詢、雷達工作參數(shù)配置與查詢,如驅(qū)動軟件版本號、雷達當前工作各參數(shù)配置和查詢,主要用于對FPGA中RAM內(nèi)存空間的雷達工作參數(shù)數(shù)據(jù)訪問。由于這部分數(shù)據(jù)對訪問速度要求不高,使用IO操作能很好地滿足設計要求。讀設備函數(shù)PLX9054_read將驅(qū)動DMA數(shù)據(jù)緩沖區(qū)中的數(shù)據(jù)實時讀取到用戶空間緩沖區(qū)內(nèi),完成采集數(shù)據(jù)從設備到用戶的讀取操作。
下載該資料的人也在下載
下載該資料的人還在閱讀
更多 >
- 基于PIC總線的高速數(shù)據(jù)采集系統(tǒng) 13次下載
- 使用PCI總線設計高速數(shù)據(jù)采集系統(tǒng)的資料說明 4次下載
- 如何使用FPGA進行高速雷達數(shù)據(jù)采集系統(tǒng)的設計概述 21次下載
- 高速雷達數(shù)據(jù)采集系統(tǒng)設計方案解析 11次下載
- 基于ARM_Linux的高速同步數(shù)據(jù)采集系統(tǒng)設計_李齊禮 1次下載
- 高速數(shù)據(jù)采集系統(tǒng)中CPLD的應用 26次下載
- 基于USB-6281的高速數(shù)據(jù)采集系統(tǒng)的設計
- 雷達接收機多通道高速數(shù)據(jù)采集系統(tǒng)
- 基于Linux的高速數(shù)據(jù)采集卡驅(qū)動設計
- 天氣雷達中頻數(shù)據(jù)采集系統(tǒng)設計
- 基于PCI-1716的高速數(shù)據(jù)采集系統(tǒng)設計
- 基于Linux 的高速數(shù)據(jù)采集卡驅(qū)動設計
- 高速數(shù)據(jù)采集系統(tǒng)的設計
- 基于PCI-1714的高速數(shù)據(jù)采集系統(tǒng)方案設計
- Linux平臺高速雷達視頻采集與顯示
- 基于GIS的海洋環(huán)境數(shù)據(jù)采集與管理系統(tǒng) 407次閱讀
- Linux系統(tǒng)實現(xiàn)西門子PLC的數(shù)據(jù)采集 3k次閱讀
- 使用NI PXI平臺實現(xiàn)高速數(shù)據(jù)采集和仿真設計 4.9k次閱讀
- 基于USB接口的數(shù)據(jù)采集系統(tǒng)總體結構解析 3.2k次閱讀
- 基于FPGA的DMA方式高速實時數(shù)據(jù)采集系統(tǒng)設計方案 3.2k次閱讀
- 一種基于FPGA的高速多路視頻數(shù)據(jù)采集系統(tǒng)設計詳解 2.6k次閱讀
- 基于ARM7 LPC2220的嵌入式高速數(shù)據(jù)采集系統(tǒng) 2.2k次閱讀
- 數(shù)據(jù)采集方法有哪些 5.4w次閱讀
- 基于SOPC技術實現(xiàn)雷達數(shù)據(jù)采集和圖像大屏幕顯示 5.9k次閱讀
- 利用AD574A設計基于FPGA的高速數(shù)據(jù)采集系統(tǒng) 9.3k次閱讀
- 基于Linux平臺的天氣雷達高速數(shù)據(jù)采集系統(tǒng)及數(shù)字信號處理設計與實現(xiàn) 1.9k次閱讀
- 高速高精度的數(shù)據(jù)采集系統(tǒng)的設計與實現(xiàn) 5k次閱讀
- 高速USB數(shù)據(jù)采集系統(tǒng)方案設計 4.3k次閱讀
- 基于CPLD的高速數(shù)據(jù)采集系統(tǒng)的實現(xiàn) 2k次閱讀
- 基于SOPC的數(shù)據(jù)采集與處理系統(tǒng)設計 1.9k次閱讀
下載排行
本周
- 1冷柜-電氣控制系統(tǒng)講解
- 13.68 MB | 4次下載 | 10 積分
- 2安川A1000變頻器中文版說明書
- 20.16 MB | 3次下載 | 3 積分
- 3直流電路的組成和基本定律
- 1.67 MB | 2次下載 | 免費
- 4丹佛斯2800系列變頻器說明書
- 8.00 MB | 1次下載 | 5 積分
- 5PC8011同步開關型降壓3.5A單節(jié)鋰電池充電管理電路技術手冊
- 0.74 MB | 1次下載 | 免費
- 6ES7243E+ES8311音頻錄制與播放電路資料
- 0.06 MB | 1次下載 | 5 積分
- 7SDM02 激光測距模塊產(chǎn)品手冊
- 0.43 MB | 1次下載 | 免費
- 8SDFM 激光測距模塊模組手冊
- 0.54 MB | 1次下載 | 免費
本月
- 1CH341編程器軟件NeoProgrammer_2.2.0.10
- 20.47 MB | 170次下載 | 1 積分
- 22025智能家居傳感器市場分析及創(chuàng)新應用
- 3.11 MB | 43次下載 | 免費
- 3RV1126B系列開發(fā)板產(chǎn)品資料
- 4.19 MB | 18次下載 | 免費
- 4CH341編程軟件下載
- 2.50 MB | 16次下載 | 5 積分
- 5全志系列-米爾基于T153核心板開發(fā)板 四核異構、3路千兆網(wǎng),賦能多元化工業(yè)場景
- 3.05 MB | 12次下載 | 免費
- 6【開源】60余套STM32單片機、嵌入式Linux、物聯(lián)網(wǎng)、人工智能項目案例及入門學習資源包
- 10.55 MB | 8次下載 | 免費
- 7冷柜-電氣控制系統(tǒng)講解
- 13.68 MB | 4次下載 | 10 積分
- 8特斯拉MODEL S車載充電機主電路回路原理圖
- 0.81 MB | 4次下載 | 3 積分
總榜
- 1matlab軟件下載入口
- 未知 | 935137次下載 | 10 積分
- 2開源硬件-PMP21529.1-4 開關降壓/升壓雙向直流/直流轉換器 PCB layout 設計
- 1.48MB | 420064次下載 | 10 積分
- 3Altium DXP2002下載入口
- 未知 | 233094次下載 | 10 積分
- 4電路仿真軟件multisim 10.0免費下載
- 340992 | 191448次下載 | 10 積分
- 5十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183356次下載 | 10 積分
- 6labview8.5下載
- 未知 | 81604次下載 | 10 積分
- 7Keil工具MDK-Arm免費下載
- 0.02 MB | 73824次下載 | 10 積分
- 8LabVIEW 8.6下載
- 未知 | 65991次下載 | 10 積分
電子發(fā)燒友App





創(chuàng)作
發(fā)文章
發(fā)帖
提問
發(fā)資料
發(fā)視頻
上傳資料賺積分
評論