日B视频 亚洲,啪啪啪网站一区二区,91色情精品久久,日日噜狠狠色综合久,超碰人妻少妇97在线,999青青视频,亚洲一区二卡,让本一区二区视频,日韩网站推荐

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

CAN總線簡單介紹

廣東微電科技有限公司 ? 2021-12-09 15:55 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

?

什么是CAN總線?

Controller Area Network,簡稱CAN或者CAN bus) 是一種功能豐富的串行總線標(biāo)準(zhǔn),最早的CAN控制芯片在奔馳車上應(yīng)用并量產(chǎn),因?yàn)橹С侄嘀鳈C(jī),多從機(jī)的優(yōu)點(diǎn),所以一輛車所有控制器,傳感器,電子設(shè)備直接的通信只需要兩條線就夠了,大大優(yōu)化了整車的布線。

隨著技術(shù)的不斷發(fā)展,CAN發(fā)布了相應(yīng)的標(biāo)準(zhǔn),國際化標(biāo)準(zhǔn)組織,公布了CAN的不同標(biāo)準(zhǔn);

標(biāo)準(zhǔn) 涵蓋內(nèi)容
ISO 11898-1 數(shù)據(jù)鏈路層
ISO 11898-2 高速CAN的物理層
ISO 11898-3 低速容錯(cuò)CAN的物理層

ISO 11898-1,ISO 11898-2是對應(yīng)的設(shè)計(jì)標(biāo)準(zhǔn),去搜索就可以知道這個(gè)技術(shù)點(diǎn)是如何進(jìn)行設(shè)計(jì)的。

物理層

差分信號

這里我們介紹一下物理層,什么是物理層呢?就是CAN的電信號的傳輸過程。CAN是串行異步通訊,只有CAN_HIGHCAN_LOW兩條差分信號線,數(shù)據(jù)通過差分信號的方式進(jìn)行通訊,其優(yōu)點(diǎn)就是可以增加信號的抗干擾能力,抑制共模信號的干擾;

具體如下圖所示;

圖片

?

poYBAGDYdXCAWkKMAAAAK8RNs4s030.png

所以,信號在變成一個(gè)字節(jié)一個(gè)字節(jié)的數(shù)字信號之前,就是按照這種差分形式的模擬信號來傳輸?shù)摹?/p>

我們可以簡單地理解一下,當(dāng)CAN_HIGH減去CAN_LOW大于某個(gè)閾值的時(shí)候,可以把它當(dāng)做邏輯高,反之,當(dāng)小于某一個(gè)閾值時(shí),就變成邏輯低。

下面我們再來看看CAN總線設(shè)備之間是如何連接的。

連接方式

CAN總線支持多個(gè)節(jié)點(diǎn)掛載在總線上,比較類似I2C總線,可以在SCLSDA上掛載多個(gè)從機(jī),具體如下圖所示;

圖片

?

poYBAGDYdXCAWkKMAAAAK8RNs4s030.png

不過CAN總線其實(shí)沒有主從的概念,每個(gè)設(shè)備都是一個(gè)節(jié)點(diǎn)(Node),節(jié)點(diǎn)直接可以相互通訊,相較于I2C總線,CAN總線設(shè)置了終端電阻,常見的一種閉環(huán)連接模式,相對的還有開環(huán)的連接模式。

不同的連接模式,他們的通訊速率也大不相同,這里也就是高速CAN和低速CAN的區(qū)別。

兩條電線組成一條雙絞線,并且接有120Ω的特性阻抗。ISO 11898-2,也稱為高速度CAN。它在總線的兩端均接有120Ω電阻。

使用了120Ω終端電阻(這是CAN的ISO標(biāo)準(zhǔn)里規(guī)定的),這種模式的最高通訊速率可以達(dá)到1Mbps,下面是傳輸距離和傳輸速度的關(guān)系;

圖片

?

poYBAGDYdXCAWkKMAAAAK8RNs4s030.png

CAN總線長度與信號速率關(guān)系

高速CAN的拓?fù)浣Y(jié)構(gòu)具體如下所示;

圖片

?

poYBAGDYdXCAWkKMAAAAK8RNs4s030.png

還有一種是低速CAN,或者也叫做容錯(cuò)CAN,低速容錯(cuò) CAN 總線將通訊的最大帶寬從1 Mbps降低到125 Kbps,并且不再在總線的起點(diǎn)和終點(diǎn)使用兩個(gè)終端電阻,而是將電阻分布在每個(gè)節(jié)點(diǎn)上。具體如下圖所示;

圖片

?

poYBAGDYdXCAWkKMAAAAK8RNs4s030.png

由于高速CAN和低速CAN的拓?fù)浣Y(jié)構(gòu)不同,另外終端電阻的分布也不同,所以CAN_HIGHCAN_LOW上的電平是不相同的,這里有隱性電平和顯性電平。

硬件上的連接基本上都搞清楚了,下面就是如何去實(shí)現(xiàn)一個(gè)具體的CAN節(jié)點(diǎn)。我們來簡單地介紹一下。

CAN節(jié)點(diǎn)

CAN節(jié)點(diǎn)通常分為三個(gè)部分;

MCU/CPU

CAN控制器,

CAN收發(fā)器

通常一些單片機(jī)內(nèi)部就集成了相應(yīng)的CAN控制器外設(shè),比如我們比較常用的單片機(jī)——STM32,所以我們常見的結(jié)構(gòu)一般是這樣子的。

圖片

?

poYBAGDYdXCAWkKMAAAAK8RNs4s030.png

所以整體的流程是這樣的,如下:

CAN總線上通過差分信號進(jìn)行數(shù)據(jù)傳輸

CAN收發(fā)器將差分信號轉(zhuǎn)換為TTL電平信號,或者將TTL電平信號轉(zhuǎn)換為差分信號;

CAN控制器將TTL電平信號接收,并傳輸給MCU;

那么,對于單片機(jī)開發(fā)者而言,需要關(guān)注的就是最終CAN控制器傳輸給MCU的數(shù)據(jù),如何去配置CAN控制器,以及使用CAN控制進(jìn)行數(shù)據(jù)的讀取和發(fā)送。

既然這樣,我們就不得不去了解一下CAN總線的通信原理,如何尋址,上層協(xié)議如何規(guī)定的。

CAN協(xié)議

CAN協(xié)議和網(wǎng)絡(luò)協(xié)議比較類似,進(jìn)行了分層的設(shè)計(jì)思想;

圖片

?

poYBAGDYdXCAWkKMAAAAK8RNs4s030.png

按照我的理解;

物理層就是前面提到過的硬件拓?fù)浣Y(jié)構(gòu),包括高速CAN和低速CAN,而CAN收發(fā)器就屬于物理層;

傳輸層則是CAN控制器所需要做的事情,包括CAN時(shí)序,同步,消息仲裁,確認(rèn),錯(cuò)誤檢驗(yàn)等,這個(gè)比較復(fù)雜,如果只是應(yīng)用開發(fā),我認(rèn)為,簡單了解一下即可;這一層需要做的工作包括:

故障約束;

錯(cuò)誤監(jiān)測;

消息驗(yàn)證;

信息確認(rèn);

仲裁;

信息幀;

傳輸速率和時(shí)間;

路由信息;

對象層,MCU應(yīng)該是屬于這一層,我們需要對CAN消息做信息的過濾設(shè)置,CAN消息的處理等等;

應(yīng)用層就是基于對象層的進(jìn)一步封裝,不同的CAN標(biāo)準(zhǔn),比如工業(yè)自動(dòng)化領(lǐng)域的CANopen,汽車診斷ISO 14229 定義的UDS等等;

如何尋址?

CAN總線上的每個(gè)節(jié)點(diǎn)不需要設(shè)置節(jié)點(diǎn)的地址,而是通過消息的標(biāo)識符(Identifier)來區(qū)別信息。因?yàn)镃AN總線的消息是廣播的(就是大家都可以收到消息),比如總線上有節(jié)點(diǎn)A,節(jié)點(diǎn)B,節(jié)點(diǎn)C,那么節(jié)點(diǎn)A發(fā)消息,節(jié)點(diǎn)B和節(jié)點(diǎn)C都會收到消息;

節(jié)點(diǎn)B 和 節(jié)點(diǎn)C 會根據(jù)消息中的標(biāo)識符,以及B和C中的消息過濾規(guī)則進(jìn)行比較,如果不滿足規(guī)則,就不接受這條信息。

這里需要注意的是:

發(fā)送消息的時(shí)候,總線必須處于空閑狀態(tài);

標(biāo)識符越小,則消息獲取總線的優(yōu)先級越高;

在這里我們已經(jīng)了解如何尋址,下面就看一下消息幀了。

幀類型

CAN有4種幀類型:

數(shù)據(jù)幀:包含用于傳輸?shù)墓?jié)點(diǎn)數(shù)據(jù)的幀

遠(yuǎn)程幀:請求傳輸特定標(biāo)識符的幀

錯(cuò)誤幀:由任何檢測到錯(cuò)誤的節(jié)點(diǎn)發(fā)送的幀

過載幀:在數(shù)據(jù)幀或遠(yuǎn)程幀之間插入延遲的幀

這里我們有必要重點(diǎn)了解一下數(shù)據(jù)幀,下面繼續(xù)介紹各種幀之間的區(qū)別。

數(shù)據(jù)幀

數(shù)據(jù)幀分為標(biāo)準(zhǔn)幀和擴(kuò)展幀兩種格式;

基本幀格式:有11個(gè)標(biāo)識符位

擴(kuò)展幀格式:有29個(gè)標(biāo)識符位

數(shù)據(jù)幀的結(jié)構(gòu)具體如下所示;

圖片

?

poYBAGDYdXCAWkKMAAAAK8RNs4s030.png

數(shù)據(jù)幀格式

簡單介紹一下數(shù)據(jù)幀的細(xì)節(jié);

sofstart of frame,表示數(shù)據(jù)幀開始;(1 bit)

Identifier:標(biāo)準(zhǔn)格式11 bit,擴(kuò)展格式29 bit包括Base Identifier(11 bit)和Extended Identifier(18 bit),該區(qū)段標(biāo)識數(shù)據(jù)幀的優(yōu)先級,數(shù)值越小,優(yōu)先級越高;

RTR:遠(yuǎn)程傳輸請求位,0時(shí)表示為數(shù)據(jù)幀,1表示為遠(yuǎn)程幀,也就是說RTR=1時(shí),消息幀的Data Field為空;(1 bit)

IDE:標(biāo)識符擴(kuò)展位,0時(shí)表示為標(biāo)準(zhǔn)格式,1表示為擴(kuò)展格式;(1 bit)

DLC:數(shù)據(jù)長度代碼,0~8表示數(shù)據(jù)長度為0~8 Byte;(4 bit)

Data Field:數(shù)據(jù)域;(0~8 Byte)

CRC Sequence:校驗(yàn)域,校驗(yàn)算法,

DEL:校驗(yàn)域和應(yīng)答域的隱性界定符;(1 bit)

ACK:應(yīng)答,確認(rèn)數(shù)據(jù)是否正常接收,所謂正常接收是指不含填充錯(cuò)誤、格式錯(cuò)誤、 CRC 錯(cuò)誤。發(fā)送節(jié)點(diǎn)將此位為1,接收節(jié)點(diǎn)正常接收數(shù)據(jù)后將此位置為0;(1 bit)

SRR:替代遠(yuǎn)程請求位,在擴(kuò)展格式中占位用,必須為1;(1 bit)

EOF:連續(xù)7個(gè)隱性位(1)表示幀結(jié)束;(7 bit)

ITM:幀間空間,Intermission (ITM),又稱Interframe Space(IFS),連續(xù)3個(gè)隱性位,但它不屬于數(shù)據(jù)幀。幀間空間是用于將數(shù)據(jù)幀和遠(yuǎn)程幀與前面的幀分離開來的幀。數(shù)據(jù)幀和遠(yuǎn)程幀可通過插入幀間空間將本幀與前面的任何幀(數(shù)據(jù)幀、遙控幀、錯(cuò)誤幀、過載幀)分開。過載幀和錯(cuò)誤幀前不能插入幀間空間。

遠(yuǎn)程幀

一般地,數(shù)據(jù)是由發(fā)送單元主動(dòng)向總線上發(fā)送的,但也存在接收單元主動(dòng)向發(fā)送單元請求數(shù)據(jù)的情況。遠(yuǎn)程幀的作用就在于此,它是接收單元向發(fā)送單元請求發(fā)送數(shù)據(jù)的幀。遠(yuǎn)程幀與數(shù)據(jù)幀的幀結(jié)構(gòu)類似,如上圖X所示。遠(yuǎn)程幀與數(shù)據(jù)幀的幀結(jié)構(gòu)區(qū)別有兩點(diǎn):

數(shù)據(jù)幀的RTR值為“0”,遠(yuǎn)程幀的RTR值為“1

遠(yuǎn)程幀沒有數(shù)據(jù)塊

遠(yuǎn)程幀的DLC塊表示請求發(fā)送單元發(fā)送的數(shù)據(jù)長度(Byte)。當(dāng)總線上具有相同標(biāo)識符的數(shù)據(jù)幀和遠(yuǎn)程幀同時(shí)發(fā)送時(shí),由于數(shù)據(jù)幀的RTR位是顯性的,數(shù)據(jù)幀將在仲裁中贏得總線控制權(quán)。

錯(cuò)誤幀

用于在接收和發(fā)送消息時(shí)檢測出錯(cuò)誤時(shí),通知錯(cuò)誤的幀。錯(cuò)誤幀由錯(cuò)誤標(biāo)志和錯(cuò)誤界定符構(gòu)成。錯(cuò)誤幀的幀結(jié)構(gòu)如圖11示。

錯(cuò)誤標(biāo)志:

個(gè)顯性/隱性重疊位

主動(dòng)錯(cuò)誤標(biāo)志(6個(gè)顯性位):處于主動(dòng)錯(cuò)誤狀態(tài)的單元檢測出錯(cuò)誤時(shí)輸出的錯(cuò)誤標(biāo)志

被動(dòng)錯(cuò)誤標(biāo)志(6個(gè)隱性位):處于被動(dòng)錯(cuò)誤狀態(tài)的單元檢測出錯(cuò)誤時(shí)輸出的錯(cuò)誤標(biāo)志

錯(cuò)誤界定符:8個(gè)隱性位

圖片

?

poYBAGDYdXCAWkKMAAAAK8RNs4s030.png

過載幀

過載幀是用于接收單元通知發(fā)送單元它尚未完成接收準(zhǔn)備的幀。在兩種情況下,節(jié)點(diǎn)會發(fā)送過載幀:

接收單元條件的制約,要求發(fā)送節(jié)點(diǎn)延緩下一個(gè)數(shù)據(jù)幀或遠(yuǎn)程幀的傳輸;

幀間空間(Intermission)的3 bit內(nèi)檢測到顯性位

每個(gè)節(jié)點(diǎn)最多連續(xù)發(fā)送兩條過載幀。過載幀由過載標(biāo)志和過載界定符(8個(gè)隱性位)構(gòu)成。數(shù)據(jù)幀的幀結(jié)構(gòu)如圖12所示。

圖片

?

poYBAGDYdXCAWkKMAAAAK8RNs4s030.png

can_overload_frame

這里基本把幀介紹完了,但是每個(gè)節(jié)點(diǎn)之間的通訊,我們?nèi)绾沃肋@一幀開始接收了,這一幀已經(jīng)接收結(jié)束了呢?下面就需要了解一下消息的時(shí)序和消息同步的方法。

消息時(shí)序以及同步

位時(shí)序

在講CAN消息時(shí)序和同步之前,我們可以對照一下UART串口的傳輸協(xié)議,他有起始位和停止位,然后大家都規(guī)定使用相同的通訊速率(波特率);

其實(shí)CAN通訊也是類似的方式,它屬于異步通訊,沒有時(shí)鐘信號線,所以所有節(jié)點(diǎn)之間要約定好使用相同的波特率來傳輸數(shù)據(jù)。

在總線空閑一段時(shí)間后,在(起始位) 進(jìn)行硬同步,同步方式是將每一位劃分成多個(gè)稱為量子的時(shí)間段(time quanta),并分配一定數(shù)量的量子到位中的四個(gè)階段完成的。

這四個(gè)階段分別為:

SYNC_SEG:同步段,1 個(gè)時(shí)間量子長度。它用于同步各種總線節(jié)點(diǎn);

PROP_SEG:傳播段,1~8 時(shí)間量子長度。它用于補(bǔ)償網(wǎng)絡(luò)上的信號延遲。

PHASE_SEG_1:相位緩沖段1,1~8 時(shí)間量子長度。它用于補(bǔ)償邊緣相位誤差,在重新同步期間可能會延長。

PHASE_SEG_2:相位緩沖段2,2~8 時(shí)間量子長度。它用于補(bǔ)償邊緣相位誤差

具體如下圖所示;

圖片

?

poYBAGDYdXCAWkKMAAAAK8RNs4s030.png

位時(shí)序

波特率

如何計(jì)算波特率,需要知道每個(gè)量子時(shí)間的長度(time quanta),以及每一位需要多少個(gè)量子時(shí)間,

假設(shè)這里time quanta = 1us,并且1 bit = 8 tq,那么上圖中的波特率就應(yīng)該是:

消息過濾器

前面有提到消息在CAN總線上是廣播式的,但并不是所有節(jié)點(diǎn)都會對總線上所有消息感興趣。節(jié)點(diǎn)通過控制器中過濾碼(Filter Code)和掩碼(Mask Code),再檢驗(yàn)總線上消息的標(biāo)識符,來判斷是否接收該消息(Message Filtering)。

對于掩碼,“1”表示該位與本節(jié)點(diǎn)相關(guān),“0”表示該位與本節(jié)點(diǎn)不相關(guān)。舉例如下:

例1:僅接收消息標(biāo)識符為00001567(十六進(jìn)制)的幀

設(shè)置過濾碼為00001567

設(shè)置掩碼為1FFFFFFF

節(jié)點(diǎn)檢測消息的標(biāo)識符的所有位(29位),如果標(biāo)識符為00001567接收,否則舍棄。

例2:接收消息標(biāo)識符為000015670000156F的幀

設(shè)置過濾碼為00001560

設(shè)置掩碼為1FFFFFF0

節(jié)點(diǎn)檢測消息的標(biāo)識符的高25位,最低的4位則不care。如果標(biāo)識符最高25位相同則接收,否則舍棄。

例3:接收消息標(biāo)識符為0000156000001567的幀

設(shè)置過濾碼為00001560

設(shè)置掩碼為1FFFFFF8

節(jié)點(diǎn)檢測消息的標(biāo)識符的高26位,最低的3位則不care。如果標(biāo)識符最高26位相同則接收,否則舍棄。

例4:接收所有消息幀幀

設(shè)置過濾碼為0

設(shè)置掩碼為0

節(jié)點(diǎn)接收總線上所有消息。

如何配置?

上面介紹了幀類型,那么如何基于MCU進(jìn)行配置呢?這里以STM32F407為硬件平臺,使用HAL庫進(jìn)行初始化,看一下都對哪些地方進(jìn)行了配置。一般來說,我們需要配置CAN的波特率,消息過濾器等等,下面是簡單的配置的代碼;

CAN_HandleTypeDefhCAN;
voidMX_CAN_Init(void)
{
CAN_FilterTypeDefsFilterConfig;
/*CAN單元初始化*/
hCAN.Instance=CAN1;/*CAN外設(shè)*/

/*BTR-BRP波特率分頻器定義了時(shí)間單元的時(shí)間長度42/(1+6+7)/6=500Kbps*/
hCAN.Init.Prescaler=6;
hCAN.Init.Mode=CAN_MODE_NORMAL;/*正常工作模式*/
hCAN.Init.SyncJumpWidth=CAN_SJW_1TQ;/*BTR-SJW重新同步跳躍寬度1個(gè)時(shí)間單元*/
hCAN.Init.TimeSeg1=CAN_BS1_6TQ;/*BTR-TS1時(shí)間段1占用了6個(gè)時(shí)間單元*/
hCAN.Init.TimeSeg2=CAN_BS2_7TQ;/*BTR-TS1時(shí)間段2占用了7個(gè)時(shí)間單元*/
hCAN.Init.TimeTriggeredMode=DISABLE;/*MCR-TTCM關(guān)閉時(shí)間觸發(fā)通信模式使能*/
hCAN.Init.AutoBusOff=ENABLE;/*MCR-ABOM自動(dòng)離線管理*/
hCAN.Init.AutoWakeUp=ENABLE;/*MCR-AWUM使用自動(dòng)喚醒模式*/
hCAN.Init.AutoRetransmission=DISABLE;/*MCR-NART禁止報(bào)文自動(dòng)重傳DISABLE-自動(dòng)重傳*/
/*MCR-RFLM接收FIFO鎖定模式DISABLE-溢出時(shí)新報(bào)文會覆蓋原有報(bào)文*/
hCAN.Init.ReceiveFifoLocked=DISABLE;
/*MCR-TXFP發(fā)送FIFO優(yōu)先級DISABLE-優(yōu)先級取決于報(bào)文標(biāo)示符*/
hCAN.Init.TransmitFifoPriority=DISABLE;
if(HAL_CAN_Init(&hCAN)!=HAL_OK)
{
//Error_Handler();
}
//初始化發(fā)送器
hCAN1_TxMessage.IDE=CAN_ID_STD;
hCAN1_TxMessage.RTR=CAN_RTR_DATA;
hCAN1_TxMessage.TransmitGlobalTime=ENABLE;

//初始化濾波器設(shè)置為0則不對消息進(jìn)行過濾
hCAN1_Filter.FilterIdHigh=0;/*要過濾的ID高位*/
hCAN1_Filter.FilterIdLow=0;/*要過濾的ID低位*/
hCAN1_Filter.FilterMaskIdHigh=0;/*過濾器高16位每位必須匹配*/
hCAN1_Filter.FilterMaskIdLow=0;/*過濾器低16位每位必須匹配*/
hCAN1_Filter.FilterFIFOAssignment=CAN_FILTER_FIFO0;/*過濾器被關(guān)聯(lián)到FIFO0*/
hCAN1_Filter.FilterBank=0;
hCAN1_Filter.FilterMode=CAN_FILTERMODE_IDMASK;/*工作在標(biāo)識符屏蔽位模式*/
hCAN1_Filter.FilterScale=CAN_FILTERSCALE_32BIT;/*過濾器位寬為單個(gè)32位。*/
hCAN1_Filter.FilterActivation=ENABLE;
hCAN1_Filter.SlaveStartFilterBank=0;

HAL_CAN_ConfigFilter(&hCAN,&hCAN1_Filter);

while(HAL_CAN_Start(&hCAN)!=HAL_OK)
{
printf("\nCAN_StartFailed!!");
HAL_Delay(100);
}
HAL_CAN_ActivateNotification(&hCAN,CAN_IT_RX_FIFO0_MSG_PENDING);
}
poYBAGDYdXCAWkKMAAAAK8RNs4s030.png

下面是CAN發(fā)送的函數(shù),我們需要自己構(gòu)建相應(yīng)的消息幀格式,通常需要設(shè)置消息幀的ID格式,消息長度,具體如下;

voidCAN_TxMessage(CAN_HandleTypeDef*hcan,uint16_tID,uint8_taData[],uint8_tDLC)
{
uint32_tTx_MailBox;
/*-1-配置數(shù)據(jù)段長度----------------------------------------*/
hCAN1_TxMessage.IDE=CAN_ID_STD;
hCAN1_TxMessage.RTR=CAN_RTR_DATA;
hCAN1_TxMessage.StdId=ID;
hCAN1_TxMessage.DLC=DLC;
hCAN1_TxMessage.TransmitGlobalTime=ENABLE;
/*-2-發(fā)送aData---------------------------------------------*/
while(HAL_CAN_AddTxMessage(hcan,&hCAN1_TxMessage,aData,&Tx_MailBox)!=HAL_OK)
{
HAL_Delay(5);
}
}
poYBAGDYdXCAWkKMAAAAK8RNs4s030.png

上述代碼設(shè)置發(fā)送消息:

CAN_ID_STD設(shè)置為標(biāo)準(zhǔn)ID;

CAN_RTR_DATA設(shè)置消息為數(shù)據(jù)幀;

StdId為當(dāng)前消息的ID;

DLC為當(dāng)前消息的長度;

整體可以參考前面介紹的消息幀格式,篇幅有限,這里就先簡單的介紹一下。

總結(jié)

本文對CAN總結(jié)進(jìn)行了簡單的介紹,CAN通訊的特點(diǎn)可以總結(jié)如下;

符合OSI開放式通信系統(tǒng)參考模型;

兩線式總線結(jié)構(gòu),電氣信號為差分式;

多主控制。在總線空閑時(shí),所有的單元都可開始發(fā)送消息,最先訪問總線的單元可獲得發(fā)送權(quán);多個(gè)單元同時(shí)開始發(fā)送時(shí),發(fā)送高優(yōu)先級 ID 消息的單元可獲得發(fā)送權(quán);

消息報(bào)文不包含源地址或者目標(biāo)地址,僅通過標(biāo)識符表明消息功能和優(yōu)先級;

基于固定消息格式的廣播式總線系統(tǒng),短幀結(jié)構(gòu);

事件觸發(fā)型。只有當(dāng)有消息要發(fā)送時(shí),節(jié)點(diǎn)才向總線上廣播消息;

可以通過發(fā)送遠(yuǎn)程幀請求其它節(jié)點(diǎn)發(fā)送數(shù)據(jù);

消息數(shù)據(jù)長度 0~8 Byte;

錯(cuò)誤檢測功能。所有節(jié)點(diǎn)均可檢測錯(cuò)誤,檢測處錯(cuò)誤的單元會立即通知其它所有單元;

發(fā)送消息出錯(cuò)后,節(jié)點(diǎn)會自動(dòng)重發(fā);

故障限制。節(jié)點(diǎn)控制器可以判斷錯(cuò)誤是暫時(shí)的數(shù)據(jù)錯(cuò)誤還是持續(xù)性錯(cuò)誤,當(dāng)總線上發(fā)生持續(xù)數(shù)據(jù)錯(cuò)誤時(shí),控制器可將節(jié)點(diǎn)從總線上隔離;

通信介質(zhì)可采用雙絞線、同軸電纜和光導(dǎo)纖維,一般使用最便宜的雙絞線;

理論上,CAN總線用單根信號線就可以通信,但還是配備了第二根導(dǎo)線,第二根導(dǎo)線與第一根導(dǎo)線信號為差分關(guān)系,可以有效抑制電磁干擾;

在40米線纜條件下,最高數(shù)據(jù)傳輸速率 1Mbps;

總線上可同時(shí)連接多個(gè)節(jié)點(diǎn),可連接節(jié)點(diǎn)總數(shù)理論上是沒有限制的,但實(shí)際可連接節(jié)點(diǎn)數(shù)受總線上時(shí)間延遲及電氣負(fù)載的限制;

文章來源于小麥大叔,作者小麥大叔

?

研發(fā)銷售6軸、9軸電子羅盤(陀螺儀|加速計(jì)|磁力計(jì))、傾角傳感器、姿態(tài)傳感器,慣導(dǎo)、數(shù)據(jù)采集盒、IoT遠(yuǎn)程智慧監(jiān)測等

產(chǎn)品廣泛應(yīng)用于:無人機(jī)、無人船、巡檢/引導(dǎo)/送餐/水下機(jī)器人、AGV、云臺裝置、望遠(yuǎn)鏡、Qiang支瞄準(zhǔn)鏡、雷達(dá)定位、聚光太陽能、工礦/隧道無人設(shè)備等!

核心研發(fā)人員十年技術(shù)積累,專業(yè)研發(fā)團(tuán)隊(duì),軍工級品質(zhì),替代進(jìn)口。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 單片機(jī)
    +關(guān)注

    關(guān)注

    6078

    文章

    45593

    瀏覽量

    674034
  • CAN總線
    +關(guān)注

    關(guān)注

    146

    文章

    2050

    瀏覽量

    135538
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    利用泰克示波器 CAN 總線解碼器加快 CAN 總線的故障排除速度

    什么是 CAN 總線? 控制器局域網(wǎng)絡(luò) (CAN) 最初是針對汽車應(yīng)用而設(shè)計(jì)的總線結(jié)構(gòu),但是,它也在其他領(lǐng)域找到用武之地。CAN
    的頭像 發(fā)表于 04-17 17:35 ?674次閱讀
    利用泰克示波器 <b class='flag-5'>CAN</b> <b class='flag-5'>總線</b>解碼器加快 <b class='flag-5'>CAN</b> <b class='flag-5'>總線</b>的故障排除速度

    基于FPGA的輕量級CAN總線控制器實(shí)現(xiàn)方案

    CAN總線作為工業(yè)和汽車領(lǐng)域最常用的通信總線,具有拓?fù)浣Y(jié)構(gòu)簡潔、可靠性高、傳輸距離長等優(yōu)點(diǎn)。CAN總線的非破壞性仲裁機(jī)制依賴于幀ID,
    的頭像 發(fā)表于 04-03 10:10 ?3147次閱讀
    基于FPGA的輕量級<b class='flag-5'>CAN</b><b class='flag-5'>總線</b>控制器實(shí)現(xiàn)方案

    開源項(xiàng)目汽車CAN總線分析儀總體介紹

    在做車載、工業(yè)控制項(xiàng)目時(shí),CAN 總線調(diào)試總遇到協(xié)議不兼容、數(shù)據(jù)抓不全的問題?
    的頭像 發(fā)表于 02-05 10:03 ?763次閱讀
    開源項(xiàng)目汽車<b class='flag-5'>CAN</b><b class='flag-5'>總線</b>分析儀總體<b class='flag-5'>介紹</b>

    虹科HK-CoreTest:專業(yè)的CAN/CAN FD總線測試軟件,高效易用

    、報(bào)文收發(fā)、數(shù)據(jù)庫解析等核心功能,還提供UDS診斷、FBL刷寫等高級特性,幫助工程師輕松應(yīng)對各種測試場景。 一、車載總線測試面臨的核心挑戰(zhàn) 現(xiàn)代汽車網(wǎng)絡(luò)測試已從簡單CAN總線監(jiān)測發(fā)展
    的頭像 發(fā)表于 12-29 13:20 ?748次閱讀

    圓滿收官 | 虹科CAN總線專題全系列直播精華回顧已上線!

    個(gè)月的「CAN總線專題系列」技術(shù)直播。該系列直播共有8期干貨滿滿的課程,涵蓋基礎(chǔ)協(xié)議解析、產(chǎn)品實(shí)操演示、實(shí)戰(zhàn)案例分享、測試工具介紹、1V1互動(dòng)答疑等多種形式的精彩內(nèi)
    的頭像 發(fā)表于 11-24 17:55 ?3055次閱讀
    圓滿收官 | 虹科<b class='flag-5'>CAN</b><b class='flag-5'>總線</b>專題全系列直播精華回顧已上線!

    CAN 總線自定義協(xié)議使用說明

    關(guān)于can總線的設(shè)置
    發(fā)表于 11-05 17:00 ?2次下載

    CAN總線遠(yuǎn)程調(diào)試工具介紹

    一種工程機(jī)械領(lǐng)域調(diào)試上的創(chuàng)新產(chǎn)品,可用于Codesys 源程序的無線下載聯(lián)機(jī)、遠(yuǎn)程調(diào)試、故障診斷、CAN 總線數(shù)據(jù)在線監(jiān)控、透傳收發(fā)、數(shù)據(jù)采集、數(shù)據(jù)分析、遠(yuǎn)程控制等各種 CAN 總線
    發(fā)表于 10-17 16:14 ?0次下載

    CAN總線斷路、短路及反接故障的現(xiàn)象解析及影響評估

    本文導(dǎo)讀在實(shí)際運(yùn)行過程中,CAN總線線路可能因多種因素出現(xiàn)故障,其中斷路和短路故障較為常見且影響嚴(yán)重。深入了解這兩大類故障的現(xiàn)象及對總線的影響,對于快速定位故障、保障系統(tǒng)穩(wěn)定運(yùn)行具有重要意義。掌握
    的頭像 發(fā)表于 10-15 11:41 ?2752次閱讀
    <b class='flag-5'>CAN</b><b class='flag-5'>總線</b>斷路、短路及反接故障的現(xiàn)象解析及影響評估

    三格電子CAN總線通信原理及在消防領(lǐng)域中的應(yīng)用

    ?CAN總線簡介 CAN總線是一種多主串行通信總線,最初為汽車電子設(shè)計(jì),因其高可靠性、實(shí)時(shí)性和出色的抗干擾能力,非常適合環(huán)境復(fù)雜、安全性要求
    的頭像 發(fā)表于 09-02 15:11 ?1490次閱讀
    三格電子<b class='flag-5'>CAN</b><b class='flag-5'>總線</b>通信原理及在消防領(lǐng)域中的應(yīng)用

    120Ω的秘密:CAN總線終端電阻的重要性

    CAN總線作為一種廣泛應(yīng)用的工業(yè)通信協(xié)議,其終端電阻的作用不容忽視。本文將詳細(xì)探討CAN總線終端電阻的重要性及其在通信中的關(guān)鍵作用。CAN
    的頭像 發(fā)表于 08-08 11:35 ?1526次閱讀
    120Ω的秘密:<b class='flag-5'>CAN</b><b class='flag-5'>總線</b>終端電阻的重要性

    廣成科技CANFD轉(zhuǎn)CAN總線GCAN-418的優(yōu)勢

    作為CAN總線的升級產(chǎn)品,CANFD相較于傳統(tǒng)的CAN總線,擁有如下幾個(gè)方面的優(yōu)勢。
    的頭像 發(fā)表于 08-05 11:47 ?1331次閱讀
    廣成科技CANFD轉(zhuǎn)<b class='flag-5'>CAN</b><b class='flag-5'>總線</b>GCAN-418的優(yōu)勢

    CAN總線電容過大?三種解決方案來了

    在新能源汽車路試中,CAN總線傳輸異常是一個(gè)常見問題。本期我們將探討由于總線電容過大導(dǎo)致的下降沿過緩問題,并介紹三種有效的解決方案。CAN
    的頭像 發(fā)表于 07-22 11:36 ?894次閱讀
    <b class='flag-5'>CAN</b><b class='flag-5'>總線</b>電容過大?三種解決方案來了

    CAN 總線遇強(qiáng)干擾時(shí),隔離式收發(fā)器如何實(shí)現(xiàn)信號 “免疫”?

    本文介紹CAN總線及其優(yōu)點(diǎn),包括抗干擾能力、低延遲和高速數(shù)據(jù)傳輸性能等。同時(shí),文章提到了隔離式CAN收發(fā)器作為連接CAN控制器(MCU)與
    的頭像 發(fā)表于 07-04 14:49 ?2347次閱讀
    <b class='flag-5'>CAN</b> <b class='flag-5'>總線</b>遇強(qiáng)干擾時(shí),隔離式收發(fā)器如何實(shí)現(xiàn)信號 “免疫”?

    CAN收發(fā)器:總線信號的“翻譯官”

    CAN總線通信中,CAN收發(fā)器(Transceiver)扮演著至關(guān)重要的角色——它就像一位“翻譯官”,負(fù)責(zé)將微控制器(MCU)的數(shù)字信號轉(zhuǎn)換為總線上的差分信號,同時(shí)把
    的頭像 發(fā)表于 06-27 11:34 ?2640次閱讀
    <b class='flag-5'>CAN</b>收發(fā)器:<b class='flag-5'>總線</b>信號的“翻譯官”

    如何評估CAN總線信號質(zhì)量

    CAN總線網(wǎng)絡(luò)的性能在很大程度上取決于其信號質(zhì)量。信號質(zhì)量差可能導(dǎo)致通信錯(cuò)誤,進(jìn)而引發(fā)系統(tǒng)故障、效率降低甚至安全隱患。因此,評估和確保CAN總線信號質(zhì)量是維護(hù)系統(tǒng)健康和可靠性的關(guān)鍵。
    發(fā)表于 06-07 08:46
    内丘县| 德昌县| 军事| 三台县| 麻阳| 中江县| 菏泽市| 柘城县| 莱西市| 汶川县| 白城市| 九寨沟县| 福州市| 湟源县| 诸城市| 太和县| 辽阳市| 卢氏县| 松原市| 恩平市| 镇康县| 拜城县| 霍城县| 双牌县| 永福县| 乐昌市| 平原县| 延安市| 岑巩县| 普兰店市| 汉阴县| 黄平县| 思南县| 泸定县| 增城市| 芜湖市| 大邑县| 沙田区| 灌云县| 陇西县| 车致|