基于STM32F105微控制器的雙CAN冗余設計方案
雙線(xiàn)CAN 冗余系統的另一關(guān)鍵指標是總線(xiàn)切換時(shí)間, 它等于檢測錯誤所需時(shí)間與處理故障總線(xiàn)未發(fā)送報文所需時(shí)間之和, 切換時(shí)間越短, 總線(xiàn)故障對報文傳輸造成的延遲就越小。檢測錯誤所需時(shí)間,即從總線(xiàn)錯誤出現到被冗余程序檢測到所需的時(shí)間。以總線(xiàn)斷開(kāi)故障為例, 發(fā)送器每發(fā)送一個(gè)報文產(chǎn)生一次應答錯誤, 錯誤計數器每次加8, 需連續進(jìn)行16次發(fā)送, 使錯誤計數器值達到128引起總線(xiàn)切換。在位速率125kbps情況下, 發(fā)送最長(cháng)為128位的報文, 若忽略控制器重發(fā)間隔時(shí)間, 從故障發(fā)生到被檢測到的響應時(shí)間為:
為避免在總線(xiàn)切換時(shí)丟失報文, 冗余算法需回讀故障控制器中未發(fā)送報文, 由此產(chǎn)生額外的故障處理時(shí)間, 因為每個(gè)發(fā)送郵箱最多存儲3個(gè)報文, 假定位速率125kbps不變, 備份總線(xiàn)發(fā)送時(shí)即取得仲裁,最長(cháng)故障處理時(shí)間為:
因此總線(xiàn)切換時(shí)間為16. 38+ 3. 07= 19. 45m s。
通過(guò)實(shí)驗測得在125kbps位速率下連續發(fā)送不同報文長(cháng)度的總線(xiàn)切換時(shí)間如表1所示:
表1 總線(xiàn)切換時(shí)間
在125kbps位速率下切換時(shí)間為22. 80ms, 比理論計算值稍長(cháng), 這是由總線(xiàn)切換時(shí)運行冗余算法及讀取控制器錯誤寄存器( ESR)所額外消耗的, 但在實(shí)際應用中, 發(fā)送報文獲取仲裁所需的等待時(shí)間遠大于切換時(shí)間, 總線(xiàn)故障并不頻繁發(fā)生, 冗余切換算法對系統的運行并無(wú)顯著(zhù)影響。
4 結束語(yǔ)
與傳統單片機總線(xiàn)外擴兩片CAN 控制器的冗余方案相比, 本設計充分利用STM32F105微控制器內置的兩路CAN 控制器, 簡(jiǎn)化電路設計, 相對降低了成本, 同時(shí)雙CAN 冗余通信系統的采用提高了系統整體可靠性。所使用雙總線(xiàn)負載均衡技術(shù), 可以提高總線(xiàn)帶寬, 平衡通信負荷。系統船舶機艙監控系統的圖像和數據信號的傳輸中取得很好的效果。
pid控制器相關(guān)文章:pid控制器原理
評論