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