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