free性丰满hd毛多多,久久综合给合久久狠狠狠97色69 ,欧美成人乱码一区二区三区,国产美女久久久亚洲综合,7777久久亚洲中文字幕

0
問答首頁 最新問題 熱門問題 等待回答標(biāo)簽廣場
我要提問

電子百科

適配器

適配器

關(guān)于USB的CAN總線適配器設(shè)計(jì)

  •   現(xiàn)場總線作為二十世紀(jì)80年代發(fā)展起來的新興技術(shù),在工業(yè)現(xiàn)場已有了廣泛的應(yīng)用。在比較有影響力的幾種現(xiàn)場總線中,CAN總線以其突出的優(yōu)點(diǎn)不僅大量應(yīng)用于工業(yè)現(xiàn)場,而且在樓宇自動化、智能終端設(shè)備等民用領(lǐng)域也有了長足的發(fā)展。

      現(xiàn)場總線網(wǎng)絡(luò)技術(shù)的實(shí)現(xiàn)需要與計(jì)算機(jī)相結(jié)合。以往CAN總線網(wǎng)絡(luò)與計(jì)算機(jī)的連接采用RS232、ISA或PCI接口。但是隨著計(jì)算機(jī)接口技術(shù)的發(fā)展,ISA接口已經(jīng)逐漸被淘汰;RS232接口數(shù)據(jù)傳輸率太低;PCI雖然仍是高速外設(shè)與計(jì)算機(jī)接口的主要渠道,但其主要缺點(diǎn)是占用有限的系統(tǒng)資源、設(shè)計(jì)復(fù)雜、需有高質(zhì)量的驅(qū)動程序保證系統(tǒng)的穩(wěn)定,且無法用于便攜式計(jì)算機(jī)的擴(kuò)展。隨著USB1.1、USB2.0規(guī)范的相繼制定,為外設(shè)與計(jì)算機(jī)的接口提出了新的發(fā)展方向。USB的主要特點(diǎn)有:外設(shè)安裝簡單,可實(shí)現(xiàn)熱插撥;通訊速率高,USB1.1全速傳送速率為12Mbps,與標(biāo)準(zhǔn)串行端口相比,大約快100倍;支持多設(shè)備連接;提供內(nèi)置電源。

      本文給出一種在Windows2000下使用USB1.1協(xié)議實(shí)現(xiàn)CAN總線適配器的設(shè)計(jì)方法。整個設(shè)計(jì)主要開發(fā)適配器的固件及計(jì)算機(jī)的驅(qū)動程序、應(yīng)用程序,以達(dá)到用USB接口連接現(xiàn)場CAN總線網(wǎng)絡(luò)的目的。

    原理框圖

      

      1 適配器硬件接口設(shè)計(jì)

      適配器硬件電路由微控制器、CAN總線接口、USB總線接口和DC-DC隔離電源模塊等組成。原理框圖如圖1所示。

      微控制器P89C51RD2是Philips公司生產(chǎn)的增強(qiáng)型MCS-51兼容單片機(jī),片內(nèi)集成64KB閃存和1KB擴(kuò)展RAM,雙數(shù)據(jù)指針,4級中斷優(yōu)先級,7個中斷源,內(nèi)置看門狗,可編程時鐘輸出,在6時鐘模式下工作,速度是標(biāo)準(zhǔn)51單片機(jī)的兩倍。此時外部最高頻率可達(dá)20MHz。在高速、大程序容量、中小規(guī)模數(shù)據(jù)處理場合是一款非常理想的單片機(jī)型。

      CAN總線接口使用Philips公司的獨(dú)立CAN總線控制器SJA1000,并由光耦6N136進(jìn)行總線隔離。SJA1000是一種獨(dú)立控制器,用于移動目標(biāo)和一般工業(yè)環(huán)境中的區(qū)域網(wǎng)絡(luò)控制,符合CAN2.0A和2.0B規(guī)范,最高速率可在達(dá)1Mbps。CAN總線收發(fā)器采用PCA82C250。

      PDIUSBD12是Philips公司推出的全速USB接口器件,完全兼容USB1.1規(guī)范。圖1中D+引腳信號電平通過器件SoftConnect命令內(nèi)部上拉,從而向主機(jī)表示為一個全速設(shè)備。EOT引腳自動檢測USB接口的VBUS電壓以確定USB電纜是否連接到了主機(jī)。SUSPEND是雙向引腳,用以向微控制器指示器件是否掛起。當(dāng)有USB總線事件發(fā)生時,引腳向微控制器發(fā)出中斷信號。PDIUSBD12支持總線復(fù)用和非復(fù)用兩種并行接口模式,以方便連接不同類型的微控制器。圖1中采用總線復(fù)用方式,當(dāng)用奇數(shù)地址訪問PDIUSBD12時被認(rèn)為是命令,偶數(shù)地址訪問則被認(rèn)為是數(shù)據(jù)讀寫。

      各器件都需要外部時鐘信號,而且它們自身也都有可編程的時鐘輸出功能,這就給系統(tǒng)的時鐘設(shè)計(jì)帶來了便利。圖1中微控制器6時鐘運(yùn)行模式下,外部為12MHz晶振。P89C51RD2的P1.1引腳產(chǎn)生6MHz方波作為PDIUSBD12的輸入時鐘;通過PDIUSBD12的SetMode寄存器編程使CLKOUT輸出時鐘頻率為24MHz,作為SJA1000的外部輸入時鐘。

      2 軟件設(shè)計(jì)

      軟件設(shè)計(jì)包括微控制器的固件設(shè)計(jì)和計(jì)算機(jī)端USB驅(qū)動程序兩部分。

      2.1 微控制器固件編程

      固件編程是USB數(shù)據(jù)傳輸系統(tǒng)中終端設(shè)備程序設(shè)計(jì)的一個重要概念。微控制器通過固件是程序與計(jì)算機(jī)進(jìn)行數(shù)據(jù)交換。固件設(shè)計(jì)的目的是:使PDIUSBD12在USB上達(dá)到最大的傳輸速率;增加系統(tǒng)的可擴(kuò)展性和硬件無關(guān)性。

      固件要實(shí)現(xiàn)的內(nèi)容:一是對SJA1000初始化,接收CAN總線送來的數(shù)據(jù),收集CAN網(wǎng)絡(luò)狀態(tài)信息,并將主機(jī)的數(shù)據(jù)下發(fā)到CAN網(wǎng)絡(luò);二是對PDIUSBD12初始化,完成USB總線連接過程,并組織CAN網(wǎng)絡(luò)和主機(jī)之間的數(shù)據(jù)傳送。設(shè)計(jì)中采用KeilC51軟件編譯環(huán)境,C51和ASM混合編程方式。

      SJA1000和PDIUSBD12都有完善的中斷機(jī)制,微控制器可以通過讀它們的中斷寄存器獲得總線事件。為了提高固件的運(yùn)行效率,主程序?qū)ο到y(tǒng)進(jìn)行實(shí)始化后開放中斷,在中斷服務(wù)程序中對事件進(jìn)行分析和必要的處理,并設(shè)置相應(yīng)的變量標(biāo)志和數(shù)據(jù)緩沖區(qū)。主程序則循環(huán)查詢變量標(biāo)志,調(diào)用相應(yīng)的子程序進(jìn)行處理。這種程序結(jié)構(gòu)使得主程序能夠在前臺處理各種數(shù)據(jù)傳送任務(wù),同時又可以通過中斷在后臺及時處理總線事件。

      2.1.1 CAN協(xié)議實(shí)現(xiàn)

      SJA1000支持BasicCAN和PeliCAN兩種協(xié)議模式。在適配器設(shè)計(jì)中采用了BasicCAN模式。中斷設(shè)為電平中斷方式,SJA1000中斷服務(wù)程序框圖如圖2所示。

    中斷服務(wù)程序框圖

      2.1.2 USB1.1協(xié)議實(shí)現(xiàn)

      PDIUSBD12支持所有的四種USB數(shù)據(jù)傳輸方式。在適配器的設(shè)計(jì)中使用了控制傳輸、中斷傳輸和批量傳輸??刂苽鬏斨兄挥脕韨鬟f控制信息,固定使用端點(diǎn)0;中斷傳輸使用端點(diǎn)1,用來傳送CAN網(wǎng)絡(luò)狀態(tài)信息;批量傳輸用來實(shí)現(xiàn)主機(jī)和CAN網(wǎng)絡(luò)節(jié)點(diǎn)之間的數(shù)據(jù)傳送,使用端點(diǎn)2。圖3是PDIUSBD12中斷服務(wù)程序框圖。

    中斷服務(wù)程序框圖

      2.2 驅(qū)動程序設(shè)計(jì)

      USB驅(qū)動程序?qū)儆赪DM(Windows driver module)類型。WDM驅(qū)動程序是分層的,引入了FDO(Function Device Object)和PDO(Physical Device Object)兩個新類來描述硬件,每一個物理硬件有一個PDO,但是可以有多個FDO,在驅(qū)動程序中直接操作的是PDO和FDO。系統(tǒng)通過全局唯一標(biāo)識符GUID實(shí)現(xiàn)驅(qū)動程序的識別。應(yīng)用程序和WDM驅(qū)動程序通信時,系統(tǒng)為每個用戶請求打包形成一個I/O請求包發(fā)送到驅(qū)動程序。

    Windows中USB的通信層次結(jié)構(gòu)模型

      圖4是Windows中USB的通信層次結(jié)構(gòu)模型。圖4系統(tǒng)軟件方塊中的底部是Windows系統(tǒng)提供的驅(qū)動程序,包括主控制器驅(qū)動程序(OPENHCI.SYS或者UHCD.SYS)、HUB驅(qū)動程序(USBHUB.SYS)是一個類驅(qū)動程序(USBD.SYS)。

      Windows2000下驅(qū)動程序的設(shè)計(jì)工具是VC++和Win2000DDK,但是直接使用DDK編程有相當(dāng)大的難度。目前有第三方軟件廠商提供了一些驅(qū)動程序開發(fā)工具,如Jungo公司的WinDriver、Compuware公司的DriverStudio等。這些工具仍然是基于WindowsDDK的,但是進(jìn)行了新的封裝,提供了驅(qū)動程序設(shè)計(jì)向?qū)А?/font>

      適配器設(shè)計(jì)中采用了DriverStudio作為驅(qū)動程序開發(fā)工具。利用其中的DriverWorks一步步地作出選擇并修改少量參數(shù),即可生成驅(qū)動程序框架和測試臺應(yīng)用程序框架,對USB設(shè)備的通用性部分支持得很好。在程序框架,對USB設(shè)備的通用性部分支持得很好。在VC++中對向?qū)傻拇a作修改,并對設(shè)備特殊功能部分添加處理代碼,然后用VC++編譯為*.SYS文件,就是一個完整的驅(qū)動程序。SoftIce是DriverStudio的另一個調(diào)試工具,可以對驅(qū)動程序進(jìn)行操作系統(tǒng)內(nèi)核級的跟蹤與調(diào)試。

      生成驅(qū)動程序后,編寫相應(yīng)的INF文件是重要的一步。INF文件在操作系統(tǒng)發(fā)現(xiàn)新硬件之后向系統(tǒng)指明應(yīng)該安裝的驅(qū)動程序、系統(tǒng)向設(shè)備提供的服務(wù)以及注冊表項(xiàng)要修改的內(nèi)容。

      基于USB接口的CAN總線適配器經(jīng)過試驗(yàn)運(yùn)行證明:在中小規(guī)模和短時大數(shù)據(jù)塊傳送時,能夠很好地完成網(wǎng)絡(luò)通信任務(wù)。USB接口是計(jì)算機(jī)外設(shè)的發(fā)展趨勢,目前主要用在中低速場合。隨著USB2.0規(guī)范的推出,又逐漸向高速應(yīng)用發(fā)展。因此將現(xiàn)場總線網(wǎng)絡(luò)和計(jì)算機(jī)接口相連的適配器具有廣泛的應(yīng)用前景。

DeVicoNet的無線節(jié)點(diǎn)適配器設(shè)計(jì)

  •   DeviceNet是一種連接工業(yè)底層控制設(shè)備的開放式網(wǎng)絡(luò),自1994年提出以來,得到了廣泛的應(yīng)用。然而,組建控制系統(tǒng)網(wǎng)絡(luò)時都面臨著布線的問題,雖然采用以太網(wǎng)的現(xiàn)場總線相對來說成本低、維護(hù)方便,但在實(shí)際的應(yīng)用中仍然會受到客觀條件的限制,特別是在環(huán)境惡劣的條件下,不能采用布線來解決問題。在這種情況下,將無線技術(shù)引入到工業(yè)控制領(lǐng)域就顯得很有必要了。基于這一目的,在設(shè)計(jì)適配器過程中,以無線局域網(wǎng)協(xié)議IEEE802.1lb為基礎(chǔ),結(jié)合DevlceNet應(yīng)用層協(xié)議和適用于工業(yè)現(xiàn)場設(shè)備間通信的通信方式,提出實(shí)現(xiàn)無線功能的DeviceNet從站適配器的設(shè)計(jì)方法。

      1 DOViceNet總線與IEEE802.11b

      1.1 DeviceNet總線

      DevlceNet是一種連接工業(yè)底層控制設(shè)備的開放式網(wǎng)絡(luò),采用先進(jìn)的網(wǎng)絡(luò)通信技術(shù),具有低成本、高效率、高可靠性、高性能的特點(diǎn)。它可以提供底層網(wǎng)絡(luò)設(shè)備互連的低成本、高效率的解決方案,現(xiàn)場設(shè)備的智能化,主從和對等通信能力。兩個主要的用途為:傳送與現(xiàn)場設(shè)備相關(guān)的控制和狀態(tài)信息:傳送與被控制系統(tǒng)相關(guān)的診斷。配置等其他信息。

      1.2 IEEE802.11b

      1999年9月,電子和電氣工程師協(xié)會(IEEE)批準(zhǔn)了IEEE 802.11b規(guī)范。此規(guī)范稱為wi—Fi。IEEEE 802.11b定義了用于在共享的無線局域網(wǎng)(WLAN)進(jìn)行通信的物理層和媒體訪問控制(MAC)子層,是目前最流行的WLAN協(xié)議,使用2.4 GHz頻段;最高速率11 Mbps,實(shí)際使用速率根據(jù)距離和信號強(qiáng)度可變(150 m內(nèi)1~2 Mbps,50 m內(nèi)可達(dá)到11 Mbps),802.11b的較低速率使得無線數(shù)據(jù)網(wǎng)的使用成本能夠被大眾接受(目前接入節(jié)點(diǎn)的成本僅為10~30美元);具有增強(qiáng)物理層,可以和1 Mbps和2 Mbps的802.11bps DSSS系統(tǒng)互操作;編碼方式采用CCK(Complementary Code Keylng)技術(shù)。

      2 系統(tǒng)總體框架和無線從站設(shè)計(jì)思路

      2.1 無線網(wǎng)絡(luò)總體框架

      整個網(wǎng)絡(luò)分為三個部分:組態(tài)軟件(上位機(jī))、主節(jié)點(diǎn)(一般為PLC)和從站。基于無線技術(shù)的DeviceNet網(wǎng)絡(luò)如圖1所示。其中網(wǎng)絡(luò)組態(tài)軟件包括RockweU公司的RSIinx和RSworks實(shí)時監(jiān)控網(wǎng)絡(luò)的狀態(tài),并可對主從節(jié)點(diǎn)的信息進(jìn)行配置。PC通過無線網(wǎng)卡與各節(jié)點(diǎn)進(jìn)行通信,在無主節(jié)點(diǎn)的情況下可直接對各從站進(jìn)行直接控制。在通信過程中,各節(jié)點(diǎn)模塊均需要相應(yīng)的接收和發(fā)送模塊。在對主、從節(jié)點(diǎn)之間配置后,可實(shí)現(xiàn)主從的控制過程。

    基于無線技術(shù)的DeviceNet網(wǎng)絡(luò)圖

      2.2設(shè)計(jì)思路

      基于802.11b的DeviceNet無線網(wǎng)絡(luò),實(shí)際上是將原來通過CAN網(wǎng)絡(luò)進(jìn)行通信的過程交給無線收發(fā)器來完成。這里,網(wǎng)絡(luò)接口采用物理層接口,即指使用無線信道替代通常的有線信道,而物理層以上各層不變。這樣做的最大優(yōu)點(diǎn)是上層的網(wǎng)絡(luò)操作系統(tǒng)及相應(yīng)的驅(qū)動程序可不做任何修改。這種接口方式在使用時一般作為有線網(wǎng)的集線器和無線轉(zhuǎn)發(fā)器,以實(shí)現(xiàn)有線局域網(wǎng)間互連或擴(kuò)大有線局域網(wǎng)的覆蓋面積。無線節(jié)點(diǎn)由適配器和從站構(gòu)成,根據(jù)物理層接口的原理,設(shè)計(jì)中無線收發(fā)完成信號的傳輸,而鏈路層的功能交給FPGA完成。

      3 從站適配器的設(shè)計(jì)

      3.1 適配器系統(tǒng)定位

      某系列變頻器具備Modbus通信能力,但不具備DeviceNet通信能力。適配器位于從站和DeviceNet網(wǎng)絡(luò)之間,使變頻器能夠運(yùn)行于基于無線技術(shù)的DeviceNet網(wǎng)絡(luò)上。

      3.2硬件設(shè)計(jì)

      系統(tǒng)使用ADI公司16位定點(diǎn)DSP。Blackfin531。該款芯片可以實(shí)現(xiàn)400 MHz的連續(xù)工作,系統(tǒng)支持片外同、異步存儲器,具有2個雙通道全雙工同步串行接口和1個支持IrDA的通行串行口。其中DeviceNet端口使用FPGA+802.11b無線收發(fā)器與DeviceNet網(wǎng)絡(luò)連接。

      802.1lb無線收發(fā)電路主要由MAX2820和MAX2242等組合實(shí)現(xiàn)。MAX2820是單片零中頻收發(fā)器.專為工作在2.4~2.5 GHz ISM(工作/科學(xué)/醫(yī)療)波段的802.11b應(yīng)用而設(shè)計(jì),內(nèi)部包含實(shí)現(xiàn)802.11b射頻到基帶傳輸所需的所有電路,加上功率放大器MAX2242、RF開關(guān)和帶通濾波器等就可以構(gòu)建完整的前端電路。FPGA選用Xilinx公司的XCV50E,硬件電路如圖2所示。

    硬件電路

      3.3數(shù)據(jù)鏈路層

      數(shù)據(jù)鏈路層主要包括邏輯鏈接子層(LLC)和媒體訪問控制子層(MAC)。另外,由于無線網(wǎng)絡(luò)和DeviceNet網(wǎng)絡(luò)頻率有差異,故應(yīng)有頻率轉(zhuǎn)換的功能。

      (1)硬件選擇

      數(shù)據(jù)鏈路功能由FPGA實(shí)現(xiàn)。本設(shè)計(jì)選用Xilinx公司VirtexE系列系統(tǒng)級XcV50E。其主要資源有71 693個系統(tǒng)門、65 536位塊內(nèi)存和176個用戶I/O口(其中包括83對差分I/o口)。主要特性有:1.8 V超低核心電壓,支持20種高速總線標(biāo)準(zhǔn),8個全數(shù)字延遲鎖定環(huán),0.18μm 6層金屬工藝,支持IEEE 1149.1邊界掃描;具有卓越的整體性能和高速特性,是實(shí)現(xiàn)高速系統(tǒng)級設(shè)計(jì)的優(yōu)選芯片。

      (2)數(shù)據(jù)幀格式和仲裁的實(shí)現(xiàn)

      數(shù)據(jù)幀分為長幀結(jié)構(gòu)和短幀結(jié)構(gòu),前者用于節(jié)點(diǎn)間的報(bào)文交換,結(jié)構(gòu)如圖3所示;后者用于仲裁,無數(shù)據(jù)區(qū)。

    結(jié)構(gòu)

      短幀實(shí)現(xiàn)仲裁正是利用到標(biāo)識符的11位。當(dāng)總線開放時,任何單元均可開始發(fā)送報(bào)文。若同時由兩個或者更多的單元開始發(fā)送,總線訪問沖突運(yùn)用逐位仲裁規(guī)則,借助標(biāo)識符ID解決。這種仲裁規(guī)則可以使信息和時間均無損失。標(biāo)識符包含兩個具體含義:一是在報(bào)文交換時,代表邊接的生產(chǎn)者/消費(fèi)者關(guān)系;二是代表報(bào)文本身的優(yōu)先級(越小優(yōu)先級越高)。無線網(wǎng)絡(luò)中最大節(jié)點(diǎn)數(shù)為64,掃描器(主站)地址定義為O,仲裁的過程如圖4所示。

    仲裁的過程圖

      3.4 應(yīng)用層設(shè)計(jì)

      本節(jié)從對象建模與尋址、事件驅(qū)動與消息響應(yīng)兩個方面,簡要介紹無線從節(jié)點(diǎn)的應(yīng)用層設(shè)計(jì)。

      (1)對象建模與尋址

      本設(shè)計(jì)對適配器建立圖5所示的對象關(guān)系。圖5中可以看出,適配器包含10個對象,其中4個為DeviceNet節(jié)點(diǎn)必須包含的對象,5個與應(yīng)用相關(guān)的對象,1個組裝對象。DeviceNet應(yīng)用面向?qū)ο蟮募夹g(shù),將網(wǎng)絡(luò)節(jié)點(diǎn)抽象為若干個對象類的集合,每個對象有特定的功能,具有自己的屬性和服務(wù),表現(xiàn)出一定的行為。網(wǎng)絡(luò)尋址的過程是:根據(jù)節(jié)點(diǎn)的MACID值確定當(dāng)前被訪問的設(shè)備,并由對象、實(shí)例、屬性為路徑定位具體的操作。

    適配器建立

     ?。?)事件驅(qū)動與消息響應(yīng)

      事件是指改變系統(tǒng)運(yùn)行狀態(tài)和運(yùn)行流程的系統(tǒng)外部或內(nèi)部的變化,消息是表示事件是否發(fā)生的標(biāo)志。當(dāng)系統(tǒng)一有事件發(fā)生,系統(tǒng)并不立即處理,而是發(fā)送一個事件對應(yīng)的消息,系統(tǒng)的后臺不停地捕捉消息。根據(jù)收到的消息執(zhí)行相應(yīng)的任務(wù)。這樣盡管系統(tǒng)事件的觸發(fā)是隨機(jī)、分散的,但是事件的處理是集中的,程序思路清晰,管理簡單。圖6是基于這種思想的軟件結(jié)構(gòu)。

    基于這種思想的軟件結(jié)構(gòu)

      適配器采用這種程序組織思路,定義了十多個事件。將這些事件分為6類,即故障事件、DeviceNet事件、Modbus事件、RS232事件、定時器事件、設(shè)備更新事件和空閑事件,每一類事件中又包含若干個子事件。利用全局變量Global[_]Event來定義各事件的優(yōu)先級,優(yōu)先級高的事件先處理,優(yōu)先級低的事件后處理。

      4 總 結(jié)

      設(shè)計(jì)將無線技術(shù)應(yīng)用于DevieNet網(wǎng)絡(luò)的從站適配器的設(shè)計(jì)中,使得無線領(lǐng)域的發(fā)展惠及傳統(tǒng)的控制領(lǐng)域。其主要特點(diǎn)為:物理層使用了802.11b協(xié)議通信,傳送距離遠(yuǎn),突破了傳統(tǒng)的鋪線環(huán)節(jié)的局限性;利用FPGA實(shí)現(xiàn)鏈路層功能,而對象建模和事件驅(qū)動與消息響應(yīng)則是協(xié)議軟件設(shè)計(jì)中的重點(diǎn)??傊跓o線技術(shù)是當(dāng)前總線技術(shù)領(lǐng)域中研究的重要方向,而802.11b具備應(yīng)用廣泛、價格低廉的特點(diǎn),成為其中的熱點(diǎn)。

基于智能應(yīng)用平臺的適配器的設(shè)計(jì)

  •   應(yīng)急聯(lián)動要求整個系統(tǒng)快速、靈活、高效地運(yùn)作,因此,必然要求這些子系統(tǒng)能夠協(xié)同工作,目前雖然各個 子系統(tǒng)的技術(shù)都已經(jīng)比較成熟,但都自成體系,往往由于接口、架構(gòu)的不統(tǒng)一使得這些本應(yīng)緊密集成的子系統(tǒng)成 為了一個個的“信息孤島”,相互間的協(xié)調(diào)配合往往在兩個系統(tǒng)之間單一進(jìn)行,每個系統(tǒng)要維護(hù)多個接口,系統(tǒng) 整合程度很低且存在瓶頸。各子系統(tǒng)間的信息整合基本上是基于點(diǎn)對點(diǎn)方式開發(fā)完成,沒有統(tǒng)一的標(biāo)準(zhǔn)接口;對 系統(tǒng)聯(lián)動缺乏統(tǒng)一的控制機(jī)制,并且開放性差,難以隨著應(yīng)急聯(lián)動業(yè)務(wù)要求的變化而靈活應(yīng)對。

      智能應(yīng)用平臺(Intelligent Application Platform,IAP)是以智能網(wǎng)技術(shù)為基礎(chǔ),結(jié)合計(jì)算機(jī)輔助決 策,多種信息綜合處理的平臺。IAP 平臺就是為了解決前述的系統(tǒng)集成問題,作為粘合劑來連接系統(tǒng)內(nèi)外各種業(yè) 務(wù)相關(guān)的異構(gòu)系統(tǒng)、應(yīng)用以及數(shù)據(jù)源,從而滿足各個子系統(tǒng)之間無縫共享和交換數(shù)據(jù)的需要。其中適配器為各城 市應(yīng)急子系統(tǒng)接入到IAP 提供了適配轉(zhuǎn)換橋梁。 1. 智能應(yīng)用平臺(IAP)

      智能應(yīng)用平臺(IAP)完成后應(yīng)用于城市應(yīng)急聯(lián)動系統(tǒng)中的理想結(jié)構(gòu)應(yīng)如圖1 所示,系統(tǒng)中各個功能子系統(tǒng)通 過對應(yīng)的適配器接入到智能應(yīng)用平臺(IAP)中,各子系統(tǒng)之間通過平臺實(shí)現(xiàn)了客戶請求與服務(wù)提供的關(guān)系,即 一個子系統(tǒng)向平臺注冊并提供其自身實(shí)現(xiàn)的功能(服務(wù)提供),同時它也可以向平臺查詢其需要的功能,并借助 平臺使用該功能(客戶請求);這樣的客戶/服務(wù)關(guān)系由IAP 來統(tǒng)一管理,IAP 對建立在其之上的各個系統(tǒng)來說是 透明的。通過這樣統(tǒng)一的系統(tǒng)交換集成平臺,以取代原有系統(tǒng)間多對多的網(wǎng)狀聯(lián)接。

    城市應(yīng)急系統(tǒng)IAP 示意圖

      圖1 城市應(yīng)急系統(tǒng)IAP 示意圖

      2. 基于IAP 的適配器設(shè)計(jì)

      IAP 適配器位于結(jié)構(gòu)模型的接入層,它是各城市應(yīng)急子系統(tǒng)與平臺進(jìn)行交互的橋梁,實(shí)現(xiàn)各個子系統(tǒng)與IAP 平臺之間共享和交換數(shù)據(jù)。目前連接到IAP 的各子系統(tǒng)大部分以微軟的視窗操作系統(tǒng)為工作平臺,因此IAP 適 配器也是基于Windows 平臺下的。

      2.1 IAP 適配器設(shè)計(jì)方案概述

      Windows 下的適配器實(shí)現(xiàn)為ActiveX 控件的方式,適配器在系統(tǒng)中所處的位置如圖2 所示:

    IAP 適配器示意圖

      圖2 IAP 適配器示意圖

      適配器嵌入到各子系統(tǒng)應(yīng)用中,提供調(diào)用方法,代理各子系統(tǒng)應(yīng)用向 IAP 平臺發(fā)送消息,同時在收到消息 的時候,通過觸發(fā)事件,將消息傳遞給各子系統(tǒng)應(yīng)用。在IAP 平臺側(cè)以接入服務(wù)的形式供適配器連接,適配器 與IAP 平臺之間的消息采用XML 規(guī)范實(shí)現(xiàn),便于靈活擴(kuò)展。因此適配器必須實(shí)現(xiàn)XML 文檔的解析和XML 文 檔的生成。適配器與IAP 平臺的接入服務(wù)間采用Socket 連接,以后可以考慮采用SOAP(Simple Object Access Protocal,簡單對象接受協(xié)議),這是因?yàn)橛捎谙⒁呀?jīng)定義為XML 方式,可以比較方便地向SOAP 過渡。

      2.2 IAP 適配器模塊結(jié)構(gòu)

      適配器內(nèi)部可分為三個模塊,分別為通訊模塊、消息轉(zhuǎn)換模塊、子系統(tǒng)接口模塊,其結(jié)構(gòu)如圖 3 所示:

     IAP 適配器內(nèi)部結(jié)構(gòu)圖

      圖 3 IAP 適配器內(nèi)部結(jié)構(gòu)圖

      各模塊功能敘述如下: 通訊模塊:處理與IAP 平臺接入服務(wù)之間的底層通訊,數(shù)據(jù)包的收發(fā)。通訊層包含收發(fā)一對線程,確保通訊 層不成為性能瓶頸。通訊層與接入服務(wù)間建立并維護(hù)一條Socket 連接,適配器作為客戶端。

      消息轉(zhuǎn)換模塊:包含一個工作線程,通訊模塊完成消息包的接收后,即把包發(fā)往消息轉(zhuǎn)換模塊的工作線程, XML 消息的解析是在工作線程中完成的。同時也處理將數(shù)據(jù)轉(zhuǎn)換為XML 格式數(shù)據(jù)包發(fā)給通訊模塊。 子系統(tǒng)接口模塊:接收消息轉(zhuǎn)換模塊發(fā)來解析后的消息,并觸發(fā)ActiveX 事件。同時,接收各子系統(tǒng)應(yīng)用對 其接口方法的調(diào)用,并將有關(guān)數(shù)據(jù)發(fā)送給消息轉(zhuǎn)換模塊處理。

      2.3 適配器消息處理機(jī)制

      適配器的消息處理分為從 IAP 接收及向IAP 發(fā)送兩個方向。從IAP 接收請求的消息處理流程如圖4 所示:

    接收IAP 消息處理流程圖

      圖4 接收IAP 消息處理流程圖

      A) 通訊層收到業(yè)務(wù)請求消息,完成消息的接收后,將其發(fā)送到業(yè)務(wù)層的工作線程;

      B) 工作線程將消息中的XML 字串解析后,得到命令碼,根據(jù)不同的命令碼調(diào)用不同的處理函數(shù),對XML 字串進(jìn)行進(jìn)一步解析;

      C) 完成 XML 的解析后,將消息中的各參數(shù)提取出來,如果帶有應(yīng)用數(shù)據(jù)的附件,則將提取附件。將消息打 包成內(nèi)部數(shù)據(jù)結(jié)構(gòu),用窗口消息的方式發(fā)送給接口層的控件窗口;

      D) 控件窗口接收到業(yè)務(wù)層發(fā)來的消息,從消息中解出觸發(fā)ActiveX 事件所需要的參數(shù),如果需要生成 VARIANT 則進(jìn)行參數(shù)的打包,然后觸發(fā)事件,將業(yè)務(wù)調(diào)用請求傳遞給各子系統(tǒng)應(yīng)用; 向IAP 發(fā)送請求的消息處理流程則與從IAP 接收消息流程相反,敘述如下:

      a) 各子系統(tǒng)應(yīng)用通過調(diào)用 ActiveX 控件的方法,將業(yè)務(wù)請求的參數(shù)傳遞給適配器;

      b) 適配器接口層將調(diào)用參數(shù)打包成 XML 消息,如果帶有終端應(yīng)用數(shù)據(jù),則將其作為附件打包;

      c) 調(diào)用通訊層的網(wǎng)絡(luò)發(fā)送接口,通過通訊層的發(fā)送線程將消息發(fā)送給 IAP 的接入服務(wù)。 向IAP 發(fā)送請求消息流程如圖5 所示:

    向IAP 發(fā)送消息處理流程圖

      圖5 向IAP 發(fā)送消息處理流程圖

      2.4 適配器各模塊設(shè)計(jì)

     ?。?)通訊模塊設(shè)計(jì)

      針對用于Windows 平臺的ActiveX 控件,考慮采用Windows 下的異步Socket 機(jī)制來實(shí)現(xiàn),Socket 事件掛接 一個窗口句柄,該窗口句柄在接收線程中創(chuàng)建,因此共享該線程的消息循環(huán)。對于Socket 的寫消息,在接收線 程收到后轉(zhuǎn)發(fā)發(fā)送線程處理,業(yè)務(wù)層對Socket 的寫操作也發(fā)送到發(fā)送線程處理。 以上機(jī)制封裝在基類CSocketBase 中,同時它還封裝了作為服務(wù)端進(jìn)行監(jiān)聽的機(jī)制,在它的派生類中根據(jù)是 作為客戶端或服務(wù)端,初始化為不同的方式。

     ?。?)消息轉(zhuǎn)換模塊設(shè)計(jì)

      消息轉(zhuǎn)換模塊以一個工作線程類CworkThread 來實(shí)現(xiàn),類中考慮線程池機(jī)制,即可以啟動多個工作線程。工 作線程處理IAP 平臺發(fā)來的消息中XML 部分的解析,同時對終端應(yīng)用的調(diào)用,生成相應(yīng)的XML 文檔,并發(fā)送到通 訊層。工作線程從收到的XML 子串中解析出命令字,對不同的命令,調(diào)用不同的處理函數(shù)來進(jìn)行處理;完成XML 字串的解析后,將其轉(zhuǎn)換為內(nèi)部格式,發(fā)送到接口層。生成XML 文檔處理的流程與上述方式相反。XML 轉(zhuǎn)換的具體實(shí)現(xiàn)采用開放源碼的xerces 庫,并對其做二次封裝以方便調(diào)用。

      (3)子系統(tǒng)接口模塊設(shè)計(jì)

      子系統(tǒng)接口模塊放在整個適配器的主線程中,包含控件窗口的消息循環(huán)。各子系統(tǒng)應(yīng)用將業(yè)務(wù)請求以窗口消 息的形式發(fā)送給控件窗口,由窗口類中映射的消息進(jìn)行處理,將請求傳遞給轉(zhuǎn)換模塊。反之,接口模塊在收到消 息后,根據(jù)不同的消息觸發(fā)不同的ActiveX 事件,從而將響應(yīng)傳遞給各子系統(tǒng)應(yīng)用處理。接口層必須觸發(fā)的事件 包括:

      與 IAP 平臺接入服務(wù)Socket 連接建立事件;

      向 IAP 注冊并收到注冊應(yīng)答消息事件;

      與平臺間的鏈路斷開后事件;

      收到平臺發(fā)送的業(yè)務(wù)請求事件(應(yīng)支持應(yīng)用數(shù)據(jù)以字符串的方式和二進(jìn)制的方式傳遞);

      收到平臺發(fā)送的業(yè)務(wù)請求應(yīng)答事件(應(yīng)支持應(yīng)用數(shù)據(jù)以字符串的方式和二進(jìn)制的方式傳遞);

      同時,各子系統(tǒng)應(yīng)用通過調(diào)用適配器實(shí)現(xiàn)的ActiveX 方法與平臺交互,方法包括:

      初始化適配器方法;

      建立與 IAP 平臺間的Socket 連接方法;

      斷開與平臺的網(wǎng)絡(luò)連接方法;

      向平臺注冊方法;

      從平臺中注銷方法;

      發(fā)起業(yè)務(wù)請求方法;

      收到業(yè)務(wù)請求并處理后,發(fā)送處理結(jié)果方法;

      考慮到ActiveX 控件需要跨語言環(huán)境使用,例如需要在Web 頁面中使用,方法與事件傳遞中需要傳遞數(shù)組的 情況均采用VARIANT 參數(shù)來傳遞,為了從VARIANT 中解出數(shù)據(jù),對此操作進(jìn)行了封裝。

      3. 總結(jié)

      本文設(shè)計(jì)的基于智能應(yīng)用平臺的適配器依托企業(yè)研發(fā)環(huán)境,很快地進(jìn)入實(shí)用階段,并很快體現(xiàn)出較好的實(shí)用 價值。四川省開縣應(yīng)急聯(lián)動系統(tǒng)在智能應(yīng)用平臺使用前每日能實(shí)現(xiàn)的話務(wù)量小于1000 個,應(yīng)用該平臺后日話務(wù) 量可到5000 多個,大大提高了整體工作性能。

提問者:qwert147 地點(diǎn):- 瀏覽次數(shù):7914 提問時間:08-12 03:31
我有更好的答案
提 交
撰寫答案
提 交