在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基于微控制器STM32F105的雙CAN冗余設(shè)計(jì)方案

電子設(shè)計(jì) ? 來源:網(wǎng)絡(luò)整理 ? 2018-04-09 10:03 ? 次閱讀

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

1 硬件平臺組成

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

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

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

為防止總線過壓造成節(jié)點(diǎn)損壞, STM32F105內(nèi)置CAN 控制器的數(shù)據(jù)收發(fā)引腳并不與TJA1050直接相連, 通過ADuM1201磁隔離器實(shí)現(xiàn)信號隔離傳輸。與傳統(tǒng)光耦隔離相比, 磁隔離簡化了隔離電路設(shè)計(jì), 并且磁隔離芯片的功耗很低, 大約相當(dāng)于光耦隔離的1 /10。除了將CAN 數(shù)據(jù)信號隔離外,TJA1050T使用的電源和地也必須與系統(tǒng)完全隔離, 使用5V 隔離輸出的開關(guān)電源模塊IB0505LS提供隔離電源。由于CAN 總線數(shù)據(jù)傳輸率較高, 為了提高信號質(zhì)量, 網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)應(yīng)盡量設(shè)計(jì)成單線結(jié)構(gòu)以避免信號反射, 同時(shí)終端連接120歐姆左右的匹配電阻

圖1 CAN 接口電路設(shè)計(jì)

2 軟件設(shè)計(jì)

CAN 協(xié)議規(guī)范定義的數(shù)據(jù)鏈路層和部分物理層并不完整, 雙CAN 冗余應(yīng)用需要實(shí)現(xiàn)總線狀態(tài)監(jiān)控、網(wǎng)絡(luò)故障的診斷和標(biāo)識, 這就要通過添加軟件冗余模塊來實(shí)現(xiàn)。冗余模塊在程序主循環(huán)中調(diào)用, 根據(jù)不同總線錯(cuò)誤狀態(tài)執(zhí)行收發(fā)通道切換。CAN 總線錯(cuò)誤狀態(tài)分為3類: 錯(cuò)誤激活、錯(cuò)誤認(rèn)可、總線關(guān)閉??偩€正常工作時(shí)處于錯(cuò)誤激活狀態(tài),控制器檢測到錯(cuò)誤后將發(fā)送/接收錯(cuò)誤計(jì)數(shù)器的值遞增, 當(dāng)值大于127時(shí)進(jìn)入錯(cuò)誤認(rèn)可, 大于255時(shí)總線關(guān)閉狀態(tài), CAN 總線錯(cuò)誤檢測模塊通過讀取錯(cuò)誤狀態(tài)寄存器作為總線故障的測試條件, 在錯(cuò)誤狀態(tài)發(fā)生改變時(shí)調(diào)用冗余算法, 執(zhí)行總線切換操作。

通過實(shí)際調(diào)試發(fā)現(xiàn), 總線連接斷開且只有1個(gè)節(jié)點(diǎn)不斷發(fā)送報(bào)文時(shí)產(chǎn)生發(fā)送錯(cuò)誤, 控制器進(jìn)入錯(cuò)誤認(rèn)可狀態(tài), 但不進(jìn)入總線關(guān)閉狀態(tài); 其它錯(cuò)誤均使錯(cuò)誤計(jì)數(shù)器增加, 依次進(jìn)入錯(cuò)誤認(rèn)可狀態(tài)、總線關(guān)閉狀態(tài), 后兩種狀態(tài)表明總線被嚴(yán)重干擾, 需要采取相應(yīng)措施。為簡化控制邏輯設(shè)計(jì)將錯(cuò)誤認(rèn)可和總線關(guān)閉合并為總線故障。

冗余算法使用狀態(tài)機(jī)實(shí)現(xiàn)發(fā)送模式的切換, 根據(jù)不同總線故障選擇發(fā)送使用的總線。狀態(tài)切換流程圖如圖2所示, 程序首先讀取錯(cuò)誤狀態(tài)寄存器獲得總線錯(cuò)誤狀態(tài), 判斷當(dāng)前總線是否處于錯(cuò)誤激活模式, 若檢測到總線故障程序置相應(yīng)標(biāo)志位向其他程序模塊指示錯(cuò)誤。為提高報(bào)文發(fā)送效率, 發(fā)送程序一次將多個(gè)報(bào)文寫入發(fā)送郵箱由硬件控制自動(dòng)發(fā)送, 在切換總線時(shí), 需先把故障總線發(fā)送郵箱中的報(bào)文中回讀, 通過備份總線優(yōu)先發(fā)送, 這一機(jī)制保證報(bào)文不會(huì)因總線切換而丟失??刂破飨蚬收峡偩€發(fā)送數(shù)據(jù)域?yàn)榭盏臏y試報(bào)文, 每成功發(fā)送1報(bào)文, 總線發(fā)送錯(cuò)誤計(jì)數(shù)器的值遞減, 直至其值小于128總線恢復(fù)到錯(cuò)誤被動(dòng)狀態(tài); 每隔一定時(shí)間冗余程序讀取錯(cuò)誤狀態(tài)寄存器, 檢測故障總線是否恢復(fù)正常。

在2總線同時(shí)傳輸模式, 發(fā)送程序優(yōu)先寫入總線1郵箱, 當(dāng)總線1郵箱滿時(shí)寫入總線2的郵箱, 由于報(bào)文按優(yōu)先級仲裁發(fā)送, 若某一路發(fā)送郵箱經(jīng)常為空, 說明該路總線通信流量較小, 發(fā)送程序?qū)⑤^多報(bào)文轉(zhuǎn)由空閑總線發(fā)送, 實(shí)現(xiàn)報(bào)文的負(fù)載均衡。

圖2 總線狀態(tài)切換流程圖。

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

對雙CAN 冗余系統(tǒng)的可靠性進(jìn)行定量分析, 引入平均無故障運(yùn)行時(shí)間(M ean T ime To Fa ilure, MTTF)的概念。MTTF描述一個(gè)系統(tǒng)從開始工作到發(fā)生故障的時(shí)間間隔, 也即平均壽命。為簡化分析作如下假設(shè): 每路CAN總線的故障率相同; CAN 總線的損壞屬于物理損壞, 即不可修復(fù)的損壞。指數(shù)分布可以很好地用來描述電子元器件的壽命, 假設(shè)CAN總線的壽命分布服從指數(shù)分布, CAN 總線的可靠性模型如圖3所示。

圖3 CAN 總線可靠性模型圖

模型1為單總線的可靠性模型, 因?yàn)榭偩€壽命服從指數(shù)分布, 根據(jù)單一CAN總線無故障運(yùn)行時(shí)間MTTF1 = 1 /λ。模型2為雙CAN總線冗余可靠性模型, 系統(tǒng)由兩條獨(dú)立的總線并聯(lián)而成, 即只有當(dāng)這2條總線都失效時(shí)系統(tǒng)通信才會(huì)失敗, 于是系統(tǒng)的平均壽命MTTF2 = 3 /2。采用雙線冗余設(shè)計(jì)使CAN 通信的平均無故障時(shí)間增加了50%。

雙線CAN 冗余系統(tǒng)的另一關(guān)鍵指標(biāo)是總線切換時(shí)間, 它等于檢測錯(cuò)誤所需時(shí)間與處理故障總線未發(fā)送報(bào)文所需時(shí)間之和, 切換時(shí)間越短, 總線故障對報(bào)文傳輸造成的延遲就越小。檢測錯(cuò)誤所需時(shí)間,即從總線錯(cuò)誤出現(xiàn)到被冗余程序檢測到所需的時(shí)間。以總線斷開故障為例, 發(fā)送器每發(fā)送一個(gè)報(bào)文產(chǎn)生一次應(yīng)答錯(cuò)誤, 錯(cuò)誤計(jì)數(shù)器每次加8, 需連續(xù)進(jìn)行16次發(fā)送, 使錯(cuò)誤計(jì)數(shù)器值達(dá)到128引起總線切換。在位速率125kbps情況下, 發(fā)送最長為128位的報(bào)文, 若忽略控制器重發(fā)間隔時(shí)間, 從故障發(fā)生到被檢測到的響應(yīng)時(shí)間為:

為避免在總線切換時(shí)丟失報(bào)文, 冗余算法需回讀故障控制器中未發(fā)送報(bào)文, 由此產(chǎn)生額外的故障處理時(shí)間, 因?yàn)槊總€(gè)發(fā)送郵箱最多存儲(chǔ)3個(gè)報(bào)文, 假定位速率125kbps不變, 備份總線發(fā)送時(shí)即取得仲裁,最長故障處理時(shí)間為:

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

通過實(shí)驗(yàn)測得在125kbps位速率下連續(xù)發(fā)送不同報(bào)文長度的總線切換時(shí)間如表1所示:

表1 總線切換時(shí)間

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

4 結(jié)束語

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

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 微控制器
    +關(guān)注

    關(guān)注

    48

    文章

    7564

    瀏覽量

    151546
  • 單片機(jī)
    +關(guān)注

    關(guān)注

    6037

    文章

    44566

    瀏覽量

    635988
  • CAN總線
    +關(guān)注

    關(guān)注

    145

    文章

    1952

    瀏覽量

    130827
收藏 人收藏

    評論

    相關(guān)推薦

    STM32F405xx和STM32F407xx微控制器數(shù)據(jù)手冊

    電子發(fā)燒友網(wǎng)站提供《STM32F405xx和STM32F407xx微控制器數(shù)據(jù)手冊.pdf》資料免費(fèi)下載
    發(fā)表于 01-03 14:49 ?0次下載

    TMS320F2837xD核實(shí)時(shí)微控制器技術(shù)參考手冊

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

    TMS320F28377D-EP核Delfino?微控制器數(shù)據(jù)表

    電子發(fā)燒友網(wǎng)站提供《TMS320F28377D-EP核Delfino?微控制器數(shù)據(jù)表.pdf》資料免費(fèi)下載
    發(fā)表于 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>數(shù)據(jù)表

    TMS320F2837xD微控制器數(shù)據(jù)表

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

    STM32F105基于RT-Thread can過濾器怎么設(shè)置才能對擴(kuò)展幀報(bào)文有效?

    STM32F105基于RT-Thread can過濾器怎么設(shè)置才能對擴(kuò)展幀報(bào)文有效
    發(fā)表于 07-05 06:50

    如何在TC36x微控制器中實(shí)現(xiàn)冗余閃存?

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

    32位基于ARM核心的帶512K字節(jié)閃存的微控制器STM32F103xC, STM32F103xD, STM32F103xE數(shù)據(jù)手冊

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

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

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

    STM32F105怎么修改EP0最大長度?

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

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

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

    stm32f105 usb從機(jī)模式無反映的原因?

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

    STM32F105 USB虛擬串口,端點(diǎn)不能訪問是怎么回事?

    本人用的是STM32F105來做的串口虛擬設(shè)備,準(zhǔn)備虛擬4個(gè)串口。代碼使用STM32CUBE生成的虛擬單串口基礎(chǔ)上修改來的。目前已經(jīng)能枚舉4個(gè)串口。但是只能打開串口1.在打開其他串口的時(shí)候發(fā)現(xiàn)有問題。
    發(fā)表于 04-02 06:00

    stm32f105自動(dòng)生成的USB主機(jī), 如何進(jìn)行數(shù)據(jù)的接收?

    stm32f105自動(dòng)生成的USB 主機(jī), 如何進(jìn)行數(shù)據(jù)的接收? /** * @briefThe function informs user that data have been sent
    發(fā)表于 03-26 07:29

    STM32F101xx和STM32F103xx ARM 內(nèi)核32位高性能微控制器參考手冊

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

    STM32F105通過CubeMx創(chuàng)建USB HID始終無法識別是為什么?

    STM32F105 通過CubeMx創(chuàng)建USB HID始終無法識別 這兩天拿一個(gè)現(xiàn)成的板子想測試一下USB功能,但是通過最新版的CubeMx創(chuàng)建的項(xiàng)目文件,下載之后始終無法被windows識別
    發(fā)表于 01-24 08:26
    主站蜘蛛池模板: 午夜在线观看免费视频| 久久婷婷一区二区三区| 免费午夜不卡毛片| 国产一卡二卡3卡4卡四卡在线| 亚洲va中文字幕| 中国美女一级黄色片| 欧美福利视频网| 一级做a爱免费观看视频| 欧美激情 在线| 濑亚美莉vs黑人欧美视频| jiuma和我啪啪| 玖玖在线免费视频| 色偷偷视频| 中文字幕1页| 日本一区二区三区欧美在线观看| 狠狠操狠狠操| 天天插天天射天天干| 77se77亚洲欧美在线大屁股| 黄色18网站| 欧美日韩精品一区二区另类| 久久免费特黄毛片| aa黄色大片| 痴女在线播放免费视频| 花怜write. as| 悠悠影院欧美日韩国产| 人人爽天天爽夜夜爽曰| 天天做日日爱| 亚洲国产系列| 午夜影院观看| 国产美女久久| 国产免费福利网站| 亚洲一卡2卡3卡4卡5卡乱码| 69女poren16| 男人天堂欧美| 国产在线观看黄| 99精品在免费线视频| 国产福利萌白酱喷水视频铁牛| 久久精品免费观看久久| 理论在线看| 57pao成人永久免费视频| 亚洲天堂2013|