CAN總線相關(guān)概述
1 寫在前面
說到CAN,相信大家都有所了解,但單純的了解,其意義不大,要知道它能做什么,知道它的用途才重要。
可能初學(xué)的朋友不太了解CAN的應(yīng)用領(lǐng)域,對于汽車電子、軌道交通、工業(yè)自動化等諸多的運(yùn)動控制系統(tǒng)中,運(yùn)用CAN總線通信的地方很多很多。所以,我建議:嵌入式開發(fā)的朋友,有必要學(xué)習(xí)CAN,以及CAN常用的通信協(xié)議。
2 CAN總線
什么是總線?
相信大家都知道,谷歌百度一下,非常詳細(xì)的解釋:總線(Bus)是計(jì)算機(jī)各種功能部件之間傳送信息的公共通信主干線。就好比一條輸電線,它有多條分支,但主干線是重要的一條線路。
什么是CAN?
CAN:ControllerAreaNetwork即控制器局域網(wǎng)絡(luò)。
理解了總線及CAN的含義,對CAN總線的理解就不難了,只是我們這種控制通信的方式這樣命名而已。同理,我們也能理解什么是485總線,什么是I2C總線······
3 CAN網(wǎng)絡(luò)結(jié)構(gòu)
想要實(shí)現(xiàn)CAN總線的通信,必須要有CAN相關(guān)的硬件支持,也可以說是OSI(開放系統(tǒng)互聯(lián))中的物理層。
(圖片來自STM32 CAN網(wǎng)絡(luò)結(jié)構(gòu)圖)
可以結(jié)合485總線理解,CAN控制器就是UART控制器,CAN收發(fā)器就是485轉(zhuǎn)換器。
CAN控制器是CAN通信中的核心部位,收和發(fā)的數(shù)據(jù)都經(jīng)由它來處理;
CAN收發(fā)器可以理解成一個(gè)轉(zhuǎn)換器,就是將TTL電平信號轉(zhuǎn)換為CAN總線中的差分信號。
4 CAN通信原理
CAN通信原理其實(shí)是一個(gè)很大的話題,這里從基礎(chǔ)來講述實(shí)現(xiàn)CAN通信的原理。
can在英文單詞中有"罐頭"的意思,可能很多人小時(shí)候都玩過有種叫“傳聲筒”的東西,就是對著繩子一端的罐頭說話,聲音就可以傳輸?shù)牧硪活^。
罐頭一端的人說【你好】,另外一端的人就能理解到對方說的話(你好)的意思。
我們可以把【你好】理解成通信中的數(shù)據(jù),至于它是通過什么方式傳輸過去我們是不必關(guān)心的,只需要知道【你好】的意思即可。
也就是說,數(shù)據(jù)經(jīng)過電平轉(zhuǎn)換的過程我們不用關(guān)心,還有就是添加的一些協(xié)議(如CANopen,可以理解成額外添加的數(shù)據(jù))我們也不用關(guān)心,關(guān)心的是我們想要得到的數(shù)據(jù)。
5 CAN應(yīng)用協(xié)議
CAN也可以理解成UART,我們可以不使用CAN收發(fā)器,像單片機(jī)UART中直接將兩塊單片機(jī)的TX和RX引腳連接,通過TTL電平信號傳輸數(shù)據(jù)。
一般來說,我們使用UART通信,都會添加相關(guān)的協(xié)議,如ModBus。添加協(xié)議的作用是就是方便解析數(shù)據(jù),防止信號受干擾而檢測錯(cuò)誤數(shù)據(jù)幀等。
相關(guān)的協(xié)議目前有多種:
CANopen協(xié)議 (制定組織:CiA)
DeviceNet協(xié)議 (制定組織ODVA)
CAL協(xié)議 (制定組織:CiA)
CANKingdom (制定組織:Kvaser)
J1939協(xié)議 (制定組織:SAE)
SDS協(xié)議(制定組織:Honeywell)
CAN總線應(yīng)用協(xié)議相對CAN驅(qū)動來說要復(fù)雜的多,目前CANopen協(xié)議算是市面上用的比較多的一種,后期會更新CANopen協(xié)議中一項(xiàng)開源協(xié)議canfestival。
6 最后
CAN總線以及CAN相關(guān)協(xié)議的內(nèi)容相對來說較多,本文算是帶領(lǐng)大家對CAN有一個(gè)基礎(chǔ)的認(rèn)識。
微信搜索“EmbeddDeveloper” 或者掃描下面二維碼、關(guān)注,在我的底部菜單查看更多精彩內(nèi)容!
長按識別二維碼 關(guān)注
原文標(biāo)題:一種值得嵌入式開發(fā)人員學(xué)習(xí)的總線 --- CAN-Bus
文章出處:【微信公眾號:strongerHuang】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
-
嵌入式
+關(guān)注
關(guān)注
5082文章
19126瀏覽量
305302 -
CAN總線
+關(guān)注
關(guān)注
145文章
1951瀏覽量
130766 -
485總線
+關(guān)注
關(guān)注
1文章
29瀏覽量
16787
發(fā)布評論請先 登錄
相關(guān)推薦
評論