<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          關(guān) 閉

          新聞中心

          EEPW首頁 > 工控自動(dòng)化 > 設(shè)計(jì)應(yīng)用 > WDM定時(shí)器在冗余技術(shù)中的應(yīng)用

          WDM定時(shí)器在冗余技術(shù)中的應(yīng)用

          作者: 時(shí)間:2011-01-06 來源:網(wǎng)絡(luò) 收藏

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

            3. 2 驅(qū)動(dòng)冗余設(shè)計(jì)

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

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

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

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

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

            

            圖3 DPC 處理過程。

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

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

            3. 3 冗余測(cè)試

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

            4 結(jié) 論

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


          上一頁 1 2 下一頁

          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();