《電子技術(shù)應用》
您所在的位置:首頁 > 測試測量 > 設(shè)計應用 > 基于并行接口的動態(tài)參數(shù)采集系統(tǒng)的設(shè)計
基于并行接口的動態(tài)參數(shù)采集系統(tǒng)的設(shè)計
微計算機信息
孫德沖,甄國涌
摘要: 近些年來,隨著軍事科學技術(shù)的發(fā)展,武器裝備的結(jié)構(gòu)越來越復雜。為保證武器裝備系統(tǒng)在使用過程中的安全性和可靠性,要求對武器裝備進行以性能和故障檢測為主的技術(shù)保障,不僅要能實時、快速、精確地對多種參數(shù)進行測試,而且要實時地完成大量的數(shù)據(jù)和信息處理。動態(tài)測試系統(tǒng)所采取的技術(shù)途徑是測試成本可以承受的,對于掠海飛行導彈以及戰(zhàn)略導彈再入大氣層過程對常規(guī)的遙測系統(tǒng)在傳輸信息上是無法實現(xiàn)的,這就形成了對動態(tài)測試系統(tǒng)的特別需求。因此測試系統(tǒng)在不斷地發(fā)展以滿足現(xiàn)代武器裝備發(fā)展的要求。它包括獲取信息、傳輸信息、再現(xiàn)信息等。
Abstract:
Key words :

      近些年來,隨著軍事科學技術(shù)的發(fā)展,武器裝備的結(jié)構(gòu)越來越復雜。為保證武器裝備系統(tǒng)在使用過程中的安全性和可靠性,要求對武器裝備進行以性能和故障檢測為主的技術(shù)保障,不僅要能實時、快速、精確地對多種參數(shù)進行測試,而且要實時地完成大量的數(shù)據(jù)和信息處理。動態(tài)測試系統(tǒng)所采取的技術(shù)途徑是測試成本可以承受的,對于掠海飛行導彈以及戰(zhàn)略導彈再入大氣層過程對常規(guī)的遙測系統(tǒng)在傳輸信息上是無法實現(xiàn)的,這就形成了對動態(tài)測試系統(tǒng)的特別需求。因此測試系統(tǒng)在不斷地發(fā)展以滿足現(xiàn)代武器裝備發(fā)展的要求。它包括獲取信息、傳輸信息、再現(xiàn)信息等。

      動態(tài)參數(shù)采集系統(tǒng)常放置于被測體內(nèi),隨被測體作高速運動,要求有極高的可靠性設(shè)計和能對規(guī)定參數(shù)的實時采集,為及時查找被測物體在運作中可能發(fā)生故障的原因,提供有效的測試手段,為產(chǎn)品設(shè)計與問題故障分析提供依據(jù)。

2 系統(tǒng)設(shè)計

      系統(tǒng)采用兩組并行的采集系統(tǒng),分別采用兩種不同的采樣頻率對3路速變信號和16路緩變信號進行采樣,并且分別將采集數(shù)據(jù)存放在各自的存儲器中,兩套采集系統(tǒng)在統(tǒng)一的啟動電路和控制電路的協(xié)調(diào)下,完成對規(guī)定信號的采集。對三路速變信號采用單路83.33KHz的采樣率,數(shù)據(jù)存儲器采用16片單片容量為512K的靜態(tài)存儲器,記錄時間為33.55秒;對16路緩變信號采用單路976.5Hz的采樣率,用單片容量為512K靜態(tài)存儲器存儲數(shù)據(jù),記錄時間為33.55秒。
 



      圖1是采集系統(tǒng)總體設(shè)計框圖,其工作過程為:系統(tǒng)上電后,處于低功耗的待觸發(fā)狀態(tài)。當啟動電路檢測到有效的啟動信號后,其它電路的電源接通,時基電路產(chǎn)生系統(tǒng)的基本時鐘,供速變通道和緩變通道產(chǎn)生讀寫信號和地址推動信號;在時鐘1和時鐘2的統(tǒng)一協(xié)調(diào)下,三路速變信號和十六路緩變信號通過輸入適配網(wǎng)絡(luò),依次到三路選一和十六選一電路,然后,分別進入A/D轉(zhuǎn)換電路進行數(shù)據(jù)采集,并分別將采集數(shù)據(jù)存入數(shù)據(jù)存儲器一和數(shù)據(jù)存儲器二。當達到設(shè)定的采集時間后停止記錄,同時使系統(tǒng)處于低功耗的數(shù)據(jù)保持狀態(tài),此時,可通過計算機并行接口讀取采集系統(tǒng)的數(shù)據(jù)。

2.1 啟動電路設(shè)計

      啟動電路完成采集電路的可靠啟動,具有自動判別有效啟動信號的能力,能有效防止誤觸發(fā)。在系統(tǒng)電源接通后,系統(tǒng)處于低功耗待觸發(fā)狀態(tài),系統(tǒng)功耗較小,系統(tǒng)可以完成長時間的等待狀態(tài)。在此狀態(tài)下,啟動電路對啟動線的信號進行判別,當啟動信號的電平由低變?yōu)楦?,并且持續(xù)時間大于規(guī)定時間,啟動電路通過記錄決策電路啟動采集系統(tǒng)開始數(shù)據(jù)采集,記錄決策電路原理如圖2所示,5V為系統(tǒng)自帶電池供電,VCC為A/D變換電路及其他采集數(shù)據(jù)電路的供電電壓,系統(tǒng)利用如圖所示的決策電路控制VCC的供電,保證系統(tǒng)可靠的觸發(fā),本系統(tǒng)可保證20V以下不觸發(fā)。D觸發(fā)器的1腳和13 腳的輸出狀態(tài)轉(zhuǎn)換圖如圖3所示,依圖可見記錄決策電路有效防止了誤觸發(fā)。
 






2.2 接口電路設(shè)計

     利用計算機并行接口工作在ECP模式下,其控制端口提供的Auto Linefeed、Strobe和Select Printer 3根控制線,進行合理的組合,產(chǎn)生對速變、緩變信號的選擇信號SelDat和讀取數(shù)據(jù)時序信號RD,并產(chǎn)生系統(tǒng)復位信號RESET。SelDat信號輸出到中心控制邏輯,產(chǎn)生存儲器的片選信號,控制讀取速變信號或緩變信號;讀信號RD和復位信號RESET控制地址發(fā)生電路產(chǎn)生讀取存儲器所需的地址;RD使能存儲器,通過并行接口的數(shù)據(jù)端口將存儲器中的采集數(shù)據(jù)讀到計算機。圖4為并行接口ECP模式下接口電路連接框圖。
 



接口電路讀取緩變數(shù)據(jù)時序圖如圖5所示。

 



3 系統(tǒng)軟件的設(shè)計

      并行接口應用系統(tǒng)軟件設(shè)計包括主機操作系統(tǒng)上的客戶驅(qū)動程序和主機應用程序??蛻趄?qū)動程序?qū)嶋H上是一系列控制硬件設(shè)備的函數(shù),是操作系統(tǒng)中控制和連接硬件的關(guān)鍵模塊。主機應用軟件通過客戶驅(qū)動程序與系統(tǒng)外設(shè)進行通信,其主要任務(wù)是將采集進來的數(shù)據(jù)流,根據(jù)所需處理功能的要求來完成各種基于Windows 程序的處理。

3.1 驅(qū)動程序設(shè)計

     DriverStudio中的DriverWorks為WDM驅(qū)動程序提供了一個完整的框架,我們利用其     DriverWizard生成驅(qū)動程序框架,然后添加各功能函數(shù)。在驅(qū)動程序*.cpp中,用戶只需要自己填寫下面函數(shù):在由Drivestudio生成的*Device.cpp中的*_Handler(I)函數(shù)中填寫應用程序消息,如(READ_DATA,CTL_RTYPE)等,或?qū)贸绦虻闹祵懡o端口或把端口值由驅(qū)動程序返回給應用程序。在*_Handler(I) 中填寫應用程序變量應在*Device.h中先定義,然后在*Device.cpp中的消息處理中填寫產(chǎn)生此消息后自己如何處理的代碼。

    下面是我們驅(qū)動程序中類實例:對存儲器的讀操作功能函數(shù)。 
NTSTATUS Drv_NUCDevice::DRV_NUC_READ_DATA_Handler(KIrp I)
{
NTSTATUS status = STATUS_SUCCESS;
t << Entering Drv_NUCDevice::DRV_NUC_READ_DATA_Handler, << I << EOL;
unsigned char *pData;
unsigned char tmp, tmp_in1, tmp_in2;
int para_base_address = 0x378;                 //并行接口地址
int i, j;
pData = (unsigned char*)I.IoctlBuffer();
tmp = _inp(para_base_address+2);
tmp_in1 = tmp & 0xfd;
tmp_in2 = tmp | 0x02;
for(j = 0; j < 1024; j++)                      //讀取1024個字節(jié)數(shù)據(jù)
{
_outp(para_base_address+2, tmp_in2);       //向并行接口發(fā)控制命令
pData[j] = _inp(para_base_address);        //讀取并行接口數(shù)據(jù)到計算機
_outp(para_base_address+2, tmp_in1);
}
I.Information() = 1024;
return status;
}


3.2 用戶程序設(shè)計

      主機應用程序使用Visual Basic6.0編譯環(huán)境,主要是實現(xiàn)調(diào)用*.DLL中的函數(shù),讀取采集系統(tǒng)中的數(shù)據(jù)到計算機,對數(shù)據(jù)進行存儲、顯示處理結(jié)構(gòu)及向采集系統(tǒng)發(fā)送控制命令等。

      而在編寫用戶程序時,首先要建立與外設(shè)的連接,然后才能實施數(shù)據(jù)的傳輸。本設(shè)計使用Visual C++6.0編譯環(huán)境中的API函數(shù)編譯*.DLL連接程序文件:首先查找設(shè)備,打開設(shè)備的句柄,然后進行控制和讀操作,最后關(guān)閉設(shè)備句柄。程序主要用到兩個API函數(shù)CreatFile()和DeviceControl()。下面是一個讀取外設(shè)數(shù)據(jù)的實例:

DNUCEXPORT int CALLBACK ReadData(unsigned char *pData)
{
ULONG nOutput;
DeviceIoControl(handle,
DRV_NUC_READ_DATA,
NULL,
0,
pData,
1024,
&nOutput,
NULL);
return 1;
}


4 結(jié)束語

      本文所設(shè)計的采集系統(tǒng)已經(jīng)在工程上應用,為及時查找被測物體工作過程中可能發(fā)生故障的原因,提供有效的測試手段,為產(chǎn)品設(shè)計與問題故障分析提供依據(jù)。

參考文獻

[1] 張文棟. 存儲測試系統(tǒng)的設(shè)計理論及其在導彈動態(tài)數(shù)據(jù)測試中的實現(xiàn)[D]. 北京理工大學,1995,17-22.
[2] 劉強,謝川,楊文通.12位高速數(shù)據(jù)采集系統(tǒng)的設(shè)計.微計算機信息,2006,23.
[3] Dhananjay.V.Gadre. 并行端口編程. 中國電力出版社,2000,54-63.
[4] 武安河,邰銘,于洪濤. Windows 2000/XP WDM 設(shè)備驅(qū)動程序開發(fā).北京:電子工業(yè)出版社,2000.
文章創(chuàng)新點:本文介紹了基于并行接口的數(shù)據(jù)采集系統(tǒng),具有自動判別有效啟動信號能力的啟動電路,有效防止了誤觸發(fā)造成的損失,提高了系統(tǒng)的可靠性,并以兩種不同的采樣率對規(guī)定要求的信號進行了采樣,采用計算機并行接口將采樣數(shù)據(jù)讀到計算機。

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。