基于PXI總線的SAR天線平臺(tái)測(cè)試模塊設(shè)計(jì)
主處理器的工作流程
DSP是該測(cè)試卡的關(guān)鍵部件,擔(dān)負(fù)著數(shù)據(jù)處理、存儲(chǔ)、模擬慣導(dǎo)數(shù)據(jù)產(chǎn)生以及與上位機(jī)通信等任務(wù)。DSP以PSD發(fā)送數(shù)據(jù)為時(shí)間基準(zhǔn),接收到PSD每隔5ms發(fā)來的數(shù)據(jù)并存儲(chǔ)后,首先通過EMIF(Extern Memory Interface,外部存儲(chǔ)器接口)從增量式編碼器解碼模塊中讀取計(jì)數(shù)器的計(jì)數(shù)值,經(jīng)比例運(yùn)算轉(zhuǎn)換成兩個(gè)16位角度量后,存儲(chǔ)并通過EMIF接口發(fā)送給外部的慣導(dǎo)數(shù)據(jù)模擬模塊,轉(zhuǎn)換成慣導(dǎo)輸出的自整角機(jī)信號(hào)發(fā)送給穩(wěn)定平臺(tái)。
為了保證連續(xù)記錄數(shù)據(jù),數(shù)據(jù)存儲(chǔ)在DSP的DARAM(Dual -Access RAM,雙口RAM)中,并采用乒乓式的存儲(chǔ)(即有兩個(gè)存儲(chǔ)區(qū),當(dāng)其中一個(gè)存儲(chǔ)區(qū)滿之后,通過PXI總線向上位機(jī)發(fā)中斷,然后開始向另一個(gè)存儲(chǔ)區(qū)寫入數(shù)據(jù))。我們?cè)O(shè)定每個(gè)存儲(chǔ)區(qū)存儲(chǔ)1000組數(shù)據(jù)(每組包括電控轉(zhuǎn)臺(tái)方位、橫滾姿態(tài)以及平臺(tái)在這兩個(gè)方向上的跟蹤誤差4個(gè)數(shù)據(jù)),故每個(gè)存儲(chǔ)區(qū)包括4000Words。
PXI總線接口驅(qū)動(dòng)程序
該測(cè)試模塊工作在Windows 2000操作系統(tǒng)中,需要開發(fā)相應(yīng)的WDM驅(qū)動(dòng)程序,該驅(qū)動(dòng)程序主要完成訪問PCI 9030配置空間、訪問DSP內(nèi)存空間以及中斷處理、應(yīng)用程序與驅(qū)動(dòng)程序的通信3個(gè)功能。DSP采用兩個(gè)存儲(chǔ)區(qū)進(jìn)行乒乓式的存儲(chǔ),當(dāng)一個(gè)存儲(chǔ)區(qū)內(nèi)的數(shù)據(jù)準(zhǔn)備好之后就通過PXI總線向計(jì)算機(jī)發(fā)出中斷,驅(qū)動(dòng)程序處理中斷,并讀取該DSP存儲(chǔ)區(qū)中的數(shù)據(jù)。
PXI總線接口硬件設(shè)計(jì)
本測(cè)試卡使用DSP的16位EHPI(Enhanced Host-Port Interface,增強(qiáng)主機(jī)接口)與PCI 9030芯片的Local總線相連,EHPI可以通過DMA控制器在不干擾DSP系統(tǒng)正常工作的情況下讀取DSP內(nèi)部DARAM,內(nèi)部SARAM(Single-Access RAM,單口RAM)以及部分CE0片選的外部存儲(chǔ)空間,多達(dá)1MB。這樣上層計(jì)算機(jī)既可以通過PXI總線在DSP內(nèi)部存儲(chǔ)區(qū)獲取所需要的測(cè)試數(shù)據(jù),而不至于影響DSP的正常工作。
考慮到采用面向?qū)ο蟮尿?qū)動(dòng)程序框架,簡化驅(qū)動(dòng)程序的開發(fā)過程,這里選用基于Windows DDK作為底層支持的DriverWorks作為驅(qū)動(dòng)程序的開發(fā)平臺(tái),其中的DriverWizard向?qū)Чぞ咴赩C環(huán)境中可以建立驅(qū)動(dòng)程序的框架,這里主要介紹一些驅(qū)動(dòng)程序中的幾個(gè)功能模塊。
(1)訪問9030配置空間。在生成驅(qū)動(dòng)程序框架的時(shí)候已為9030的配置寄存器聲明了所需的存儲(chǔ)器映射資源,產(chǎn)生一個(gè)KMemoryRange類實(shí)例m_MemoryRange,這個(gè)類在驅(qū)動(dòng)程序初始化時(shí)獲得9030硬件寄存器配置空間的地址范圍,這樣就可以使用該實(shí)例的inb和outb分別實(shí)現(xiàn)對(duì)硬件寄存器的讀寫操作。
(2)應(yīng)用程序和驅(qū)動(dòng)程序的通信。首先應(yīng)用程序通過操作系統(tǒng)提供的API函數(shù)調(diào)用驅(qū)動(dòng)程序的讀寫例程Read()(這里只涉及到讀操作)。由Read()例程中調(diào)用StartIo()對(duì)讀請(qǐng)求進(jìn)行排隊(duì),以避免讀寫操作沖突。由StartIo()調(diào)用SerialRead()例程進(jìn)行具體的讀操作,即把事先申請(qǐng)的系統(tǒng)緩沖區(qū)中的數(shù)據(jù)轉(zhuǎn)移到用戶緩沖區(qū),完成所要求的讀操作。
(3)訪問DSP內(nèi)存空間以及中斷處理,即對(duì)DSP存儲(chǔ)區(qū)進(jìn)行讀寫操作。在生成驅(qū)動(dòng)程序框架的時(shí)候已為9030的局部總線空間申明了所需的存儲(chǔ)器映射資源,產(chǎn)生一個(gè)KMemoryRange類實(shí)例m_LocalAddSpace0,這個(gè)類在驅(qū)動(dòng)程序初始化的時(shí)候獲得9030的局部總線地質(zhì)空間的系統(tǒng)地址范圍;同時(shí)驅(qū)動(dòng)程序也產(chǎn)生一個(gè)KDeferredCall類的實(shí)例m_DpcFor_Irq,用于調(diào)用中斷延遲處理程序DpcFor_Irq()。當(dāng)測(cè)試卡產(chǎn)生中斷時(shí),驅(qū)動(dòng)程序捕獲中斷,作相應(yīng)處理之后通過m_DpcFor_Irq調(diào)用DpcFor_Irq()。在DpcFor_Irq()中,通過m_LocalAddSpace0的inb和outb對(duì)DSP存儲(chǔ)區(qū)進(jìn)行讀寫操作。把讀到的數(shù)據(jù)存放在事先申請(qǐng)的系統(tǒng)緩沖區(qū)(這里只涉及到讀操作)。
結(jié)語
作為機(jī)載SAR天線平臺(tái)自動(dòng)化測(cè)試系統(tǒng)的核心,該模塊以主流的儀器總線PXI總線為載體,保證了測(cè)試系統(tǒng)的穩(wěn)定性和工業(yè)級(jí)要求,通過標(biāo)準(zhǔn)串行接口讀取平臺(tái)伺服系統(tǒng)的響應(yīng)(誤差),實(shí)現(xiàn)了對(duì)平臺(tái)靜態(tài)跟蹤誤差的測(cè)試和動(dòng)態(tài)響應(yīng)的實(shí)時(shí)數(shù)據(jù)采集。這些關(guān)鍵技術(shù)是該自動(dòng)化測(cè)試系統(tǒng)實(shí)現(xiàn)設(shè)計(jì)功能的基礎(chǔ),同時(shí)也使該模塊不僅具有獨(dú)立于測(cè)試系統(tǒng)的通用性,而且具有對(duì)不同類型機(jī)載SAR穩(wěn)定平臺(tái)的通用性。實(shí)際測(cè)試證明,該模塊實(shí)現(xiàn)了預(yù)定的功能,能夠可靠的工作。
評(píng)論