首頁 新聞 > 科技 > 正文

CAN總線接口模塊工作原理

1.CAN模塊簡介   

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

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

2.CAN模塊支持的幀類型   

CAN模塊支持以下幀類型:標(biāo)準(zhǔn)數(shù)據(jù)幀、擴(kuò)展數(shù)據(jù)幀、遠(yuǎn)程幀、出錯(cuò)幀、過載幀和空閑幀。

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

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

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

(2)遠(yuǎn)程幀。

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

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

(3)錯(cuò)誤幀。

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

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

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

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

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

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

(4)過載幀。

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

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

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

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

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

最近更新

關(guān)于本站 管理團(tuán)隊(duì) 版權(quán)申明 網(wǎng)站地圖 聯(lián)系合作 招聘信息

Copyright © 2005-2018 創(chuàng)投網(wǎng) - www.mallikadua.com All rights reserved
聯(lián)系我們:33 92 950@qq.com
豫ICP備2020035879號(hào)-12