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

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

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

ELF 1技術(shù)貼|CAN接口淺析:從原理到對(duì)測(cè)

ElfBoard ? 2024-04-26 10:24 ? 次閱讀

引言

在當(dāng)今智能化、網(wǎng)絡(luò)化的時(shí)代,各種電子設(shè)備間的高效通信成為了技術(shù)發(fā)展的關(guān)鍵。而控制器局域網(wǎng)絡(luò)(Controller Area Network,簡(jiǎn)稱CAN),作為嵌入式系統(tǒng)中不可或缺的通信協(xié)議,正扮演著鏈接橋梁的重要角色。本文將帶各位小伙伴深入了解CAN接口的基本原理。

CAN總線介紹

CAN總線采用廣播通信模式,意味著網(wǎng)絡(luò)中的每一節(jié)點(diǎn)都能接收傳播于總線上的所有數(shù)據(jù)報(bào)文,并非定向傳輸至特定節(jié)點(diǎn)。這一特性確保了信息的廣泛可達(dá)性,不過(guò),各節(jié)點(diǎn)并非被動(dòng)接受所有信息。實(shí)際上,CAN技術(shù)內(nèi)置的硬件過(guò)濾機(jī)制使得每個(gè)節(jié)點(diǎn)能智能化篩選,僅對(duì)與其相關(guān)的報(bào)文作出響應(yīng),實(shí)現(xiàn)了有效的信息過(guò)濾與處理策略。

總線采用不歸零制編碼結(jié)合線與邏輯設(shè)計(jì),確保了信號(hào)的穩(wěn)定傳輸。在此機(jī)制下,各個(gè)模塊經(jīng)由線與邏輯相連至總線,這意味著當(dāng)單一節(jié)點(diǎn)輸出邏輯0時(shí),即使其余節(jié)點(diǎn)均發(fā)出邏輯1,總線信號(hào)也會(huì)被強(qiáng)勢(shì)界定為邏輯0,體現(xiàn)了總線在信號(hào)競(jìng)爭(zhēng)中的獨(dú)斷性。

CAN總線上的電平

CAN2.0A/B標(biāo)準(zhǔn)規(guī)定:總線空閑時(shí),CAN_H和CAN_L上的電壓為2.5V;

在數(shù)據(jù)傳輸時(shí),顯性電平(邏輯0):CAN_H 3.5V CAN_L 1.5V;

隱性電平(邏輯1):CAN_H 2.5V CAN_L 2.5V;

wKgZomYrC6SAAlq0AAtWUkw5vuE991.png

CAN標(biāo)準(zhǔn)定義四種不同的報(bào)文類型(數(shù)據(jù)幀、遠(yuǎn)程幀、錯(cuò)誤幀、過(guò)載幀)。報(bào)文使用逐位仲裁智能方案來(lái)控制對(duì)總線的訪問(wèn),每條報(bào)文都帶有優(yōu)先級(jí)標(biāo)記,在協(xié)議中規(guī)定ID小則優(yōu)先級(jí)高。CAN總線拓?fù)鋱D如下圖:

wKgaomYrC7yAX3SAAA85Tuauu4s260.png

ElfBoard開(kāi)發(fā)板 CAN接口硬件電路介紹

ELF 1開(kāi)發(fā)板在其底板上集成了1路CAN接口,而ELF 1S開(kāi)發(fā)板則通過(guò)擴(kuò)展板增設(shè)了額外的1路CAN接口,這一接口經(jīng)由3.81mm間距的綠色端子引出。

當(dāng)前,ELF 1開(kāi)發(fā)板搭載了TJA1040T型CAN收發(fā)器。關(guān)于CAN模塊原理圖如下圖所示??紤]到TJA1040T器件的輸出端RX輸出的是5V電平信號(hào),這可能對(duì)核心板的3.3V工作電壓環(huán)境構(gòu)成兼容性挑戰(zhàn)。為保護(hù)核心板,采取了電壓匹配措施:通過(guò)電阻R51和R54實(shí)施分壓,將RX信號(hào)平滑過(guò)渡至3.3V,隨后安全送至處理器的CAN1_RX輸入端口,從而保障了系統(tǒng)間通訊的穩(wěn)定。

wKgZomYrC9OAJYRRAA6ZPF53Rmo802.png

為了優(yōu)化外部電路設(shè)計(jì),各位小伙伴可以參考以下的TJA1040T芯片功能框圖和引腳詳解。這些資料將加速大家對(duì)TJA1040T芯片特性的理解進(jìn)程。

wKgaomYrD0eAFZ9BAAzmyQBVEk4802.pngTJA1040T芯片功能框圖

wKgZomYrD1eANerCABLSOHdZwc4972.pngTJA1040T芯片引腳說(shuō)明

關(guān)于CAN接口的設(shè)計(jì)建議

(1)核心板最多可支持2路CAN;

(2)設(shè)計(jì)CAN接口時(shí)要注意收發(fā)器和核心板之間的電平匹配;

(3)終端電阻可以預(yù)留插針通過(guò)跳線帽選擇使用;

關(guān)于CAN接口PCB的設(shè)計(jì)建議

(1)CAN使用差分布線,預(yù)留120Ω端接電阻;

(2)連接端口建議預(yù)留地信號(hào);

CAN接口對(duì)測(cè)

ELF 1S開(kāi)發(fā)板提供兩路CAN接口,CAN1 集成于底板之上,而 CAN2 則集成在擴(kuò)展板上。為了實(shí)現(xiàn)雙向 CAN 測(cè)試,需將 CAN1 與 CAN2 兩端的信號(hào)線對(duì)應(yīng)相連——即高位H線相互接通,低位L線同樣相連,以確保兩者間的直接通信鏈路暢通無(wú)阻。

wKgZomYrD4uAAw5mABDt4sAs_rc906.png

開(kāi)發(fā)板啟動(dòng)之后,在命令行輸入以下命令,對(duì)CAN1配置波特率為125000:

root@ELF1:~# ifconfig can0 down //關(guān)閉can1 root@ELF1:~# ip link set can0 up type can bitrate 125000 triple-sampling on //設(shè)置can1波特率 flexcan 2090000.can can0:writing ctrl=0x0e312085 IPV6:ADDRCONF(NETDEV_CHANGE):can0:link becomes ready root@ELF1:~# ifconfig can0 up //開(kāi)啟can1

對(duì)CAN2配置波特率為125000:

root@ELF1:~# ifconfig can1 down //關(guān)閉can2 root@ELF1:~# ip link set can1 up type can bitrate 125000 triple-sampling on //設(shè)置can2波特率 flexcan 2094000.can can1:writing ctrl=0x0e312085 IPV6:ADDRCONF(NETDEV_CHANGE):can0:link becomes ready root@ELF1:~# ifconfig can1 up //開(kāi)啟can2

設(shè)置CAN2接收數(shù)據(jù):

root@ELF1:~# candump can1 & //can2以后臺(tái)方式接收數(shù)據(jù) [1] 686

CAN1發(fā)送數(shù)據(jù):

root@ELF1:~# cansend can0 123#1234567891234567 //can1發(fā)送數(shù)據(jù) root@ELF1:~# can1 123 [8] 12 34 56 78 91 23 45 67 //can2接收到數(shù)據(jù)

CAN2接收到CAN1發(fā)送的數(shù)據(jù)。

至此就完成了對(duì)CAN接口的介紹,期待這篇文章能讓各位小伙伴對(duì)CAN接口有一個(gè)全面而深入的理解,推進(jìn)各位嵌入式愛(ài)好者在學(xué)習(xí)的道路上不斷前進(jìn)。

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

    關(guān)注

    6030

    文章

    44498

    瀏覽量

    632156
  • 嵌入式
    +關(guān)注

    關(guān)注

    5060

    文章

    18976

    瀏覽量

    302220
  • 開(kāi)發(fā)板
    +關(guān)注

    關(guān)注

    25

    文章

    4909

    瀏覽量

    97080
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    ELF 1技術(shù)|開(kāi)發(fā)板底板電源電路講解

    ELF1開(kāi)發(fā)板由核心板和底板組成,底板集成CAN、Wi-Fi&BT、Ethernet、音頻、USB.Camera、LCD顯示、溫濕度傳感器、UART等功能外設(shè),核心板是核心組件,集成了主控
    的頭像 發(fā)表于 01-15 13:28 ?1088次閱讀
    <b class='flag-5'>ELF</b> <b class='flag-5'>1</b><b class='flag-5'>技術(shù)</b><b class='flag-5'>貼</b>|開(kāi)發(fā)板底板電源電路講解

    ELF 1技術(shù)|在NXP源碼基礎(chǔ)上適配開(kāi)發(fā)板的按鍵功能

    ELF1開(kāi)發(fā)板。接下來(lái),我們將詳細(xì)闡述適配過(guò)程中關(guān)于按鍵功能實(shí)現(xiàn)的完整步驟。值得一提的是,ELF1開(kāi)發(fā)板上預(yù)置了標(biāo)識(shí)為K1、K2、K3的三個(gè)按鍵。為了啟用這些按
    的頭像 發(fā)表于 03-08 16:58 ?910次閱讀
    <b class='flag-5'>ELF</b> <b class='flag-5'>1</b><b class='flag-5'>技術(shù)</b><b class='flag-5'>貼</b>|在NXP源碼基礎(chǔ)上適配開(kāi)發(fā)板的按鍵功能

    ElfBoard技術(shù)|如何在NXP源碼基礎(chǔ)上適配ELF 1開(kāi)發(fā)板的UART功能

    UART即通用異步收發(fā)器,是一種支持全雙工串行通信協(xié)議的接口。在i.MX6ULL處理器平臺(tái)上,該處理器原生支持多達(dá)8路的UART接口,提供了豐富的串行通信能力。 針對(duì)ELF 1開(kāi)發(fā)
    的頭像 發(fā)表于 09-25 13:56 ?2222次閱讀
    ElfBoard<b class='flag-5'>技術(shù)</b><b class='flag-5'>貼</b>|如何在NXP源碼基礎(chǔ)上適配<b class='flag-5'>ELF</b> <b class='flag-5'>1</b>開(kāi)發(fā)板的UART功能

    基于DSP的CAN總線接口設(shè)計(jì)

    基于DSP的CAN總線接口設(shè)計(jì) 1CAN總線簡(jiǎn)介   控制器局部網(wǎng)絡(luò)(CAN ControllerAreaNetwork)是德國(guó)B
    發(fā)表于 10-04 09:41 ?4636次閱讀
    基于DSP的<b class='flag-5'>CAN</b>總線<b class='flag-5'>接口</b>設(shè)計(jì)

    語(yǔ)音接口技術(shù)淺析

    語(yǔ)音接口技術(shù)淺析
    發(fā)表于 11-01 08:27 ?1次下載
    語(yǔ)音<b class='flag-5'>接口技術(shù)</b><b class='flag-5'>淺析</b>

    理到實(shí)例:GaN為何值得期待?

    理到實(shí)例:GaN為何值得期待?
    的頭像 發(fā)表于 12-30 17:06 ?958次閱讀
    <b class='flag-5'>從</b>原<b class='flag-5'>理到</b>實(shí)例:GaN為何值得期待?

    關(guān)于ELF1/ELF1S開(kāi)發(fā)板的音頻接口,你需要知道的都在這!

    音樂(lè)可以將平凡的畫面賦予深厚的意義,那么音頻接口就是這個(gè)支點(diǎn);今天就來(lái)給大家詳細(xì)介紹一下ELF1/ELF1S開(kāi)發(fā)板的音頻接口。ELF1/
    的頭像 發(fā)表于 10-31 14:10 ?661次閱讀
    關(guān)于<b class='flag-5'>ELF1</b>/<b class='flag-5'>ELF1</b>S開(kāi)發(fā)板的音頻<b class='flag-5'>接口</b>,你需要知道的都在這!

    淺析can技術(shù)的演變過(guò)程

    CAN技術(shù)的演變 為了了解 CAN FD 到 CAN XL 的轉(zhuǎn)變,讓我們簡(jiǎn)單回顧一下 CAN
    發(fā)表于 11-17 11:41 ?495次閱讀
    <b class='flag-5'>淺析</b><b class='flag-5'>can</b><b class='flag-5'>技術(shù)</b>的演變過(guò)程

    ELF 1技術(shù)|LCD作為終端控制臺(tái)的方法

    ELF1/ELF1S開(kāi)發(fā)板及顯示屏)(ELF1/ELF1S開(kāi)發(fā)板及顯示屏)對(duì)于嵌入式愛(ài)好者來(lái)說(shuō),調(diào)試開(kāi)發(fā)板是必不可少的工作。一般情況下是使用串口作為終端進(jìn)行調(diào)試,如果網(wǎng)絡(luò)沒(méi)問(wèn)題的話,
    的頭像 發(fā)表于 12-20 17:11 ?379次閱讀
    <b class='flag-5'>ELF</b> <b class='flag-5'>1</b><b class='flag-5'>技術(shù)</b><b class='flag-5'>貼</b>|LCD作為終端控制臺(tái)的方法

    ELF 1技術(shù)|在NXP源碼基礎(chǔ)上適配ELF 1開(kāi)發(fā)板的LED功能

    本次源碼適配工作是在NXPi.MX6ULLEVK評(píng)估板的Linux內(nèi)核源碼(特定版本:Linux-imx_4.1.15)基礎(chǔ)上進(jìn)行的。主要目標(biāo)是調(diào)整功能接口引腳配置,以適應(yīng)ELF1開(kāi)發(fā)板。下面以
    的頭像 發(fā)表于 12-29 10:04 ?785次閱讀
    <b class='flag-5'>ELF</b> <b class='flag-5'>1</b><b class='flag-5'>技術(shù)</b><b class='flag-5'>貼</b>|在NXP源碼基礎(chǔ)上適配<b class='flag-5'>ELF</b> <b class='flag-5'>1</b>開(kāi)發(fā)板的LED功能

    解析壓敏電阻MOV:基礎(chǔ)原理到應(yīng)用?

    解析壓敏電阻MOV:基礎(chǔ)原理到應(yīng)用?|深圳比創(chuàng)達(dá)電子EMC
    的頭像 發(fā)表于 01-24 10:47 ?791次閱讀
    解析壓敏電阻MOV:<b class='flag-5'>從</b>基礎(chǔ)原<b class='flag-5'>理到</b>應(yīng)用?

    ELF 1技術(shù)|如何支持exFAT和NTFS格式

    。接下來(lái)將給各位小伙伴介紹一下如何通過(guò)對(duì)ELF1開(kāi)發(fā)板進(jìn)行配置,以實(shí)現(xiàn)對(duì)exFAT和NTFS格式U盤以及SD卡的支持與掛載。exFAT1、內(nèi)核源碼中需要添加exFAT
    的頭像 發(fā)表于 01-31 16:37 ?633次閱讀
    <b class='flag-5'>ELF</b> <b class='flag-5'>1</b><b class='flag-5'>技術(shù)</b><b class='flag-5'>貼</b>|如何支持exFAT和NTFS格式

    ELF 1技術(shù)|如何將Python3.6.9移植到開(kāi)發(fā)板上

    ELF1開(kāi)發(fā)板的Linux4.1.15eMMC鏡像中,默認(rèn)預(yù)裝了Python2.7。為了適應(yīng)更多應(yīng)用場(chǎng)景,有些小伙伴可能需要移植其他版本的Python,下面將以Python3.6.9為例詳細(xì)介紹
    的頭像 發(fā)表于 02-22 14:06 ?392次閱讀
    <b class='flag-5'>ELF</b> <b class='flag-5'>1</b><b class='flag-5'>技術(shù)</b><b class='flag-5'>貼</b>|如何將Python3.6.9移植到開(kāi)發(fā)板上

    ELF技術(shù)|如何在開(kāi)發(fā)板上實(shí)現(xiàn)對(duì)Java的支持

    Java作為一種功能強(qiáng)大且廣泛應(yīng)用的編程語(yǔ)言,具有廣泛的適應(yīng)性和實(shí)用性。在ELF1開(kāi)發(fā)板上集成Java支持,無(wú)疑將賦予嵌入式開(kāi)發(fā)者更廣闊的選擇空間,今天就為各位小伙伴詳細(xì)解析如何在ELF1開(kāi)發(fā)板上成
    的頭像 發(fā)表于 03-13 16:47 ?455次閱讀
    <b class='flag-5'>ELF</b><b class='flag-5'>技術(shù)</b><b class='flag-5'>貼</b>|如何在開(kāi)發(fā)板上實(shí)現(xiàn)對(duì)Java的支持

    ElfBoard技術(shù)|在NXP源碼基礎(chǔ)上適配ELF 1開(kāi)發(fā)板的按鍵功能

    本次源碼適配工作是在NXPi.MX6ULLEVK評(píng)估板的Linux內(nèi)核源碼(特定版本:Linux-imx_4.1.15)基礎(chǔ)上進(jìn)行的。主要目標(biāo)是調(diào)整功能接口引腳配置,以適應(yīng)ELF1開(kāi)發(fā)板。接下來(lái)
    的頭像 發(fā)表于 07-10 09:54 ?515次閱讀
    ElfBoard<b class='flag-5'>技術(shù)</b><b class='flag-5'>貼</b>|在NXP源碼基礎(chǔ)上適配<b class='flag-5'>ELF</b> <b class='flag-5'>1</b>開(kāi)發(fā)板的按鍵功能