?????? 本文介紹了一種基于PXI總線技術(shù)的SAR天線穩(wěn)定平臺(tái)測(cè)試模塊。該測(cè)試模塊是SAR天線平臺(tái)自動(dòng)測(cè)試系統(tǒng)的主要子系統(tǒng),主要完成仿真轉(zhuǎn)臺(tái)位置信號(hào)解碼及輸出、平臺(tái)跟蹤誤差信號(hào)采集以及信號(hào)分析處理等功能。
PXI總線技術(shù)簡(jiǎn)介
PXI總線技術(shù)是NI發(fā)布的一種全新的開(kāi)放性、模塊化的儀器總線規(guī)范,是PCI總線在儀器領(lǐng)域的擴(kuò)展。它將CompactPCI規(guī)范定義的PCI總線技術(shù)發(fā)展成適合于試驗(yàn)、測(cè)量與數(shù)據(jù)采集場(chǎng)合應(yīng)用的機(jī)械、電氣和軟件規(guī)范。PXI總線與臺(tái)式PCI規(guī)范具有完全相同的性能,是在PCI總線內(nèi)核技術(shù)上增加了成熟的技術(shù)規(guī)范和要求形成的。它通過(guò)增加用于多板同步的觸發(fā)總線和參考時(shí)鐘、用于進(jìn)行精確定時(shí)的星形觸發(fā)總線以及用于相鄰模塊間高速通訊的局部總線來(lái)滿足試驗(yàn)和測(cè)量用戶的要求。PXI規(guī)范在CompactPCI機(jī)械規(guī)范中增加了環(huán)境測(cè)試和主動(dòng)冷卻要求,以保證多廠商產(chǎn)品的互操作性和系統(tǒng)的易集成性。它定義Microsoft Windows NT 和Windows 95為其標(biāo)準(zhǔn)軟件框架,并要求所有的儀器模塊都必須帶有按VISA規(guī)范編寫的Win32設(shè)備驅(qū)動(dòng)程序, 使PXI成為一種系統(tǒng)級(jí)規(guī)范,保證系統(tǒng)的易于集成與使用,從而進(jìn)一步降低最終用戶的開(kāi)發(fā)費(fèi)用。
測(cè)試模塊的結(jié)構(gòu)
作為基于Windows平臺(tái)的PXI總線測(cè)試卡,該儀器模塊包括PXI插卡和主機(jī)驅(qū)動(dòng)程序軟件兩部分。PXI插卡負(fù)責(zé)測(cè)試數(shù)據(jù)的處理,主機(jī)驅(qū)動(dòng)程序負(fù)責(zé)通信。
PXI插卡的結(jié)構(gòu)
PXI插卡從功能上分為增量式編碼器解碼模塊、RS-232接口模塊、DSP主處理器以及PXI總線接口三部分,該測(cè)試卡的結(jié)構(gòu)如圖1所示。增量式編碼器解碼模塊與422差分接收器配合,用于天線仿真轉(zhuǎn)臺(tái)兩軸位置數(shù)據(jù)的解碼;DSP主處理器完成測(cè)試數(shù)據(jù)的處理,PXI接口模塊主要完成PCI總線信號(hào)到本地總線的轉(zhuǎn)換接口;RS-232接口模塊接受PSD(光敏位置探測(cè)器)的串行輸出信號(hào),PSD在測(cè)試系統(tǒng)中用于探測(cè)天線平臺(tái)的跟蹤仿真轉(zhuǎn)臺(tái)運(yùn)動(dòng)的誤差。
圖1 PXI插卡的結(jié)構(gòu)
PSD串行輸出信號(hào)的讀取
測(cè)試系統(tǒng)采用PSD處理電路通過(guò)標(biāo)準(zhǔn)異步串口每5ms發(fā)送一幀數(shù)據(jù),用TI TMS320VC5510作為主處理器,滿足了數(shù)據(jù)存儲(chǔ)空間的要求(內(nèi)部有多達(dá)176KB RAM),但它只有用于同步通信的McBSP,不能直接實(shí)現(xiàn)異步串行通信,需要配合DSP的DMA通道通過(guò)軟件實(shí)現(xiàn)異步通信。將PSD發(fā)送的每一個(gè)字節(jié)作為一幀數(shù)據(jù),以起始位的下降沿作為幀同步信號(hào),采用過(guò)采樣的方法,將每一位(包括起始位)作為一個(gè)16位Word,停止位僅采8位WORD。將一個(gè)字節(jié)通過(guò)DMA通道緩沖到固定緩沖區(qū),當(dāng)一幀數(shù)據(jù)(10個(gè)WORD)全部采完之后,發(fā)送DMA中斷通知DSP進(jìn)行處理。對(duì)于串行通信普遍存在的開(kāi)機(jī)錯(cuò)位亂碼現(xiàn)象,通過(guò)對(duì)特殊位的判斷進(jìn)行丟棄處理。
增量式編碼器解碼模塊設(shè)計(jì)
該測(cè)試模塊需要從天線平臺(tái)測(cè)試仿真轉(zhuǎn)臺(tái)接受平臺(tái)的位置信息,在各類運(yùn)動(dòng)控制系統(tǒng)中,常采用增量式光電編碼器作為反饋檢測(cè)元件,其輸出為相差90度的A、B兩相信號(hào)以及周期脈沖復(fù)位信號(hào)Z,A、B兩相信號(hào)相差的正負(fù)決定運(yùn)動(dòng)的正反方向,A、B兩相信號(hào)的脈沖輸出計(jì)數(shù)決定位置運(yùn)動(dòng)的大小,Z為過(guò)零復(fù)位脈沖。整個(gè)解碼邏輯設(shè)計(jì)如圖2所示,由于該測(cè)試系統(tǒng)采用的仿真轉(zhuǎn)臺(tái)的位置信息有方位、橫滾兩個(gè)方向,需要兩組解碼器分別解碼兩個(gè)方向的位置信息。
?
圖2 解碼邏輯設(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ā)來(lái)的數(shù)據(jù)并存儲(chǔ)后,首先通過(guò)EMIF(Extern Memory Interface,外部存儲(chǔ)器接口)從增量式編碼器解碼模塊中讀取計(jì)數(shù)器的計(jì)數(shù)值,經(jīng)比例運(yùn)算轉(zhuǎn)換成兩個(gè)16位角度量后,存儲(chǔ)并通過(guò)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ū)滿之后,通過(guò)PXI總線向上位機(jī)發(fā)中斷,然后開(kāi)始向另一個(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總線接口硬件設(shè)計(jì)
本測(cè)試卡使用DSP的16位EHPI(Enhanced Host-Port Interface,增強(qiáng)主機(jī)接口)與PCI 9030芯片的Local總線相連,EHPI可以通過(guò)DMA控制器在不干擾DSP系統(tǒng)正常工作的情況下讀取DSP內(nèi)部DARAM,內(nèi)部SARAM(Single-Access RAM,單口RAM)以及部分CE0片選的外部存儲(chǔ)空間,多達(dá)1MB。這樣上層計(jì)算機(jī)既可以通過(guò)PXI總線在DSP內(nèi)部存儲(chǔ)區(qū)獲取所需要的測(cè)試數(shù)據(jù),而不至于影響DSP的正常工作。
PXI總線接口驅(qū)動(dòng)程序
該測(cè)試模塊工作在Windows 2000操作系統(tǒng)中,需要開(kāi)發(fā)相應(yīng)的WDM驅(qū)動(dòng)程序,該驅(qū)動(dòng)程序主要完成訪問(wèn)PCI 9030配置空間、訪問(wèn)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)備好之后就通過(guò)PXI總線向計(jì)算機(jī)發(fā)出中斷,驅(qū)動(dòng)程序處理中斷,并讀取該DSP存儲(chǔ)區(qū)中的數(shù)據(jù)。
考慮到采用面向?qū)ο蟮尿?qū)動(dòng)程序框架,簡(jiǎn)化驅(qū)動(dòng)程序的開(kāi)發(fā)過(guò)程,這里選用基于Windows DDK作為底層支持的DriverWorks作為驅(qū)動(dòng)程序的開(kāi)發(fā)平臺(tái),其中的DriverWizard向?qū)Чぞ咴赩C環(huán)境中可以建立驅(qū)動(dòng)程序的框架,這里主要介紹一些驅(qū)動(dòng)程序中的幾個(gè)功能模塊。
(1)訪問(wèn)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)訪問(wèn)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)處理之后通過(guò)m_DpcFor_Irq調(diào)用DpcFor_Irq()。在DpcFor_Irq()中,通過(guò)m_LocalAddSpace0的inb和outb對(duì)DSP存儲(chǔ)區(qū)進(jìn)行讀寫操作。把讀到的數(shù)據(jù)存放在事先申請(qǐng)的系統(tǒng)緩沖區(qū)(這里只涉及到讀操作)。
(3)應(yīng)用程序和驅(qū)動(dòng)程序的通信。首先應(yīng)用程序通過(guò)操作系統(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ū),完成所要求的讀操作。
結(jié)語(yǔ)
該模塊以主流的儀器總線PXI總線為載體,保證了測(cè)試系統(tǒng)的穩(wěn)定性和工業(yè)級(jí)要求,通過(guò)標(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ù)采集。
評(píng)論
查看更多