基於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個節點不斷發送報文時產生發送錯誤,控製器進入錯誤認可狀態,但不進入總線關閉狀態;其它錯誤均使錯誤計數器增加,依次進入錯誤認可狀態、總線關閉狀態,後兩種狀態表明總線被嚴重幹擾 需要采取相應措施。為簡化控製邏輯設計將錯誤認可和總線關閉合並為總線故障。
冗餘算法使用狀態機實現發送模式的切換,根據不同總線故障選擇發送使用的總線。狀態切換流程圖如圖2suoshi,chengxushouxianduqucuowuzhuangtaijicunqihuodezongxiancuowuzhuangtai,panduandangqianzongxianshifouchuyucuowujihuomoshi,ruojiancedaozongxianguzhangchengxuzhixiangyingbiaozhiweixiangqitachengxumokuaizhishicuowu。weitigaobaowenfasongxiaolv,fasongchengxuyicijiangduogebaowenxierufasongyouxiangyouyingjiankongzhizidongfasong,zaiqiehuanzongxianshi,xuxianbaguzhangzongxianfasongyouxiangzhongdebaowenzhonghuidu,tongguobeifenzongxianyouxianfasong,zheyijizhibaozhengbaowenbuhuiyinzongxianqiehuanerdiushi。kongzhiqixiangguzhangzongxianfasongshujuyuweikongdeceshibaowen,meichenggongfasong1報文,總線發送錯誤計數器的值遞減,直至其值小於128總線恢複到錯誤被動狀態;每隔一定時間冗餘程序讀取錯誤狀態寄存器,檢測故障總線是否恢複正常。
在2總線同時傳輸模式,發送程序優先寫入總線1郵箱,當總線1郵箱滿時寫入總線2的de郵you箱xiang,由you於yu報bao文wen按an優you先xian級ji仲zhong裁cai發fa送song,若ruo某mou一yi路lu發fa送song郵you箱xiang經jing常chang為wei空kong,說shuo明ming該gai路lu總zong線xian通tong信xin流liu量liang較jiao小xiao,發fa送song程cheng序xu將jiang較jiao多duo報bao文wen轉zhuan由you空kong閑xian總zong線xian發fa送song,實shi現xian報bao文wen的de負fu載zai均jun衡heng。

圖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加jia8, 需連續進行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可編程電源,賦能高端裝備製造
技術文章更多>>
- 從“可演示”到“可部署”:人形機器人全鏈路測試驗證體係構建
- e絡盟與Same Sky簽署全球分銷協議,拓展高性能元器件版圖
- 告別“偏色”煩惱:光譜傳感器如何重塑手機攝影的真實色彩
- 從“掃描”到“洞察”:Hyperlux ID iToF技術如何攻克30米測距極限
- 解鎖算力芯片的“速度密碼”:SmartDV全棧IP方案深度解析
技術白皮書下載更多>>
- 車規與基於V2X的車輛協同主動避撞技術展望
- 數字隔離助力新能源汽車安全隔離的新挑戰
- 汽車模塊拋負載的解決方案
- 車用連接器的安全創新應用
- Melexis Actuators Business Unit
- Position / Current Sensors - Triaxis Hall
熱門搜索




