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

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

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

一種值得嵌入式開發(fā)人員學(xué)習(xí)的總線 -- CAN-Bus

黃工的嵌入式技術(shù)圈 ? 來源:黃工的嵌入式技術(shù)圈 ? 2020-03-14 11:02 ? 次閱讀

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)圖)

主要包含:MCU、CAN控制器、CAN收發(fā)器;

可以結(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)載請注明出處。

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

    關(guān)注

    5082

    文章

    19126

    瀏覽量

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

    關(guān)注

    145

    文章

    1951

    瀏覽量

    130766
  • 485總線
    +關(guān)注

    關(guān)注

    1

    文章

    29

    瀏覽量

    16787
收藏 人收藏

    評論

    相關(guān)推薦

    如何使用 RISC-V 進(jìn)行嵌入式開發(fā)

    RISC-V是一種開源的指令集架構(gòu)(ISA),它允許任何人設(shè)計(jì)、制造和銷售基于RISC-V的處理器,這為嵌入式開發(fā)提供了極大的靈活性和創(chuàng)新空間。以下是使用RISC-V進(jìn)行嵌入式開發(fā)的基本步驟:
    的頭像 發(fā)表于 12-11 17:32 ?518次閱讀

    MSPDebugStack開發(fā)人員指南

    電子發(fā)燒友網(wǎng)站提供《MSPDebugStack開發(fā)人員指南.pdf》資料免費(fèi)下載
    發(fā)表于 12-05 14:49 ?0次下載
    MSPDebugStack<b class='flag-5'>開發(fā)人員</b>指南

    零基礎(chǔ)嵌入式開發(fā)學(xué)習(xí)路線

    Linux基本操作 什么是Linux?為什么要學(xué)Linux?Linux是個(gè)操作系統(tǒng),類似于平常使用的Windows系統(tǒng)。作為嵌入式開發(fā)最常用的操作系統(tǒng),Linux是開發(fā)人員必會的技能。它有很多優(yōu)點(diǎn)
    發(fā)表于 10-25 15:55

    嵌入式開發(fā)常見問題排查

    嵌入式開發(fā)問題排查很多人認(rèn)為嵌入式開發(fā)很難,主要是因?yàn)樵谶@個(gè)過程中常常會遇到各式各樣的問題。這些問題的復(fù)雜性和多樣性使得許多人感到困惑和無所適從。然而,如果將這些問題逐拆解,實(shí)際上大部分都可以
    的頭像 發(fā)表于 09-22 08:04 ?338次閱讀
    <b class='flag-5'>嵌入式開發(fā)</b>常見問題排查

    嵌入式常用總線有哪些

    嵌入式系統(tǒng)中常用的總線種類繁多,它們各自具有不同的特點(diǎn)和應(yīng)用場景。以下將詳細(xì)介紹幾種嵌入式開發(fā)中常用的總線,包括UART、I2C、SPI、RS-232、RS-485、
    的頭像 發(fā)表于 09-10 11:34 ?623次閱讀

    嵌入式開發(fā)常用軟件有哪些?

    查看源代碼,注釋文檔等非常方便,因?yàn)樗檎?,定位,彩色顯示等功能非常強(qiáng)大。開發(fā)人員會當(dāng)成源代碼閱讀工具使用。 4.Keil uVision5 Keil 5 軟件是款功能強(qiáng)大的嵌入式系統(tǒng)開發(fā)
    發(fā)表于 09-09 15:22

    C2000 ePWM開發(fā)人員指南

    電子發(fā)燒友網(wǎng)站提供《C2000 ePWM開發(fā)人員指南.pdf》資料免費(fèi)下載
    發(fā)表于 09-07 09:45 ?0次下載
    C2000 ePWM<b class='flag-5'>開發(fā)人員</b>指南

    一種常用嵌入式開發(fā)代碼庫

    使用開源協(xié)議:GPL-2.0varch簡介varch(we-architecture,意為我們的框架庫)是嵌入式C語言常用代碼模塊庫,包含了嵌入式中常用的算法庫,數(shù)據(jù)結(jié)構(gòu)(容器)庫,解析器庫,獨(dú)立C
    的頭像 發(fā)表于 09-04 08:06 ?475次閱讀
    <b class='flag-5'>一種</b>常用<b class='flag-5'>嵌入式開發(fā)</b>代碼庫

    嵌入式開發(fā)前景怎么樣?

    嵌入式開發(fā)前景非常廣闊,這主要得益于物聯(lián)網(wǎng)、人工智能、大數(shù)據(jù)等技術(shù)的快速發(fā)展,以及嵌入式系統(tǒng)在各個(gè)領(lǐng)域的廣泛應(yīng)用。以下是對嵌入式開發(fā)前景的詳細(xì)分析
    的頭像 發(fā)表于 07-10 09:00 ?2717次閱讀
    <b class='flag-5'>嵌入式開發(fā)</b>前景怎么樣?

    嵌入式系統(tǒng)怎么學(xué)?

    人類社會朝著更加智能、便利、高效的方向發(fā)展。在未來,嵌入式軟件開發(fā)人員也需要不斷學(xué)習(xí)和適應(yīng)新技術(shù),以滿足不斷變化的市場需求。
    發(fā)表于 07-02 10:10

    嵌入式開發(fā)就業(yè)前景怎么樣?

    ,嵌入式開發(fā)的主要工作是開發(fā)各種醫(yī)療設(shè)備和系統(tǒng),如醫(yī)療影像、醫(yī)療機(jī)器人、遠(yuǎn)程診療等。嵌入式開發(fā)人員需要掌握相關(guān)的硬件和軟件技術(shù),如處理器、傳感器、通信技術(shù)、醫(yī)療數(shù)據(jù)處理等,同時(shí)也需要具備
    發(fā)表于 06-07 14:51

    CAN-bus應(yīng)用筆記:節(jié)點(diǎn)篇

    CAN-bus電路設(shè)計(jì)中,理論上收發(fā)器支持節(jié)點(diǎn)數(shù)最多可做到110個(gè),但實(shí)際應(yīng)用中往往達(dá)不到這個(gè)數(shù)量。今天我們就來談?wù)勅绾瓮ㄟ^合理的CAN-bus總線設(shè)計(jì),保證CAN網(wǎng)絡(luò)中的通訊的可靠
    的頭像 發(fā)表于 05-12 08:24 ?561次閱讀
    <b class='flag-5'>CAN-bus</b>應(yīng)用筆記:節(jié)點(diǎn)篇

    fpga是嵌入式開發(fā)

    FPGA(現(xiàn)場可編程門陣列)與嵌入式開發(fā)之間確實(shí)存在定的關(guān)聯(lián),但它們在本質(zhì)上是兩個(gè)不同的領(lǐng)域。
    的頭像 發(fā)表于 03-15 14:18 ?1047次閱讀

    雅特力AT32 Workbench圖形化代碼生成工具,簡化嵌入式開發(fā)最佳利器

    嵌入式系統(tǒng)應(yīng)用市場廣泛,早已遍及日常生活,隨著產(chǎn)品需求復(fù)雜度的提升,32位MCU開發(fā)難度也隨之增加,如何降低開發(fā)成本,縮短開發(fā)周期,是所有嵌入式開發(fā)
    的頭像 發(fā)表于 02-19 13:26 ?573次閱讀
    雅特力AT32 Workbench圖形化代碼生成工具,簡化<b class='flag-5'>嵌入式開發(fā)</b>最佳利器

    嵌入式軟件開發(fā)應(yīng)該掌握哪些知識?

    知識點(diǎn)學(xué)習(xí) 熟悉 Linux 的基本使用對于嵌入式軟件開發(fā)至關(guān)重要。包括文件系統(tǒng)的管理、用戶權(quán)限的控制、軟件包管理等。嵌入式開發(fā)人員需要能夠在 Linux 環(huán)境下進(jìn)行
    發(fā)表于 02-19 11:23