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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > CAN總線接□模塊工作原理

          CAN總線接□模塊工作原理

          作者: 時間:2011-07-20 來源:網(wǎng)絡(luò) 收藏

          1.CAN模塊簡介   

          控制器局域網(wǎng)(CAN)模塊是用于與其他外圍設(shè)備或單片機進行通信的模塊,這種接口協(xié)議能在較大的噪聲 環(huán)境中進行通信,具有良好的擾干擾性能。

          CAN模塊是一個通信控制器,執(zhí)行的是Bosch公司的CAN2.0A/B協(xié)議。它能支持CAN1.2、CAN 2.0A、CAN 2.OB 協(xié)議的舊版本和CAN2.OB現(xiàn)行版本,此控制器模塊包含完整的CAN系統(tǒng)。

          CAN模塊由協(xié)議驅(qū)動和信息緩沖及控制組成,CAN協(xié)議驅(qū)動上接收和發(fā)送信息的所有功能。信息裝載 到某個相應(yīng)的數(shù)據(jù)寄存器后再發(fā)送,通過讀相應(yīng)的寄存器可檢查狀態(tài)與錯誤信息。在上檢測到的任 何信息都要進行錯誤檢查,然后與過濾器進行比較,判斷是否被接收和存儲到兩個接收寄存器之一。

          2.CAN模塊支持的幀類型   

          CAN模塊支持以下幀類型:標準數(shù)據(jù)幀、擴展數(shù)據(jù)幀、遠程幀、出錯幀、過載幀和空閑幀。

          (1)數(shù)據(jù)幀。

          用于各節(jié)點之間傳送數(shù)據(jù)消息,由7個不同的位場組成:幀起始、仲裁場、控制場、數(shù)據(jù)場、CRC場、應(yīng)答 場和幀結(jié)束。數(shù)據(jù)幀結(jié)構(gòu)如圖1所示。

          圖1 數(shù)據(jù)幀組成   

          (2)遠程幀。

          當CAN網(wǎng)絡(luò)上一個節(jié)點需要其他節(jié)點所擁有的數(shù)據(jù)信息時,可以通過發(fā)送遠程幀來請求另一節(jié)點發(fā)送。該 遠程幀的標識符標識了所需數(shù)據(jù)的類型,因此,被送回的數(shù)據(jù)信息的標識符和遠程幀的標識符完全一致。數(shù) 據(jù)源節(jié)點在接收到遠程幀后,根據(jù)遠程幀的標識符判斷所需數(shù)據(jù)信`患類型,并在總線空閑時將相應(yīng)數(shù)據(jù)送 出。遠程幀由6個位場組成:幀起始、仲裁場、控制場、CRC場、應(yīng)答場和幀結(jié)束。除了沒有數(shù)據(jù)場和RTR為 隱性外,遠程幀結(jié)構(gòu)和數(shù)據(jù)幀完全相同,遠程幀結(jié)構(gòu)如圖2所示。

          圖2 遠程幀結(jié)構(gòu)   

          (3)錯誤幀。

          為進行錯誤界定,每個CAN控制器均設(shè)有兩個錯誤計數(shù)器:發(fā)送錯誤計數(shù)器(TEC)和接收錯誤計數(shù)器 (REC)。上的所有節(jié)點按其錯誤計數(shù)器數(shù)值情況可分為3個狀態(tài):錯誤活動狀態(tài)、錯誤認可狀態(tài)和 總線關(guān)閉狀態(tài)。節(jié)點狀態(tài)轉(zhuǎn)換如圖3所示。

          圖3 節(jié)點狀態(tài)轉(zhuǎn)換   

          上電復(fù)位后,兩個錯誤計數(shù)器的數(shù)值都為0,節(jié)點處于錯誤活動狀態(tài),可正常參與總線通信,檢測到錯誤時 ,發(fā)送活動錯誤標志。當錯誤計數(shù)器任一數(shù)值超過127時,節(jié)點進入錯誤認可狀態(tài)。處于錯誤狀態(tài)的節(jié)點可 參與總線通信,但出錯后,發(fā)送認可錯誤標志,并在開始進一步發(fā)送數(shù)據(jù)之前等待一段附加時間(暫停發(fā)送 場)。

          當發(fā)送錯誤計數(shù)器和接收計數(shù)器均小于或等于127時,節(jié)點從錯誤認可狀態(tài)再次變?yōu)殄e誤活動狀態(tài)。若發(fā)送 錯誤計數(shù)器數(shù)值超過255后,節(jié)點進入總線關(guān)閉狀態(tài),既不能向總線發(fā)送數(shù)據(jù),也不能從總線接收數(shù)據(jù)。當 軟件執(zhí)行操作模式請求命令,并等待128次總線釋放(BusˉFree)序列(11位連續(xù)隱性位)后,節(jié)點從總線 脫離狀態(tài)重新回到錯誤活動狀態(tài)。

            錯誤幀由兩個不同的位場組成,第一個場由來自不同的節(jié)點的錯誤標志疊加而成,第二個場為錯誤界定符 ,錯誤幀結(jié)構(gòu)如圖4所示。

          圖4 錯誤幀結(jié)構(gòu)   

          (4)過載幀。

          超載幀由超載標志和超載界定符組成。超載標志由6個顯性位組成,其格式與活動錯誤標志相同。超載界 定符由8個隱性位組成,其格式與錯誤界定符相同。導(dǎo)致發(fā)送超載幀的兩個條件為:   

          ①一個接收節(jié)點內(nèi)部接收條件未準備好,要求延遲下一個數(shù)據(jù)幀或遠程幀發(fā)送;   

          ②在間歇場(3位)檢測到顯性位。

          當超載標志發(fā)出后,每個節(jié)點監(jiān)視總線狀態(tài),直至檢測到從顯性至隱性位的跳變,此時,所有的節(jié)點均己 完成了超載標志的發(fā)送,隨后所有節(jié)點開始發(fā)送8個隱性位組成的超載界定符,超載幀結(jié)構(gòu)如圖5所示。

          圖5 超載幀結(jié)構(gòu)   

          (5)空閑幀。

          數(shù)據(jù)幀及遠程幀與前幀消息之間的間隔被稱為幀間空間的場隔開,如圖6所示,幀間

          圖6 不包含暫停發(fā)送場的幀間空間   

          空間由間歇場和總線空閑場組成,前面已經(jīng)發(fā)送過報文的錯誤節(jié)點還包括暫停發(fā)送場。間歇場由3個隱性位 組成,在此期間,CAN節(jié)點不進行幀發(fā)送。間歇場的存在使CAN控制器在下次消息發(fā)送前有時間進行內(nèi)部處理 操作。

          總線空閑場可以為任意長度,此時總線處于空閑狀態(tài),允許任何節(jié)點開始報文發(fā)送。等待報文發(fā)送的節(jié)點 緊隨間歇場后啟動報文發(fā)送,即在空閑場第一位期間就啟動報文發(fā)送。

          如圖7所示,錯誤認可節(jié)點完成一個報文發(fā)送后,在開始另一次報文發(fā)送或進入總線空閑狀態(tài)之前,緊隨間 歇場發(fā)送8個隱性位的暫停發(fā)送場。發(fā)送暫停發(fā)送場期間,若其他節(jié)點開始發(fā)送報文,則本節(jié)點停止送出暫 停發(fā)送場,并變?yōu)閳笪慕邮掌鳌?   圖7 包含暫停發(fā)送場的幀間空間  ?。?)標準數(shù)據(jù)幀。

            標準數(shù)據(jù)幀的結(jié)構(gòu)如圖8所示。

          圖8 標準幀格式   

          (7)擴展幀。

          擴展幀的結(jié)構(gòu)如圖9所示。

          圖9 擴展幀格式   

          3.傳輸過程中的可靠性和同步問題   

          (1)可靠性。

          CAN網(wǎng)絡(luò)通信要求信息可靠傳送,但由于外界干擾不可避免地會對通信線路造成影響,誤碼總是客觀存在 的,所以網(wǎng)絡(luò)通信中必須采取某些差錯控制措施。

          當出現(xiàn)錯誤時,及時發(fā)現(xiàn)錯誤并及時加以糾正。為提高抗干擾能力和數(shù)據(jù)的可靠性,CAN采用了多種錯誤 檢測手段:發(fā)送監(jiān)視、位填充錯誤檢測、CRC校驗、格式錯誤檢測以及應(yīng)答錯誤檢測。

          為保證CAN網(wǎng)絡(luò)中節(jié)點間的正常通信,必須對報文的位定時作出規(guī)定。接收同步、網(wǎng)絡(luò)傳輸延遲補償及采 樣點定位均由CAN協(xié)議集成電路的可編程位定時邏輯確定。CAN中正常位速率被定義為:在不需要重同步的情 況下,每秒傳送的位數(shù)。正常位定時被定義為一位的持續(xù)時間,實際上就是正常位速率的倒數(shù)。

          (2)同步問題。

          位時間可劃分為4個互不重疊的時間段:同步段(SYNC ̄SEG:SynchronizationSegment)、傳播段(PROPˉSEG:Propagation Segment)、相位緩沖段1(PHASEˉSEG:Phase Bufer Segment1)及相位緩沖段2(PHASE-SEG2:Phase Bufer Segment2)。

          同步段用于總線上各節(jié)點消息傳輸同步,長度為一個時間份額,此段內(nèi)需要一個跳變沿。傳播段用于補償網(wǎng)絡(luò)內(nèi)的物理延遲時間,它是信號在總線上傳播時間、輸入比較器延遲和輸出驅(qū)動器延遲之和的兩倍,長度可被編程為1~8個時間份額。實際上,在CAN協(xié)議集成器件中并沒有定義此段。

          相位緩沖段用于補償上升沿或下降沿的相位誤差,通過重同步,這兩個時間段可被用戶延長或縮短。相位緩沖段1長度可編程為1~8個時間份額,相位緩沖段2長度取值為相位緩沖段1最大值和消息處理時間之和,消息處理時間個于等于兩個時間份額(這一點在CAN協(xié)議集成器件中并未嚴格遵守,實際應(yīng)用中相位緩沖段1比相位緩沖段2長)。

          由采樣點開始,保留用于計算后續(xù)位電平的時間段被定義為消息處理時間,其長度小于或等于2個時間份額??偩€電平在采樣點被讀取,所以此點代表該位的數(shù)值大小。采樣點位于相位緩沖段1的末尾處。

          時間份額是由振蕩器時鐘分頻得出的一個固定時間單元,在CAN協(xié)議集成器件中被稱為系統(tǒng)時鐘周期,可由一個預(yù)分頻器設(shè)定大小,時間份額由下式計算:   

          時間份額=m×最小時間份額   

          其中m為預(yù)分頻器系數(shù),最小時間份額在CAN集成器件中被稱為振蕩器時鐘周期。一個位時間中時間份額總數(shù)必須被編程在8~25之間。

          網(wǎng)絡(luò)常采用的同步方式有兩種:準同步和標準同步。準同步又稱獨立同步,各節(jié)點均擁有時間獨立的高穩(wěn)定度振蕩時鐘,它們的頻率并不一定完全相等,但必須時間相近。準同步的優(yōu)點是同步體系簡單,容易實現(xiàn),缺點是工作可靠性較差。

          標準同步又分為主從同步法和相互同步法兩種,主從同步方法中,各網(wǎng)絡(luò)節(jié)點的時鐘以在網(wǎng)絡(luò)中處于重要位置的節(jié)點時鐘為基準。其優(yōu)點是結(jié)構(gòu)相對簡單,網(wǎng)絡(luò)穩(wěn)定性好,缺點是網(wǎng)絡(luò)過分依賴于主時鐘,有全網(wǎng)癱瘓的危險。

          和其他計算機網(wǎng)絡(luò)相比,CAN網(wǎng)絡(luò)結(jié)構(gòu)相對簡單,所以采用準同步方式,每個節(jié)點都擁有自己獨立的振蕩時鐘。CAN網(wǎng)絡(luò)中,同步方式又分硬同步和重同步兩種形式,同步過程由器件自身完成。

          CAN模塊使用RB3/CANRX和RB2/CANTX/INT2引腳與CAN總線驅(qū)動器接口。要配置CANRX和CANTX為CAN接口,需要將TRISB〈3>位置1,TRISB(2)位清0。

          分頻器相關(guān)文章:分頻器原理
          塵埃粒子計數(shù)器相關(guān)文章:塵埃粒子計數(shù)器原理


          關(guān)鍵詞: CAN總線 接□模塊 工作原理

          評論


          相關(guān)推薦

          技術(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); })();