色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

基于微控制器STM32F105的雙CAN冗余設計方案

電子設計 ? 來源:網絡整理 ? 2018-04-09 10:03 ? 次閱讀

控制器局域網( Contro llerA reaN etwo rk, CAN)是一種多主方式的串行通訊總線。CAN 總線具有較高的位速率, 很強的抗電磁干擾性, 完善的錯誤檢測機制, 在汽車、制造業以及航空工業領域中得到廣泛應用 。由于船舶機艙環境極為惡劣, 且船舶航行過程中維修條件不如陸上, 對CAN 通信的可靠性要求很高, 采取雙CAN 冗余總線提高通信可靠性。本文提出一種基于STM32F105微控制器的雙CAN 冗余設計方案。

1 硬件平臺組成

STM32F105是STM icroe lectron ics公司推出的一款基于ARM Co rtex- M3內核的32位微控制器, 其內核是專門設計于滿足高性能、低功耗、實時應用的嵌入式領域的要求。由于采用Thumb - 2指令集,與ARM7微控制器相比STM32運行速度最多可快35% 且代碼最多節省45% 。較高的主頻和代碼執行效率使系統在進行CAN 總線數據收發的同時仍可運行總線冗余算法。STM32F105微控制器內部集成2路獨立的CAN 控制器, 控制器集成在芯片內部, 避免了總線外擴引入的干擾, 同時簡化了電路設計、降低成本。

系統使用兩條完全獨立的CAN 總線, 兩個CAN 總線收發器和總線控制器, 實現物理層、數據鏈路層的全面冗余。在初始化時兩個控制器被同時激活, 一個作為主CAN, 另一個作為從CAN, 為主控制器的備份。正常運作時, 數據通過主CAN 優先發送; 當主CAN 總線繁忙時, 從CAN 總線分擔部分通信流量; 而當主CAN 總線發生故障時, 數據轉移至從CAN 控制器傳輸, 反之亦然。在任一總線發生故障時,數據都能經由另一條總線傳輸, 而當兩條總線都正常時, 使用兩總線同時傳輸, 增加約1倍的通信帶寬,這樣在保證了通信可靠性的同時提高了實時性。

CAN 總線接口電路設計如圖1所示, 使用T JA1050作為總線收發器, 它完成CAN 控制器與物理總線之間的電平轉換和差動收發。盡管TJA1050本身具備一定的保護能力, 但其與總線接口部分還是采用一定的安全和抗干擾措施; T JA1050的CANH 和CANL與地之間并聯兩只10pF的小電容, 可以濾除總線上的高頻干擾; 另外, 為了增強CAN 總線節點的抗干擾能力, 總線輸入端與地之間分別接入一只瞬態抑制二極管, 當兩輸入與地之間出現瞬變干擾時, 收發器輸入端電壓被鉗位在安全范圍。

為防止總線過壓造成節點損壞, STM32F105內置CAN 控制器的數據收發引腳并不與TJA1050直接相連, 通過ADuM1201磁隔離器實現信號隔離傳輸。與傳統光耦隔離相比, 磁隔離簡化了隔離電路設計, 并且磁隔離芯片的功耗很低, 大約相當于光耦隔離的1 /10。除了將CAN 數據信號隔離外,TJA1050T使用的電源和地也必須與系統完全隔離, 使用5V 隔離輸出的開關電源模塊IB0505LS提供隔離電源。由于CAN 總線數據傳輸率較高, 為了提高信號質量, 網絡拓撲結構應盡量設計成單線結構以避免信號反射, 同時終端連接120歐姆左右的匹配電阻

圖1 CAN 接口電路設計

2 軟件設計

CAN 協議規范定義的數據鏈路層和部分物理層并不完整, 雙CAN 冗余應用需要實現總線狀態監控、網絡故障的診斷和標識, 這就要通過添加軟件冗余模塊來實現。冗余模塊在程序主循環中調用, 根據不同總線錯誤狀態執行收發通道切換。CAN 總線錯誤狀態分為3類: 錯誤激活、錯誤認可、總線關閉。總線正常工作時處于錯誤激活狀態,控制器檢測到錯誤后將發送/接收錯誤計數器的值遞增, 當值大于127時進入錯誤認可, 大于255時總線關閉狀態, CAN 總線錯誤檢測模塊通過讀取錯誤狀態寄存器作為總線故障的測試條件, 在錯誤狀態發生改變時調用冗余算法, 執行總線切換操作。

通過實際調試發現, 總線連接斷開且只有1個節點不斷發送報文時產生發送錯誤, 控制器進入錯誤認可狀態, 但不進入總線關閉狀態; 其它錯誤均使錯誤計數器增加, 依次進入錯誤認可狀態、總線關閉狀態, 后兩種狀態表明總線被嚴重干擾, 需要采取相應措施。為簡化控制邏輯設計將錯誤認可和總線關閉合并為總線故障。

冗余算法使用狀態機實現發送模式的切換, 根據不同總線故障選擇發送使用的總線。狀態切換流程圖如圖2所示, 程序首先讀取錯誤狀態寄存器獲得總線錯誤狀態, 判斷當前總線是否處于錯誤激活模式, 若檢測到總線故障程序置相應標志位向其他程序模塊指示錯誤。為提高報文發送效率, 發送程序一次將多個報文寫入發送郵箱由硬件控制自動發送, 在切換總線時, 需先把故障總線發送郵箱中的報文中回讀, 通過備份總線優先發送, 這一機制保證報文不會因總線切換而丟失。控制器向故障總線發送數據域為空的測試報文, 每成功發送1報文, 總線發送錯誤計數器的值遞減, 直至其值小于128總線恢復到錯誤被動狀態; 每隔一定時間冗余程序讀取錯誤狀態寄存器, 檢測故障總線是否恢復正常。

在2總線同時傳輸模式, 發送程序優先寫入總線1郵箱, 當總線1郵箱滿時寫入總線2的郵箱, 由于報文按優先級仲裁發送, 若某一路發送郵箱經常為空, 說明該路總線通信流量較小, 發送程序將較多報文轉由空閑總線發送, 實現報文的負載均衡。

圖2 總線狀態切換流程圖。

3 雙總線冗余的可靠性分析與測試

對雙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 冗余系統的另一關鍵指標是總線切換時間, 它等于檢測錯誤所需時間與處理故障總線未發送報文所需時間之和, 切換時間越短, 總線故障對報文傳輸造成的延遲就越小。檢測錯誤所需時間,即從總線錯誤出現到被冗余程序檢測到所需的時間。以總線斷開故障為例, 發送器每發送一個報文產生一次應答錯誤, 錯誤計數器每次加8, 需連續進行16次發送, 使錯誤計數器值達到128引起總線切換。在位速率125kbps情況下, 發送最長為128位的報文, 若忽略控制器重發間隔時間, 從故障發生到被檢測到的響應時間為:

為避免在總線切換時丟失報文, 冗余算法需回讀故障控制器中未發送報文, 由此產生額外的故障處理時間, 因為每個發送郵箱最多存儲3個報文, 假定位速率125kbps不變, 備份總線發送時即取得仲裁,最長故障處理時間為:

因此總線切換時間為16. 38+ 3. 07= 19. 45m s。

通過實驗測得在125kbps位速率下連續發送不同報文長度的總線切換時間如表1所示:

表1 總線切換時間

在125kbps位速率下切換時間為22. 80ms, 比理論計算值稍長, 這是由總線切換時運行冗余算法及讀取控制器錯誤寄存器( ESR)所額外消耗的, 但在實際應用中, 發送報文獲取仲裁所需的等待時間遠大于切換時間, 總線故障并不頻繁發生, 冗余切換算法對系統的運行并無顯著影響。

4 結束語

與傳統單片機總線外擴兩片CAN 控制器的冗余方案相比, 本設計充分利用STM32F105微控制器內置的兩路CAN 控制器, 簡化電路設計, 相對降低了成本, 同時雙CAN 冗余通信系統的采用提高了系統整體可靠性。所使用雙總線負載均衡技術, 可以提高總線帶寬, 平衡通信負荷。系統船舶機艙監控系統的圖像和數據信號的傳輸中取得很好的效果。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 微控制器
    +關注

    關注

    48

    文章

    7564

    瀏覽量

    151504
  • 單片機
    +關注

    關注

    6037

    文章

    44563

    瀏覽量

    635858
  • CAN總線
    +關注

    關注

    145

    文章

    1952

    瀏覽量

    130808
收藏 人收藏

    評論

    相關推薦

    STM32F405xx和STM32F407xx微控制器數據手冊

    電子發燒友網站提供《STM32F405xx和STM32F407xx微控制器數據手冊.pdf》資料免費下載
    發表于 01-03 14:49 ?0次下載

    TMS320F2837xD核實時微控制器技術參考手冊

    電子發燒友網站提供《TMS320F2837xD核實時微控制器技術參考手冊.pdf》資料免費下載
    發表于 11-08 14:10 ?0次下載
    TMS320<b class='flag-5'>F</b>2837xD<b class='flag-5'>雙</b>核實時<b class='flag-5'>微控制器</b>技術參考手冊

    TMS320F28377D-EP核Delfino?微控制器數據表

    電子發燒友網站提供《TMS320F28377D-EP核Delfino?微控制器數據表.pdf》資料免費下載
    發表于 08-08 09:30 ?1次下載
    TMS320<b class='flag-5'>F</b>28377D-EP<b class='flag-5'>雙</b>核Delfino?<b class='flag-5'>微控制器</b>數據表

    TMS320F2837xD微控制器數據表

    電子發燒友網站提供《TMS320F2837xD微控制器數據表.pdf》資料免費下載
    發表于 08-01 12:59 ?0次下載
    TMS320<b class='flag-5'>F</b>2837xD<b class='flag-5'>雙</b>核<b class='flag-5'>微控制器</b>數據表

    STM32F105基于RT-Thread can過濾器怎么設置才能對擴展幀報文有效?

    STM32F105基于RT-Thread can過濾器怎么設置才能對擴展幀報文有效
    發表于 07-05 06:50

    如何在TC36x微控制器中實現冗余閃存?

    我需要在英飛凌 TC36x 微控制器中實現冗余閃存。 實施過程中我需要做哪些事情?
    發表于 05-30 07:36

    32位基于ARM核心的帶512K字節閃存的微控制器STM32F103xC, STM32F103xD, STM32F103xE數據手冊

    電子發燒友網站提供《32位基于ARM核心的帶512K字節閃存的微控制器STM32F103xC, STM32F103xD, STM32F103xE數據手冊.pdf》資料免費下載
    發表于 05-24 14:33 ?0次下載

    stm32f105主控作為傳感信號采集,精度和抗干擾怎樣?

    stm32f105主控作為傳感信號采集,精度和抗干擾怎樣。。。。?模擬采樣的時候,外圍如何處理比較得當。。 現在做個東西,用INA128U 采集壓力傳感0-50mV信號, 然后放
    發表于 05-11 08:08

    STM32F105怎么修改EP0最大長度?

    大家好,平臺STM32F105,我用的ST USB官方庫3.4版本,在CustomHid的基礎上修改。 想把EP0的MaxEPSize由64改成8. 1、修改usb_desc.c文件中設備描述符中
    發表于 05-06 07:26

    STM32F105可以移植UC/OS-III嗎?對于中斷嵌套怎么處理?

    最近剛移植了UC/OS-III到STM32F105上面,只是單純的點亮LED燈還有串口通信,都是正常的,若是使用外部中斷,且不停的使用,讓其進行嵌套之后,程序就會跑飛,覺得我哪里是移植錯了,但很難
    發表于 05-06 06:48

    stm32f105 usb從機模式無反映的原因?

    stm32f105,新畫的板子,測試用的程序是在其他板子上驗證過沒問題的。 這個新板子測試時候主機模式,讀寫u盤,功能是正常的。 但是測試模擬u盤程序卻不正常,插電腦上完全沒有反映。 求助,這會
    發表于 04-16 07:08

    STM32F105 USB虛擬串口,端點不能訪問是怎么回事?

    本人用的是STM32F105來做的串口虛擬設備,準備虛擬4個串口。代碼使用STM32CUBE生成的虛擬單串口基礎上修改來的。目前已經能枚舉4個串口。但是只能打開串口1.在打開其他串口的時候發現有問題。
    發表于 04-02 06:00

    stm32f105自動生成的USB主機, 如何進行數據的接收?

    stm32f105自動生成的USB 主機, 如何進行數據的接收? /** * @briefThe function informs user that data have been sent
    發表于 03-26 07:29

    STM32F101xx和STM32F103xx ARM 內核32位高性能微控制器參考手冊

    電子發燒友網站提供《STM32F101xx和STM32F103xx ARM 內核32位高性能微控制器參考手冊.pdf》資料免費下載
    發表于 01-29 09:25 ?8次下載

    STM32F105通過CubeMx創建USB HID始終無法識別是為什么?

    STM32F105 通過CubeMx創建USB HID始終無法識別 這兩天拿一個現成的板子想測試一下USB功能,但是通過最新版的CubeMx創建的項目文件,下載之后始終無法被windows識別
    發表于 01-24 08:26
    主站蜘蛛池模板: 国产人妻精品午夜福利免费不卡| 极品少妇高潮啪啪无码吴梦| 国产精品高清在线观看地址| 免费观看亚洲视频| 亚洲乱妇88网| 国产精品一区二区人妻无码| 老司机深夜福利ae 入口网站| 最新国产av.在线视频| 日产精品久久久久久久蜜殿| 国产自拍视频在线一区| 2021久久最新国产精品| 日本少妇无码精品12P| 国产在线视频一区二区不卡| 100国产精品人妻无码| 色噜噜狠狠色综合中文字幕| 久草色香蕉视频在线| 别停好爽好深好大好舒服视频| 无码日本亚洲一区久久精品| 久久综合色超碰人人| 国产99RE在线观看69热| 伊人久久影视| 双性h浪荡受bl| 美女脱内衣裸身尿口露出来| 国产精品久久毛片A片软件爽爽| 中文字幕人成乱码熟女APP| 日日噜噜夜夜躁躁狠狠| 久久青青草原精品国产软件| 国产成人综合95精品视频免费| 中国人泡妞xxxxxxxx19| 熟女久久久久久久久久久| 玛雅成人网| 和姐姐做插得很深| 成人中文字幕在线| 2019中文字幕乱码免费| 小妇人电影免费完整观看2021| 嗯啊好爽视频| 久久99热在线观看7| 国产精品成人免费视频99| bl高h文合集| 最近日本MV字幕免费观看视频 | 另类专区hy777|