《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 可編程邏輯 > 設(shè)計應(yīng)用 > 基于WDM的精確定時器及其在冗余技術(shù)中的應(yīng)用
基于WDM的精確定時器及其在冗余技術(shù)中的應(yīng)用
摘要: 現(xiàn)代軍用電子設(shè)備和某些控制系統(tǒng)對設(shè)備的可靠性要求越來越高。針對此情況利用設(shè)備冗余原理,提出一種基于WDM的精確定時器實現(xiàn)設(shè)備冗余的方法。利用此方法設(shè)計了雙冗余CAN總線板卡及其在WindowsXP系統(tǒng)下的驅(qū)動程序,給出了部分驅(qū)動實現(xiàn)細節(jié)和相關(guān)流程。結(jié)果表明該方法可成功實現(xiàn)雙CAN接口卡在總線故障情況下的冗余切換,提高了設(shè)備可靠性。
關(guān)鍵詞: FPGA WDM 定時器 Win32
Abstract:
Key words :

0  引 言

高可靠性是現(xiàn)代軍用電子設(shè)備和某些控制系統(tǒng)的首要需求。冗余技術(shù)是計算機系統(tǒng)可靠性設(shè)計中常采用的一種技術(shù),是提高計算機系統(tǒng)可靠性的最有效方法之一。合理的冗余設(shè)計將大大提高系統(tǒng)的可靠性, 但同時也增加了系統(tǒng)的復(fù)雜度和設(shè)計的難度, 應(yīng)用冗余配置的系統(tǒng)還增加了用戶投資。因此,如何對冗余設(shè)計進行合理有效的設(shè)計, 是值得深入研究的課題。

1:1 熱冗余也就是所謂的雙重化, 是其中一種有效的冗余方式, 但它并不是兩個部件簡單的并聯(lián)運行,而是需要硬件、軟件、通信等協(xié)同工作來實現(xiàn)。將互為冗余的兩個部件構(gòu)成一個有機的整體,通常包括以下多個技術(shù)要點: 信息同步技術(shù)、故障檢測技術(shù)、故障仲裁技術(shù)和切換技術(shù)、熱插拔技術(shù)和故障隔離技術(shù)等。

本文將WDM 定時器功能應(yīng)用在冗余技術(shù)中,為系統(tǒng)的故障檢測和切換技術(shù)提供了一種解決方案,并以雙冗余CAN 總線接口板為例測試本設(shè)計的可行性。

1  冗余技術(shù)

冗余技術(shù)有兩種方式: 工作冗余和后備冗余。工作冗余是對關(guān)鍵設(shè)備以雙重或三重的原則來重復(fù)配置,這些設(shè)備同時處于工作運行狀態(tài), 工作過程中若某一臺設(shè)備出現(xiàn)故障, 它會自動脫離系統(tǒng), 但并不影響系統(tǒng)的正常工作。后備冗余方式是使一臺設(shè)備投入運行, 另一臺冗余設(shè)備處于熱備用狀態(tài),但不投入運行, 在線運行設(shè)備一旦出現(xiàn)故障, 后備設(shè)備立即投入運行。常用的冗余系統(tǒng)按其結(jié)構(gòu)可分為并聯(lián)系統(tǒng)、備用系統(tǒng)和表決系統(tǒng)三種。最簡單的冗余設(shè)計是并聯(lián)裝置, 其他方法還有串并聯(lián)或并串聯(lián)混合裝置和多數(shù)表決裝置等。當(dāng)某部分可靠性要求很高,但目前的技術(shù)水平和方法很難滿足時, 冗余技術(shù)可能成為惟一較好的設(shè)計方法。但是冗余設(shè)計往往使系統(tǒng)的體積、重量、費用和復(fù)雜度均相應(yīng)增加。因此, 除了重要的關(guān)鍵設(shè)備,對于一般產(chǎn)品不宜采用冗余技術(shù)。

冗余配置雖然增加系統(tǒng)的投資, 但它提高了整個用戶系統(tǒng)的平均無故障時間( MTBF) , 縮短了平均故障修復(fù)時間( MT TR) 。因此, 在重要場合的控制系統(tǒng)中,冗余技術(shù)的采用可有效提高系統(tǒng)的可靠性。

一個冗余系統(tǒng)要工作通常是硬件與軟件的配合完成的。在硬件上需要有幾個相同的, 可獨立工作的設(shè)備。在軟件上來說,就是在實現(xiàn)系統(tǒng)功能的同時, 要有錯誤檢測功能和動態(tài)切換功能, 并且要在盡可能短的時間內(nèi)完成切換動作。下面以雙CAN 總線接口卡為例,主要從軟件方面詳述本后備冗余設(shè)計的實現(xiàn)細節(jié)。

2  硬件設(shè)計

CAN 控制器采用Philips 的SJA1000,工作于BasicCAN 模式或PeliCAN 模式下, PeliCAN 模式支持CAN 2. 0B 協(xié)議, 采用8 位地址/ 數(shù)據(jù)復(fù)用總線接口。

如圖1 所示, PCI 總線雙CAN 接口卡由2 片SJA1000 提供兩路獨立的CAN 接口, 每片芯片的8 位地址/ 數(shù)據(jù)總線和讀寫控制信號、鎖存信號直接與PCI9052 相連。SJA1000 輸出信號經(jīng)過光耦到CAN 收發(fā)器PCA82C250, PCA82C250 供電電源為隔離電源,由隔離電源轉(zhuǎn)換模塊提供。CAN 總線的復(fù)位信號由FPGA 提供, CAN 控制器SJA1000 的中斷信號輸出到FPGA。

CAN 冗余模塊系統(tǒng)結(jié)構(gòu)圖

圖1  CAN 冗余模塊系統(tǒng)結(jié)構(gòu)圖。

3  軟件設(shè)計

3. 1  WDM 模式驅(qū)動程序

在Window s XP 操作系統(tǒng)中,運行于用戶模式的應(yīng)用程序訪問硬件資源是通過Win32 API 調(diào)用內(nèi)核模式的驅(qū)動程序?qū)崿F(xiàn)的。這種內(nèi)核模式的驅(qū)動程序就是WDM(Window s Driver Model) 驅(qū)動程序, 它是微軟在Window s XP 操作系統(tǒng)中提出的新的驅(qū)動程序模式, 支持即插即用、電源管理和I/ O 管理等功能。圖2 是Window s XP 的系統(tǒng)結(jié)構(gòu)。

如圖2 所示設(shè)備驅(qū)動程序是操作系統(tǒng)的一個組成部分,它由I/ O 管理器( I/ O Manager ) 管理和調(diào)動。

I/ O管理器每收到一個來自用戶應(yīng)用程序的請求就創(chuàng)建一個I/ O 請求包( IRP) 的數(shù)據(jù)結(jié)構(gòu), 并將其作為參數(shù)傳遞給驅(qū)動程序。驅(qū)動程序通過識別IRP 中的物理設(shè)備對象( PDO) 來區(qū)別是發(fā)送給哪一個設(shè)備。IRP 結(jié)構(gòu)中存放請求的類型、用戶緩沖區(qū)的首地址、用戶請求數(shù)據(jù)的長度等信息。驅(qū)動程序處理完這個請求后, 在該結(jié)構(gòu)中填入處理結(jié)果的有關(guān)信息,調(diào)用IoCompleteRequest 將其返回給I/ O 管理器,用戶應(yīng)用程序的請求隨即返回。訪問硬件時, 驅(qū)動程序通過調(diào)用硬件抽象層的函數(shù)實現(xiàn)。

Windows XP 系統(tǒng)結(jié)構(gòu)

圖2 Windows XP 系統(tǒng)結(jié)構(gòu)。

WDM 的開發(fā)可采用DDK, DriverWorks 等開發(fā)工具。以下重點描述在此WDM 驅(qū)動實例中采用定時查詢實現(xiàn)CAN 總線冗余功能。

3. 2  驅(qū)動冗余設(shè)計

本設(shè)計中, CAN 通路采用2 路冗余, 使得當(dāng)一個CAN 總線接口出現(xiàn)故障時, 可以很方便地切換到另一個CAN 總線接口。

故障檢測在定時器中實現(xiàn)。在DriverWorks 中有兩種定時器對象, 即附屬于設(shè)備對象的1 Hz 定時器和KTimedCallback 類定義的定時器, WDM 定時方法是通過它們實現(xiàn)的。KT imedCal lback 是KTimer 的派生類, KTimer 封裝了系統(tǒng)定時器, 構(gòu)成分發(fā)對象定時器類, 可用于同步目的。KT imedCal lback 類包含了系統(tǒng)延時過程調(diào)用( DPC) 對象, 當(dāng)定時器超時后系統(tǒng)就調(diào)用DPC。KTimedCallback 的成員函數(shù)主要是Set 和SetPeriodic, Set 用于設(shè)置一次有效定時器參數(shù), SetPeriodie 設(shè)置周期性定時器參數(shù), Set 和SetPeriodic 在設(shè)置定時參數(shù)時同時啟動定時器并建立與回調(diào)函數(shù)的關(guān)聯(lián),定時器超時后調(diào)用回調(diào)函數(shù)。

具體的切換工作放在DPC 中完成。DPC 為推遲過程調(diào)用, 一些操作不適合在ISR 中處理需放入限制較少的DPC 中, 如通知事件置標(biāo)記等等。DPC 是一個通用機制, 但通常都用在中斷處理中。在最普通的情況下, ISR 決定當(dāng)前請求的完成并請求一個DPC。之后,內(nèi)核在DISPATCH_LEVEL 級上調(diào)用這個DPC 例程。

因此DPC 中的代碼要比ISR 中的代碼有更少的限制。

特別是, DPC 例程可以調(diào)用像IoCompleteRequest 或Io StartNextPacket 這樣的例程,在一個I/ O 操作的結(jié)尾處調(diào)用這些例程在邏輯上是必要的。圖3 描述了具體DPC 調(diào)用處理過程。

DPC 處理過程

圖3 DPC 處理過程。

冗余切換查詢時間可以在設(shè)備屬性中添加切換時間周期項, 通過修改設(shè)備屬性的方式在線修改,修改后設(shè)備管理器自動更新驅(qū)動。

在雙CAN 冗余系統(tǒng)中, 較之硬件結(jié)構(gòu)而言,軟件設(shè)計相對復(fù)雜得多, 其關(guān)鍵之處在于CAN 系統(tǒng)故障檢測及CAN 系統(tǒng)自動切換。由于采用兩套完全獨立的傳輸介質(zhì)、總線驅(qū)動器和總線控制器, 因此它們能分別獨立檢測到自己通道的故障, 比如CANH 與CANL 短路, CANH 或CANL 斷開、CANH 與地短路、CANL 與電源短路、總線驅(qū)動器損壞等。實際調(diào)試中發(fā)現(xiàn), 如果CANH 、CANL 斷開或只有一個發(fā)送器在總線上,均會造成發(fā)送/ 接收錯誤計數(shù)器不斷增加到128, 使節(jié)點處于忽略錯誤態(tài); 而CANH 與CANL 短路、CANH 與地短路或CAN L 與電源短路均會造成發(fā)送/ 接收錯誤計數(shù)器不斷增加到256, 使節(jié)點處于總線脫離態(tài)。所以,通過節(jié)點狀態(tài)改變中斷子程序中調(diào)用CAN 冗余模塊,可以達到實現(xiàn)上述故障自動檢測及CAN 系統(tǒng)自動切換的目的。

3. 3  冗余測試

測試時采用一個有兩個通道CAN 分析儀分別連接本CAN 板的A, B 通道上,在從A 通道連續(xù)發(fā)送數(shù)據(jù)至分析儀的過程中, 手動斷開此鏈接, 則備用通道B開始工作,切換成功。對冗余切換時間的測試可以通過比較發(fā)送端和接收端間數(shù)據(jù)量的差值來判斷。具體方法是在發(fā)送端以10 ms 為周期不停發(fā)送數(shù)據(jù)包,正常情況下發(fā)送端的數(shù)據(jù)包數(shù)量與接收端的數(shù)據(jù)包數(shù)量是相等的。在切換動作時, 會有一些數(shù)據(jù)包被丟棄, 這時通過計算發(fā)送端與接收端數(shù)據(jù)包的差值乘以10 ms, 即為此次切換的切換時間。在本例中, 通過多次這樣的測試, 得出平均切換時間在30 ms 左右, 完全能滿足對計算機系統(tǒng)高可靠性的要求。

4  結(jié) 論

提出一種設(shè)備冗余的系統(tǒng)設(shè)計方法, 為系統(tǒng)的故障檢測和切換技術(shù)提供了一種解決方案。利用此方法設(shè)計了雙冗余CAN 總線板卡以及在Window s XP 系統(tǒng)下的WDM 驅(qū)動。該模塊工作穩(wěn)定, 數(shù)據(jù)傳輸可靠, 冗余切換切實可行。并可依據(jù)實際使用要求在線修改定時查詢時間。這種冗余實現(xiàn)方法在提高設(shè)備可靠性方面具有一定的實用價值。

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
中国成人黄色视屏| 久久免费视频在线| 亚洲国产成人av好男人在线观看| 一本色道久久综合亚洲二区三区| 激情另类综合| 国产视频一区二区在线观看| 欧美四级剧情无删版影片| 香蕉久久一区二区不卡无毒影院 | 久久人人看视频| 欧美在线观看视频在线| 先锋影音国产精品| 亚洲一区国产精品| 亚洲午夜一区二区| 中国日韩欧美久久久久久久久| 亚洲精品乱码| 亚洲黄色影院| 亚洲国产老妈| 亚洲精品四区| 日韩视频在线一区二区| 亚洲精品免费看| 99亚洲一区二区| 亚洲午夜伦理| 欧美亚洲综合久久| 久久精品人人做人人综合 | 99在线热播精品免费| 亚洲色诱最新| 亚洲欧美视频在线观看视频| 午夜精品一区二区在线观看| 欧美一站二站| 亚洲欧洲偷拍精品| 一区二区三区 在线观看视频| 亚洲午夜小视频| 欧美中文字幕视频在线观看| 久久久久久久久久码影片| 久久久精品网| 欧美激情在线免费观看| 欧美四级在线| 国产一区二区三区最好精华液| 精品成人久久| 91久久久久久| 一区二区三区精品视频| 亚洲欧美一级二级三级| 亚洲免费影视| 性xx色xx综合久久久xx| 久久不射电影网| 亚洲国产另类精品专区| 亚洲精品一区二区在线观看| 亚洲精品一区二区三区樱花| 99在线视频精品| 亚洲视屏在线播放| 一区二区三区欧美| 亚洲靠逼com| 亚洲一区二区精品| 亚洲视频电影图片偷拍一区| 亚洲免费视频在线观看| 欧美夜福利tv在线| 久久视频在线看| 欧美成人一区二区三区| 欧美精品久久天天躁 | 欧美大片91| 国产精品久久久久影院色老大| 国产拍揄自揄精品视频麻豆| 国产一区在线播放| 亚洲国产成人精品久久久国产成人一区| 亚洲第一在线视频| 99精品视频免费在线观看| 亚洲免费在线观看视频| 久久国产精品久久久久久久久久| 亚洲欧洲午夜| 亚洲女同精品视频| 久久久久国产精品www| 欧美大胆a视频| 国产精品一二一区| 激情欧美一区二区三区在线观看| 亚洲国产精品久久| 亚洲天堂免费观看| 久久精品一二三| 亚洲视频在线看| 久久疯狂做爰流白浆xx| 欧美二区在线播放| 国产精品伦理| 亚洲第一黄色网| 在线一区二区三区做爰视频网站| 欧美一级大片在线观看| 亚洲国产第一| 性欧美超级视频| 欧美成年人视频| 国产精品丝袜白浆摸在线| 伊人春色精品| 亚洲一区欧美一区| 亚洲精品社区| 欧美一区二区三区精品| 欧美激情一区二区三区全黄| 国产女主播在线一区二区| 最新亚洲视频| 午夜精品在线看| 篠田优中文在线播放第一区| 欧美ed2k| 国产主播喷水一区二区| 99ri日韩精品视频| 亚洲高清av| 香蕉免费一区二区三区在线观看| 欧美国产日韩免费| 国产欧美在线播放| 亚洲另类视频| 亚洲二区精品| 久久精品动漫| 欧美日韩日本视频| 伊人婷婷欧美激情| 亚洲欧美日本精品| 亚洲天堂网站在线观看视频| 美女日韩在线中文字幕| 国产欧美在线| 一区二区三区国产精华| 亚洲精品在线免费| 久久久伊人欧美| 欧美四级电影网站| 亚洲精品乱码久久久久久按摩观| 久久精品国产精品亚洲| 亚洲欧美另类在线观看| 欧美日韩播放| 亚洲国产1区| 亚洲国产精品999| 欧美一二三区精品| 国产精品igao视频网网址不卡日韩| 亚洲成人中文| 欧美一区二区三区视频免费播放| 亚洲网址在线| 欧美另类videos死尸| 亚洲第一毛片| 亚洲高清在线视频| 久久久久久穴| 国产欧美精品| 亚洲欧美春色| 午夜精品福利电影| 欧美亚日韩国产aⅴ精品中极品| 亚洲国产精品成人精品| 久久精品日产第一区二区| 老牛影视一区二区三区| 国产亚洲成年网址在线观看| 亚洲欧美成人一区二区三区| 亚洲综合色婷婷| 国产精品久久久久影院色老大 | 国产精品日本一区二区| 一区二区日韩伦理片| 亚洲一区在线播放| 亚洲国产导航| 激情五月***国产精品| 国产精品成人一区二区三区夜夜夜 | 亚洲一区自拍| 一区二区三区产品免费精品久久75 | 久久激情久久| 国产亚洲精品aa| 欧美在线高清| 久久久噜噜噜久噜久久 | 亚洲视频 欧洲视频| 午夜精品免费视频| 国产精品乱人伦一区二区 | 久久久久国产一区二区| 亚洲视屏一区| 亚洲免费中文字幕| 欧美日韩精品一二三区| 亚洲美女精品久久| 亚洲四色影视在线观看| 欧美日韩一区二区免费在线观看| 一区免费视频| 亚洲精品免费一二三区| 欧美日韩色一区| 国产一区二区av| 一区免费在线| 欧美日韩一区二区三区| 日韩视频在线免费观看| 99pao成人国产永久免费视频| 欧美大片在线观看一区| 日韩午夜av在线| 这里只有精品电影| 国产免费成人| 亚洲国产精品成人精品| 欧美极品在线观看| 亚洲网站在线播放| 久久久午夜精品| 亚洲国产欧美日韩另类综合| 中文欧美日韩| 国产伦理精品不卡| 亚洲激情在线| 欧美性片在线观看| 欧美一级久久久| 嫩模写真一区二区三区三州| 亚洲免费电影在线| 欧美一区二区三区免费大片| 狠狠色综合网| 99视频精品在线| 国产精品男女猛烈高潮激情| 亚洲日韩成人| 国产精品久久久久久福利一牛影视| 午夜一区二区三区不卡视频| 免费不卡在线视频| 夜夜嗨av一区二区三区网站四季av| 欧美一级专区免费大片| 在线精品福利|