can總線的出現(xiàn)為分布式控制系統(tǒng)各節(jié)點(diǎn)間實(shí)時(shí)、可靠的提供了強(qiáng)大的技術(shù)支持,現(xiàn)已被廣泛應(yīng)用于船舶、醫(yī)療設(shè)備、工業(yè)設(shè)備等各個(gè)方面。那么can總線原理是什么呢?
can(controller area network),中文名稱為控制器局域網(wǎng)絡(luò),通常稱為canbus,即can總線。是由德國bosch(博世)公司研究開發(fā)的,現(xiàn)已成為iso國際標(biāo)準(zhǔn)化的串行通信協(xié)議,是目前在國際上應(yīng)用最廣泛的開放式之一。
1、can總線原理
can總線以廣播的方式從一個(gè)節(jié)點(diǎn)向另一個(gè)節(jié)點(diǎn)發(fā)送數(shù)據(jù),當(dāng)一個(gè)節(jié)點(diǎn)發(fā)送數(shù)據(jù)時(shí),該節(jié)點(diǎn)的cpu把將要發(fā)送的數(shù)據(jù)和標(biāo)識符發(fā)送給本節(jié)點(diǎn)的can芯片,并使其進(jìn)入準(zhǔn)備狀態(tài);一旦該can芯片收到總線分配,就變?yōu)榘l(fā)送報(bào)文狀態(tài),該can芯片將要發(fā)送的數(shù)據(jù)組成規(guī)定的報(bào)文格式發(fā)出。此時(shí),網(wǎng)絡(luò)中其他的節(jié)點(diǎn)都處于接收狀態(tài),所有節(jié)點(diǎn)都要先對其進(jìn)行接收,通過檢測來判斷該報(bào)文是否是發(fā)給自己的。
由于can總線是面向內(nèi)容的編址方案,因此容易構(gòu)建控制系統(tǒng)對其靈活地進(jìn)行配置,使其可以在不修改軟硬件的情況下向can總線中加入新節(jié)點(diǎn)。
2、can總線原理--報(bào)文
can總線以報(bào)文的形式發(fā)送數(shù)據(jù),每組報(bào)文的前十一位字符為標(biāo)識符(在同一個(gè)系統(tǒng)中,標(biāo)識符是唯一的),不包含具體發(fā)送數(shù)據(jù),是對報(bào)文優(yōu)先級的定義,我們將報(bào)文的這種格式稱為面向內(nèi)容的編址方案。
3、can總線原理--幀結(jié)構(gòu)
幀可以分為數(shù)據(jù)幀、遠(yuǎn)程幀、錯(cuò)誤幀和過載幀四種類型。can總線上傳輸?shù)拇蟛糠侄际菙?shù)據(jù)幀,數(shù)據(jù)幀負(fù)責(zé)攜帶數(shù)據(jù)從發(fā)送器到接收器;遠(yuǎn)程幀是由總線單元發(fā)出的,負(fù)責(zé)請求發(fā)送相同的數(shù)據(jù)幀;錯(cuò)誤幀可由任何單元在檢測到總線錯(cuò)誤時(shí)發(fā)出;過載幀用于在兩數(shù)據(jù)幀或遠(yuǎn)程幀中提供延時(shí)。











