新聞中心

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)是控制器局域網(wǎng)絡(luò)(ControllerAreaNetwork,CAN)的簡(jiǎn)稱(chēng),是德國(guó)BOSCH公司開(kāi)發(fā),是國(guó)際上應(yīng)用最廣泛的現(xiàn)場(chǎng)總線(xiàn)之一,CAN總線(xiàn)已成為汽車(chē)計(jì)算機(jī)和嵌入式工控局域網(wǎng)標(biāo)準(zhǔn)總線(xiàn)。
為了全面了解CAN總線(xiàn),需要先對(duì)其有個(gè)整體的概念,這中間還有一個(gè)小故事,一個(gè)應(yīng)屆畢業(yè)生到公司去應(yīng)聘,負(fù)責(zé)招聘的經(jīng)理問(wèn)他:“你會(huì)哪方面的技術(shù)?”,畢業(yè)生說(shuō):“我會(huì)CAN總線(xiàn)”,經(jīng)理疑惑的問(wèn):“你會(huì)看什么總線(xiàn)?”。那么什么是CAN總線(xiàn)呢?
1、 首先CAN總線(xiàn)是一種串行總線(xiàn),不是并行的,是用來(lái)傳輸電子數(shù)據(jù)的,就像串口總線(xiàn)、USB總線(xiàn)、以太網(wǎng)一樣;
2、 CAN總線(xiàn)是半雙工傳輸模式,發(fā)的時(shí)候不能收,收的時(shí)候不能發(fā);
3、 CAN總線(xiàn)使用雙線(xiàn)傳輸,一根定義為CAN_H,一根定義為CAN_L,使用差分信號(hào)傳輸(差分信號(hào)就是通過(guò)計(jì)算兩線(xiàn)壓差);
4、 CAN總線(xiàn)的波特率最高可達(dá)1Mbps,傳輸距離最遠(yuǎn)10公里,傳輸波特率和傳輸距離成反比,波特率越高有效傳輸距離越短;
5、 組網(wǎng)時(shí)總線(xiàn)兩端CAN_H和CAN_L之間要分別連接一個(gè)120歐的終端電阻(起吸收反射波、高頻抗干擾的作用)。
那么CAN總線(xiàn)有什么優(yōu)勢(shì)呢?
1、 CAN總線(xiàn)作為現(xiàn)場(chǎng)總線(xiàn)只有兩根傳輸線(xiàn),比以太網(wǎng)組網(wǎng)簡(jiǎn)單,成本也低很多,在不需要大數(shù)據(jù)量傳輸?shù)脑O(shè)備通訊上有相當(dāng)?shù)膬?yōu)勢(shì);
2、 CAN總線(xiàn)使用差分信號(hào)和屏蔽線(xiàn)傳輸,抗干擾能力強(qiáng),數(shù)據(jù)傳輸穩(wěn)定,因?yàn)樵谀滁c(diǎn)有干擾時(shí)兩根信號(hào)會(huì)被同步干擾,不會(huì)影響信號(hào)傳輸?shù)男畔ⅲ?br />3、 CAN總線(xiàn)波特率最高可達(dá)1Mbps,傳輸速率相對(duì)串口快很多,同時(shí)總線(xiàn)協(xié)議中加入CRC校驗(yàn),相對(duì)于串口的奇偶校驗(yàn),數(shù)據(jù)安全性強(qiáng);
4、 CAN總線(xiàn)使用差分雙線(xiàn)傳輸,易于組網(wǎng),布線(xiàn)簡(jiǎn)單;
5、 CAN總線(xiàn)通訊不分主從,網(wǎng)絡(luò)上每個(gè)設(shè)備都可以主動(dòng)發(fā)送數(shù)據(jù);
6、 CAN總線(xiàn)協(xié)議應(yīng)用非破壞性逐位仲裁機(jī)制,即通過(guò)發(fā)送幀的幀ID的大小作為優(yōu)先級(jí)判斷網(wǎng)絡(luò)上數(shù)據(jù)發(fā)送沖突,優(yōu)先級(jí)高的信息發(fā)送,優(yōu)先級(jí)低的數(shù)據(jù)停止發(fā)送,極大提供總線(xiàn)的利用率;
7、 CAN總線(xiàn)協(xié)議設(shè)置對(duì)發(fā)送的自動(dòng)重發(fā)機(jī)制,當(dāng)發(fā)送監(jiān)測(cè)到發(fā)送沖突時(shí),停止發(fā)送,等總線(xiàn)空閑后自動(dòng)重發(fā);
8、 通過(guò)設(shè)置總線(xiàn)控制器中驗(yàn)收寄存器和屏蔽寄存器,可以使節(jié)點(diǎn)在硬件層允許接收某些幀或屏蔽接收某些無(wú)用幀,節(jié)約單片機(jī)ECU接收和判斷處理的時(shí)間。
綜上所述,CAN總線(xiàn)在設(shè)計(jì)成本、傳輸速率、傳輸穩(wěn)定性、傳輸安全性、易于組網(wǎng)以及總線(xiàn)協(xié)議完善設(shè)計(jì)方面的優(yōu)勢(shì),使其在現(xiàn)代汽車(chē)、工控局域網(wǎng)絡(luò)領(lǐng)域得到廣泛的應(yīng)用。
CAN總線(xiàn)既然作為一種現(xiàn)場(chǎng)總線(xiàn),用途就是在不同設(shè)備間傳輸數(shù)據(jù),基本的邏輯框圖如圖1所示:

圖1CAN總線(xiàn)邏輯框圖
CAN總線(xiàn)通訊主要包括:主控制器(一般為單片機(jī))、CAN總線(xiàn)控制器(圖例為SJA1000,方框中為一個(gè)芯片器件)和收發(fā)器,主控制器初始化設(shè)置CAN總線(xiàn)控制器工作,CAN總線(xiàn)控制器為主要CAN總線(xiàn)邏輯器件,負(fù)責(zé)將數(shù)據(jù)轉(zhuǎn)換為總線(xiàn)協(xié)議串行信號(hào)和將收發(fā)器接收到的信號(hào)轉(zhuǎn)換為有效數(shù)據(jù),并屏蔽無(wú)效數(shù)據(jù),監(jiān)測(cè)故障錯(cuò)誤并報(bào)告,收發(fā)器將CAN總線(xiàn)收發(fā)信號(hào)轉(zhuǎn)換成半雙工CAN總線(xiàn)差分信號(hào)。有的單片機(jī)將CAN控制器芯片功能集成在單片機(jī)中,如富士通MB90340系列、STM32f10x系列等。
CAN總線(xiàn)組網(wǎng)的邏輯框圖如圖2所示:
如圖所示,多個(gè)CAN總線(xiàn)節(jié)點(diǎn)通過(guò)差分信號(hào)連接到CAN總線(xiàn)網(wǎng)絡(luò)上,網(wǎng)絡(luò)兩端(CAN_H和CAN_L之間)分別連接一個(gè)120歐姆的終端電阻(吸收反射波,抗干擾)。各節(jié)點(diǎn)不分主從,都可以主動(dòng)向總線(xiàn)上發(fā)送CAN信息,也可以設(shè)置CAN控制器的驗(yàn)收屏蔽寄存器有選擇的接收總線(xiàn)上的信息。

圖2CAN總線(xiàn)網(wǎng)絡(luò)框圖


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

評(píng)論


技術(shù)專(zhuān)區(qū)

關(guān)閉