基於STM32F105微控製器的雙CAN冗餘的方案設計
發布時間:2014-10-16 責任編輯:echolady
【導讀】控製局域網又稱CAN,是一種多主方式的串行通訊總線。CAN總線以其抗電磁幹擾性強、位速率高、錯誤檢測機製完善的特點被廣泛應用於航空航天、汽車製造等工業領域。尤其是船在行駛時,環境惡劣,通信方麵的準確性和可靠性高,雙CAN冗餘總線的通信完全符合條件。針對這種情況,本文中的方案設計是基於STM32F105微控製器的雙CAN 冗餘設計方案。
一、硬件設計
1、平台搭建
STM32F105是一款基於ARM Co rtex- M3內核的32位微控製器, 其內核是專門設計於滿足高性能、低功耗、實時應用的嵌入式領域的要求。由於采用Thumb - 2指令集,與ARM7微控製器相比STM32運行速度最多可快35% 且代碼最多節省45% 。較高的主頻和代碼執行效率使係統在進行CAN 總線數據收發的同時仍可運行總線冗餘算法。STM32F105微控製器內部集成2路獨立的CAN 控製器, 控製器集成在芯片內部, 避免了總線外擴引入的幹擾, 同時簡化了電路設計、降低成本。
2、方案設計
係統使用兩條完全獨立的CAN 總線, 兩個CAN 總線收發器和總線控製器, 實現物理層、數據鏈路層的全麵冗餘。在初始化時兩個控製器被同時激活, 一個作為主CAN, 另一個作為從CAN, 為主控製器的備份。正常運作時, 數據通過主CAN 優先發送; 當主CAN 總線繁忙時, 從CAN 總線分擔部分通信流量; 而當主CAN 總線發生故障時, 數據轉移至從CAN 控製器傳輸, 反之亦然。在任一總線發生故障時,數據都能經由另一條總線傳輸, 而當兩條總線都正常時, 使用兩總線同時傳輸, 增加約1倍的通信帶寬,這樣在保證了通信可靠性的同時提高了實時性。
CAN 總線接口電路設計如圖1所示,使用TJA1050作為總線收發器,它完成CAN 控製器與物理總線之間的電平轉換和差動收發。盡管TJA1050本身具備一定的保護能力,但其與總線接口部分還是采用一定的安全和抗幹擾措施;TJA1050的CANH 和CANL與地之間並聯兩隻10pF的小電容, 可以濾除總線上的高頻幹擾;另外,為了增強CAN 總zong線xian節jie點dian的de抗kang幹gan擾rao能neng力li,總zong線xian輸shu入ru端duan與yu地di之zhi間jian分fen別bie接jie入ru一yi隻zhi瞬shun態tai抑yi製zhi二er極ji管guan,當dang兩liang輸shu入ru與yu地di之zhi間jian出chu現xian瞬shun變bian幹gan擾rao時shi,收shou發fa器qi輸shu入ru端duan電dian壓ya被bei鉗qian位wei在zai安an全quan範fan圍wei。
為防止總線過壓造成節點損壞,STM32F105內置CAN 控製器的數據收發引腳並不與TJA1050直接相連,通過ADuM1201磁隔離器實現信號隔離傳輸。與傳統光耦隔離相比,磁隔離簡化了隔離電路設計,並且磁隔離芯片的功耗很低,大約相當於光耦隔離的1/10。除了將CAN 數據信號隔離外,TJA1050T使用的電源和地也必須與係統完全隔離,使用5V 隔離輸出的開關電源模塊IB0505LS提供隔離電源。由於CAN 總線數據傳輸率較高,為了提高信號質量,網絡拓撲結構應盡量設計成單線結構以避免信號反射, 同時終端連接120歐姆左右的匹配電阻。

圖1:CAN 接口電路設計
二、軟件設計
CAN 協議規範定義的數據鏈路層和部分物理層並不完整,雙CAN 冗餘應用需要實現總線狀態監控、網wang絡luo故gu障zhang的de診zhen斷duan和he標biao識shi,這zhe就jiu要yao通tong過guo添tian加jia軟ruan件jian冗rong餘yu模mo塊kuai來lai實shi現xian。冗rong餘yu模mo塊kuai在zai程cheng序xu主zhu循xun環huan中zhong調tiao用yong,根gen據ju不bu同tong總zong線xian錯cuo誤wu狀zhuang態tai執zhi行xing收shou發fa通tong道dao切qie換huan。CAN 總線錯誤狀態分為3類:錯誤激活、錯誤認可、總線關閉。總線正常工作時處於錯誤激活狀態,控製器檢測到錯誤後將發送/接收錯誤計數器的值遞增,當值大於127時進入錯誤認可,大於255時總線關閉狀態,CAN 總線錯誤檢測模塊通過讀取錯誤狀態寄存器作為總線故障的測試條件,在錯誤狀態發生改變時調用冗餘算法,執行總線切換操作。
通過實際調試發現,總線連接斷開且隻有1個節點不斷發送報文時產生發送錯誤,控製器進入錯誤認可狀態,但不進入總線關閉狀態;其它錯誤均使錯誤計數器增加,依次進入錯誤認可狀態、總線關閉狀態,後兩種狀態表明總線被嚴重幹擾 需要采取相應措施。為簡化控製邏輯設計將錯誤認可和總線關閉合並為總線故障。
冗餘算法使用狀態機實現發送模式的切換,根據不同總線故障選擇發送使用的總線。狀態切換流程圖如圖2所suo示shi,程cheng序xu首shou先xian讀du取qu錯cuo誤wu狀zhuang態tai寄ji存cun器qi獲huo得de總zong線xian錯cuo誤wu狀zhuang態tai,判pan斷duan當dang前qian總zong線xian是shi否fou處chu於yu錯cuo誤wu激ji活huo模mo式shi,若ruo檢jian測ce到dao總zong線xian故gu障zhang程cheng序xu置zhi相xiang應ying標biao誌zhi位wei向xiang其qi他ta程cheng序xu模mo塊kuai指zhi示shi錯cuo誤wu。為wei提ti高gao報bao文wen發fa送song效xiao率lv,發fa送song程cheng序xu一yi次ci將jiang多duo個ge報bao文wen寫xie入ru發fa送song郵you箱xiang由you硬ying件jian控kong製zhi自zi動dong發fa送song,在zai切qie換huan總zong線xian時shi,需xu先xian把ba故gu障zhang總zong線xian發fa送song郵you箱xiang中zhong的de報bao文wen中zhong回hui讀du,通tong過guo備bei份fen總zong線xian優you先xian發fa送song,這zhe一yi機ji製zhi保bao證zheng報bao文wen不bu會hui因yin總zong線xian切qie換huan而er丟diu失shi。控kong製zhi器qi向xiang故gu障zhang總zong線xian發fa送song數shu據ju域yu為wei空kong的de測ce試shi報bao文wen,每mei成cheng功gong發fa送song1報文,總線發送錯誤計數器的值遞減,直至其值小於128總線恢複到錯誤被動狀態;每隔一定時間冗餘程序讀取錯誤狀態寄存器,檢測故障總線是否恢複正常。
在2總線同時傳輸模式,發送程序優先寫入總線1郵箱,當總線1郵箱滿時寫入總線2deyouxiang,youyubaowenanyouxianjizhongcaifasong,ruomouyilufasongyouxiangjingchangweikong,shuominggailuzongxiantongxinliuliangjiaoxiao,fasongchengxujiangjiaoduobaowenzhuanyoukongxianzongxianfasong,shixianbaowendefuzaijunheng。

圖2:總線狀態切換流程圖
[page]
三、雙總線冗餘的可靠性分析與測試
對雙CAN 冗餘係統的可靠性進行定量分析,引入平均無故障運行時間(M ean T ime To Fa ilure, MTTF)的概念。MTTF描述一個係統從開始工作到發生故障的時間間隔,也即平均壽命。為簡化分析作如下假設: 每路CAN總線的故障率相同;CAN 總線的損壞屬於物理損壞。即不可修複的損壞。指數分布可以很好地用來描述電子元器件的壽命, 假設CAN總線的壽命分布服從指數分布, CAN 總線的可靠性模型如圖3所示。

圖3:CAN總線模型
模型1為單總線的可靠性模型,因為總線壽命服從指數分布,根據單一CAN總線無故障運行時間MTTF1 = 1 /λ。模型2為雙CAN總線冗餘可靠性模型,係統由兩條獨立的總線並聯而成,即隻有當這2條總線都失效時係統通信才會失敗,於是係統的平均壽命MTTF2 = 3 /2。采用雙線冗餘設計使CAN 通信的平均無故障時間增加了50%。
雙線CAN 冗(rong)餘(yu)係(xi)統(tong)的(de)另(ling)一(yi)關(guan)鍵(jian)指(zhi)標(biao)是(shi)總(zong)線(xian)切(qie)換(huan)時(shi)間(jian),它(ta)等(deng)於(yu)檢(jian)測(ce)錯(cuo)誤(wu)所(suo)需(xu)時(shi)間(jian)與(yu)處(chu)理(li)故(gu)障(zhang)總(zong)線(xian)未(wei)發(fa)送(song)報(bao)文(wen)所(suo)需(xu)時(shi)間(jian)之(zhi)和(he),切(qie)換(huan)時(shi)間(jian)越(yue)短(duan),總(zong)線(xian)故(gu)障(zhang)對(dui)報(bao)文(wen)傳(chuan)輸(shu)造(zao)成(cheng)的(de)延(yan)遲(chi)就(jiu)越(yue)小(xiao)。檢(jian)測(ce)錯(cuo)誤(wu)所(suo)需(xu)時(shi)間(jian),即(ji)從(cong)總(zong)線(xian)錯(cuo)誤(wu)出(chu)現(xian)到(dao)被(bei)冗(rong)餘(yu)程(cheng)序(xu)檢(jian)測(ce)到(dao)所(suo)需(xu)的(de)時(shi)間(jian)。以(yi)總(zong)線(xian)斷(duan)開(kai)故(gu)障(zhang)為(wei)例(li),發(fa)送(song)器(qi)每(mei)發(fa)送(song)一(yi)個(ge)報(bao)文(wen)產(chan)生(sheng)一(yi)次(ci)應(ying)答(da)錯(cuo)誤(wu)。錯(cuo)誤(wu)計(ji)數(shu)器(qi)每(mei)次(ci)加(jia)8, 需連續進行16次發送,使錯誤計數器值達到128引起總線切換。在位速率125kbps情況下,發送最長為128位的報文,若忽略控製器重發間隔時間,從故障發生到被檢測到的響應時間為:
為避免在總線切換時丟失報文,冗餘算法需回讀故障控製器中未發送報文,由此產生額外的故障處理時間,因為每個發送郵箱最多存儲3個報文,假定位速率125kbps不變,備份總線發送時即取得仲裁,最長故障處理時間為:

因此總線切換時間為16. 38+ 3. 07= 19. 45m s。
通過實驗測得在125kbps位速率下連續發送不同報文長度的總線切換時間如表1所示:
表1:總線切換時間

在125kbps位速率下切換時間為22.80ms, 比理論計算值稍長,這是由總線切換時運行冗餘算法及讀取控製器錯誤寄存器( ESR)所suo額e外wai消xiao耗hao的de,但dan在zai實shi際ji應ying用yong中zhong,發fa送song報bao文wen獲huo取qu仲zhong裁cai所suo需xu的de等deng待dai時shi間jian遠yuan大da於yu切qie換huan時shi間jian,總zong線xian故gu障zhang並bing不bu頻pin繁fan發fa生sheng,冗rong餘yu切qie換huan算suan法fa對dui係xi統tong的de運yun行xing並bing無wu顯xian著zhe影ying響xiang。
結語:此次設計方案充分利用了微控製器STM32F105,在其中內置了兩路CAN控製器,這種設計思路與傳統的在單片機總線外擴兩片CAN控kong製zhi器qi的de冗rong餘yu方fang案an相xiang比bi,電dian路lu設she計ji更geng加jia簡jian單dan,成cheng本ben更geng低di,係xi統tong的de整zheng體ti可ke靠kao性xing得de到dao了le提ti高gao。利li用yong雙shuang總zong線xian負fu載zai均jun衡heng技ji術shu,能neng夠gou平ping衡heng通tong信xin負fu荷he,提ti高gao總zong線xian帶dai寬kuan。在zai船chuan舶bo機ji艙cang監jian控kong係xi統tong中zhong能neng夠gou獲huo得de良liang好hao的de信xin號hao傳chuan輸shu。
特別推薦
- 噪聲中提取真值!瑞盟科技推出MSA2240電流檢測芯片賦能多元高端測量場景
- 10MHz高頻運行!氮矽科技發布集成驅動GaN芯片,助力電源能效再攀新高
- 失真度僅0.002%!力芯微推出超低內阻、超低失真4PST模擬開關
- 一“芯”雙電!聖邦微電子發布雙輸出電源芯片,簡化AFE與音頻設計
- 一機適配萬端:金升陽推出1200W可編程電源,賦能高端裝備製造
技術文章更多>>
- 築基AI4S:摩爾線程全功能GPU加速中國生命科學自主生態
- 一秒檢測,成本降至萬分之一,光引科技把幾十萬的台式光譜儀“搬”到了手腕上
- AI服務器電源機櫃Power Rack HVDC MW級測試方案
- 突破工藝邊界,奎芯科技LPDDR5X IP矽驗證通過,速率達9600Mbps
- 通過直接、準確、自動測量超低範圍的氯殘留來推動反滲透膜保護
技術白皮書下載更多>>
- 車規與基於V2X的車輛協同主動避撞技術展望
- 數字隔離助力新能源汽車安全隔離的新挑戰
- 汽車模塊拋負載的解決方案
- 車用連接器的安全創新應用
- Melexis Actuators Business Unit
- Position / Current Sensors - Triaxis Hall
熱門搜索
微波功率管
微波開關
微波連接器
微波器件
微波三極管
微波振蕩器
微電機
微調電容
微動開關
微蜂窩
位置傳感器
溫度保險絲
溫度傳感器
溫控開關
溫控可控矽
聞泰
穩壓電源
穩壓二極管
穩壓管
無焊端子
無線充電
無線監控
無源濾波器
五金工具
物聯網
顯示模塊
顯微鏡結構
線圈
線繞電位器
線繞電阻




