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

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > CAN總線(xiàn)技術(shù)學(xué)習(xí)(二)

          CAN總線(xiàn)技術(shù)學(xué)習(xí)(二)

          作者: 時(shí)間:2016-12-12 來(lái)源:網(wǎng)絡(luò) 收藏
          CAN總線(xiàn)信息以幀的形式傳輸,每個(gè)幀包括多個(gè)段:起始位SOF、仲裁段、控制段、數(shù)據(jù)段、CRC校驗(yàn)、確認(rèn)位、結(jié)束位等,各個(gè)段依次串行被傳輸?shù)娇偩€(xiàn)上。起始位、CRC校驗(yàn)、確認(rèn)位和結(jié)束位由控制器硬件自動(dòng)生成,軟件可以配置仲裁段、控制段和數(shù)據(jù)段的內(nèi)容。每個(gè)CAN幀最多發(fā)送數(shù)據(jù)段長(zhǎng)度為8個(gè)字節(jié)即64位。
          CAN總線(xiàn)協(xié)議有兩種:CAN2.0A和CAN2.0B協(xié)議,CAN2.0A支持幀ID為11位的標(biāo)準(zhǔn)幀,CAN2.0B協(xié)議支持幀ID為11位的標(biāo)準(zhǔn)幀和幀ID為29位的擴(kuò)展幀,如圖1和圖2所示。

          圖1CAN標(biāo)準(zhǔn)幀

          圖2CAN擴(kuò)展幀
          下面解釋幾個(gè)CAN總線(xiàn)問(wèn)題:
          位填充:上述圖中都提到位填充的問(wèn)題,即當(dāng)發(fā)送的一幀CAN信息中出現(xiàn)連續(xù)5個(gè)相同位時(shí),控制器會(huì)自動(dòng)填充一個(gè)相反的位進(jìn)去,控制器接收一幀CAN信息時(shí)發(fā)現(xiàn)5個(gè)相同的位,也會(huì)自動(dòng)把其后的一個(gè)翻轉(zhuǎn)位去掉。那么可能我們會(huì)問(wèn)為什么要做這種看似無(wú)用的操作呢?因?yàn)镃AN總線(xiàn)通訊屬于異步通訊,雖然通訊雙方約定設(shè)定相同的波特率通訊,但是每一位(bit)的寬度也不可能絕對(duì)相同,多個(gè)相同的位累積起來(lái)可能出現(xiàn)較大的誤差,造成接收信息出錯(cuò),那么如何解決這個(gè)問(wèn)題呢?CAN協(xié)議中規(guī)定在位跳轉(zhuǎn)時(shí)要做同步補(bǔ)償,那么這樣可以消除多個(gè)位累積造成的錯(cuò)誤,但是如果CAN幀信息連續(xù)出現(xiàn)多個(gè)0或1,接收方?jīng)]辦法監(jiān)測(cè)到翻轉(zhuǎn)位,不能做出正確的補(bǔ)償,可能導(dǎo)致發(fā)送方發(fā)了10位0,接收方監(jiān)測(cè)出11個(gè)0出來(lái)的情況出現(xiàn),所以當(dāng)發(fā)送方連續(xù)發(fā)送5個(gè)0時(shí),要位填充一個(gè)1進(jìn)去,然后再發(fā)送下面的位,而接收方接收到5個(gè)0后接收到下面的1可以做出相應(yīng)的同步補(bǔ)償,同時(shí)要丟棄這個(gè)填充位。按照CAN協(xié)議規(guī)定如果在CAN信息中接收到連續(xù)6個(gè)以上的相同位被認(rèn)為是錯(cuò)誤信息,CAN控制器錯(cuò)誤計(jì)數(shù)加1。
          CAN協(xié)議:如上圖所示,標(biāo)準(zhǔn)幀標(biāo)識(shí)符(幀ID)有11位,擴(kuò)展幀標(biāo)識(shí)符(幀ID)有29位,CAN2.0B協(xié)議也兼容CAN2.0A協(xié)議,可以同時(shí)識(shí)別標(biāo)準(zhǔn)幀和擴(kuò)展幀。標(biāo)準(zhǔn)幀和擴(kuò)展幀的區(qū)別在于IDE位,IDE為0時(shí)表示標(biāo)準(zhǔn)幀,IDE為1時(shí)表示擴(kuò)展幀。
          CAN信號(hào):CAN總線(xiàn)使用一對(duì)差分信號(hào)通訊,即CAN_H和CAN_L,通過(guò)識(shí)別它們的壓差獲取0或1的信息,上電后兩個(gè)信號(hào)對(duì)地都會(huì)有一定的電壓,即V_CANH和V_CANL,通過(guò)判斷V_CANH-V_CANL識(shí)別信息,總線(xiàn)信號(hào)分為顯性(壓差為1V以上,也即數(shù)字0)和隱性(壓差小于0.5V,也即數(shù)字1)。一般在沒(méi)有數(shù)據(jù)通訊時(shí)V_CANH和V_CANL都為2.5V,所以CAN總線(xiàn)默認(rèn)為沒(méi)有壓差(隱性,數(shù)字1),當(dāng)有起始位SOF(數(shù)字0,顯性)時(shí)每個(gè)網(wǎng)絡(luò)上的節(jié)點(diǎn)都能監(jiān)測(cè)到,準(zhǔn)備接收信息,如圖3所示。

          圖3CAN總線(xiàn)電壓示意圖
          逐位仲裁機(jī)制:CAN節(jié)點(diǎn)發(fā)送的信息都會(huì)被自己接收并判斷。當(dāng)CAN總線(xiàn)上兩個(gè)節(jié)點(diǎn)同時(shí)發(fā)送CAN信息時(shí),CAN節(jié)點(diǎn)也會(huì)比較自己發(fā)送的數(shù)據(jù)和接收的數(shù)據(jù)是否一致,由于CAN信號(hào)有顯性(數(shù)字0,壓差大于1V)和隱性(數(shù)據(jù)1,壓差小于0.5V)兩種,當(dāng)一個(gè)節(jié)點(diǎn)發(fā)送0而另一個(gè)節(jié)點(diǎn)發(fā)送1時(shí),總線(xiàn)表現(xiàn)為顯性0,那么發(fā)送1的節(jié)點(diǎn)監(jiān)測(cè)到后知道發(fā)送總線(xiàn)沖突,自動(dòng)退出發(fā)送,所以可以看出,CAN總線(xiàn)信息小的優(yōu)先級(jí)高。通過(guò)這種方式可以實(shí)現(xiàn)非破壞性逐位仲裁,優(yōu)先級(jí)高的節(jié)點(diǎn)正常發(fā)送,不受任何影響。


          關(guān)鍵詞: CAN總線(xiàn)技

          評(píng)論


          技術(shù)專(zhuān)區(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); })();