新聞中心

        EEPW首頁 > 測試測量 > 設計應用 > 基于Linux平臺的天氣雷達高速數據采集系統設計

        基于Linux平臺的天氣雷達高速數據采集系統設計

        作者: 時間:2011-04-19 來源:網絡 收藏

        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數據緩沖區中的數據實時讀取到用戶空間緩沖區內,完成數據從設備到用戶的讀取操作。

        2.1.3 中斷處理及DMA傳輸

        中斷處理及DMA傳輸是驅動的核心部分,它的設計質量直接影響到雷達數據能否正確、實時地從采集系統板傳送到設備驅動緩沖區,并實時被用戶獲取。中斷處理工作流程如圖2所示。

        2.jpg

        由于DMA數據緩沖區遠大于每次DMA數據傳輸大小,這對于雷達數據采集中因用戶讀取數據延遲而導致的緩沖區溢出有較好的抑制作用,而相對于現有計算機平臺,2 MB內存容量已足夠。DMA數據緩沖區設計為循環緩沖區,使用讀、寫指針維護,在中斷處理中更新其寫指針,在PLX9054_read中更新其讀指針,采用溢出則覆蓋的機制,既方便管理,節省資源,同時又可對溢出進行計數,很方便進行實時性能的測試。

        linux操作系統文章專題:linux操作系統詳解(linux不再難懂)


        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 讷河市| 峡江县| 呼伦贝尔市| 呼和浩特市| 灌云县| 凉山| 射洪县| 临泉县| 白水县| 山西省| 松桃| 扎赉特旗| 凌源市| 犍为县| 桃园市| 红桥区| 金山区| 汝州市| 金坛市| 齐齐哈尔市| 遂平县| 马鞍山市| 太仓市| 彩票| 白朗县| 石渠县| 呼伦贝尔市| 吉安县| 南投市| 永川市| 宁波市| 赫章县| 杭锦旗| 柳州市| 乌兰浩特市| 库尔勒市| 合江县| 马边| 晋州市| 宣武区| 广丰县|