電子發(fā)燒友App

硬聲App

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>嵌入式開(kāi)發(fā)>基于Linux平臺(tái)的天氣雷達(dá)高速數(shù)據(jù)采集系統(tǒng)的驅(qū)動(dòng)

基于Linux平臺(tái)的天氣雷達(dá)高速數(shù)據(jù)采集系統(tǒng)的驅(qū)動(dòng)

2017-10-30 | rar | 0.6 MB | 次下載 | 1積分

資料介紹

Linux是開(kāi)放源代碼、網(wǎng)絡(luò)化的操作系統(tǒng),具有穩(wěn)定、高效、內(nèi)核可自由配置等特點(diǎn)。采用Linux 操作系統(tǒng)作為開(kāi)發(fā)平臺(tái)與采用VxWorks 和Windows 作為開(kāi)發(fā)平臺(tái)相比不僅有免費(fèi)的優(yōu)勢(shì),而且對(duì)于發(fā)展核心技術(shù),提高信息安全有著極其重要的意義,是自主研發(fā)的一個(gè)方向。隨著我國(guó)天氣雷達(dá)的快速發(fā)展,天氣雷達(dá)在民用和軍事領(lǐng)域的應(yīng)用越來(lái)越廣泛。目前,天氣雷達(dá)高速數(shù)據(jù)采集、傳輸?shù)裙δ艽蠖蓟赪indows平臺(tái)進(jìn)行開(kāi)發(fā)實(shí)現(xiàn),實(shí)現(xiàn)由Windows平臺(tái)向Linux平臺(tái)的轉(zhuǎn)換,對(duì)于發(fā)展中國(guó)自主知識(shí)產(chǎn)權(quán)氣象軟件核心技術(shù), 提高信息安全有著極其重要的意義。本文基于Linux 操作系統(tǒng)(2.6.23內(nèi)核),實(shí)現(xiàn)了天氣雷達(dá)高速數(shù)據(jù)采集及處理,對(duì)天氣雷達(dá)系統(tǒng)由Windows平臺(tái)向Linux平臺(tái)移植具有參考價(jià)值。
  1 數(shù)據(jù)采集系統(tǒng)分析
  1.1 工作原理
  天氣雷達(dá)高速數(shù)據(jù)采集系統(tǒng)由I/Q數(shù)據(jù)采集、FIFO緩沖、FPGA控制模塊及PCI總線芯片PLX9054組成,系統(tǒng)結(jié)構(gòu)框圖如圖1所示。
  基于Linux平臺(tái)的天氣雷達(dá)高速數(shù)據(jù)采集系統(tǒng)的驅(qū)動(dòng)
  其核心部分為FPGA控制模塊,主要實(shí)現(xiàn)4個(gè)功能:(1)根據(jù)雷達(dá)量程和距離分辨率調(diào)整AD采樣時(shí)鐘的頻率;(2)控制AD兩路采樣數(shù)據(jù)寫(xiě)入FIFO 緩沖以及DMA 傳輸時(shí)從FIFO中連續(xù)讀出數(shù)據(jù); (3)與PCI總線控制芯片PLX9054 進(jìn)行控制交互, 實(shí)現(xiàn)局部總線的讀寫(xiě)控制、地址譯碼和中斷觸發(fā);(4)與PLX9054 進(jìn)行數(shù)據(jù)交互,使用FPGA內(nèi)部RAM保存控制天氣雷達(dá)發(fā)射機(jī)和接收機(jī)工作的命令及數(shù)據(jù),完成對(duì)雷達(dá)工作的控制。
  I/Q數(shù)據(jù)采集輸出數(shù)據(jù)速度為2.4 Mb/s(I、Q數(shù)據(jù)各為24 bit),通過(guò)FPGA控制,合并寫(xiě)入到FIFO緩沖。FIFO緩沖為32 bit、深度為16 KB的數(shù)據(jù)緩存,有效位為24 bit;與計(jì)算機(jī)總線的接口采用32 bit的PCI總線接口芯片PLX9054,PC機(jī)通過(guò)它完成與數(shù)據(jù)采集系統(tǒng)的數(shù)據(jù)交互。
  1.2 PC機(jī)與采集系統(tǒng)數(shù)據(jù)訪問(wèn)
  1.2.1 局部地址分配
  PC機(jī)與天氣雷達(dá)高速數(shù)據(jù)采集系統(tǒng)的數(shù)據(jù)訪問(wèn)通過(guò)PCI總線芯片PLX9054實(shí)現(xiàn),訪問(wèn)目標(biāo)為FIFO緩沖和FPGA片內(nèi)RAM。對(duì)FIFO緩沖和FPGA片內(nèi)RAM分配不同局部地址,通過(guò)對(duì)局部地址總線進(jìn)行譯碼確定需要訪問(wèn)的目標(biāo)。FIFO 數(shù)據(jù)采用DMA傳輸方式連續(xù)讀出, 每次傳輸長(zhǎng)度最大為8 KB,因此,設(shè)置FIFO空間32 bit局部地址范圍為0x20000000~0x2000FFFF,映射空間為PCI 地址空間bar2。
  FPGA片內(nèi)RAM位寬為32 bit, 采用局部地址范圍為0x40000000~0x400FFFFF。映射空間為PCI地址空間bar3。
  1.2.2 數(shù)據(jù)訪問(wèn)方式
  FIFO緩沖為可編程FIFO,由FPGA根據(jù)片內(nèi)存儲(chǔ)的雷達(dá)參數(shù)進(jìn)行控制。當(dāng)FIFO中數(shù)據(jù)達(dá)到設(shè)置的大小時(shí),觸發(fā)PCIPLX9054引發(fā)PCI中斷,通過(guò)該中斷向驅(qū)動(dòng)程序申請(qǐng)發(fā)起DMA 傳輸。驅(qū)動(dòng)程序響應(yīng)該中斷后設(shè)置PCIPLX9054的DMA寄存器, 發(fā)起方向從局部總線到PCI總線的DMA傳輸,完成FIFO數(shù)據(jù)向PC機(jī)的傳輸。
  FPGA片內(nèi)RAM通過(guò)PCI地址映射,使用IO操作方式進(jìn)行數(shù)據(jù)讀寫(xiě)訪問(wèn)。
  2 Linux程序?qū)崿F(xiàn)
  天氣雷達(dá)高速數(shù)據(jù)采集系統(tǒng)基于Linux2.6內(nèi)核平臺(tái)程序,由基于PCI總線的設(shè)備驅(qū)動(dòng)程序、數(shù)據(jù)采集及處理程序組成。
  2.1 設(shè)備驅(qū)動(dòng)程序?qū)崿F(xiàn)
  設(shè)備驅(qū)動(dòng)程序的功能是在Linux2.6系統(tǒng)平臺(tái)下,通過(guò)對(duì)PCI總線控制芯片PLX9054的控制,實(shí)現(xiàn)PC機(jī)與采集板的數(shù)據(jù)交互,實(shí)現(xiàn)雷達(dá)采集數(shù)據(jù)的實(shí)時(shí)接收及雷達(dá)工作狀態(tài)的控制。從功能結(jié)構(gòu)上,設(shè)備驅(qū)動(dòng)主要由設(shè)備裝載及初始化、提供給用戶(hù)層的接口函數(shù)、中斷及DMA數(shù)據(jù)傳輸三部分組成。
  2.1.1 設(shè)備裝載及卸載
  設(shè)備裝載和卸載即是Windows系統(tǒng)中設(shè)備驅(qū)動(dòng)安裝和卸載。在Linux2.6中,裝載和卸載主要通過(guò)調(diào)用系統(tǒng)提供的PCI總線驅(qū)動(dòng)注冊(cè)函數(shù)pci_register_drive和注銷(xiāo)函數(shù)pci_unregister_driver來(lái)實(shí)現(xiàn),其注冊(cè)的driver數(shù)據(jù)結(jié)構(gòu)如下:
  static struct pci_driver plx9054_pci_driver = {
  .name = ‘pci9054’,
  .id_table = plx9054_pci_tbl,
  .probe = plx9054_probe,
  .remove = plx9054_remove,
  };
  當(dāng)系統(tǒng)引導(dǎo)時(shí),高速數(shù)據(jù)采集系統(tǒng)板上電后,板上PCI總線固件對(duì)PLX9054設(shè)備進(jìn)行缺省配置,為設(shè)備的每個(gè)地址區(qū)域分配好資源。裝載函數(shù)在驅(qū)動(dòng)中用module_init聲明,進(jìn)行設(shè)備的初始化工作,調(diào)用PCI總線驅(qū)動(dòng)注冊(cè)函數(shù),根據(jù)id_table定義的信息對(duì)PCI設(shè)備PLX9054進(jìn)行探測(cè)識(shí)別,完成PLX9054設(shè)備驅(qū)動(dòng)的PCI總線注冊(cè),然后調(diào)用驅(qū)動(dòng)注冊(cè)的probe函數(shù),完成PLX9054設(shè)備使能、PCI地址空間映射、PLX9054設(shè)備數(shù)據(jù)結(jié)構(gòu)初始化、設(shè)備注冊(cè)(注冊(cè)為字符設(shè)備)等操作。卸載函數(shù)用module_exit聲明,是裝載的逆過(guò)程,通過(guò)調(diào)用PCI總線驅(qū)動(dòng)卸載函數(shù),繼而調(diào)用注冊(cè)的remove函數(shù)、注銷(xiāo)設(shè)備及PCI地址空間映射、釋放分配給設(shè)備的數(shù)據(jù)結(jié)構(gòu)空間等操作,完成系統(tǒng)資源釋放。
  2.1.2 設(shè)備接口函數(shù)
  設(shè)備接口函數(shù)為用戶(hù)提供與設(shè)備進(jìn)行交互的不同功能接口,主要完成用戶(hù)與設(shè)備的讀、寫(xiě)及設(shè)備控制訪問(wèn)等功能,其數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)為:
  static const struct file_operations plx9054_fops = {
  .owner = THIS_MODULE,
  .open = plx9054_open, /*打開(kāi)設(shè)備*/
  .release = plx9054_close, /*釋放設(shè)備*/
  .ioctl = plx9054_ioctl, /*IO操作*/
  .read = plx9054_read, /*讀設(shè)備*/
  };
  這個(gè)數(shù)據(jù)結(jié)構(gòu)在設(shè)備裝載過(guò)程中,作為設(shè)備注冊(cè)的參數(shù)完成與設(shè)備掛接、使用戶(hù)在系統(tǒng)調(diào)用中能訪問(wèn)到上述關(guān)聯(lián)的設(shè)備接口函數(shù)。
  設(shè)備打開(kāi)函數(shù)plx9054_open完成以下操作:設(shè)備私有數(shù)據(jù)結(jié)構(gòu)內(nèi)存空間分配及初始化,DMA連續(xù)物理內(nèi)存空間申請(qǐng),為天氣雷達(dá)最大距離探測(cè)采集數(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對(duì)中斷函數(shù)p9054_interrupt進(jìn)行中斷號(hào)申請(qǐng);對(duì)天氣雷達(dá)工作參數(shù)進(jìn)行缺省配置,啟動(dòng)雷達(dá)工作。設(shè)備釋放函數(shù)PLX9054_close完成的操作與設(shè)備打開(kāi)函數(shù)與PLX9054_open相反。IO操作函數(shù)PLX9054_ioctl通過(guò)sys_ioctl系統(tǒng)調(diào)用,完成用戶(hù)與設(shè)備的信息查詢(xún)、雷達(dá)工作參數(shù)配置與查詢(xún),如驅(qū)動(dòng)軟件版本號(hào)、雷達(dá)當(dāng)前工作各參數(shù)配置和查詢(xún),主要用于對(duì)FPGA中RAM內(nèi)存空間的雷達(dá)工作參數(shù)數(shù)據(jù)訪問(wèn)。由于這部分?jǐn)?shù)據(jù)對(duì)訪問(wèn)速度要求不高,使用IO操作能很好地滿(mǎn)足設(shè)計(jì)要求。讀設(shè)備函數(shù)PLX9054_read將驅(qū)動(dòng)DMA數(shù)據(jù)緩沖區(qū)中的數(shù)據(jù)實(shí)時(shí)讀取到用戶(hù)空間緩沖區(qū)內(nèi),完成采集數(shù)據(jù)從設(shè)備到用戶(hù)的讀取操作。
下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評(píng)論

查看更多

下載排行

本周

  1. 1TC358743XBG評(píng)估板參考手冊(cè)
  2. 1.36 MB  |  330次下載  |  免費(fèi)
  3. 2開(kāi)關(guān)電源基礎(chǔ)知識(shí)
  4. 5.73 MB  |  6次下載  |  免費(fèi)
  5. 3100W短波放大電路圖
  6. 0.05 MB  |  4次下載  |  3 積分
  7. 4嵌入式linux-聊天程序設(shè)計(jì)
  8. 0.60 MB  |  3次下載  |  免費(fèi)
  9. 5基于FPGA的光纖通信系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
  10. 0.61 MB  |  2次下載  |  免費(fèi)
  11. 6基于FPGA的C8051F單片機(jī)開(kāi)發(fā)板設(shè)計(jì)
  12. 0.70 MB  |  2次下載  |  免費(fèi)
  13. 751單片機(jī)窗簾控制器仿真程序
  14. 1.93 MB  |  2次下載  |  免費(fèi)
  15. 8基于51單片機(jī)的RGB調(diào)色燈程序仿真
  16. 0.86 MB  |  2次下載  |  免費(fèi)

本月

  1. 1OrCAD10.5下載OrCAD10.5中文版軟件
  2. 0.00 MB  |  234315次下載  |  免費(fèi)
  3. 2555集成電路應(yīng)用800例(新編版)
  4. 0.00 MB  |  33564次下載  |  免費(fèi)
  5. 3接口電路圖大全
  6. 未知  |  30323次下載  |  免費(fèi)
  7. 4開(kāi)關(guān)電源設(shè)計(jì)實(shí)例指南
  8. 未知  |  21548次下載  |  免費(fèi)
  9. 5電氣工程師手冊(cè)免費(fèi)下載(新編第二版pdf電子書(shū))
  10. 0.00 MB  |  15349次下載  |  免費(fèi)
  11. 6數(shù)字電路基礎(chǔ)pdf(下載)
  12. 未知  |  13750次下載  |  免費(fèi)
  13. 7電子制作實(shí)例集錦 下載
  14. 未知  |  8113次下載  |  免費(fèi)
  15. 8《LED驅(qū)動(dòng)電路設(shè)計(jì)》 溫德?tīng)栔?/a>
  16. 0.00 MB  |  6653次下載  |  免費(fèi)

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935054次下載  |  免費(fèi)
  3. 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
  4. 78.1 MB  |  537796次下載  |  免費(fèi)
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420026次下載  |  免費(fèi)
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234315次下載  |  免費(fèi)
  9. 5Altium DXP2002下載入口
  10. 未知  |  233046次下載  |  免費(fèi)
  11. 6電路仿真軟件multisim 10.0免費(fèi)下載
  12. 340992  |  191185次下載  |  免費(fèi)
  13. 7十天學(xué)會(huì)AVR單片機(jī)與C語(yǔ)言視頻教程 下載
  14. 158M  |  183278次下載  |  免費(fèi)
  15. 8proe5.0野火版下載(中文版免費(fèi)下載)
  16. 未知  |  138040次下載  |  免費(fèi)