采用WDM的精確定時器及其在冗余技術(shù)中的應(yīng)用
因此DPC 中的代碼要比ISR 中的代碼有更少的限制。
特別是, DPC 例程可以調(diào)用像IoCompleteRequest 或Io StartNextPacket 這樣的例程, 在一個I/ O 操作的結(jié)尾處調(diào)用這些例程在邏輯上是必要的。圖3 描述了具體DPC 調(diào)用處理過程。
圖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 冗余模塊,可以達(dá)到實現(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 左右, 完全能滿足對計算機(jī)系統(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è)備可靠性方面具有一定的實用價值。本文引用地址:http://m.butianyuan.cn/article/151080.htm
評論