LXI總線數字化儀模塊設計
為滿足模塊能夠完成對兩種中頻信號采集,ADC電路部分設計了可變采樣時鐘電路,模塊會根據用戶的測試需要自動選擇不同的采樣時鐘,并且采樣時鐘始終鎖定在模塊內部或外部參考上。采樣時鐘發(fā)生電路由參考電路、集成鎖相環(huán)路(內部自帶VCO)及DDS電路三部分組成,如圖3所示?;?a class="contentlabel" href="http://www.biyoush.com/news/listbylabel/label/FPGA">FPGA的控制電路控制集成鎖相環(huán)路內部自帶的VCO鎖定在一個固定輸出頻率上,采樣時鐘信號則由DDS對VCO輸出的信號分頻得到。
本文引用地址:http://www.biyoush.com/article/119034.htmFPGA主要完成數字中頻信號處理和硬件電路的控制。其中信號處理部分包括數字下變頻、數字濾波等,總體結構上由DDS、下混頻器、MAC濾波器、系數存儲器等組成,DDS完成數控本振(NCO)的功能,用來產生下變頻所需的本振信號;硬件電路控制部分包括中頻信號處理通路控制、采樣時鐘控制、數據存儲控制及觸發(fā)控制等。
FPGA處理后數據的最終處理與運算工作由DSP完成,包括中頻檢波、對數處理、視頻濾波、視頻檢波以及對運算結果進行誤差修正等任務,處理完成的數據通過LXI總線接口送到虛擬儀器軟面板進行結果顯示。由于要進行兩種中頻信號測量,數據處理復雜程度高,而DSP和FPGA的存儲空間有限,因此采用動態(tài)更新DSP程序和FPGA程序的方法。根據用戶選擇的功能,重新配置DSP和FPGA代碼到芯片,此方法提高了軟件的靈活性和可擴展性,同樣縮小了硬件體積,減少了硬件成本。
LXI觸發(fā)電路設計
LXI規(guī)范提供了3種觸發(fā)方式:基于LAN的觸發(fā);基于IEEE1588精密時鐘協(xié)議提供的時間基準進行定時觸發(fā);通過專用LXI觸發(fā)總線的觸發(fā)。
本數字化儀模塊采用基于IEEE1588精密時鐘協(xié)議提供的時間基準進行定時觸發(fā),該觸發(fā)需要通過網線來實現IEEE1588協(xié)議,使各設備的實時時鐘保持同步,各設備根據同步的時間實現事件的同步。由帶有以太網外設的CPU處理器和FPGA組成。 FPGA仍然實現IEEE 1588 時間戳和硬件觸發(fā)的功能,這樣可以大大提高同步精度,同時有利于LXI測試模塊的升級和維護。
模塊軟件設計
驅動軟件設計
在以NT為核心的WIN2K、WINXP操作系統(tǒng)中,由于安全性、穩(wěn)定性的考慮,操作系統(tǒng)不允許應用程序直接訪問硬件資源,要實現對LXI總線中頻數字化儀硬件電路的控制就必須開發(fā)硬件設備驅動程序,作為下層硬件和上層應用程序的紐帶,實現應用程序對底層硬件的訪問。
在中頻數字化儀軟件開發(fā)中,我們利用工具軟件DriverStudio,按照Windows驅動程序模型(WDM)設計了本數字化儀模塊驅動程序,在驅動程序中實現端口的讀寫、中斷的響應及DMA傳輸等。
在中頻數字化儀模塊中,主機與模塊交互的數據量很大,通過CPU控制讀寫很耗費CPU資源,經常導致計算機響應遲緩,為此我們采用了DMA數據傳輸方式。DMA是利用PCI9054的DMA控制器,在本地設備與計算機內存之間進行數據傳輸。由于DMA控制器與CPU是并行操作,所以在數據傳輸的過程中,CPU可以空閑下來做數據處理等工作,這種傳輸方式特別適合大數據量、多線程的處理。在DriverStudio中,類KdmaAdapter封裝了DMA適配器。
模塊測控軟件設計
考慮到調用設備驅動程序操作比較復雜,并且需要一定的硬件知識,不利于用戶二次開發(fā)使用,在模塊中我們對設備驅動程序進行了封裝,將設備的功能模塊封裝為一個個直觀易用的高層函數,屏蔽了模塊的具體的控制方式,減少用戶在開發(fā)應用程序時對模塊的了解。
為了實現模塊驅動程序的兼容性和規(guī)范性,統(tǒng)一采用虛擬儀器接口,對虛擬儀器的接口函數進行了統(tǒng)一的命名約定,統(tǒng)一的函數輸出格式,能夠滿足在Microsoft Visual C++、C++ Builder、Lab Windows/CVI、Lab View等多種語言環(huán)境的二次開發(fā)的需要,以動態(tài)庫的形式提供用戶。
由于LXI總線數字化儀模塊本身不具有顯示控制界面,因此開發(fā)了一個可視化的虛擬儀器軟面板控制界面,方便用戶對模塊的控制與使用,虛擬儀器軟面板控制軟件將隨模塊一并提供給用戶。
模塊自動識別
LXI測試模塊在連接到總線上時應能自動被發(fā)現并識別。該機制主要通過實現LXI測試模塊內部的RPC服務器和VXI-11協(xié)議來實現。具體的工作原理是:客戶端(主控計算機)首先向服務器發(fā)出RPC請求服務,當服務器接收到該請求后,必須將VXI11內核的網絡端口號發(fā)送給客戶端,客戶端接收到該端口號后,與服務器建立TCP/IP通訊鏈路,并向LXI測試模塊發(fā)送“*IDN?”查詢信息,LXI數字化儀模塊隨后將儀器的信息,包括廠商、型號、版本號等信息回發(fā)給客戶端,同時,客戶端和服務器也通過該鏈路來實現SCPI命令的傳輸。
評論