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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > CAN總線協(xié)議的物理層和報文類型

          CAN總線協(xié)議的物理層和報文類型

          作者: 時間:2016-12-15 來源:網絡 收藏
          CAN總線物理層是將ECU連接至總線的驅動電路。ECU的總數將受限于總線上義了物理數據在總線上了物理數據在總線上各節(jié)點間的傳輸過程,主要是連接介質、線路電氣特性、數據的編碼/解碼、位定時和同步的實施標準。BOSCH CAN基本上沒有對物理層進行定義,但基于CAN的ISO標準對物理層進行了定義。設計一個CAN系統(tǒng)時,物理層具有很大的選擇余地,但必須保證CAN總線協(xié)議中媒體訪問層非破壞性位仲裁的要求,即出現總線競爭時,具有較高優(yōu)先權的報文獲取總線競爭的原則,所以要求物理層必須支持CAN總線中隱性位和顯性位的狀態(tài)特征。在沒有發(fā)送顯性位時,總線處于隱性狀態(tài),空閑時,總線處于隱性狀態(tài);當有一個或多個節(jié)點發(fā)送顯性位,顯性位覆蓋隱性位,使總線處于顯性狀態(tài)。在此基礎上,物理層主要取決于傳輸速度的要求。
            在CAN中,物理層從結構上可分為三層:分別是物理層信令(Physical Layer Signaling,PLS)、物理介質附件(Physical MediaAttachment,PMA)層和介質從屬接口(Media Dependent:Inter-face,MDI)層。其中PLS連同數據鏈路層功能由CAN控制器完成,PMA層功能由CAN收發(fā)器完成,MDI層定義了電纜和連接器的特性。目前也有支持CAN的微處理器內部集成了CAN控制器和收發(fā)器電路,如MC68HC908GZl6。PMA和MDI兩層有很多不同的國際或國家或行業(yè)標準,也可自行定義,比較流行的是ISOll898定義的高速CAN發(fā)送/接收器標準。理論上,CAN總線上的節(jié)點數幾乎不受限制,可達到2000個,實際上受電氣特性的限制,最多只能接100多個節(jié)點。
            CAN的數據鏈路層是其核心內容,其中邏輯鏈路控制(Logical Link control,LLC)完成過濾、過載通知和管理恢復等功能,媒體訪問控制(Medium Aeeess control,MAC)子層完成數據打包/解包、幀編碼、媒體訪問管理、錯誤檢測、錯誤信令、應答、串并轉換等功能。這些功能都是圍繞信息幀傳送過程展開的。
            報文類型
            在CAN2.0B的版本CAN總線協(xié)議中有兩種不同的幀格式,不同之處為標識符域的長度不同,含有l(wèi)l位標識符的幀稱之為標準幀,而含有29位標識符的幀稱為擴展幀。如CAN1.2版本協(xié)議所描述,兩個版本的標準數據幀格式和遠程幀格式分別是等效的,而擴展格式是CAN2.0B協(xié)議新增加的特性。為使控制器設計相對簡單,并不要求執(zhí)行完全的擴展格式,對于新型控制器而言,必須不加任何限制的支持標準格式。但無論是哪種幀格式,在報文
            傳輸時都有以下四種不同類型的幀:
            (1)數據幀(Data ) 數據幀將數據從發(fā)送器傳輸到接收器。
            (2)遠程幀(Remote ) 總線單元發(fā)出遠程幀,請求發(fā)送具有同一標識符的數據幀。
            (3)錯誤幀(Error ) 任何單元檢測到總線錯誤就發(fā)出錯誤幀。
            (4)過載幀(Overload ) 過載幀用在相鄰數據幀或遠程幀之間提供附加的延時。
            數據幀或遠程幀與前一個幀之間都會有一個隔離域,即幀間間隔。數據幀和遠程幀可以使用標準幀及擴展幀兩種格式。


          評論


          技術專區(qū)

          關閉
          看屁屁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); })();