新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > CAN總線(xiàn)及其終端配置方法

CAN總線(xiàn)及其終端配置方法

作者: 時(shí)間:2016-12-14 來(lái)源:網(wǎng)絡(luò) 收藏
CAN是控制器局域網(wǎng)絡(luò)(ControllerArea Network, CAN)的簡(jiǎn)稱(chēng),是國(guó)際上應(yīng)用最廣泛的現(xiàn)場(chǎng)總線(xiàn)之一。當(dāng)前,CAN總線(xiàn)協(xié)議已經(jīng)成為汽車(chē)計(jì)算機(jī)控制系統(tǒng)和嵌入式工業(yè)控制局域網(wǎng)的標(biāo)準(zhǔn)總線(xiàn)。 CAN有效支持分布式控制或?qū)崟r(shí)控制的串行通信網(wǎng)絡(luò)。較之許多RS-485基于R線(xiàn)構(gòu)建的分布式控制系統(tǒng)而言,基于CAN總線(xiàn)的分布式控制系統(tǒng)在以下方面具有明顯的優(yōu)越性

一、CAN總線(xiàn)

本文引用地址:http://butianyuan.cn/article/201612/329679.htm

CAN是控制器局域網(wǎng)絡(luò)(ControllerArea Network, CAN)的簡(jiǎn)稱(chēng),是國(guó)際上應(yīng)用最廣泛的現(xiàn)場(chǎng)總線(xiàn)之一。當(dāng)前,CAN總線(xiàn)協(xié)議已經(jīng)成為汽車(chē)計(jì)算機(jī)控制系統(tǒng)和嵌入式工業(yè)控制局域網(wǎng)的標(biāo)準(zhǔn)總線(xiàn)。

CAN有效支持分布式控制或?qū)崟r(shí)控制的串行通信網(wǎng)絡(luò)。較之許多RS-485基于R線(xiàn)構(gòu)建的分布式控制系統(tǒng)而言,基于CAN總線(xiàn)的分布式控制系統(tǒng)在以下方面具有明顯的優(yōu)越性:

1、網(wǎng)絡(luò)各節(jié)點(diǎn)之間的數(shù)據(jù)通信實(shí)時(shí)性強(qiáng)

CAN控制器工作于多種方式,網(wǎng)絡(luò)中的各節(jié)點(diǎn)都可根據(jù)總線(xiàn)訪問(wèn)優(yōu)先權(quán)(取決于報(bào)文標(biāo)識(shí)符)采用無(wú)損結(jié)構(gòu)的逐位仲裁的方式競(jìng)爭(zhēng)向總線(xiàn)發(fā)送數(shù)據(jù),且CAN協(xié)議廢除了站地址編碼,而代之以對(duì)通信數(shù)據(jù)進(jìn)行編碼,這可使不同的節(jié)點(diǎn)同時(shí)接收到相同的數(shù)據(jù),這些特點(diǎn)使得CAN總線(xiàn)構(gòu)成的網(wǎng)絡(luò)各節(jié)點(diǎn)之間的數(shù)據(jù)通信實(shí)時(shí)性強(qiáng),并且容易構(gòu)成冗余結(jié)構(gòu),提高系統(tǒng)的可靠性和系統(tǒng)的靈活性。而利用RS-485只能構(gòu)成主從式結(jié)構(gòu)系統(tǒng),通信方式也只能以主站輪詢(xún)的方式進(jìn)行,系統(tǒng)的實(shí)時(shí)性、可靠性較差;

2、縮短了開(kāi)發(fā)周期

CAN總線(xiàn)通過(guò)CAN收發(fā)器接口的兩個(gè)輸出端CANH和CANL與物理總線(xiàn)相連,而CANH端的狀態(tài)只能是高電平或懸浮狀態(tài),CANL端只能是低電平或懸浮狀態(tài)。這就保證不會(huì)在出現(xiàn)在RS-485網(wǎng)絡(luò)中的現(xiàn)象,即當(dāng)系統(tǒng)有錯(cuò)誤,出現(xiàn)多節(jié)點(diǎn)同時(shí)向總線(xiàn)發(fā)送數(shù)據(jù)時(shí),導(dǎo)致總線(xiàn)呈現(xiàn)短路,從而損壞某些節(jié)點(diǎn)的現(xiàn)象。而且CAN節(jié)點(diǎn)在錯(cuò)誤嚴(yán)重的情況下具有自動(dòng)關(guān)閉輸出功能,以使總線(xiàn)上其他節(jié)點(diǎn)的操作不受影響,從而保證不會(huì)出現(xiàn)象在網(wǎng)絡(luò)中,因個(gè)別節(jié)點(diǎn)出現(xiàn)問(wèn)題,使得總線(xiàn)處于“死鎖”狀態(tài)。而且,CAN具有的完善的通信協(xié)議可由CAN控制器芯片及其接口芯片來(lái)實(shí)現(xiàn),從而大大降低系統(tǒng)開(kāi)發(fā)難度,縮短了開(kāi)發(fā)周期,這些是僅有電氣協(xié)議的RS-485所無(wú)法比擬的。

二、CAN的報(bào)文格式

在總線(xiàn)中傳送的報(bào)文,每幀由7部分組成。CAN協(xié)議支持兩種報(bào)文格式,其唯一的不同是標(biāo)識(shí)符(ID)長(zhǎng)度不同,標(biāo)準(zhǔn)格式為11位,擴(kuò)展格式為29位。

在標(biāo)準(zhǔn)格式中,報(bào)文的起始位稱(chēng)為幀起始(SOF),然后是由11位標(biāo)識(shí)符和遠(yuǎn)程發(fā)送請(qǐng)求位 (RTR)組成的仲裁場(chǎng)。RTR位標(biāo)明是數(shù)據(jù)幀還是請(qǐng)求幀,在請(qǐng)求幀中沒(méi)有數(shù)據(jù)字節(jié)。

控制場(chǎng)包括標(biāo)識(shí)符擴(kuò)展位(IDE),指出是標(biāo)準(zhǔn)格式還是擴(kuò)展格式。它還包括一個(gè)保留位 (ro),為將來(lái)擴(kuò)展使用。它的最后四個(gè)位用來(lái)指明數(shù)據(jù)場(chǎng)中數(shù)據(jù)的長(zhǎng)度(DLC)。數(shù)據(jù)場(chǎng)范圍為0~8個(gè)字節(jié),其后有一個(gè)檢測(cè)數(shù)據(jù)錯(cuò)誤的循環(huán)冗余檢查(CRC)。

應(yīng)答場(chǎng)(ACK)包括應(yīng)答位和應(yīng)答分隔符。發(fā)送站發(fā)送的這兩位均為隱性電平(邏輯1),這時(shí)正確接收?qǐng)?bào)文的接收站發(fā)送主控電平(邏輯0)覆蓋它。用這種方法,發(fā)送站可以保證網(wǎng)絡(luò)中至少有一個(gè)站能正確接收到報(bào)文。

報(bào)文的尾部由幀結(jié)束標(biāo)出。在相鄰的兩條報(bào)文間有一很短的間隔位,如果這時(shí)沒(méi)有站進(jìn)行總線(xiàn)存取,總線(xiàn)將處于空閑狀態(tài)。

CAN通信數(shù)據(jù)幀的結(jié)構(gòu)

三、CAN總線(xiàn)終端配置方法

CAN總線(xiàn)的測(cè)試和使用過(guò)程中,為了保證信號(hào)反射不至導(dǎo)致通訊失敗,傳輸線(xiàn)上必須添加匹配終端。有多種方法配置CAN硬件,主要取決于你硬件的物理層:高速,低速,單線(xiàn)還是軟件可配的。

使用CAN組成網(wǎng)絡(luò)示例

1、高速CAN

對(duì)于高速CAN,一對(duì)信號(hào)線(xiàn)的每根線(xiàn)(CAN_H和CAN_L)都必須添加120歐姆的匹配電阻,這是因?yàn)镃AN總線(xiàn)兩個(gè)方向都有數(shù)據(jù)流。具體做法就是在每一個(gè)CAN終端(多個(gè)設(shè)備時(shí)只需在最終端的設(shè)備)的CAN_H和CAN_L上跨接一個(gè)120歐姆電阻(實(shí)際操作時(shí)我試過(guò)120歐姆左右的都可用)。

2、低速CAN

對(duì)于低速CAN,網(wǎng)絡(luò)上每個(gè)設(shè)備的每條數(shù)據(jù)線(xiàn)都需要一個(gè)終端電阻:R(RTH)接在CAN_H上,R(RTL)接在CAN_L上,每個(gè)電阻的阻值需要參考低速CAN的使用手冊(cè)進(jìn)行計(jì)算。

3、單線(xiàn)CAN

一般單線(xiàn)CAN(如NI)硬件內(nèi)置一個(gè)9.9K歐姆的負(fù)載電阻,這就是網(wǎng)絡(luò)要求的負(fù)載阻值,不需額外的電阻。

4、軟件配置

軟件可配置CAN硬件可以通過(guò)軟件來(lái)配置設(shè)備是工作在高速下,低速下或是單線(xiàn)接口。所需的終端電阻取決于被配置在哪個(gè)物理層。



關(guān)鍵詞: CAN總線(xiàn)終端配

評(píng)論


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

關(guān)閉