《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 業(yè)界動態(tài) > 基于DCOM的分布式信號采集處理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)

基于DCOM的分布式信號采集處理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)

2009-08-06
作者:李劍鋒1, 王緒本1, 呂澤均2

  摘? 要: DCOM技術(shù)在信號采集處理系統(tǒng)中的應(yīng)用實(shí)例,描述了該系統(tǒng)的設(shè)計(jì)和實(shí)現(xiàn)方案。

  關(guān)鍵詞: DCOM技術(shù)? 分布式系統(tǒng)? 信號采集處理

?

  隨著Internet的不斷發(fā)展,系統(tǒng)網(wǎng)絡(luò)化和開放性成為系統(tǒng)發(fā)展的主流,以往單一、獨(dú)立的信號采集處理系統(tǒng)已經(jīng)不能適應(yīng)新的形勢。用戶希望能通過Internet/Intranet進(jìn)行遠(yuǎn)距離的信息采集與處理,并且需要能夠支持處于不同主機(jī)上的多個(gè)信號采集端與多個(gè)信號處理端的協(xié)同工作。建立分布式信號采集處理系統(tǒng)是解決上述問題的有效途徑。

  分布式組件對象模型(DCOM)是微軟公司推出的一個(gè)分布式計(jì)算標(biāo)準(zhǔn),已經(jīng)成為開發(fā)分布式系統(tǒng)和多層應(yīng)用的主流技術(shù)之一。因此,充分利用微軟的平臺優(yōu)勢,建立基于DCOM的分布式信號采集處理系統(tǒng),在技術(shù)上具有可靠的保證。本文將介紹一個(gè)基于該思想的應(yīng)用實(shí)例的設(shè)計(jì)與實(shí)現(xiàn)方法。

1? COM、DCOM技術(shù)簡介

  組件對象模型COM(Component Object Model)是微軟公司提出的一種二進(jìn)制軟件交互規(guī)范,提供平臺無關(guān)的、面向?qū)ο蟮耐ㄐ艆f(xié)議。COM使用面向?qū)ο蟮木幊虣C(jī)制,組件之間具有極松馳的耦合性,可以實(shí)現(xiàn)穩(wěn)定的版本轉(zhuǎn)變,使應(yīng)用程序能更好地?cái)U(kuò)充和復(fù)用。此外COM還具有位置無關(guān)性和語言無關(guān)性的特點(diǎn)。

  分布式組件對象模型DCOM(Distributed COM)是對COM模型的分布式擴(kuò)展,使其能夠支持局域網(wǎng)、廣域網(wǎng)甚至Internet中不同計(jì)算機(jī)上的COM對象間的通信,實(shí)現(xiàn)應(yīng)用程序在位置上的分布。DCOM是跨平臺的互操作性標(biāo)準(zhǔn),具有組件位置獨(dú)立性、平臺獨(dú)立性、協(xié)議獨(dú)立性、安全性、可配置性等特點(diǎn)。

2? 分布式信號采集處理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)

2.1 系統(tǒng)功能描述

  分布式信號采集處理系統(tǒng)是一個(gè)既可運(yùn)行于網(wǎng)絡(luò),也可運(yùn)行于單機(jī)環(huán)境下的開放式信號采集與信號處理綜合系統(tǒng)。它完全基于網(wǎng)絡(luò)的概念,利用COM及DCOM的強(qiáng)大優(yōu)勢,將下層信號采集的功能進(jìn)行封裝,以COM服務(wù)的形式透明地提供給網(wǎng)絡(luò)內(nèi)的上層應(yīng)用,保持了平臺的透明性,支持真正的客戶-服務(wù)器模式和分布式軟件結(jié)構(gòu)。系統(tǒng)使用開放的網(wǎng)絡(luò)結(jié)構(gòu)架構(gòu),可以支持多個(gè)信號采集子系統(tǒng)和多個(gè)信號處理子系統(tǒng)。這些子系統(tǒng)完全透明地運(yùn)行于網(wǎng)絡(luò)內(nèi)不同的節(jié)點(diǎn)中。系統(tǒng)實(shí)時(shí)地與這些子系統(tǒng)通信,實(shí)現(xiàn)動態(tài)的管理與配置。系統(tǒng)允許用戶進(jìn)行功能擴(kuò)展和發(fā)揮,為不同用戶對象的二次開發(fā)提供了極大的靈活性,從而滿足企業(yè)內(nèi)部對系統(tǒng)伸縮性和可擴(kuò)展性的要求。

2.2 系統(tǒng)組成

  該系統(tǒng)主要由下面三大子系統(tǒng)組成。

  (1)信號采集子系統(tǒng)。該系統(tǒng)負(fù)責(zé)管理連接于本主機(jī)上的所有A/D采集卡,同時(shí)實(shí)現(xiàn)對采集功能的控制及數(shù)據(jù)的采集與傳送功能。它封裝對數(shù)據(jù)采集卡的底層訪問,向上提供一致的訪問接口,與上層信號處理系統(tǒng)和代理服務(wù)器系統(tǒng)進(jìn)行通信。一方面它要查詢本地機(jī)器上所擁有的采集卡設(shè)備的數(shù)量及其狀況,向代理服務(wù)器系統(tǒng)進(jìn)行設(shè)備的注冊和注銷,同時(shí)要接收來自信號處理系統(tǒng)對指定采集設(shè)備的操作指令,將結(jié)果返回給信號處理系統(tǒng)。一個(gè)信號采集子系統(tǒng)可以管理本地機(jī)器上的多個(gè)采集卡設(shè)備。

  (2)信號處理子系統(tǒng)。該子系統(tǒng)采用多線程并行處理機(jī)制實(shí)現(xiàn)數(shù)字信號處理及與用戶進(jìn)行交互的功能。它接收用戶的操作并將指令發(fā)往相應(yīng)的信號采集子系統(tǒng),根據(jù)系統(tǒng)設(shè)置或用戶操作對信號采集子系統(tǒng)發(fā)回的各種數(shù)據(jù),進(jìn)行各種時(shí)域或頻域的數(shù)字信號處理與顯示。

  (3)代理服務(wù)器子系統(tǒng)。該系統(tǒng)主要負(fù)責(zé)整個(gè)系統(tǒng)內(nèi)所有信號采集子系統(tǒng)與信號處理子系統(tǒng)的注冊、注銷及其連接分配。所有啟動的信號采集子系統(tǒng)和信號處理子系統(tǒng)都必須先在該系統(tǒng)上進(jìn)行注冊,然后根據(jù)系統(tǒng)所使用的某種連接分配策略,對注冊在其上的信號采集子系統(tǒng)和信號處理子系統(tǒng)進(jìn)行連接。只有通過本子系統(tǒng)相互連接以后的信號采集子系統(tǒng)和信號處理子系統(tǒng)才可以相互使用。該系統(tǒng)提供3種連接分配策略:自動均衡連接、根據(jù)配置文件連接和手工連接。

整個(gè)信號采集處理系統(tǒng)由分布在網(wǎng)絡(luò)中的多個(gè)信號采集子系統(tǒng)、多個(gè)信號處理子系統(tǒng)和一個(gè)代理服務(wù)器子系統(tǒng)組成。系統(tǒng)結(jié)構(gòu)如圖1所示。

?

  這些子系統(tǒng)透明地分布于網(wǎng)絡(luò)中的不同主機(jī)上。同一個(gè)主機(jī)上可以單獨(dú)運(yùn)行也可以同時(shí)運(yùn)行信號采集子系統(tǒng)和信號處理子系統(tǒng)。每個(gè)信號采集子系統(tǒng)或信號處理子系統(tǒng)啟動時(shí)都會自動向代理服務(wù)器注冊,退出時(shí)也會進(jìn)行自動注銷。代理服務(wù)器對注冊在其上的子系統(tǒng)進(jìn)行分配連接。一個(gè)信號處理子系統(tǒng)可以要求同時(shí)連接上多個(gè)信號采集子系統(tǒng),一個(gè)信號采集子系統(tǒng)也可以被多個(gè)信號處理子系統(tǒng)所連接。經(jīng)過代理服務(wù)器連接以后的信號采集子系統(tǒng)和信號處理子系統(tǒng)可以直接通信。代理服務(wù)器只負(fù)責(zé)它們的注冊、注銷和連接工作,不再參與它們的數(shù)據(jù)傳輸。這使代理服務(wù)器的工作負(fù)荷減輕,也提高了系統(tǒng)的效率。

2.3 接口設(shè)計(jì)及系統(tǒng)實(shí)現(xiàn)

  系統(tǒng)的開發(fā)工具為VC++6.0,充分利用COM、DCOM的強(qiáng)大優(yōu)勢,提供各子系統(tǒng)相互透明訪問的功能。針對系統(tǒng)三大子系統(tǒng)的功能,基于VC++6.0的ATL和MFC開發(fā)環(huán)境創(chuàng)建如下3個(gè)項(xiàng)目,分別實(shí)現(xiàn)三大系統(tǒng)的設(shè)計(jì)功能:

(1)CollectionServer項(xiàng)目。該項(xiàng)目使用ATL技術(shù)開發(fā),以Windows服務(wù)的形式實(shí)現(xiàn)了信號采集子系統(tǒng)的所有功能,它以后臺服務(wù)進(jìn)程的方式運(yùn)行,不提供用戶界面。

本項(xiàng)目在IDL語言中定義如下的COM組件:

  coclass DataTransmit

  {

????????????? [default] interface IDataTransmit;

????????????? [source] interface IReceiveData;

  };

  該組件主要實(shí)現(xiàn)IDataTransmit接口,以封裝對A/D采集卡的直接訪問功能。IDataTransmit接口只提供ReadData()和ADCommand()二個(gè)方法,向上層信號處理系統(tǒng)提供統(tǒng)一、簡單、方便的調(diào)用方法,同時(shí)也便于指令的擴(kuò)展和更改。信號處理系統(tǒng)調(diào)用ReadData()方法讀取指定的A/D采集卡采集的數(shù)據(jù),而ADCommand()方法則用于信號處理系統(tǒng)向A/D采集卡發(fā)送指令來設(shè)置采集參數(shù)、啟動和停止采集等。IReceiveData接口是一個(gè)源接口,在信號處理子系統(tǒng)ColleMonitor項(xiàng)目中實(shí)現(xiàn),用于本信號采集子系統(tǒng)向信號處理子系統(tǒng)發(fā)送已采集到數(shù)據(jù)的事件通知。

  (2)ColleMonitor項(xiàng)目。該項(xiàng)目使用MFC框架開發(fā),實(shí)現(xiàn)信號處理子系統(tǒng)的功能。在此項(xiàng)目中主要實(shí)現(xiàn)了IReceiveData接口,此接口是一個(gè)事件接口,提供3個(gè)事件:DeviceConnectEvent()、DeviceDisconnectionEvent()、DeviceAcqFinishedEvent()。當(dāng)代理服務(wù)器子系統(tǒng)將某個(gè)信號采集子系統(tǒng)中的某個(gè)A/D設(shè)備連接到本信號處理子系統(tǒng)時(shí),調(diào)用DeviceConnectEvent()方法通知本系統(tǒng),并且將信號采集子系統(tǒng)的IDataTransmit接口指針和設(shè)備標(biāo)識號作為參數(shù)傳給本系統(tǒng)。本系統(tǒng)獲得這二個(gè)參數(shù)后即可通過接口直接對設(shè)備進(jìn)行訪問。同樣,當(dāng)某個(gè)設(shè)備已被取消連接或注銷時(shí),代理服務(wù)器子系統(tǒng)也會調(diào)用DeviceDisconnectionEvent()方法,以通知本系統(tǒng)此設(shè)備不可再用;事件DeviceAcqFinishedEvent()則是當(dāng)某個(gè)設(shè)備完成采集任務(wù)時(shí),由相應(yīng)的信號采集子系統(tǒng)觸發(fā),通知本系統(tǒng)可以調(diào)用相應(yīng)的IDataTransmit接口讀取數(shù)據(jù)。

  (3)ColleBroker項(xiàng)目。該項(xiàng)目使用ATL/WTL技術(shù)開發(fā)實(shí)現(xiàn)代理服務(wù)器的功能。它提供一個(gè)簡單的窗口,顯示已經(jīng)注冊的A/D采集卡設(shè)備和信號處理子系統(tǒng)及它們之間的連接狀況,允許用戶進(jìn)行連接管理和連接設(shè)置。該項(xiàng)目是一個(gè)可遠(yuǎn)程激活的DCOM服務(wù)程序,COM組件定義為coclass ColleBrokerObj。

  {

????????????? [default] interface IRegisterSubSystem;

  };

  IRegisterSubSystem接口實(shí)現(xiàn)下列4個(gè)方法:

  ①RegisteConllectionDevice([in] long hDeviceHandle,[in] BSTR strCardSerial,[in] BSTR strComputer,[in] int DeviceType,[in] IDataTransmit*lpConllection);

  ②UnRegisteConllectionDevice([in] long hDeviceHandle);

  ③RegisteMonitor([in] BSTR strIpAdress,[in] BSTR strComputer,[in] IReceiveData*lpConllection);

  ④UnRegisteMonitor([in] BSTR strComputer)。

  其中:RegisteConllectionDevice()和UnRegisteConllectionDevice()方法由信號采集子系統(tǒng)調(diào)用,用于采集卡的注冊和注銷。由于一個(gè)信號采集子系統(tǒng)可以掛接多個(gè)A/D采集卡設(shè)備,為了提供更大的靈活性,采集系統(tǒng)的注冊和注銷以及與信號處理子系統(tǒng)的連接分配均以A/D采集卡設(shè)備為單位。因此一個(gè)信號采集子系統(tǒng)上的不同采集卡設(shè)備可以被分配給不同的信號處理子系統(tǒng)使用。RegisteMonitor()和UnRegisteMonitor()方法則用于信號處理系統(tǒng)子系統(tǒng)的注冊和注銷,它們以主機(jī)名和IP地址作為注冊標(biāo)識。

  當(dāng)信號采集子系統(tǒng)或信號處理子系統(tǒng)啟動運(yùn)行時(shí),首先激活本身系統(tǒng)的IDataTransmit或IReceiveData接口,然后根據(jù)配置調(diào)用CoCreateInstanceEx()激活代理服務(wù)器系統(tǒng)。當(dāng)成功地查詢到代理服務(wù)的IRegisterSubSystem接口后,信號處理子系統(tǒng)調(diào)用IRegisterSubSystem的RegisteMonitor()直接注冊,將本系統(tǒng)的IReceiveData接口指針傳給代理服務(wù)器子系統(tǒng)。同樣,當(dāng)信號采集子系統(tǒng)查詢到A/D采集卡設(shè)備時(shí),通過代理服務(wù)器的IRegisterSubSystem接口注冊本設(shè)備,也將本系統(tǒng)的IDataTransmit接口指針和設(shè)備標(biāo)識信息傳給代理服務(wù)器。代理服務(wù)器子系統(tǒng)通過交換2個(gè)子系統(tǒng)的接口指針實(shí)現(xiàn)子系統(tǒng)的相互連接。

3? 結(jié)束語

  將DCOM技術(shù)應(yīng)用于信號采集處理系統(tǒng)是一個(gè)很好的嘗試。本文描述了這樣一個(gè)分布式實(shí)例系統(tǒng)的設(shè)計(jì)和實(shí)現(xiàn)過程。實(shí)踐證明,利用DCOM技術(shù),可極大地?cái)U(kuò)展原有的信號采集處理系統(tǒng),使用戶靈活地組建和分布自已的系統(tǒng),在實(shí)際中具有廣闊的應(yīng)用前景。

?

參考文獻(xiàn)

1? Anderson J著,張知一,史元春譯.Visual C++5 ActiveX編程指南.北京:清華大學(xué)出版社,1998

2? Michaelis M著,宋麗紅,李二勇,楊超峰等譯.COM+編程指南.北京:機(jī)械工業(yè)出版社,2002

3? 何艾,葉思敏,謝輝.基于DCOM分布式GIS系統(tǒng)的實(shí)現(xiàn).微計(jì)算機(jī)信息,2002;(3)

4? 趙明宇,徐立中.基于COM/DCOM技術(shù)的分布式監(jiān)控系統(tǒng)實(shí)現(xiàn).計(jì)算機(jī)與現(xiàn)代化,2002;(12)

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點(diǎn)。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問題,請及時(shí)通過電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。
主站蜘蛛池模板: 日韩精品一区二区三区在线观看 | 日韩欧美国产一区二区三区 | 亚洲色图综合 | 色婷婷激婷婷深爱五月小说 | 一区免费在线观看 | 狠狠做五月深爱婷婷天天综合 | 久久精品麻豆日日躁夜夜躁 | 亚洲一级片免费看 | 日韩亚洲欧洲在线com91tv | 欧美一级特黄啪啪片免费看 | 天天色天天综合网 | 五月婷婷爱 | 亚洲人成网站色7799在线观看 | 日本视频免费高清一本18 | 美国videos 18高清hd | 狠狠色丁香婷婷久久综合不卡 | 在线看黄网 | 在线播放a 1| 欧美精品福利在线视频 | 免费观看一级欧美大 | 免费看国产精品久久久久 | 97国产成人精品视频 | 久久99综合国产精品亚洲首页 | 亚洲最大的黄色网址 | 天堂在线中文网 | 精品精品国产欧美在线观看 | 快播制服丝袜 | 亚洲日本va中文字幕在线不卡 | 狠狠色丁香久久婷婷综合五月 | 在线视频h | 精品视频一区二区三区四区 | 99爱在线精品视频网站 | 国产精品综合久成人 | 久久影院秋霞理论 | 精品久久久久久中文字幕一区 | 羞羞视频免费网站含羞草 | 国产日产欧产精品精品推荐在线 | 丝袜国产 | 日韩在线视频一区二区三区 | 亚欧乱亚欧乱色视频免费 | 一本大道高清香蕉中文大在线 |