代理商售后維修區(qū)域:北京-上海-浙江-廣東-河南-杭州-鄭州-廣州-深圳-佛山-惠州-廈門-汕頭-臺灣-香港-天津-西安-寶雞-杭州-溫州-常州-無錫-蘇州-南京-鎮(zhèn)江-揚州-南通-合肥-徐州-常熟-石家莊-太原-呼和浩特-沈陽-長春-哈爾濱-南京-合肥-福州-南昌-濟南-鄭州-武漢-長沙-廣州-南寧-?-成都-貴陽-昆明-拉薩-西安-蘭州-西寧-銀川-烏魯木齊-杭州-沈陽-長春-哈爾濱-濟南-武漢-廣州-南寧-成都-西安-大連-寧波-廈門-青島-深圳-杭州-淮安-連云港-昆山-嘉興-湖州-秦皇島-邯鄲-邢臺-保定-張家口-承德-廊坊-呼和浩特-包頭-鞍山-大慶-錦州-鐵嶺-盤錦-湛江-蕭山-遼寧-淄博-寧夏-綿陽-云南-朝陽-陜西-青海-北海-唐山-吉林-蘇州-昆山-無錫-鎮(zhèn)江-常州-連云港-淮安-淮陰-鹽城-揚州-徐州-宜興-江陰-南通-揚州-上海-滁州-內(nèi)蒙古-新疆有銷售.北京亦莊開發(fā)區(qū),天津濱海開發(fā)區(qū),秦皇島經(jīng)濟開發(fā)區(qū),太原經(jīng)濟開發(fā)區(qū),呼和浩特經(jīng)濟開發(fā)區(qū),沈陽經(jīng)濟開發(fā)區(qū),營口經(jīng)濟開發(fā)區(qū),大連經(jīng)濟開發(fā)區(qū),長春經(jīng)濟開發(fā)區(qū),哈爾濱經(jīng)濟開發(fā)區(qū),虹橋經(jīng)濟開發(fā)區(qū),漕河涇開發(fā)區(qū),連云港開發(fā)區(qū),南通開發(fā)區(qū),昆山開發(fā)區(qū),南京開發(fā)區(qū),杭州開發(fā)區(qū),蕭山開發(fā)區(qū),溫州開發(fā)區(qū),寧波開發(fā)區(qū),蕪湖開發(fā)區(qū),合肥開發(fā)區(qū),福州開發(fā)區(qū),福清融僑開發(fā)區(qū),東山開發(fā)區(qū),南昌開發(fā)區(qū),威海開發(fā)區(qū),煙臺開發(fā)區(qū),青島開發(fā)區(qū),鄭州開發(fā)區(qū),武漢開發(fā)區(qū),長沙開發(fā)區(qū),蘿崗區(qū)開發(fā)區(qū),廣州南沙開發(fā)區(qū),惠州大亞灣開發(fā)區(qū),湛江開發(fā)區(qū),南寧開發(fā)區(qū),重慶開發(fā)區(qū),成都開發(fā)區(qū),貴陽開發(fā)區(qū),昆明開發(fā)區(qū),拉薩開發(fā)區(qū),西安開發(fā)區(qū),蘭州開發(fā)區(qū),西寧開發(fā)區(qū),銀川開發(fā)區(qū),烏魯木齊開發(fā)區(qū),石河子開發(fā)區(qū),金橋出口加工區(qū),蘇州工業(yè)園,寧波大榭開發(fā)區(qū),廈門海滄投資區(qū),海南洋浦開發(fā)區(qū)。
萬用示波表 | 數(shù)字示波器 | 模擬示波器 | 虛擬示波器 |
波形示波器 | 信號發(fā)生器 | 函數(shù)發(fā)生器 |
基于PXI總線的數(shù)字示波器硬件與軟件結(jié)構(gòu)
硬件結(jié)構(gòu)
數(shù)字示波器硬件即通常說的數(shù)據(jù)采集板,其原理框圖如圖1所示(圖中省略電源和時鐘部分):雙通道被測信號經(jīng)過模擬信號調(diào)理通道送入高速模數(shù)轉(zhuǎn)換器,所得數(shù)字數(shù)據(jù)先送入2個先入先出(First In First Out,F(xiàn)IFO)緩存再送給本地總現(xiàn)最后由接口芯片PCI9030送入PXI機箱中。硬件的控制和狀態(tài)讀取需要根據(jù)用戶指令由相應的軟件完成,送入 PXI工控機的數(shù)據(jù)也要由軟件進行處理,最后得到顯示波形和測量結(jié)果。
圖1 PXI數(shù)據(jù)采集板原理框圖
軟件構(gòu)成
Windows 系統(tǒng)為了保證系統(tǒng)的安全性、穩(wěn)定性和可移植性,對系統(tǒng)底層操作采取了屏蔽的措施,利用設備驅(qū)動程序?qū)⒂布c用戶隔開。所以,軟件分為兩部分:底層設備驅(qū)動程序、高層應用軟件。設備驅(qū)動程序從廣義上來講是指直接操作硬件的一組函數(shù),完成硬件控制和數(shù)據(jù)采集。驅(qū)動程序在裝入后成為操作系統(tǒng)內(nèi)核的一部分。高層應用軟件可以認為是虛擬示波器用戶態(tài)程序,將用戶界面,即面板上各種開關、按鈕等控件以及波形、測量數(shù)據(jù)結(jié)果顯示區(qū)和數(shù)據(jù)采集、數(shù)據(jù)分析聯(lián)系在一起。當用戶在界面上發(fā)出一定的命令后,應用程序首先調(diào)用應用程序接口(Application Programming Interface,API)函數(shù),相關的系統(tǒng)服務將調(diào)用內(nèi)核模式的驅(qū)動程序?qū)崿F(xiàn)API,將命令信息轉(zhuǎn)換成數(shù)據(jù)采集板認識的數(shù)據(jù)格式,按照數(shù)據(jù)采集板的物理地址送到底層硬件。同時數(shù)據(jù)采集板采集到的數(shù)據(jù)和底層硬件的各種狀態(tài)信息也通過API傳送給應用程序做顯示和控制用。
驅(qū)動程序開發(fā)
Windows 驅(qū)動程序編制可以采用Windows設備驅(qū)動程序開發(fā)包(Device Drivers Kit,DDK),但需要程序員了解復雜的操作系統(tǒng)內(nèi)核。簡捷的方法是利用KRFTech公司的設備驅(qū)動程序開發(fā)工具WinDriver。 WinDriver是主要用于編寫針對ISA/PCI插卡和USB等硬件設備驅(qū)動程序的工具包。對于硬件的訪問,應用程序從WinDriver用戶模式庫調(diào)用WinDriver的功能接口,再由這個功能調(diào)用WinDriver的內(nèi)核模塊,即WinDriver自身提供的的驅(qū)動程序 WinDriver.vxd和WinDriver.sys去完成硬件的訪問。
分析數(shù)據(jù)采集板,知道驅(qū)動程序要完成的基本功能包括設備初始化、對I/O和內(nèi)存的讀寫、直接存儲器存取(Direct Memory Access,DMA)以及中斷等操作。首先利用WinDriver完成對硬件的診斷操作,獲得數(shù)據(jù)采集板硬件參數(shù),如端口地址范圍、I/O方式、存儲器地址、內(nèi)存映射方式、中斷號等。然后再根據(jù)硬件的這些參數(shù)生成一些源代碼和框架函數(shù),如:
SHBK_HANDLE SHBK_LocateAndOpenBoard(DWORD dwVendorID,DWORD dwDeviceID,BOOL
fUseInt)//定位并開啟數(shù)據(jù)采集板;
void SHBK_EnableDisableInterrupts(SHBK_HANDLE hSHBK)//定義開啟或終止中斷;
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ù)都未給出具體的實現(xiàn)代碼。利用所有這些框架函數(shù)可以對硬件直接進行操作,為方便多個功能均要引用它們,將其封裝在一個動態(tài)連接庫(Down-Line Load,DLL)中,再根據(jù)實際的硬件設計進行調(diào)用,通過對內(nèi)存和IO進行具體讀寫操作,編制對數(shù)據(jù)采集板硬件進行操作的功能函數(shù),這些功能函數(shù)也被封裝在此DLL中,供給高層應用軟件調(diào)用。
虛擬數(shù)字示波器應用軟件設計
LabWindows/CVI 是NI公司開發(fā)的基于C語言的軟件開發(fā)平臺,選用LabWindows/CVI用于虛擬示波器開發(fā)主要是基于LabWindows/CVI適用于各種測試、控制、故障分析及信息處理軟件的開發(fā),尤其是大型、復雜的測試軟件,使用LabWindows/CVI開發(fā)可獲得優(yōu)良的測試性能[3]。為方便用戶,設計的示波器面板使用方式與通用示波器無異,所有操作都與通用示波器類似,如圖2所示,它包含如下內(nèi)容:
(1) 控制設置區(qū):可由用戶控制相應控件設置時基、量程、測量通道、觸發(fā)方式、觸發(fā)極性、觸發(fā)電平、觸發(fā)位置、觸發(fā)通道、耦合方式和是否平滑和反相顯示波形,另外還專門有一個自動設置按鈕,按下此按鈕,軟件將自動為用戶設定合適的以上參數(shù)。
(2) 波形顯示區(qū):軟面板左上部分按照標準示波器顯示規(guī)范,橫向分為10格,縱向分為8格;有可移動的兩個光標,可供用戶在波形顯示區(qū)任意拖動。
圖2 示波器面板
(3) 光標及測量結(jié)果顯示區(qū):分別可顯示光標1、2位置,光標相對位置及相應的時間/幅度差值。另外,還顯示出所測量信號的周期、頻率、峰峰值、有效值和平均值5個量值。
整個系統(tǒng)軟件總體模塊如圖3所示,主要包括:初始化模塊、結(jié)束程序模塊、控件消息處理模塊、波形數(shù)據(jù)采集處理顯示模塊、光標及測量結(jié)果顯示模塊。其中后兩部分軟件模塊嚴格說來也屬于一種特殊控件的消息處理。在CVI中有一類特殊控件稱為定時器(Timer),它在用戶界面上是隱藏的,根據(jù)預先設置的時間間隔不斷產(chǎn)生消息,利用其消息回調(diào)函數(shù)處理需要重復執(zhí)行的代碼。波形采集處理顯示程序和數(shù)據(jù)顯示程序分別為20 ms和1.2 s周期循環(huán)執(zhí)行。在執(zhí)行這兩部分循環(huán)程序的同時,如果示波器面板上有控件被操作,應用程序?qū)⒃趦纱窝h(huán)中間處理控件消息,如需要還將調(diào)用底層驅(qū)動程序?qū)τ布M行相應的設置,例如用戶通過鼠標改變量程控件檔位時,對該控件消息的處理是根據(jù)改變后的量程檔位設置數(shù)據(jù)采集板上模擬調(diào)理通道上相應的衰減率。初始化模塊包括定位和開啟數(shù)據(jù)采集板、初始化用戶界面和設置相應初始硬件參數(shù),然后可開始采集數(shù)據(jù)。另外,軟面板右下角有一個特殊按鍵“退出程序”,按下它則結(jié)束上述循環(huán),退出應用程序。
圖3 程序總框圖
要完成如圖2所示示波器功能,最終顯示波形和數(shù)據(jù),波形數(shù)據(jù)采集處理和顯示是最重要的過程。當面板上“RUN/STOP”鍵狀態(tài)為“RUN”后,調(diào)用驅(qū)動程序開始數(shù)據(jù)采集過程,首先要根據(jù)觸發(fā)通道的不同和觸發(fā)方式的不同,選取不同的數(shù)據(jù)采集方式,同時根據(jù)用戶設置的觸發(fā)電平和觸發(fā)位置的不同也應該選擇采集不同時間段的被測數(shù)據(jù)。得到的數(shù)據(jù)在送做顯示之前,采集回來的波形數(shù)據(jù)根據(jù)需要可能還要經(jīng)過一定的處理,如平滑、插值、防抖等。由于示波器的數(shù)字存儲功能、實時采樣特點,以及其單次觸發(fā)、滾動顯示、自動時基量程、波形停留、自動光標測量等特點,決定了此部分程序模塊時序復雜、分支龐多,是設計和調(diào)試的重點。
結(jié)束語
本文所述虛擬數(shù)字存儲示波器技術(shù)已運用在某自動測試系統(tǒng)中,其實現(xiàn)的示波器可雙通道同時工作于100MHz采樣頻率,檢測輸入范圍在10 mV~100V的信號(靈敏度為10mV)。該自動測試系統(tǒng)基于測試領域最先進的PXI總線技術(shù),體積小巧、使用方便,抗干擾能力強,能滿足軍用研究所、基地維修中心等需要。
CopyRight 2013 版權(quán)所有 就是要儀器
宏勝集團北京中儀偉信科技有限公司 |
||
京ICP備09060824號-10 京公網(wǎng)安備11010602004306號-8
|