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

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

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

Full CAN與Basic CAN配置錯(cuò)誤導(dǎo)致信號(hào)跳變問題剖析

CHANBAEK ? 來源:開心果 Need Car ? 作者:開心果 Need Car ? 2023-10-01 10:16 ? 次閱讀

工程項(xiàng)目中,大家可能會(huì)注意到:不管哪家主機(jī)廠的網(wǎng)絡(luò)拓?fù)洌?a target="_blank">CAN總線是不可或缺的一種總線。所以,了解CAN總線似乎是一名汽車工程師的基礎(chǔ)課,很多時(shí)候,我們可能覺得自己很懂,而實(shí)際呢?個(gè)人觀點(diǎn),最好的方式就是讓工程問題去衡量你對(duì)CAN總線或者某個(gè)知識(shí)體系的理解深度。本文,就大家耳熟能詳?shù)腃AN總線進(jìn)行一個(gè)工程問題剖析:Full CAN與Basic CAN配置錯(cuò)誤,導(dǎo)致信號(hào)跳變。

提示 :本工程問題對(duì)應(yīng)英飛凌TC3xx芯片,EB配置MCAL

1、問題背景

標(biāo)定測(cè)試中發(fā)現(xiàn),一些信號(hào)變化異常,這些異常信號(hào)的值在某些時(shí)刻跳變成該信號(hào)的極限值,如下所示:

圖片

顯然,如上信號(hào)的跳變會(huì)給整車帶來安全隱患,因此,測(cè)試也會(huì)將問題嚴(yán)重度設(shè)置較高等級(jí),eg:S級(jí)或者A級(jí)。

2、根因分析

在進(jìn)行根因分析之前,先補(bǔ)充一些MCAN基礎(chǔ)信息。

(一)Message RAM

在英飛凌的芯片中,MCAN模塊有一塊Message RAM,這塊空間主要用來劃分過濾空間、接收數(shù)據(jù)空間以及發(fā)送數(shù)據(jù)空間,至于如何切分Message RAM,由用戶或者工具設(shè)置。雖然Message RAM區(qū)可以按需切割,但是,切割的順序需要按照手冊(cè)要求實(shí)現(xiàn),Message RAM如下所示:

圖片

解讀:

  • Message RAM的總大小為4480 words;
  • 在切割Message RAM時(shí),需要按照上圖順序排布,即:SIDFC.FLSSA->XIDFC.FLESA->RXF0C.F0SA->RXF1C.F0SA->RXBC.RBSA->TXEFC.EFSA->TXBC.TBSA->TMC.TMSA。當(dāng)然,如果實(shí)際沒有用到某些區(qū)域,則不用切割Message RAM,eg:可以不用Rx FIFO 1。

Message RAM在EB中的配置某個(gè)Can Controller示例如下所示:

圖片

(二)Standard Message ID Filter Element解讀

Message RAM開始區(qū)域就是設(shè)置ID過濾,具體會(huì)對(duì)應(yīng)到StdMsgk_S0 (k=0-127)寄存器。StdMsgk_S0各位域如下所示:

圖片

部分內(nèi)容解釋:

  • SFT (Standard Filter Type):00B Range filter from SF1ID to SF2ID (SF2ID≥SF1ID),可以過濾一段ID;01B Dual ID filter for SF1ID or SF2ID,過濾SF1ID或者SF2ID;10B Classic filter: SF1ID = filter, SF2ID = mask;11B Filter element disabled.
  • SFEC (Standard Filter Element Configuration):過濾后的處理方式,111B Store into Rx Buffer or as debug message, configuration of SFT[1:0] ignored,過濾匹配放到Rx Buffer緩存區(qū)。
  • SFID2 (Standard Filter ID 2):SFID2[5:0] defines the offset to the Rx Buffer Start Address RXBC.RBSA for storage of a matching message.如果SFT配置成10模式,則SFID2[5:0]表示此報(bào)文在Rx Buffer的偏移(offset)。

(三)EB中的MCAL配置錯(cuò)誤

檢查MCAL配置發(fā)現(xiàn),某個(gè)FULL類型的CanHandleType位置放到了BASIC類型后面,如下所示:

圖片

經(jīng)過如上的MCAL配置調(diào)整以后,CanHardwareObject33的CanObjectId由原來的26變成了28。如此,會(huì)導(dǎo)致什么問題呢?對(duì)比生成的配置代碼(本文Can_17_McmCan_kSIDFilterConfigCore0,配置文件Can_17_McmCan_PBcfg.c)如下所示(右側(cè)是錯(cuò)誤配置):

圖片

就是因?yàn)槿缟系呐渲茫瑢?dǎo)致本應(yīng)放入Rx dedicated buffer區(qū)間的數(shù)據(jù)錯(cuò)誤的放到了Tx Event區(qū)間。如何理解呢?分析如上變動(dòng),具體解釋如下:

1、正確配置分析

0xba00001a進(jìn)行二進(jìn)制展開:1011 1010 0000 0000 0000 0000 0001 1010B。對(duì)照StdMsgk_S0寄存器各位域解釋如下:

圖片

如此配置,意味著0x200(CanHardwareObject33)接收的數(shù)據(jù)會(huì)放置到地址:0xF0200294+26*16 = 0xF0200434,此時(shí),不會(huì)與Tx Event的起始地址0xF0200444位置重疊,數(shù)據(jù)可以正確處理。

2、錯(cuò)誤配置分析

0xba00001c進(jìn)行二進(jìn)制展開:1011 1010 0000 0000 0000 0000 0001 1100B。對(duì)照StdMsgk_S0寄存器各位域解釋如下:

圖片

如此配置,意味著0x200(CanHardwareObject33)接收的數(shù)據(jù)會(huì)放置到地址:0xF0200294+28*16 = 0xF0200454,此時(shí),會(huì)與Tx Event的起始地址0xF0200444重疊,進(jìn)而造成接收數(shù)據(jù)被發(fā)送數(shù)據(jù)覆蓋,這就是信號(hào)跳變的原因。

將如上的分析簡(jiǎn)化示意如下所示:

圖片

3、解決措施

既然是MCAL配置異常導(dǎo)致的問題,問題的修復(fù)也就明了,修改EB中的MCAL配置,將同一個(gè)Controller的Full CAN移動(dòng)到Basic CAN之前,嚴(yán)格按照EB手冊(cè)約束配置。關(guān)于CanObject配置注意事項(xiàng),可以參考前文《MCMCAN:CAN hardware object配置規(guī)則》。

聲明:本文內(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)投訴
  • 英飛凌
    +關(guān)注

    關(guān)注

    66

    文章

    2095

    瀏覽量

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

    關(guān)注

    145

    文章

    1898

    瀏覽量

    130333
  • CAN
    CAN
    +關(guān)注

    關(guān)注

    57

    文章

    2663

    瀏覽量

    462433
  • 信號(hào)
    +關(guān)注

    關(guān)注

    11

    文章

    2739

    瀏覽量

    76170
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    介紹C167CR的CAN中斷結(jié)構(gòu)功能和標(biāo)準(zhǔn)CAN中斷結(jié)構(gòu)的應(yīng)

    microcontrollers allows communication between several stations (CAN nodes) in BASIC-CAN functionality and in FULL-CAN
    發(fā)表于 07-01 11:47 ?17次下載

    淺析CAN總線錯(cuò)誤分析與解決

    CAN總線上有干擾,導(dǎo)致CAN控制器發(fā)生接收錯(cuò)誤CAN總線上的信號(hào)經(jīng)過收發(fā)器轉(zhuǎn)化為差分電平
    發(fā)表于 10-08 14:31 ?4947次閱讀
    淺析<b class='flag-5'>CAN</b>總線<b class='flag-5'>錯(cuò)誤</b>分析與解決

    關(guān)于CAN總線錯(cuò)誤的相關(guān)知識(shí)

    在本系列文章中,我們將為您詳細(xì)介紹CAN總線錯(cuò)誤的相關(guān)知識(shí),包括CAN總線錯(cuò)誤的基礎(chǔ)概念、CAN總線錯(cuò)誤
    的頭像 發(fā)表于 05-27 17:56 ?2945次閱讀

    CAN總線錯(cuò)誤的類型介紹

    在本系列文章中,我們將為您詳細(xì)介紹CAN總線錯(cuò)誤的相關(guān)知識(shí),包括CAN總線錯(cuò)誤的基礎(chǔ)概念、CAN總線錯(cuò)誤
    的頭像 發(fā)表于 06-13 16:08 ?7903次閱讀

    剖析IVI PLC的CAN及IOT功能

    通過對(duì)IVI PLC的IOT及CAN剖析,從而加深對(duì)于CAN及IOT技術(shù)的理解。
    的頭像 發(fā)表于 01-05 09:19 ?800次閱讀
    <b class='flag-5'>剖析</b>IVI PLC的<b class='flag-5'>CAN</b>及IOT功能

    DBC文件格式錯(cuò)誤導(dǎo)致Davinci Configurator報(bào)錯(cuò)問題總結(jié)

    存在各種問題,導(dǎo)致Davinci工具也報(bào)各種錯(cuò)誤,由于以前沒有Davinci的使用經(jīng)驗(yàn),解決問題的過程也比較痛苦,這里把遇到的DBC文件格式錯(cuò)誤導(dǎo)致Davinci報(bào)錯(cuò)問題記錄一下。
    的頭像 發(fā)表于 03-08 13:34 ?7960次閱讀

    虹科干貨 | 帶你全面認(rèn)識(shí)“CAN總線錯(cuò)誤”(二)——CAN錯(cuò)誤類型

    AsimpleintrotoCANerrorsCAN總線錯(cuò)誤介紹在本系列文章中,我們將為您詳細(xì)介紹CAN總線錯(cuò)誤的相關(guān)知識(shí),包括CAN總線錯(cuò)誤
    的頭像 發(fā)表于 06-09 09:46 ?1985次閱讀
    虹科干貨 | 帶你全面認(rèn)識(shí)“<b class='flag-5'>CAN</b>總線<b class='flag-5'>錯(cuò)誤</b>”(二)——<b class='flag-5'>CAN</b><b class='flag-5'>錯(cuò)誤</b>類型

    虹科干貨 | 帶你全面了解“CAN總線錯(cuò)誤”(三)——CAN節(jié)點(diǎn)狀態(tài)與錯(cuò)誤計(jì)數(shù)器

    AsimpleintrotoCANerrorsCAN總線錯(cuò)誤介紹在本系列文章中,我們將為您詳細(xì)介紹CAN總線錯(cuò)誤的相關(guān)知識(shí),包括CAN總線錯(cuò)誤
    的頭像 發(fā)表于 06-09 09:46 ?2143次閱讀
    虹科干貨 | 帶你全面了解“<b class='flag-5'>CAN</b>總線<b class='flag-5'>錯(cuò)誤</b>”(三)——<b class='flag-5'>CAN</b>節(jié)點(diǎn)狀態(tài)與<b class='flag-5'>錯(cuò)誤</b>計(jì)數(shù)器

    虹科干貨 | 帶你全面認(rèn)識(shí)“CAN總線錯(cuò)誤”(一)——CAN總線錯(cuò)誤錯(cuò)誤

    AsimpleintrotoCANerrorsCAN總線錯(cuò)誤介紹在本系列文章中,我們將為您詳細(xì)介紹CAN總線錯(cuò)誤的相關(guān)知識(shí),包括CAN總線錯(cuò)誤
    的頭像 發(fā)表于 05-27 10:39 ?4350次閱讀
    虹科干貨 | 帶你全面認(rèn)識(shí)“<b class='flag-5'>CAN</b>總線<b class='flag-5'>錯(cuò)誤</b>”(一)——<b class='flag-5'>CAN</b>總線<b class='flag-5'>錯(cuò)誤</b>與<b class='flag-5'>錯(cuò)誤</b>幀

    虹科干貨 | 帶你全面認(rèn)識(shí)“CAN總線錯(cuò)誤”(二)——CAN錯(cuò)誤類型

    AsimpleintrotoCANerrorsCAN總線錯(cuò)誤介紹在本系列文章中,我們將為您詳細(xì)介紹CAN總線錯(cuò)誤的相關(guān)知識(shí),包括CAN總線錯(cuò)誤
    的頭像 發(fā)表于 06-02 09:41 ?1256次閱讀
    虹科干貨 | 帶你全面認(rèn)識(shí)“<b class='flag-5'>CAN</b>總線<b class='flag-5'>錯(cuò)誤</b>”(二)——<b class='flag-5'>CAN</b><b class='flag-5'>錯(cuò)誤</b>類型

    虹科干貨 | 帶你全面了解“CAN總線錯(cuò)誤”(四)——在實(shí)踐中生成和記錄CAN錯(cuò)誤

    AsimpleintrotoCANerrorsCAN總線錯(cuò)誤介紹在本系列文章中,我們將為您詳細(xì)介紹CAN總線錯(cuò)誤的相關(guān)知識(shí),包括CAN總線錯(cuò)誤
    的頭像 發(fā)表于 06-09 10:21 ?1451次閱讀
    虹科干貨 | 帶你全面了解“<b class='flag-5'>CAN</b>總線<b class='flag-5'>錯(cuò)誤</b>”(四)——在實(shí)踐中生成和記錄<b class='flag-5'>CAN</b><b class='flag-5'>錯(cuò)誤</b>

    認(rèn)識(shí)CAN總線錯(cuò)誤 CAN總線錯(cuò)誤分析與解決

    認(rèn)識(shí)CAN 總線錯(cuò)誤的第一步就是了解認(rèn)識(shí)CAN 總線協(xié)議和它的具體功能,這樣才能更容易地理解CAN 總線是如何去發(fā)現(xiàn)并解決錯(cuò)誤的。
    發(fā)表于 08-14 15:18 ?5217次閱讀
    認(rèn)識(shí)<b class='flag-5'>CAN</b>總線<b class='flag-5'>錯(cuò)誤</b> <b class='flag-5'>CAN</b>總線<b class='flag-5'>錯(cuò)誤</b>分析與解決

    如何用示波器排查CAN的各種錯(cuò)誤幀呢?

    ,在CAN通信中,錯(cuò)誤幀可能會(huì)導(dǎo)致設(shè)備故障和通信中斷,因此排查CAN錯(cuò)誤幀非常重要。本文將詳細(xì)介紹如何使用示波器排查
    的頭像 發(fā)表于 12-07 11:09 ?954次閱讀

    CAN數(shù)據(jù)傳輸錯(cuò)誤的常見原因有哪些?

    電源波動(dòng)或其他電氣問題可能會(huì)影響CAN信號(hào)的質(zhì)量并導(dǎo)致“幀錯(cuò)誤”。例如,波特率不匹配或者節(jié)點(diǎn)沒有初始化,也可能導(dǎo)致沒有ACK(應(yīng)答)
    發(fā)表于 04-02 09:30 ?767次閱讀

    CAN總線錯(cuò)誤狀態(tài)的種類

    CAN總線錯(cuò)誤狀態(tài)的種類主要包括以下幾種,每種狀態(tài)都反映了CAN總線網(wǎng)絡(luò)中節(jié)點(diǎn)或總線的不同錯(cuò)誤情況,以及相應(yīng)的通信能力和限制。
    的頭像 發(fā)表于 09-03 14:17 ?168次閱讀