RM新时代网站-首页

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

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

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

FullCAN和BasicCAN是什么?有何區(qū)別

冬至配餃子 ? 來(lái)源:開心果 Need Car ? 作者:開心果 Need Car ? 2022-08-29 17:21 ? 次閱讀

在搞清楚FullCAN和BasicCAN是什么之前,我們先搞清楚一些基礎(chǔ)的東西。

1基礎(chǔ)概念

提示:

英飛凌tc397為例。

1、CAN Module與CAN Node、Controller關(guān)系

平時(shí)開發(fā)中,我們說(shuō)“ECU有3路CAN”,所說(shuō)的“3路CAN”和3個(gè)Node是一個(gè)概念嗎?不是。

我們平時(shí)所討論的“3路CAN”是指3個(gè)網(wǎng)絡(luò),也就是我們口語(yǔ)中的“節(jié)點(diǎn)”。而芯片手冊(cè)中(Data Sheet),一個(gè)CAN Module會(huì)包含多個(gè)Node(即,Controller),比如:tc397芯片手冊(cè)中,MCMCAN Module包含3個(gè)CAN Module,每個(gè)Module包含4個(gè)Controller,如下所示:

pYYBAGMMg-OAYC3EAACJ9INnbJ4061.png

2、Controller與Transceiver關(guān)系

在實(shí)際的使用中,一個(gè)Controller必須配一個(gè)Transceiver,Controller+Transceiver = Network,如下所示:

pYYBAGMMg_qAOwu0AAByyEGH10M579.png

所以,平時(shí)我們口語(yǔ)話的“3路CAN”是指3個(gè)Controller+Transceiver組合,即:3個(gè)Network,我們也常稱“3個(gè)節(jié)點(diǎn)”。

3、Controller與RAM資源關(guān)系

剛提到,tc397中,一個(gè)CAN Module包含4個(gè)Controller,那每個(gè)Controller可以發(fā)送多少個(gè)CAN報(bào)文,接收多少個(gè)CAN 報(bào)文呢?這里我們要區(qū)分硬件緩存CAN報(bào)文的數(shù)量和項(xiàng)目中要求發(fā)送/接收?qǐng)?bào)文的數(shù)量。

硬件緩存CAN報(bào)文數(shù)量:是指上層請(qǐng)求發(fā)送報(bào)文或者接收?qǐng)?bào)文時(shí),CAN驅(qū)動(dòng)最多能緩存的數(shù)量;

項(xiàng)目中要求發(fā)送/接收?qǐng)?bào)文的數(shù)量:是指當(dāng)前節(jié)點(diǎn)要外發(fā)或者接收的報(bào)文數(shù)量。

以發(fā)送CAN報(bào)文數(shù)量為例:需求要求當(dāng)前網(wǎng)絡(luò)節(jié)點(diǎn)發(fā)送100幀CanID不同的CAN報(bào)文,實(shí)際該節(jié)點(diǎn)CAN Controller可用的硬件發(fā)送緩存區(qū)最多有32,意味著底層硬件最多緩存32幀發(fā)送報(bào)文,如果超過32幀發(fā)送請(qǐng)求,則會(huì)因沒有硬件空間緩存而發(fā)送請(qǐng)求失敗。

tc397 CAN Module資源情況如下所示:

poYBAGMMhA-ALhjvAAEM-o0W0yY411.png

提示:上圖中的Controller用“Node”表示。由上可以看出,3個(gè)CAN Module,共12個(gè)Controller。

每個(gè)CAN Module(4個(gè)Controller)共用32個(gè)發(fā)送Tx Buffer,共用64個(gè)Rx Buffer

...對(duì)于發(fā)送緩沖區(qū),每個(gè)CAN Module共用32個(gè)發(fā)送緩沖區(qū),如果配置了32個(gè)TxDedicated Buffer,則沒有空間配置Tx FIFO/Queue;同理,每個(gè)CAN Module雖然有兩個(gè)Rx FIFO,如果配置了64個(gè)Rx Dedicated Buffer,則沒有空間配置Rx FIFO。一般,Tx/Rx Buffer配置時(shí),會(huì)混合使用,比如:

20TxDedicated Buffer+ 12Tx Queue

40 RxDedicated Buffer+ 24Rx FIFO

MCMCAN

Module RAM區(qū)地址劃分順序如下所示:

poYBAGMMhCSAMIl3AADNZfS_IJs890.png

4、Mailbox、HRH、HWObject

Mailbox:郵箱,就是CAN驅(qū)動(dòng)所具有的接收緩存區(qū)和發(fā)送緩存區(qū),接收緩存區(qū)和發(fā)送緩存區(qū)均在RAM區(qū)。

HWObject:硬件對(duì)象,包含CAN ID、DLC、Data等信息的RAM區(qū)。

HRH:Hardware Receive Handle,接收句柄,一個(gè)HRH表示一個(gè)接收HWObject。

HTH:HardwareTransmitHandle,發(fā)送句柄,一個(gè)HTH表示一個(gè)發(fā)送HWObject。

Mailbox、HWObject、HRH、HTH、Controller、Transceiver之間的關(guān)系如下所示:

pYYBAGMMhDqAQ0yiAAC0PLOriVc031.png

2FullCAN和BasicCAN是什么?

首先,F(xiàn)ullCAN和BasicCAN是CanIf模塊配置的參數(shù)。

BasicCAN:一個(gè)HWObject(HardwareObject)可以處理一段范圍的CanId

FullCAN:一個(gè)HWObject(HardwareObject)只能處理單個(gè)CanId

Autosar對(duì)FullCAN和BasicCAN的解釋如下所示:

poYBAGMMhImAcUxCAABo9GVkPgI211.png

將上述的解釋進(jìn)一步細(xì)化,如下所示:

pYYBAGMMhEqAXgHCAADCYTX5JVU641.png

使用工程中,MCAL會(huì)將緩存區(qū)分配成FIFO和Dedicated Buffer,F(xiàn)IFO和Dedicated Buffer的區(qū)別是什么呢?Dedicated Buffer區(qū)域,Hareware Object與HRH/HTH一一對(duì)應(yīng),而FIFO區(qū)域,一個(gè)HRH/HTH對(duì)應(yīng)多個(gè)HarewareObject,如下所示:

pYYBAGMMhGqADKl6AAC7wZ8Ce7g609.png

3為什么需要FullCAN和BasicCAN?

在CAN驅(qū)動(dòng)層,可以通過過濾的方式,過濾一段范圍內(nèi)的CanID,也就是說(shuō):會(huì)有一段范圍內(nèi)的報(bào)文接收進(jìn)來(lái),但是接收進(jìn)來(lái)的這一段范圍的報(bào)文并不一定都是上層所需要的,怎么辦呢?用軟件方式,再過濾一遍,由CanIf過濾所需要的CAN報(bào)文。因此,提出了FullCAN和BasicCAN的概念。

比如:HRH對(duì)應(yīng)BASIC CAN類型,接收CanID范圍:0x10~0x18,CanIf根據(jù)過濾算法,在0x10~0x18范圍內(nèi)過濾出需要的0x10、0x13、0x14、0x16、0x17送給上層,而其余的丟棄,如下所示:

poYBAGMMhJ-AQzbBAADAas-Dt-k646.png

CanIf可以通過設(shè)置CANIF_HRHRANGE_LOWER_CANID、CANIF_HRHRANGE_UPPER_CANID方式過濾,也可以通過設(shè)置CANIF_HRHRANGE_BASEID、CANIF_HRHRANGE_MASK進(jìn)行過濾。

不同報(bào)文類型如何選擇FULL CAN/BASICCAN

應(yīng)用報(bào)文:一般選擇配置成FULL CAN類型,對(duì)于應(yīng)用報(bào)文,一般不需要緩存,使用最新接收的數(shù)據(jù)即可。對(duì)于發(fā)送的應(yīng)用報(bào)文,都配置成FULL CAN類型需要一個(gè)前提:上層需要發(fā)送應(yīng)用報(bào)文數(shù)量<底層硬件緩存區(qū)數(shù)量。比如:底層發(fā)送硬件緩存區(qū)數(shù)量為32,節(jié)點(diǎn)需要發(fā)送的應(yīng)用報(bào)文數(shù)量為50,顯然無(wú)法將50個(gè)發(fā)送的應(yīng)用報(bào)文都配置成FULL CAN。遇到這種情況,一般會(huì)將重要的應(yīng)用報(bào)文配置成FULL CAN,而其他要發(fā)送的應(yīng)用報(bào)文配置成BASIC CAN。這樣配置以后,硬件緩存區(qū)的分配就需要混用,即:Dedicated Tx Buffers+Tx Queue或者 Dedicated Tx Buffers+Tx FIFO,如下所示:

poYBAGMMhLKAa0SPAAC5rWvshB8966.png

如上圖,ID3、ID15、ID20是比較重要的應(yīng)用報(bào)文,配置成FULL CAN,分別給一個(gè)獨(dú)立的緩存區(qū);其他的緩存區(qū)則配置成BASIC CAN,即:一個(gè)緩存區(qū)可以發(fā)送多個(gè)不同CanID的報(bào)文。

診斷報(bào)文:一般選擇配置成BASIC CAN類型(結(jié)合FIFO Buffer使用),因?yàn)樵\斷報(bào)文的請(qǐng)求/響應(yīng)不能錯(cuò)序,需按照順序處理,且數(shù)據(jù)不能覆蓋;

網(wǎng)絡(luò)管理報(bào)文:接收一般選擇配置成BASIC CAN類型,因?yàn)橐粋€(gè)節(jié)點(diǎn)一般會(huì)要求接收一段范圍的網(wǎng)絡(luò)管理報(bào)文,eg:0x500~0x53F。發(fā)送網(wǎng)絡(luò)管理報(bào)文配置成FULL/BASIC CAN類型均可,如果資源夠用,推薦配置成FULL CAN類型,因?yàn)槊總€(gè)節(jié)點(diǎn)的發(fā)送網(wǎng)絡(luò)管理報(bào)文唯一;

標(biāo)定報(bào)文:一般選擇配置成FULL CAN類型。



審核編輯:劉清

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

    關(guān)注

    57

    文章

    2744

    瀏覽量

    463615
  • RAM
    RAM
    +關(guān)注

    關(guān)注

    8

    文章

    1368

    瀏覽量

    114641
  • fifo
    +關(guān)注

    關(guān)注

    3

    文章

    387

    瀏覽量

    43648
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    你聽說(shuō)過MIPS嗎?它和ARM區(qū)別?

    基于MIPS指令集的君正X2000處理器。有些工程師對(duì)于MIPS不怎么了解,究竟MIPS和ARM區(qū)別呢?本期文對(duì)MIPS做一個(gè)簡(jiǎn)單介紹。MIPS和ARM都屬于
    的頭像 發(fā)表于 11-23 01:05 ?198次閱讀
    你聽說(shuō)過MIPS嗎?它和ARM<b class='flag-5'>有</b><b class='flag-5'>何</b><b class='flag-5'>區(qū)別</b>?

    【迅為電子】龍芯LS2K1000LA和LS2K1000區(qū)別?

    【迅為電子】龍芯LS2K1000LA和LS2K1000區(qū)別?
    的頭像 發(fā)表于 11-13 14:13 ?256次閱讀
    【迅為電子】龍芯LS2K1000LA和LS2K1000<b class='flag-5'>有</b><b class='flag-5'>何</b><b class='flag-5'>區(qū)別</b>?

    TPA3112D1PWPR與TPA3112D1PWP區(qū)別?

    TPA3112D1PWPR與TPA3112D1PWP區(qū)別
    發(fā)表于 09-09 07:48

    請(qǐng)問單端音頻和差分音頻區(qū)別?

    單端音頻和差分音頻區(qū)別?一個(gè)是單聲道一個(gè)是立體聲?
    發(fā)表于 08-13 07:37

    谷景帶你了解共模繞線電感和共模電感區(qū)別

    谷景帶你了解共模繞線電感和共模電感區(qū)別 編輯:谷景電子 電感是電子電路中的關(guān)鍵電感元件,它對(duì)電路穩(wěn)定性的影響有著非常重要的作用。在眾多電感類型,共模電感和繞線電感是應(yīng)用比較多的兩種。有人想知道共
    的頭像 發(fā)表于 04-28 23:26 ?396次閱讀

    英偉達(dá)AI服務(wù)器NVLink版與PCIe版區(qū)別?又如何選擇呢?

    在人工智能領(lǐng)域,英偉達(dá)作為行業(yè)領(lǐng)軍者,推出了兩種主要的GPU版本供AI服務(wù)器選擇——NVLink版(實(shí)為SXM版)與PCIe版。這兩者本質(zhì)區(qū)別?又該如何根據(jù)應(yīng)用場(chǎng)景做出最佳選擇呢?讓我們深入探討一下。
    的頭像 發(fā)表于 03-19 11:21 ?5487次閱讀
    英偉達(dá)AI服務(wù)器NVLink版與PCIe版<b class='flag-5'>有</b><b class='flag-5'>何</b><b class='flag-5'>區(qū)別</b>?又如何選擇呢?

    什么是勵(lì)磁電感?與漏磁電感區(qū)別呢?

    什么是勵(lì)磁電感?與漏磁電感區(qū)別呢? 勵(lì)磁電感和漏磁電感是電感元件中的兩個(gè)重要概念,它們?cè)陔姶艑W(xué)和電路應(yīng)用中有著不同的作用和特性。本文將詳細(xì)介紹勵(lì)磁電感和漏磁電感的定義、特點(diǎn)以及區(qū)別
    的頭像 發(fā)表于 03-08 16:39 ?6672次閱讀

    數(shù)組和鏈表區(qū)別

    數(shù)組和鏈表的區(qū)別,這個(gè)問題,不僅面試中經(jīng)常遇到,考研的同學(xué)也得掌握才行。
    的頭像 發(fā)表于 02-19 15:33 ?502次閱讀
    數(shù)組和鏈表<b class='flag-5'>有</b><b class='flag-5'>何</b><b class='flag-5'>區(qū)別</b>

    作為導(dǎo)線,銅線和鋁線區(qū)別?可以接在一起嗎?

    作為導(dǎo)線,銅線和鋁線區(qū)別?可以接在一起嗎? 銅線和鋁線是兩種常用的導(dǎo)線材料,用于電力輸送和電器連接。雖然它們都具備導(dǎo)電功能,但在性能、用途和優(yōu)勢(shì)方面存在一些區(qū)別。本文將對(duì)銅線和鋁線
    的頭像 發(fā)表于 02-18 13:52 ?6136次閱讀

    譯碼不只有DECB,還有DEC,它們區(qū)別?

    譯碼不只有DECB,還有DEC,它們區(qū)別? DECB譯碼和DEC譯碼都是編碼技術(shù)中常見的方法,它們?cè)谑褂蒙嫌幸恍?b class='flag-5'>區(qū)別。 首先,讓我們了解一下什么是譯碼。在計(jì)算機(jī)科學(xué)中,譯碼是將計(jì)算
    的頭像 發(fā)表于 02-18 11:14 ?1218次閱讀

    UPS負(fù)載箱與負(fù)載模擬器區(qū)別?

    UPS負(fù)載箱與負(fù)載模擬器區(qū)別? UPS負(fù)載箱和負(fù)載模擬器是用于測(cè)試UPS設(shè)備性能和穩(wěn)定性的重要工具。雖然它們?cè)谀承┓矫嬗幸恍┕餐帲鼈冊(cè)诠ぷ髟?、使用方法和功能上存在一些重?b class='flag-5'>區(qū)別
    的頭像 發(fā)表于 01-18 16:07 ?761次閱讀

    串行線調(diào)試與JTAG區(qū)別?

    在基于ARM7的ADuC器件上,通過JTAG調(diào)試和下載到Flash。在AduCM360上,JTAG被串行線調(diào)試取代。 串行線調(diào)試與JTAG區(qū)別?我是否需要新的工具和新的仿真器?
    發(fā)表于 01-15 07:35

    LED洗墻燈跟線條燈的區(qū)別,使用的芯片差異?

    LED洗墻燈跟線條燈的區(qū)別,使用的芯片差異?
    的頭像 發(fā)表于 01-05 14:30 ?1825次閱讀

    什么是MPLS?特點(diǎn)?與SD-WAN區(qū)別?

    什么是MPLS?特點(diǎn)?與SD-WAN區(qū)別? MPLS是多協(xié)議標(biāo)簽交換的縮寫,是一種網(wǎng)絡(luò)傳輸協(xié)議。它被設(shè)計(jì)用于提高數(shù)據(jù)包轉(zhuǎn)發(fā)的速度和效
    的頭像 發(fā)表于 12-27 14:09 ?718次閱讀

    母線槽與電纜到底區(qū)別?

    母線槽與電纜到底區(qū)別? 母線槽與電纜是電力傳輸中常見的兩種設(shè)備,它們有著各自的特點(diǎn)和應(yīng)用領(lǐng)域。下面將分別從使用范圍、結(jié)構(gòu)設(shè)計(jì)、傳輸能力、安裝維護(hù)等方面詳細(xì)介紹母線槽與電纜的區(qū)別。
    的頭像 發(fā)表于 12-26 14:02 ?1659次閱讀
    RM新时代网站-首页