什么是CAN總線協(xié)議?看完保證你秒懂!
在這篇文章中,小編將為大家?guī)?lái)CAN總線協(xié)議的相關(guān)報(bào)道。如果你對(duì)本文即將要講解的內(nèi)容存在一定興趣,不妨繼續(xù)往下閱讀哦。
一、CAN總線協(xié)議及其發(fā)展
控制器局域網(wǎng)總線(CAN,Controller Area Network)是一種用于實(shí)時(shí)應(yīng)用的串行通訊協(xié)議總線,它可以使用雙絞線來(lái)傳輸信號(hào),是世界上應(yīng)用最廣泛的現(xiàn)場(chǎng)總線之一。CAN協(xié)議用于汽車中各種不同元件之間的通信,以此取代昂貴而笨重的配電線束。該協(xié)議的健壯性使其用途延伸到其他自動(dòng)化和工業(yè)應(yīng)用。CAN協(xié)議的特性包括完整性的串行數(shù)據(jù)通訊、提供實(shí)時(shí)支持、傳輸速率高達(dá)1Mb/s、同時(shí)具有11位的尋址以及檢錯(cuò)能力。
控制器局域網(wǎng)CAN( Controller Area Network)屬于現(xiàn)場(chǎng)總線的范疇,是一種有效支持分布式控制系統(tǒng)的串行通信網(wǎng)絡(luò)。是由德國(guó)博世公司在20世紀(jì)80年代專門(mén)為汽車行業(yè)開(kāi)發(fā)的一種串行通信總線。由于其高性能、高可靠性以及獨(dú)特的設(shè)計(jì)而越來(lái)越受到人們的重視,被廣泛應(yīng)用于諸多領(lǐng)域。而且能夠檢測(cè)出產(chǎn)生的任何錯(cuò)誤。當(dāng)信號(hào)傳輸距離達(dá)到10km時(shí),CAN仍可提供高達(dá)50kbit/s的數(shù)據(jù)傳輸速率。由于CAN總線具有很高的實(shí)時(shí)性能和應(yīng)用范圍,從位速率最高可達(dá)1Mbps的高速網(wǎng)絡(luò)到低成本多線路的50Kbps網(wǎng)絡(luò)都可以任意搭配。因此,CAN己經(jīng)在汽車業(yè)、航空業(yè)、工業(yè)控制、安全防護(hù)等領(lǐng)域中得到了廣泛應(yīng)用。
隨著CAN總線在各個(gè)行業(yè)和領(lǐng)域的廣泛應(yīng)用,對(duì)其的通信格式標(biāo)準(zhǔn)化也提出了更嚴(yán)格的要求。1991年CAN總線技術(shù)規(guī)范(Version2.0)制定并發(fā)布。該技術(shù)規(guī)范共包括A和B兩個(gè)部分。其中2.0A給出了CAN報(bào)文標(biāo)準(zhǔn)格式,而2.0B給出了標(biāo)準(zhǔn)的和擴(kuò)展的兩種格式。美國(guó)的汽車工程學(xué)會(huì)SAE在2000年提出了J1939協(xié)議,此后該協(xié)議成為了貨車和客車中控制器局域網(wǎng)的通用標(biāo)準(zhǔn)。CAN總線技術(shù)也在不斷發(fā)展。傳統(tǒng)的CAN是基于事件觸發(fā)的,信息傳輸時(shí)間的不確定性和優(yōu)先級(jí)反轉(zhuǎn)是它固有的缺陷。當(dāng)總線上傳輸消息密度較小時(shí),這些缺陷對(duì)系統(tǒng)的實(shí)時(shí)性影響較小;但隨著在總線上傳輸消息密度的增加,系統(tǒng)實(shí)時(shí)性能會(huì)急劇下降。為了滿足汽車控制對(duì)實(shí)時(shí)性和傳輸消息密度不斷增長(zhǎng)的需要,改善CAN總線的實(shí)時(shí)性能非常必要。于是,傳統(tǒng)CAN與時(shí)間觸發(fā)機(jī)制相結(jié)合產(chǎn)生了TTCAN(Time-Triggered CAN),ISO11898-4己包含了TTCAN。 TTCAN總線和傳統(tǒng)CAN總線系統(tǒng)的區(qū)別是:總線上不同的消息定義了不同的時(shí)間槽(Timer Slot)。
二、CAN總線協(xié)議之?dāng)?shù)據(jù)幀
在 CAN 協(xié)議中,數(shù)據(jù)幀和遙控幀有著諸多相同之處,將數(shù)據(jù)幀和遙控幀放在一起來(lái)講。數(shù)據(jù)幀是指包含了要傳輸?shù)臄?shù)據(jù)的幀,作用是承載發(fā)送節(jié)點(diǎn)要傳遞給接收節(jié)點(diǎn)的數(shù)據(jù)。遙控幀的作用:請(qǐng)求其它節(jié)點(diǎn)發(fā)出與本遙控幀具有相同 ID 號(hào)的數(shù)據(jù)幀。發(fā)起方發(fā)起特定ID的遙控幀,并且只發(fā)送ID部分,那么與其 ID相符的終端設(shè)備就有義務(wù)在后半段的數(shù)據(jù)部分接管總線控制權(quán)并發(fā)送自己的數(shù)據(jù)。 例如中控機(jī)需要定時(shí)獲取某個(gè)節(jié)點(diǎn)的數(shù)據(jù)(例如轉(zhuǎn)速計(jì)的實(shí)時(shí)轉(zhuǎn)速、油量計(jì)的實(shí)時(shí)油量等),可以向總線發(fā)送遠(yuǎn)程幀;相應(yīng)節(jié)點(diǎn)在接收判斷幀 ID與自己相符、并且是遠(yuǎn)程幀的情況下,就可以將自己的實(shí)時(shí)數(shù)據(jù)發(fā)送到總線上;這樣中控機(jī)就獲取到了相關(guān)節(jié)點(diǎn)的實(shí)時(shí)數(shù)據(jù)。遠(yuǎn)程幀最大的好處就是只需要一幀的時(shí)間就能完成一次雙向交互。兩種幀格式由幀起始、仲裁幀、控制端、數(shù)據(jù)段、CPC 段、ACK 段、幀結(jié)束, 不同的段有不同的用途。
1、起始段
幀的最開(kāi)始的一位是幀起始,也叫 SOF(Start Of Frame),SOF 恒為顯性位,即邏輯0。幀起始表示CAN_H和CAN_L上有了電位差,也就是說(shuō),一旦總線上有了 SOF 就表示總線上開(kāi)始有報(bào)文了。
2、仲裁段
CAN 總線有一個(gè)特點(diǎn),就是所有節(jié)點(diǎn)均可以獲得總線的控制權(quán)并且向 CAN 總線發(fā)送數(shù)據(jù),當(dāng)同時(shí)有 2 個(gè)或 2 個(gè)以上的設(shè)備要求發(fā)送數(shù)據(jù)時(shí),就會(huì)產(chǎn)生總線沖突,這時(shí)就需要判斷一個(gè)先后順序,而仲裁段就是判斷先后順序的裁判員,仲裁段會(huì)對(duì) CAN 數(shù)據(jù)進(jìn)行比較,ID 碼值越小的數(shù)據(jù)越具有優(yōu)先權(quán),從而使具有高優(yōu)先級(jí)的數(shù)據(jù)不受任何損壞地傳輸。
總線中的信號(hào)持續(xù)跟蹤最后獲得總線控制權(quán)發(fā)出的報(bào)文,在這里值得注意的是,CAN 總線的這種仲裁方式優(yōu)點(diǎn)在于,無(wú)論是總線的控制權(quán)在哪個(gè)節(jié)點(diǎn),CAN 總線傳輸?shù)膱?bào)文已經(jīng)在總線上傳輸了。 因此,CAN 總線具有高優(yōu)先級(jí)的節(jié)點(diǎn)的數(shù)據(jù)在傳輸時(shí),沒(méi)有任何延遲,在獲得總線控制權(quán)的節(jié)點(diǎn)發(fā)送數(shù)據(jù)過(guò)程中,其他節(jié)點(diǎn)成為報(bào)文的接收節(jié)點(diǎn),并且不會(huì)在總線再次空閑之前發(fā)送報(bào)文。
以上便是小編此次想要和大家共同分享的有關(guān)CAN總線協(xié)議的內(nèi)容,如果你對(duì)本文內(nèi)容感到滿意,不妨持續(xù)關(guān)注我們網(wǎng)站喲。最后,十分感謝大家的閱讀,have a nice day!