基于STM32F105微控制器的雙CAN冗余設(shè)計方案
控制器局域網(wǎng)( Contro llerA reaN etwo rk, CAN)是一種多主方式的串行通訊總線。CAN 總線具有較高的位速率, 很強(qiáng)的抗電磁干擾性, 完善的錯誤檢測機(jī)制, 在汽車、制造業(yè)以及航空工業(yè)領(lǐng)域中得到廣泛應(yīng)用 。由于船舶機(jī)艙環(huán)境極為惡劣, 且船舶航行過程中維修條件不如陸上, 對CAN 通信的可靠性要求很高, 采取雙CAN 冗余總線提高通信可靠性。本文提出一種基于STM32F105微控制器的雙CAN 冗余設(shè)計方案。
本文引用地址:http://www.ex-cimer.com/article/161991.htm1 硬件平臺組成
STM32F105是STM icroe lectron ics公司推出的一款基于ARM Co rtex- M3內(nèi)核的32位微控制器, 其內(nèi)核是專門設(shè)計于滿足高性能、低功耗、實(shí)時應(yīng)用的嵌入式領(lǐng)域的要求。由于采用Thumb - 2指令集,與ARM7微控制器相比STM32運(yùn)行速度最多可快35% 且代碼最多節(jié)省45% 。較高的主頻和代碼執(zhí)行效率使系統(tǒng)在進(jìn)行CAN 總線數(shù)據(jù)收發(fā)的同時仍可運(yùn)行總線冗余算法。STM32F105微控制器內(nèi)部集成2路獨(dú)立的CAN 控制器, 控制器集成在芯片內(nèi)部, 避免了總線外擴(kuò)引入的干擾, 同時簡化了電路設(shè)計、降低成本。
系統(tǒng)使用兩條完全獨(dú)立的CAN 總線, 兩個CAN 總線收發(fā)器和總線控制器, 實(shí)現(xiàn)物理層、數(shù)據(jù)鏈路層的全面冗余。在初始化時兩個控制器被同時激活, 一個作為主CAN, 另一個作為從CAN, 為主控制器的備份。正常運(yùn)作時, 數(shù)據(jù)通過主CAN 優(yōu)先發(fā)送; 當(dāng)主CAN 總線繁忙時, 從CAN 總線分擔(dān)部分通信流量; 而當(dāng)主CAN 總線發(fā)生故障時, 數(shù)據(jù)轉(zhuǎn)移至從CAN 控制器傳輸, 反之亦然。在任一總線發(fā)生故障時,數(shù)據(jù)都能經(jīng)由另一條總線傳輸, 而當(dāng)兩條總線都正常時, 使用兩總線同時傳輸, 增加約1倍的通信帶寬,這樣在保證了通信可靠性的同時提高了實(shí)時性。
CAN 總線接口電路設(shè)計如圖1所示, 使用T JA1050作為總線收發(fā)器, 它完成CAN 控制器與物理總線之間的電平轉(zhuǎn)換和差動收發(fā)。盡管TJA1050本身具備一定的保護(hù)能力, 但其與總線接口部分還是采用一定的安全和抗干擾措施; T JA1050的CANH 和CANL與地之間并聯(lián)兩只10pF的小電容, 可以濾除總線上的高頻干擾; 另外, 為了增強(qiáng)CAN 總線節(jié)點(diǎn)的抗干擾能力, 總線輸入端與地之間分別接入一只瞬態(tài)抑制二極管, 當(dāng)兩輸入與地之間出現(xiàn)瞬變干擾時, 收發(fā)器輸入端電壓被鉗位在安全范圍。
為防止總線過壓造成節(jié)點(diǎn)損壞, STM32F105內(nèi)置CAN 控制器的數(shù)據(jù)收發(fā)引腳并不與TJA1050直接相連, 通過ADuM1201磁隔離器實(shí)現(xiàn)信號隔離傳輸。與傳統(tǒng)光耦隔離相比, 磁隔離簡化了隔離電路設(shè)計, 并且磁隔離芯片的功耗很低, 大約相當(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è)計成單線結(jié)構(gòu)以避免信號反射, 同時終端連接120歐姆左右的匹配電阻。
圖1 CAN 接口電路設(shè)計
pid控制器相關(guān)文章:pid控制器原理
評論