?????? 本文介紹了一種基于PXI總線技術的SAR天線穩定平臺測試模塊。該測試模塊是SAR天線平臺自動測試系統的主要子系統,主要完成仿真轉臺位置信號解碼及輸出、平臺跟蹤誤差信號采集以及信號分析處理等功能。
PXI總線技術簡介
PXI總線技術是NI發布的一種全新的開放性、模塊化的儀器總線規范,是PCI總線在儀器領域的擴展。它將CompactPCI規范定義的PCI總線技術發展成適合于試驗、測量與數據采集場合應用的機械、電氣和軟件規范。PXI總線與臺式PCI規范具有完全相同的性能,是在PCI總線內核技術上增加了成熟的技術規范和要求形成的。它通過增加用于多板同步的觸發總線和參考時鐘、用于進行精確定時的星形觸發總線以及用于相鄰模塊間高速通訊的局部總線來滿足試驗和測量用戶的要求。PXI規范在CompactPCI機械規范中增加了環境測試和主動冷卻要求,以保證多廠商產品的互操作性和系統的易集成性。它定義Microsoft Windows NT 和Windows 95為其標準軟件框架,并要求所有的儀器模塊都必須帶有按VISA規范編寫的Win32設備驅動程序, 使PXI成為一種系統級規范,保證系統的易于集成與使用,從而進一步降低最終用戶的開發費用。
測試模塊的結構
作為基于Windows平臺的PXI總線測試卡,該儀器模塊包括PXI插卡和主機驅動程序軟件兩部分。PXI插卡負責測試數據的處理,主機驅動程序負責通信。
PXI插卡的結構
PXI插卡從功能上分為增量式編碼器解碼模塊、RS-232接口模塊、DSP主處理器以及PXI總線接口三部分,該測試卡的結構如圖1所示。增量式編碼器解碼模塊與422差分接收器配合,用于天線仿真轉臺兩軸位置數據的解碼;DSP主處理器完成測試數據的處理,PXI接口模塊主要完成PCI總線信號到本地總線的轉換接口;RS-232接口模塊接受PSD(光敏位置探測器)的串行輸出信號,PSD在測試系統中用于探測天線平臺的跟蹤仿真轉臺運動的誤差。
圖1 PXI插卡的結構
PSD串行輸出信號的讀取
測試系統采用PSD處理電路通過標準異步串口每5ms發送一幀數據,用TI TMS320VC5510作為主處理器,滿足了數據存儲空間的要求(內部有多達176KB RAM),但它只有用于同步通信的McBSP,不能直接實現異步串行通信,需要配合DSP的DMA通道通過軟件實現異步通信。將PSD發送的每一個字節作為一幀數據,以起始位的下降沿作為幀同步信號,采用過采樣的方法,將每一位(包括起始位)作為一個16位Word,停止位僅采8位WORD。將一個字節通過DMA通道緩沖到固定緩沖區,當一幀數據(10個WORD)全部采完之后,發送DMA中斷通知DSP進行處理。對于串行通信普遍存在的開機錯位亂碼現象,通過對特殊位的判斷進行丟棄處理。
增量式編碼器解碼模塊設計
該測試模塊需要從天線平臺測試仿真轉臺接受平臺的位置信息,在各類運動控制系統中,常采用增量式光電編碼器作為反饋檢測元件,其輸出為相差90度的A、B兩相信號以及周期脈沖復位信號Z,A、B兩相信號相差的正負決定運動的正反方向,A、B兩相信號的脈沖輸出計數決定位置運動的大小,Z為過零復位脈沖。整個解碼邏輯設計如圖2所示,由于該測試系統采用的仿真轉臺的位置信息有方位、橫滾兩個方向,需要兩組解碼器分別解碼兩個方向的位置信息。
?
圖2 解碼邏輯設計
主處理器的工作流程
DSP是該測試卡的關鍵部件,擔負著數據處理、存儲、模擬慣導數據產生以及與上位機通信等任務。DSP以PSD發送數據為時間基準,接收到PSD每隔5ms發來的數據并存儲后,首先通過EMIF(Extern Memory Interface,外部存儲器接口)從增量式編碼器解碼模塊中讀取計數器的計數值,經比例運算轉換成兩個16位角度量后,存儲并通過EMIF接口發送給外部的慣導數據模擬模塊,轉換成慣導輸出的自整角機信號發送給穩定平臺。為了保證連續記錄數據,數據存儲在DSP的DARAM(Dual -Access RAM,雙口RAM)中,并采用乒乓式的存儲(即有兩個存儲區,當其中一個存儲區滿之后,通過PXI總線向上位機發中斷,然后開始向另一個存儲區寫入數據)。我們設定每個存儲區存儲1000組數據(每組包括電控轉臺方位、橫滾姿態以及平臺在這兩個方向上的跟蹤誤差4個數據),故每個存儲區包括4000Words。
PXI總線接口硬件設計
本測試卡使用DSP的16位EHPI(Enhanced Host-Port Interface,增強主機接口)與PCI 9030芯片的Local總線相連,EHPI可以通過DMA控制器在不干擾DSP系統正常工作的情況下讀取DSP內部DARAM,內部SARAM(Single-Access RAM,單口RAM)以及部分CE0片選的外部存儲空間,多達1MB。這樣上層計算機既可以通過PXI總線在DSP內部存儲區獲取所需要的測試數據,而不至于影響DSP的正常工作。
PXI總線接口驅動程序
該測試模塊工作在Windows 2000操作系統中,需要開發相應的WDM驅動程序,該驅動程序主要完成訪問PCI 9030配置空間、訪問DSP內存空間以及中斷處理、應用程序與驅動程序的通信3個功能。DSP采用兩個存儲區進行乒乓式的存儲,當一個存儲區內的數據準備好之后就通過PXI總線向計算機發出中斷,驅動程序處理中斷,并讀取該DSP存儲區中的數據。
考慮到采用面向對象的驅動程序框架,簡化驅動程序的開發過程,這里選用基于Windows DDK作為底層支持的DriverWorks作為驅動程序的開發平臺,其中的DriverWizard向導工具在VC環境中可以建立驅動程序的框架,這里主要介紹一些驅動程序中的幾個功能模塊。
(1)訪問9030配置空間。在生成驅動程序框架的時候已為9030的配置寄存器聲明了所需的存儲器映射資源,產生一個KMemoryRange類實例m_MemoryRange,這個類在驅動程序初始化時獲得9030硬件寄存器配置空間的地址范圍,這樣就可以使用該實例的inb和outb分別實現對硬件寄存器的讀寫操作。
(2)訪問DSP內存空間以及中斷處理,即對DSP存儲區進行讀寫操作。在生成驅動程序框架的時候已為9030的局部總線空間申明了所需的存儲器映射資源,產生一個KMemoryRange類實例m_LocalAddSpace0,這個類在驅動程序初始化的時候獲得9030的局部總線地質空間的系統地址范圍;同時驅動程序也產生一個KDeferredCall類的實例m_DpcFor_Irq,用于調用中斷延遲處理程序DpcFor_Irq()。當測試卡產生中斷時,驅動程序捕獲中斷,作相應處理之后通過m_DpcFor_Irq調用DpcFor_Irq()。在DpcFor_Irq()中,通過m_LocalAddSpace0的inb和outb對DSP存儲區進行讀寫操作。把讀到的數據存放在事先申請的系統緩沖區(這里只涉及到讀操作)。
(3)應用程序和驅動程序的通信。首先應用程序通過操作系統提供的API函數調用驅動程序的讀寫例程Read()(這里只涉及到讀操作)。由Read()例程中調用StartIo()對讀請求進行排隊,以避免讀寫操作沖突。由StartIo()調用SerialRead()例程進行具體的讀操作,即把事先申請的系統緩沖區中的數據轉移到用戶緩沖區,完成所要求的讀操作。
結語
該模塊以主流的儀器總線PXI總線為載體,保證了測試系統的穩定性和工業級要求,通過標準串行接口讀取平臺伺服系統的響應(誤差),實現了對平臺靜態跟蹤誤差的測試和動態響應的實時數據采集。
評論
查看更多