CAN總線(xiàn)及其終端配置方法
一、CAN總線(xiàn)
本文引用地址:http://dyxdggzs.com/article/201612/329679.htmCAN是控制器局域網(wǎng)絡(luò )(ControllerArea Network, CAN)的簡(jiǎn)稱(chēng),是國際上應用最廣泛的現場(chǎng)總線(xiàn)之一。當前,CAN總線(xiàn)協(xié)議已經(jīng)成為汽車(chē)計算機控制系統和嵌入式工業(yè)控制局域網(wǎng)的標準總線(xiàn)。
CAN有效支持分布式控制或實(shí)時(shí)控制的串行通信網(wǎng)絡(luò )。較之許多RS-485基于R線(xiàn)構建的分布式控制系統而言,基于CAN總線(xiàn)的分布式控制系統在以下方面具有明顯的優(yōu)越性:
1、網(wǎng)絡(luò )各節點(diǎn)之間的數據通信實(shí)時(shí)性強
CAN控制器工作于多種方式,網(wǎng)絡(luò )中的各節點(diǎn)都可根據總線(xiàn)訪(fǎng)問(wèn)優(yōu)先權(取決于報文標識符)采用無(wú)損結構的逐位仲裁的方式競爭向總線(xiàn)發(fā)送數據,且CAN協(xié)議廢除了站地址編碼,而代之以對通信數據進(jìn)行編碼,這可使不同的節點(diǎn)同時(shí)接收到相同的數據,這些特點(diǎn)使得CAN總線(xiàn)構成的網(wǎng)絡(luò )各節點(diǎn)之間的數據通信實(shí)時(shí)性強,并且容易構成冗余結構,提高系統的可靠性和系統的靈活性。而利用RS-485只能構成主從式結構系統,通信方式也只能以主站輪詢(xún)的方式進(jìn)行,系統的實(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ì )在出現在RS-485網(wǎng)絡(luò )中的現象,即當系統有錯誤,出現多節點(diǎn)同時(shí)向總線(xiàn)發(fā)送數據時(shí),導致總線(xiàn)呈現短路,從而損壞某些節點(diǎn)的現象。而且CAN節點(diǎn)在錯誤嚴重的情況下具有自動(dòng)關(guān)閉輸出功能,以使總線(xiàn)上其他節點(diǎn)的操作不受影響,從而保證不會(huì )出現象在網(wǎng)絡(luò )中,因個(gè)別節點(diǎn)出現問(wèn)題,使得總線(xiàn)處于“死鎖”狀態(tài)。而且,CAN具有的完善的通信協(xié)議可由CAN控制器芯片及其接口芯片來(lái)實(shí)現,從而大大降低系統開(kāi)發(fā)難度,縮短了開(kāi)發(fā)周期,這些是僅有電氣協(xié)議的RS-485所無(wú)法比擬的。
二、CAN的報文格式
在總線(xiàn)中傳送的報文,每幀由7部分組成。CAN協(xié)議支持兩種報文格式,其唯一的不同是標識符(ID)長(cháng)度不同,標準格式為11位,擴展格式為29位。
在標準格式中,報文的起始位稱(chēng)為幀起始(SOF),然后是由11位標識符和遠程發(fā)送請求位 (RTR)組成的仲裁場(chǎng)。RTR位標明是數據幀還是請求幀,在請求幀中沒(méi)有數據字節。
控制場(chǎng)包括標識符擴展位(IDE),指出是標準格式還是擴展格式。它還包括一個(gè)保留位 (ro),為將來(lái)擴展使用。它的最后四個(gè)位用來(lái)指明數據場(chǎng)中數據的長(cháng)度(DLC)。數據場(chǎng)范圍為0~8個(gè)字節,其后有一個(gè)檢測數據錯誤的循環(huán)冗余檢查(CRC)。
應答場(chǎng)(ACK)包括應答位和應答分隔符。發(fā)送站發(fā)送的這兩位均為隱性電平(邏輯1),這時(shí)正確接收報文的接收站發(fā)送主控電平(邏輯0)覆蓋它。用這種方法,發(fā)送站可以保證網(wǎng)絡(luò )中至少有一個(gè)站能正確接收到報文。
報文的尾部由幀結束標出。在相鄰的兩條報文間有一很短的間隔位,如果這時(shí)沒(méi)有站進(jìn)行總線(xiàn)存取,總線(xiàn)將處于空閑狀態(tài)。
CAN通信數據幀的結構
三、CAN總線(xiàn)終端配置方法
CAN總線(xiàn)的測試和使用過(guò)程中,為了保證信號反射不至導致通訊失敗,傳輸線(xiàn)上必須添加匹配終端。有多種方法配置CAN硬件,主要取決于你硬件的物理層:高速,低速,單線(xiàn)還是軟件可配的。
使用CAN組成網(wǎng)絡(luò )示例
1、高速CAN
對于高速CAN,一對信號線(xiàn)的每根線(xiàn)(CAN_H和CAN_L)都必須添加120歐姆的匹配電阻,這是因為CAN總線(xiàn)兩個(gè)方向都有數據流。具體做法就是在每一個(gè)CAN終端(多個(gè)設備時(shí)只需在最終端的設備)的CAN_H和CAN_L上跨接一個(gè)120歐姆電阻(實(shí)際操作時(shí)我試過(guò)120歐姆左右的都可用)。
2、低速CAN
對于低速CAN,網(wǎng)絡(luò )上每個(gè)設備的每條數據線(xiàn)都需要一個(gè)終端電阻:R(RTH)接在CAN_H上,R(RTL)接在CAN_L上,每個(gè)電阻的阻值需要參考低速CAN的使用手冊進(jìn)行計算。
3、單線(xiàn)CAN
一般單線(xiàn)CAN(如NI)硬件內置一個(gè)9.9K歐姆的負載電阻,這就是網(wǎng)絡(luò )要求的負載阻值,不需額外的電阻。
4、軟件配置
軟件可配置CAN硬件可以通過(guò)軟件來(lái)配置設備是工作在高速下,低速下或是單線(xiàn)接口。所需的終端電阻取決于被配置在哪個(gè)物理層。
評論