<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 沒聽過這個,都不好意思說自己做過CAN總線開發(fā)!

          沒聽過這個,都不好意思說自己做過CAN總線開發(fā)!

          作者: 時間:2016-12-13 來源:網(wǎng)絡(luò) 收藏
          CAN總線網(wǎng)絡(luò)中,若其中一個節(jié)點出現(xiàn)硬件或者軟件上的錯誤,很可能導(dǎo)致總線電平持續(xù)保持在顯性狀態(tài),總線上所有節(jié)點均不能正常通信。在節(jié)點設(shè)計時,應(yīng)該如何通過硬件手段避免這一問題發(fā)生?


          總線值

          CAN總線上的數(shù)據(jù)采用不歸零編碼方式,可具有兩種互補(bǔ)的邏輯值之一:“顯性”或“隱性”。“顯性”位和“隱性”位同時傳送時,總線的結(jié)果值為“顯性”。比如,在執(zhí)行總線的“線與”時,邏輯 0 代表“顯性”,邏輯1 代表“隱性”。

          CAN總線節(jié)點的基本組成如圖1所示,當(dāng)MCU的TXD引腳輸出0時,總線電平為顯性,若輸出1,總線電平則為隱性。

          本文引用地址:http://www.ex-cimer.com/article/201612/329324.htm


          圖1 CAN節(jié)點基本組成示意圖


          TXD 顯性超時

          由于CAN總線顯性電平的“支配地位”,在CAN總線組網(wǎng)時,若有其中一個CAN節(jié)點出現(xiàn)硬件或者軟件上的錯誤,使控制器TXD引腳持續(xù)處于低電平,則會使總線電平持續(xù)保持在顯性狀態(tài),總線上所有節(jié)點均不能正常通信,導(dǎo)致總線癱瘓。若總線節(jié)點數(shù)量眾多,確定問題節(jié)點將是一項艱巨的任務(wù)。

          帶TXD顯性超時保護(hù)功能的CAN收發(fā)器可以有效防止出錯的CAN控制器通過發(fā)送持續(xù)的顯性TXD信號將總線箝位在顯性電平。


          圖2 TXD顯性超時功能


          如圖2所示,帶TXD顯性超時保護(hù)的CAN收發(fā)器,在TXD引腳顯性時間超過允許最大的時間tDOM后,發(fā)送器將被禁能,收發(fā)器輸出表現(xiàn)為隱性狀態(tài),總線將不受該節(jié)點影響,從而保證總線的正常通信。收發(fā)器下一個顯性輸出只有在釋放了TXD后才可以產(chǎn)生。

          隔離CAN收發(fā)器

          表1列出了常用的隔離CAN收發(fā)器。從列表可以看出,CTM1051K(A)T具有TXD顯性超時保護(hù)功能,可以避免總線持續(xù)進(jìn)入顯性狀態(tài),保護(hù)總線正常通信。但由于tDOM的存在,收發(fā)器的最低工作位速率被限制。

          表1 常用隔離CAN收發(fā)器


          圖3 CAN隔離收發(fā)器


          根據(jù) CAN 協(xié)議(ISO 11898),除了錯誤幀和過載幀(允許6個相等顯性位),CAN幀報文中在5個連續(xù)相等位后,發(fā)送器自動插入一個與之互補(bǔ)的補(bǔ)碼位;接收時,這個填充位被自動丟掉。例如,5個連續(xù)的高電平位后,CAN自動插入一個低電平位。因此,TXD只允許最多11個連續(xù)的顯性位,最壞的情況是一個錯誤幀緊接在5個連續(xù)的顯性位后,即tDOM的最小值要求收發(fā)器的最小位速率必須大于36.7kbit/s:



          關(guān)鍵詞: CAN總線開

          評論


          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();