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