新聞中心

EEPW首頁(yè) > 測(cè)試測(cè)量 > 設(shè)計(jì)應(yīng)用 > 基于Linux平臺(tái)的天氣雷達(dá)高速數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)

基于Linux平臺(tái)的天氣雷達(dá)高速數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)

作者: 時(shí)間:2011-04-19 來(lái)源:網(wǎng)絡(luò) 收藏

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 程序?qū)崿F(xiàn)

系統(tǒng)基于2.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)程序的功能是在2.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è)備裝載及初始化、提供給用戶層的接口函數(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í),采集系統(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)資源釋放。

linux操作系統(tǒng)文章專(zhuān)題:linux操作系統(tǒng)詳解(linux不再難懂)


評(píng)論


相關(guān)推薦

技術(shù)專(zhuān)區(qū)

關(guān)閉