<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 測(cè)試測(cè)量 > 設(shè)計(jì)應(yīng)用 > 基于PXI總線的虛擬數(shù)字示波器軟件設(shè)計(jì)

          基于PXI總線的虛擬數(shù)字示波器軟件設(shè)計(jì)

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

          測(cè)試總線在近幾十年發(fā)展非常迅速:從早期的通用接口總線GPIB到近期的VXI、外圍設(shè)備接口總線(Peripheral Component Interconnection,PCI)、PXI、IEEE1394、通用串行(Universal Serial Bus,USB)測(cè)試總線。其中是最新一代的測(cè)試總線技術(shù),是PCI總線在測(cè)試領(lǐng)域的擴(kuò)展(PCI eXtensions for Instruments),于1997年被美國(guó)NI公司首次提出,并于次年被采用為工業(yè)標(biāo)準(zhǔn)。可簡(jiǎn)單地認(rèn)為是MicorosoftWindows、Compact PCI(CPCI)和VXI技術(shù)的綜合:機(jī)械規(guī)范方面采用CPCI的核心技術(shù),即歐式插卡機(jī)械機(jī)構(gòu)和氣密式針孔接頭,特別適用于惡劣的工業(yè)環(huán)境;電氣規(guī)范方面在保持了PCI/CPCI總線所有優(yōu)點(diǎn)的前提下增加了專門的系統(tǒng)參考時(shí)鐘、觸發(fā)總線、星形觸發(fā)總線和模塊間的局部總線,以此來(lái)滿足高精度的定時(shí)、同步與數(shù)據(jù)通信要求;軟件規(guī)范方面也與PCI/CPCI一致,核心是Microsoft公司的Windows操作系統(tǒng),所以PXI系統(tǒng)與PC兼容,方便選擇很多現(xiàn)成的應(yīng)用軟件開(kāi)發(fā)工具。系統(tǒng)將PC機(jī)性能價(jià)格的優(yōu)勢(shì)、CPCI優(yōu)越的機(jī)械性能和VXI易于系統(tǒng)集成化等優(yōu)點(diǎn)集合了起來(lái),所以是當(dāng)今發(fā)展最快的總線技術(shù)。迄今為止,已經(jīng)有美國(guó)NI等數(shù)十家公司推出PXI(CPCI)模塊上千種?;诖?本文采用PXI總線,利用現(xiàn)有的PXI工控機(jī)及高速板,設(shè)計(jì)了基于PXI總線的虛擬數(shù)字存儲(chǔ)示波器軟件。

          基于PXI總線的數(shù)字示波器硬件與軟件結(jié)構(gòu)

          硬件結(jié)構(gòu)
          數(shù)字示波器硬件即通常說(shuō)的板,其原理框圖如圖1所示(圖中省略電源和時(shí)鐘部分):雙通道被測(cè)信號(hào)經(jīng)過(guò)模擬信號(hào)調(diào)理通道送入高速模數(shù)轉(zhuǎn)換器,所得數(shù)字?jǐn)?shù)據(jù)先送入2個(gè)先入先出(First In First Out,FIFO)緩存再送給本地總現(xiàn)最后由接口芯片PCI9030送入PXI機(jī)箱中。硬件的控制和狀態(tài)讀取需要根據(jù)用戶指令由相應(yīng)的軟件完成,送入PXI工控機(jī)的數(shù)據(jù)也要由軟件進(jìn)行處理,最后得到顯示波形和測(cè)量結(jié)果。

          圖1 PXI板原理框圖

          軟件構(gòu)成
          Windows系統(tǒng)為了保證系統(tǒng)的安全性、穩(wěn)定性和可移植性,對(duì)系統(tǒng)底層操作采取了屏蔽的措施,利用設(shè)備驅(qū)動(dòng)程序?qū)⒂布c用戶隔開(kāi)。所以,軟件分為兩部分:底層設(shè)備驅(qū)動(dòng)程序、高層應(yīng)用軟件。設(shè)備驅(qū)動(dòng)程序從廣義上來(lái)講是指直接操作硬件的一組函數(shù),完成硬件控制和數(shù)據(jù)采集。驅(qū)動(dòng)程序在裝入后成為操作系統(tǒng)內(nèi)核的一部分。高層應(yīng)用軟件可以認(rèn)為是虛擬示波器用戶態(tài)程序,將用戶界面,即面板上各種開(kāi)關(guān)、按鈕等控件以及波形、測(cè)量數(shù)據(jù)結(jié)果顯示區(qū)和數(shù)據(jù)采集、數(shù)據(jù)分析聯(lián)系在一起。當(dāng)用戶在界面上發(fā)出一定的命令后,應(yīng)用程序首先調(diào)用應(yīng)用程序接口(Application Programming Interface,API)函數(shù),相關(guān)的系統(tǒng)服務(wù)將調(diào)用內(nèi)核模式的驅(qū)動(dòng)程序?qū)崿F(xiàn)API,將命令信息轉(zhuǎn)換成數(shù)據(jù)采集板認(rèn)識(shí)的數(shù)據(jù)格式,按照數(shù)據(jù)采集板的物理地址送到底層硬件。同時(shí)數(shù)據(jù)采集板采集到的數(shù)據(jù)和底層硬件的各種狀態(tài)信息也通過(guò)API傳送給應(yīng)用程序做顯示和控制用。

          驅(qū)動(dòng)程序開(kāi)發(fā)

          Windows驅(qū)動(dòng)程序編制可以采用Windows設(shè)備驅(qū)動(dòng)程序開(kāi)發(fā)包(Device Drivers Kit,DDK),但需要程序員了解復(fù)雜的操作系統(tǒng)內(nèi)核。簡(jiǎn)捷的方法是利用KRFTech公司的設(shè)備驅(qū)動(dòng)程序開(kāi)發(fā)工具WinDriver。WinDriver是主要用于編寫針對(duì)ISA/PCI插卡和USB等硬件設(shè)備驅(qū)動(dòng)程序的工具包。對(duì)于硬件的訪問(wèn),應(yīng)用程序從WinDriver用戶模式庫(kù)調(diào)用WinDriver的功能接口,再由這個(gè)功能調(diào)用WinDriver的內(nèi)核模塊,即WinDriver自身提供的的驅(qū)動(dòng)程序WinDriver.vxd和WinDriver.sys去完成硬件的訪問(wèn)。

          分析數(shù)據(jù)采集板,知道驅(qū)動(dòng)程序要完成的基本功能包括設(shè)備初始化、對(duì)I/O和內(nèi)存的讀寫、直接存儲(chǔ)器存取(Direct Memory Access,DMA)以及中斷等操作。首先利用WinDriver完成對(duì)硬件的診斷操作,獲得數(shù)據(jù)采集板硬件參數(shù),如端口地址范圍、I/O方式、存儲(chǔ)器地址、內(nèi)存映射方式、中斷號(hào)等。然后再根據(jù)硬件的這些參數(shù)生成一些源代碼和框架函數(shù),如:
          SHBK_HANDLE SHBK_LocateAndOpenBoard(DWORD dwVendorID,DWORD dwDeviceID,BOOL
          fUseInt)//定位并開(kāi)啟數(shù)據(jù)采集板;
          void SHBK_EnableDisableInterrupts(SHBK_HANDLE hSHBK)//定義開(kāi)啟或終止中斷;
          DWORD SHBK_ReadPCIReg(SHBK_HANDLE hSHBK, DWORD dwReg)//讀配置寄存器;
          BYTE SHBK_ReadByte (SHBK_HANDLE hSHBK, SHBK_ADDR addrSpace, DWORD dwOffset)//讀出某內(nèi)存1字節(jié)內(nèi)容,該內(nèi)存地址為基地址加偏移量dwOffset;
          void SHBK_WriteByte (SHBK_HANDLE hSHBK, SHBK_ADDR addrSpace, DWORD dwOffset, BYTE
          data)//向內(nèi)存寫內(nèi)容為data的1字節(jié)數(shù)據(jù)。

          限于篇幅,只是舉例給出了小部分函數(shù),所有函數(shù)都未給出具體的實(shí)現(xiàn)代碼。利用所有這些框架函數(shù)可以對(duì)硬件直接進(jìn)行操作,為方便多個(gè)功能均要引用它們,將其封裝在一個(gè)動(dòng)態(tài)連接庫(kù)(Down-Line Load,DLL)中,再根據(jù)實(shí)際的硬件設(shè)計(jì)進(jìn)行調(diào)用,通過(guò)對(duì)內(nèi)存和IO進(jìn)行具體讀寫操作,編制對(duì)數(shù)據(jù)采集板硬件進(jìn)行操作的功能函數(shù),這些功能函數(shù)也被封裝在此DLL中,供給高層應(yīng)用軟件調(diào)用。


          上一頁(yè) 1 2 下一頁(yè)

          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();