can總線原理如何理解,can總線原理詳解
CAN總線是一種串行通信協(xié)議,能有效的支持具有很高安全等級的分布實時控制
應(yīng)用范圍十分廣泛,從高速網(wǎng)絡(luò)到低價位的多路接線都可以使用CAN,主要運用于汽車電子航天等行業(yè),使用CAN連接發(fā)動機的控制單元等汽車部件,CAN總線具有可靠,實時以及靈活的特性.
CAN總線以廣播的形式發(fā)送報文.當(dāng)CAN總線上的某個節(jié)點需要給其他節(jié)點發(fā)送消息時,會以廣播的形式發(fā)送給總線上所有的節(jié)點,因為總線上的節(jié)點不適用地址來進行配置CAN系統(tǒng),而是根據(jù)報文的開頭的11位標(biāo)識符決定是否要接受其他節(jié)點發(fā)來的報文.
每個節(jié)點都有自己的處理器和CAN總線接口控制器;當(dāng)一個節(jié)點需要發(fā)送數(shù)據(jù)到另一個節(jié)點時,自身節(jié)點的處理器需要將要發(fā)送的數(shù)據(jù)和自己的標(biāo)識符傳給自身的總線控制接口,處于準(zhǔn)備狀態(tài);當(dāng)獲取到總線的使用權(quán)后,將數(shù)據(jù)和標(biāo)識符組裝成報文,將報文以一定格式發(fā)出,此時其他的節(jié)點處于接收狀態(tài).至于其他節(jié)點是否接收,由其他節(jié)點決定,是都會對某些報文進行過濾.當(dāng)新增的節(jié)點僅僅是純粹的數(shù)據(jù)接收設(shè)備時,只需要該設(shè)備直接從總線上接收數(shù)據(jù)即可.
首先 CAN 數(shù)據(jù)總線有兩條導(dǎo)線,一條是黃色的,一條是綠色的 ------ 分別是 CAN_High 線和 CAN_Low 線,當(dāng)靜止?fàn)顟B(tài)時,這兩條導(dǎo)線上的電平一樣,這個電平稱為靜電平,大約為 2.5 伏。
這個靜電平狀態(tài)就是隱形狀態(tài),也稱隱性電平,也就是沒有任何干擾的時候的狀態(tài)稱為隱性狀態(tài)。當(dāng)有信號修改時,CAN_High 線上的電壓值變高了,一般來說會升高至少 1V;而 CAN_Low 線上的電壓值會降低一個同樣值,也是 1v。那么這時候,CAN_High 就是 2.5v+1v=3.5v,它就處于激活狀態(tài)了。而 CAN_Low 降為 2.5v-1v=1.5v。
由此我們得到,在隱性狀態(tài)下CAN_High 線與 CAN_Low 沒有電壓差,這樣我們看到?jīng)]有任何變化也就檢測不到信號。但是在顯性狀態(tài)時,改值最低為 2V,我們就可以利用這種變化才傳輸數(shù)據(jù)了。所以出現(xiàn)了那些幀,那些幀中的場,那些場中的位等等。
在總線上通常邏輯 1 表示隱性。而 0 表示顯性。這些 1 啊,0 啊,就可以利用起來為我們傳數(shù)據(jù)了。利用這種電壓差,我們可以接收信號。
一般來說,控制單元通過收發(fā)器連接到 CAN 驅(qū)動總線上,這個收發(fā)器(顧名思義,可發(fā)送,可接收)內(nèi)有一個接收器,該接收器是安裝在接收一側(cè)的差動信號放大器。然后,這個放大器很自然地就放大了 CAN_High 和 CAN_Low 線的電平差,然后傳到接收區(qū)。
CAN 的報文格式有兩種,不同之處其實就是識別符長度不同,具有 11 位識別符的幀稱為標(biāo)準(zhǔn)幀,而還有 29 位識別符的幀為擴展幀,CAN 報文有以下 4 個不同的幀類型。分別是:
(1) 數(shù)據(jù)幀:數(shù)據(jù)幀將數(shù)據(jù)從發(fā)送器傳輸?shù)浇邮掌?
(2) 遠(yuǎn)程幀:總線節(jié)點發(fā)出遠(yuǎn)程幀,請求發(fā)送具有同一標(biāo)識符的數(shù)據(jù)幀;
(3) 錯誤幀:任何節(jié)點檢測到總線錯誤就發(fā)出錯誤幀;
(4) 過載幀:過載幀用已在先行的后續(xù)的數(shù)據(jù)幀(或遠(yuǎn)程幀)之間提供一附加的延時。
下面詳細(xì)介紹一下數(shù)據(jù)幀,用于CAN傳送數(shù)據(jù),包括幀起始、仲裁場、控制場、數(shù)據(jù)場和CRC場。
幀起始:標(biāo)志一個數(shù)據(jù)幀的開始,僅由一個顯性位構(gòu)成,只有在總線空閑期間才能夠發(fā)送。
仲裁場:在標(biāo)準(zhǔn)幀中,仲裁場由11位標(biāo)識符和RTR位組成;在擴展幀中,仲裁場由29位標(biāo)識符、SRR位、IDE位和RTR位組成。
ID(標(biāo)識符)是用來確定一條報文,表明報文含義及優(yōu)先級,如上面舉例的0x100。
RTR(遠(yuǎn)程傳送請求位),數(shù)據(jù)幀RTR位必須為顯性電平(RTR=0),遠(yuǎn)程幀RTR位必須為隱性電平(RTR=1)。
IDE(標(biāo)識符擴展位)在標(biāo)準(zhǔn)幀屬于控制場,在擴展幀中屬于仲裁場。在標(biāo)準(zhǔn)幀中IDE為顯性電平(IDE=0),在擴展幀中IDE為隱性電平(IDE=1)
SRR(遠(yuǎn)程代替請求位)在擴展幀中始終為隱性電平(SRR=1)
控制場:由6位組成。在標(biāo)準(zhǔn)幀中,控制場包括IDE(此時為顯性電平0)、保留位r(此時為顯性電平0)以及占4個bit的數(shù)據(jù)場長度碼DLC。在擴展幀中,控制場沒有IDE位,而是兩個保留位r0和r1,此時同樣均為顯性電平0。
數(shù)據(jù)場:包含CAN數(shù)據(jù)幀發(fā)送的數(shù)據(jù),0~8個byte,如上面舉例的主要信息就是圍繞數(shù)據(jù)場來說明的,這也是整車電子工程師討論得最多的一部分內(nèi)容,如果你不是專門的CAN設(shè)計工程師,其他的格式內(nèi)容僅作了解即可。
CRC場:包括CRC序列CRC界定符DEL,CRC校驗是為了通信雙方的安全可靠性制定的”暗號“,只有發(fā)送方根據(jù)發(fā)送信息計算的CRC值與接收方根據(jù)接收信息計算的CRC值對上,才能判斷這次通信成功了,否則就會報錯。
CAN總線是一種多主方式的串行通訊總線,基本設(shè)計規(guī)范要求有高的位速率,高抗電子干擾性,并且能夠檢測出產(chǎn)生的任何錯誤。CAN總線可以應(yīng)用于汽車電控制系統(tǒng)、電梯控制系統(tǒng)、安全監(jiān)測系統(tǒng)、醫(yī)療儀器、紡織機械、船舶運輸?shù)阮I(lǐng)域。





