資料介紹
Linux是開放源代碼、網絡化的操作系統,具有穩定、高效、內核可自由配置等特點。采用Linux 操作系統作為開發平臺與采用VxWorks 和Windows 作為開發平臺相比不僅有免費的優勢,而且對于發展核心技術,提高信息安全有著極其重要的意義,是自主研發的一個方向。隨著我國天氣雷達的快速發展,天氣雷達在民用和軍事領域的應用越來越廣泛。目前,天氣雷達高速數據采集、傳輸等功能大都基于Windows平臺進行開發實現,實現由Windows平臺向Linux平臺的轉換,對于發展中國自主知識產權氣象軟件核心技術, 提高信息安全有著極其重要的意義。本文基于Linux 操作系統(2.6.23內核),實現了天氣雷達高速數據采集及處理,對天氣雷達系統由Windows平臺向Linux平臺移植具有參考價值。
1 數據采集系統分析
1.1 工作原理
天氣雷達高速數據采集系統由I/Q數據采集、FIFO緩沖、FPGA控制模塊及PCI總線芯片PLX9054組成,系統結構框圖如圖1所示。
其核心部分為FPGA控制模塊,主要實現4個功能:(1)根據雷達量程和距離分辨率調整AD采樣時鐘的頻率;(2)控制AD兩路采樣數據寫入FIFO 緩沖以及DMA 傳輸時從FIFO中連續讀出數據; (3)與PCI總線控制芯片PLX9054 進行控制交互, 實現局部總線的讀寫控制、地址譯碼和中斷觸發;(4)與PLX9054 進行數據交互,使用FPGA內部RAM保存控制天氣雷達發射機和接收機工作的命令及數據,完成對雷達工作的控制。
I/Q數據采集輸出數據速度為2.4 Mb/s(I、Q數據各為24 bit),通過FPGA控制,合并寫入到FIFO緩沖。FIFO緩沖為32 bit、深度為16 KB的數據緩存,有效位為24 bit;與計算機總線的接口采用32 bit的PCI總線接口芯片PLX9054,PC機通過它完成與數據采集系統的數據交互。
1.2 PC機與采集系統數據訪問
1.2.1 局部地址分配
PC機與天氣雷達高速數據采集系統的數據訪問通過PCI總線芯片PLX9054實現,訪問目標為FIFO緩沖和FPGA片內RAM。對FIFO緩沖和FPGA片內RAM分配不同局部地址,通過對局部地址總線進行譯碼確定需要訪問的目標。FIFO 數據采用DMA傳輸方式連續讀出, 每次傳輸長度最大為8 KB,因此,設置FIFO空間32 bit局部地址范圍為0x20000000~0x2000FFFF,映射空間為PCI 地址空間bar2。
FPGA片內RAM位寬為32 bit, 采用局部地址范圍為0x40000000~0x400FFFFF。映射空間為PCI地址空間bar3。
1.2.2 數據訪問方式
FIFO緩沖為可編程FIFO,由FPGA根據片內存儲的雷達參數進行控制。當FIFO中數據達到設置的大小時,觸發PCIPLX9054引發PCI中斷,通過該中斷向驅動程序申請發起DMA 傳輸。驅動程序響應該中斷后設置PCIPLX9054的DMA寄存器, 發起方向從局部總線到PCI總線的DMA傳輸,完成FIFO數據向PC機的傳輸。
FPGA片內RAM通過PCI地址映射,使用IO操作方式進行數據讀寫訪問。
2 Linux程序實現
天氣雷達高速數據采集系統基于Linux2.6內核平臺程序,由基于PCI總線的設備驅動程序、數據采集及處理程序組成。
2.1 設備驅動程序實現
設備驅動程序的功能是在Linux2.6系統平臺下,通過對PCI總線控制芯片PLX9054的控制,實現PC機與采集板的數據交互,實現雷達采集數據的實時接收及雷達工作狀態的控制。從功能結構上,設備驅動主要由設備裝載及初始化、提供給用戶層的接口函數、中斷及DMA數據傳輸三部分組成。
2.1.1 設備裝載及卸載
設備裝載和卸載即是Windows系統中設備驅動安裝和卸載。在Linux2.6中,裝載和卸載主要通過調用系統提供的PCI總線驅動注冊函數pci_register_drive和注銷函數pci_unregister_driver來實現,其注冊的driver數據結構如下:
static struct pci_driver plx9054_pci_driver = {
.name = ‘pci9054’,
.id_table = plx9054_pci_tbl,
.probe = plx9054_probe,
.remove = plx9054_remove,
};
當系統引導時,高速數據采集系統板上電后,板上PCI總線固件對PLX9054設備進行缺省配置,為設備的每個地址區域分配好資源。裝載函數在驅動中用module_init聲明,進行設備的初始化工作,調用PCI總線驅動注冊函數,根據id_table定義的信息對PCI設備PLX9054進行探測識別,完成PLX9054設備驅動的PCI總線注冊,然后調用驅動注冊的probe函數,完成PLX9054設備使能、PCI地址空間映射、PLX9054設備數據結構初始化、設備注冊(注冊為字符設備)等操作。卸載函數用module_exit聲明,是裝載的逆過程,通過調用PCI總線驅動卸載函數,繼而調用注冊的remove函數、注銷設備及PCI地址空間映射、釋放分配給設備的數據結構空間等操作,完成系統資源釋放。
2.1.2 設備接口函數
設備接口函數為用戶提供與設備進行交互的不同功能接口,主要完成用戶與設備的讀、寫及設備控制訪問等功能,其數據結構設計為:
static const struct file_operations plx9054_fops = {
.owner = THIS_MODULE,
.open = plx9054_open, /*打開設備*/
.release = plx9054_close, /*釋放設備*/
.ioctl = plx9054_ioctl, /*IO操作*/
.read = plx9054_read, /*讀設備*/
};
這個數據結構在設備裝載過程中,作為設備注冊的參數完成與設備掛接、使用戶在系統調用中能訪問到上述關聯的設備接口函數。
設備打開函數plx9054_open完成以下操作:設備私有數據結構內存空間分配及初始化,DMA連續物理內存空間申請,為天氣雷達最大距離探測采集數據的大小;調用pci_map_single將分配的DMA內存空間映射為用于DMA傳輸地址;DMA數據緩沖區分配(容量為2 MB),緩沖區保存每次DMA傳輸中獲取的數據;調用request_irq對中斷函數p9054_interrupt進行中斷號申請;對天氣雷達工作參數進行缺省配置,啟動雷達工作。設備釋放函數PLX9054_close完成的操作與設備打開函數與PLX9054_open相反。IO操作函數PLX9054_ioctl通過sys_ioctl系統調用,完成用戶與設備的信息查詢、雷達工作參數配置與查詢,如驅動軟件版本號、雷達當前工作各參數配置和查詢,主要用于對FPGA中RAM內存空間的雷達工作參數數據訪問。由于這部分數據對訪問速度要求不高,使用IO操作能很好地滿足設計要求。讀設備函數PLX9054_read將驅動DMA數據緩沖區中的數據實時讀取到用戶空間緩沖區內,完成采集數據從設備到用戶的讀取操作。
1 數據采集系統分析
1.1 工作原理
天氣雷達高速數據采集系統由I/Q數據采集、FIFO緩沖、FPGA控制模塊及PCI總線芯片PLX9054組成,系統結構框圖如圖1所示。
其核心部分為FPGA控制模塊,主要實現4個功能:(1)根據雷達量程和距離分辨率調整AD采樣時鐘的頻率;(2)控制AD兩路采樣數據寫入FIFO 緩沖以及DMA 傳輸時從FIFO中連續讀出數據; (3)與PCI總線控制芯片PLX9054 進行控制交互, 實現局部總線的讀寫控制、地址譯碼和中斷觸發;(4)與PLX9054 進行數據交互,使用FPGA內部RAM保存控制天氣雷達發射機和接收機工作的命令及數據,完成對雷達工作的控制。
I/Q數據采集輸出數據速度為2.4 Mb/s(I、Q數據各為24 bit),通過FPGA控制,合并寫入到FIFO緩沖。FIFO緩沖為32 bit、深度為16 KB的數據緩存,有效位為24 bit;與計算機總線的接口采用32 bit的PCI總線接口芯片PLX9054,PC機通過它完成與數據采集系統的數據交互。
1.2 PC機與采集系統數據訪問
1.2.1 局部地址分配
PC機與天氣雷達高速數據采集系統的數據訪問通過PCI總線芯片PLX9054實現,訪問目標為FIFO緩沖和FPGA片內RAM。對FIFO緩沖和FPGA片內RAM分配不同局部地址,通過對局部地址總線進行譯碼確定需要訪問的目標。FIFO 數據采用DMA傳輸方式連續讀出, 每次傳輸長度最大為8 KB,因此,設置FIFO空間32 bit局部地址范圍為0x20000000~0x2000FFFF,映射空間為PCI 地址空間bar2。
FPGA片內RAM位寬為32 bit, 采用局部地址范圍為0x40000000~0x400FFFFF。映射空間為PCI地址空間bar3。
1.2.2 數據訪問方式
FIFO緩沖為可編程FIFO,由FPGA根據片內存儲的雷達參數進行控制。當FIFO中數據達到設置的大小時,觸發PCIPLX9054引發PCI中斷,通過該中斷向驅動程序申請發起DMA 傳輸。驅動程序響應該中斷后設置PCIPLX9054的DMA寄存器, 發起方向從局部總線到PCI總線的DMA傳輸,完成FIFO數據向PC機的傳輸。
FPGA片內RAM通過PCI地址映射,使用IO操作方式進行數據讀寫訪問。
2 Linux程序實現
天氣雷達高速數據采集系統基于Linux2.6內核平臺程序,由基于PCI總線的設備驅動程序、數據采集及處理程序組成。
2.1 設備驅動程序實現
設備驅動程序的功能是在Linux2.6系統平臺下,通過對PCI總線控制芯片PLX9054的控制,實現PC機與采集板的數據交互,實現雷達采集數據的實時接收及雷達工作狀態的控制。從功能結構上,設備驅動主要由設備裝載及初始化、提供給用戶層的接口函數、中斷及DMA數據傳輸三部分組成。
2.1.1 設備裝載及卸載
設備裝載和卸載即是Windows系統中設備驅動安裝和卸載。在Linux2.6中,裝載和卸載主要通過調用系統提供的PCI總線驅動注冊函數pci_register_drive和注銷函數pci_unregister_driver來實現,其注冊的driver數據結構如下:
static struct pci_driver plx9054_pci_driver = {
.name = ‘pci9054’,
.id_table = plx9054_pci_tbl,
.probe = plx9054_probe,
.remove = plx9054_remove,
};
當系統引導時,高速數據采集系統板上電后,板上PCI總線固件對PLX9054設備進行缺省配置,為設備的每個地址區域分配好資源。裝載函數在驅動中用module_init聲明,進行設備的初始化工作,調用PCI總線驅動注冊函數,根據id_table定義的信息對PCI設備PLX9054進行探測識別,完成PLX9054設備驅動的PCI總線注冊,然后調用驅動注冊的probe函數,完成PLX9054設備使能、PCI地址空間映射、PLX9054設備數據結構初始化、設備注冊(注冊為字符設備)等操作。卸載函數用module_exit聲明,是裝載的逆過程,通過調用PCI總線驅動卸載函數,繼而調用注冊的remove函數、注銷設備及PCI地址空間映射、釋放分配給設備的數據結構空間等操作,完成系統資源釋放。
2.1.2 設備接口函數
設備接口函數為用戶提供與設備進行交互的不同功能接口,主要完成用戶與設備的讀、寫及設備控制訪問等功能,其數據結構設計為:
static const struct file_operations plx9054_fops = {
.owner = THIS_MODULE,
.open = plx9054_open, /*打開設備*/
.release = plx9054_close, /*釋放設備*/
.ioctl = plx9054_ioctl, /*IO操作*/
.read = plx9054_read, /*讀設備*/
};
這個數據結構在設備裝載過程中,作為設備注冊的參數完成與設備掛接、使用戶在系統調用中能訪問到上述關聯的設備接口函數。
設備打開函數plx9054_open完成以下操作:設備私有數據結構內存空間分配及初始化,DMA連續物理內存空間申請,為天氣雷達最大距離探測采集數據的大小;調用pci_map_single將分配的DMA內存空間映射為用于DMA傳輸地址;DMA數據緩沖區分配(容量為2 MB),緩沖區保存每次DMA傳輸中獲取的數據;調用request_irq對中斷函數p9054_interrupt進行中斷號申請;對天氣雷達工作參數進行缺省配置,啟動雷達工作。設備釋放函數PLX9054_close完成的操作與設備打開函數與PLX9054_open相反。IO操作函數PLX9054_ioctl通過sys_ioctl系統調用,完成用戶與設備的信息查詢、雷達工作參數配置與查詢,如驅動軟件版本號、雷達當前工作各參數配置和查詢,主要用于對FPGA中RAM內存空間的雷達工作參數數據訪問。由于這部分數據對訪問速度要求不高,使用IO操作能很好地滿足設計要求。讀設備函數PLX9054_read將驅動DMA數據緩沖區中的數據實時讀取到用戶空間緩沖區內,完成采集數據從設備到用戶的讀取操作。
下載該資料的人也在下載
下載該資料的人還在閱讀
更多 >
- 基于PIC總線的高速數據采集系統 13次下載
- 使用PCI總線設計高速數據采集系統的資料說明 4次下載
- 如何使用FPGA進行高速雷達數據采集系統的設計概述 19次下載
- 高速雷達數據采集系統設計方案解析 11次下載
- 基于ARM_Linux的高速同步數據采集系統設計_李齊禮 1次下載
- 高速數據采集系統中CPLD的應用 26次下載
- 基于USB-6281的高速數據采集系統的設計
- 雷達接收機多通道高速數據采集系統
- 基于Linux的高速數據采集卡驅動設計
- 天氣雷達中頻數據采集系統設計
- 基于PCI-1716的高速數據采集系統設計
- 基于Linux 的高速數據采集卡驅動設計
- 高速數據采集系統的設計
- 基于PCI-1714的高速數據采集系統方案設計
- Linux平臺高速雷達視頻采集與顯示
- Linux系統實現西門子PLC的數據采集 1710次閱讀
- COM高速可實現特定于應用的數據采集系統 846次閱讀
- 使用NI PXI平臺實現高速數據采集和仿真設計 3998次閱讀
- 基于USB接口的數據采集系統總體結構解析 2635次閱讀
- 基于FPGA的DMA方式高速實時數據采集系統設計方案 2497次閱讀
- 一種基于FPGA的高速多路視頻數據采集系統設計詳解 1924次閱讀
- 基于ARM7 LPC2220的嵌入式高速數據采集系統 1765次閱讀
- 數據采集方法有哪些 5.2w次閱讀
- 基于SOPC技術實現雷達數據采集和圖像大屏幕顯示 5271次閱讀
- 利用AD574A設計基于FPGA的高速數據采集系統 8092次閱讀
- 基于Linux平臺的天氣雷達高速數據采集系統及數字信號處理設計與實現 1432次閱讀
- 高速高精度的數據采集系統的設計與實現 4400次閱讀
- 高速USB數據采集系統方案設計 2314次閱讀
- 基于CPLD的高速數據采集系統的實現 1590次閱讀
- 基于SOPC的數據采集與處理系統設計 1432次閱讀
下載排行
本周
- 1TC358743XBG評估板參考手冊
- 1.36 MB | 330次下載 | 免費
- 2開關電源基礎知識
- 5.73 MB | 6次下載 | 免費
- 3100W短波放大電路圖
- 0.05 MB | 4次下載 | 3 積分
- 4嵌入式linux-聊天程序設計
- 0.60 MB | 3次下載 | 免費
- 5基于FPGA的光纖通信系統的設計與實現
- 0.61 MB | 2次下載 | 免費
- 6基于FPGA的C8051F單片機開發板設計
- 0.70 MB | 2次下載 | 免費
- 751單片機窗簾控制器仿真程序
- 1.93 MB | 2次下載 | 免費
- 8基于51單片機的RGB調色燈程序仿真
- 0.86 MB | 2次下載 | 免費
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 2555集成電路應用800例(新編版)
- 0.00 MB | 33564次下載 | 免費
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費
- 4開關電源設計實例指南
- 未知 | 21548次下載 | 免費
- 5電氣工程師手冊免費下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費
- 6數字電路基礎pdf(下載)
- 未知 | 13750次下載 | 免費
- 7電子制作實例集錦 下載
- 未知 | 8113次下載 | 免費
- 8《LED驅動電路設計》 溫德爾著
- 0.00 MB | 6653次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費
- 2protel99se軟件下載(可英文版轉中文版)
- 78.1 MB | 537796次下載 | 免費
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420026次下載 | 免費
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費
- 6電路仿真軟件multisim 10.0免費下載
- 340992 | 191185次下載 | 免費
- 7十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183278次下載 | 免費
- 8proe5.0野火版下載(中文版免費下載)
- 未知 | 138040次下載 | 免費
評論
查看更多