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

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

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

FlexCAN 的基本使用方法及特性

靈動MM32MCU ? 來源:靈動MM32MCU ? 作者:靈動MM32MCU ? 2022-07-22 11:28 ? 次閱讀

一直關注我們靈動微課堂的朋友們,想必通過前面的介紹已經(jīng)掌握了 FlexCAN 的基本使用方法,也能夠在自己的方案中運用自如了。今天小編想和大家借助 ZLG 的CAN Scope工具了解我們這顆 MCU 的 CAN 的特性,看看在汽車 ECU 應用上它是如何保證通訊的魯棒性。

在整車網(wǎng)絡調(diào)試中,各節(jié)點遵循 CAN 一致性測試是保證總線的穩(wěn)定運行的重要前提, 當前CAN一致性測試已經(jīng)電動汽車行業(yè)的必然趨勢!

據(jù)了解,應用到 CAN 的 ECU 在實際裝車之前都需要經(jīng)歷一系列的一致性測試方能保證整車通訊的穩(wěn)定,每家車廠除了遵循 ISO 標準,他們也都有自己的規(guī)約和檢測流程,但測試項目不外乎都包含在以下表中:

450ead42-08cf-11ed-ba43-dac502259ad0.png

以上測試項中的被測內(nèi)容,有些是屬于板級設計階段需要重點關注的,有些是與 MCU 本身功能和性能密切相關的,接下來我們分層剖析。

物理層一致性測試

該項測試主要針對各個節(jié)點 ECU 板級層面的電阻、電容特性,節(jié)點自身差分電阻以及總線終端電阻和CAN 通信物理電平做出充分評測,以驗證 CAN 節(jié)點與系統(tǒng)網(wǎng)絡在電路設計、物理電平等方面的性能。

1.1 終端電阻測試

在高速 CAN 通訊應用中,我們時常會看到信號出現(xiàn)反射、過沖、振鈴等異常的現(xiàn)象,根據(jù)電磁場和微波理論分析,高頻電路中負載阻抗需與傳輸線纜的特性阻抗一致,否則電信號在線束終端容易遭遇阻抗突變,發(fā)生反射現(xiàn)象,造成波形震蕩,這將造成信號串擾、總線紊亂以及消息丟失等諸多通訊故障。下圖為典型的信號振鈴波形圖:

452c1044-08cf-11ed-ba43-dac502259ad0.png

所以在差分 CAN 網(wǎng)絡中,終端匹配電阻是必不可少的器件,它一般安裝在雙絞線纜的 2 端,依照總線的拓撲結構而準確定位,需選擇線束最遠距離的 2 個節(jié)點處。

終端電阻的作用:

1.加快放電,使總線快速進入隱性狀態(tài),提高抗干擾能力。

2.消除阻抗不連續(xù)和不匹配,提高信號質(zhì)量。

終端電阻的存在,一方面能提高總線抗干擾能力,讓高頻低能量的信號迅速泄放,一方面能確??偩€快速進入隱性狀態(tài),讓寄生電容的能量更快泄放,另一方面還能提高信號質(zhì)量,降低了線纜上的反射能量。

終端電阻過小會造成信號幅值偏小,信號在采樣時無法辨別高低電平,導致整個網(wǎng)絡數(shù)據(jù)混亂,有時可以通訊,但極不穩(wěn)定。

終端電阻過大會造成信號幅值偏大,驅動力過大,信號出現(xiàn)過沖現(xiàn)象,信號下降沿過緩,下降沿時間過長,嚴重的情況直接導致總線錯誤。

一般終端電阻的實際阻值選擇需要根據(jù)實測得到,因為它受任何一根線纜的特征阻抗(這里包括系統(tǒng)的容抗+感抗)所影響。

有個粗獷的測試手法:采用兩根汽車使用的典型線纜扭制成雙絞線,線纜的一端接方波發(fā)生器,另一端接可調(diào)電阻,并通過示波器觀察電阻上的波形,調(diào)整電阻阻值的大小,直到電阻上的信號是一個良好的無振鈴的方波,此時的電阻值可以認為與線纜的特征阻抗一致從而得到匹配電阻的阻值數(shù)據(jù)。另外也可以直接找到車上的通訊線纜用萬用表實測。終端電阻阻值和功率的選擇在 ISO 11898-2 標準里面也有定義,可以作為首選參考。

45725e6e-08cf-11ed-ba43-dac502259ad0.png

1.2 顯、隱性輸出電壓測試

CAN 總線設計規(guī)范對于 CAN 節(jié)點的輸出電壓有著嚴格的規(guī)定, 單個節(jié)點的輸出電壓如果不符合規(guī)范,則在現(xiàn)場組網(wǎng)后容易出現(xiàn)信號電平不可靠的情況,導致錯誤幀的出現(xiàn),各節(jié)點間無法進行通信。

差分電壓值決定了 CAN 的顯、隱性位(顯性電平的差分電平為高,TTL 邏輯電平為低;隱性電平的差分電平為低,TTL 邏輯電平為高),而 CAN_H / CAN_L 電壓情況又由收發(fā)器芯片的質(zhì)量決定。

在數(shù)據(jù)傳輸?shù)目臻e期間 CAN 總線差分電壓為 0v,CAN_H / CAN_L 對地電壓為 2.5v ,這個電壓標準也不是絕對的,但一般 CAN_H高于 2.5v,CAN_L 低于 2.5v,兩者加起來約為 5v 即算作正常。對于 CAN 信號電平有兩套不同標準做了界定, ISO 11898 高速 CAN 標準和 ISO11519-2 低速容錯 CAN 標準,如下表描述:

4592dcb6-08cf-11ed-ba43-dac502259ad0.png

需要使用示波器多次測量 CAN 總線空閑時期以及通訊時期的顯性位的 CAN_H 和 CAN_L 電壓值,來分析電平情況是否滿足標準要求,同時也可檢測出收發(fā)器芯片是否存在故障,下圖為實際抓取的測試圖:

45bcb766-08cf-11ed-ba43-dac502259ad0.png

1.3 跳變沿時間測試

主要為測試 ECU 的差分電平在隱性電平到顯性電平、顯性電平到隱性電平變化的時間,需要在指定的波特率條件下進行測試,接線長度需小于1米,波特率為 250k 的情況下進行通信,且將差分電平的上升、下降時間的起始點定為電壓值的 20%~80% 的區(qū)間處,即從隱性到顯性狀態(tài)過渡的上升時間起始點為差分電壓的 20% 處,終止點為差分電壓的 80% 處;從顯性向隱性狀態(tài)過渡的下降時間起始點為差分電壓的 80% 處,終止點為差分電壓的 20% 處。

簡單測量時可以選用示波器直接抓取波形測試,但一般需要每個邊沿至少測量 1000 次,以確定邊緣上升/下降時間的最小值和最大值,數(shù)據(jù)才更為可靠,這就需要使用專業(yè)的 CAN 測試儀器了,比如 CAN Scope、PICO Scope 等等。跳變沿的時間需要遵循 GMW3122 信號邊沿標準:

45e721e0-08cf-11ed-ba43-dac502259ad0.png

MM32F0140 實測通信質(zhì)量:

46156046-08cf-11ed-ba43-dac502259ad0.png

數(shù)據(jù)鏈路層一致性測試

該項測試覆蓋的內(nèi)容主要用于保證各個節(jié)點的通訊參數(shù)能夠保持一致性,所組成的網(wǎng)絡能夠正常有效的工作,除了評估板級使用到的元器件參數(shù),更多的還涉及到 FlexCAN底層驅動庫的調(diào)試,不同寄存器配置所帶來的影響是非常直觀的。

2.1 位時間測試

汽車 CAN 總線設計規(guī)范對于 CAN 節(jié)點的差分信號位時間(即波特率)有著嚴格的規(guī)定,同一總線上每個節(jié)點的信號位時間必須保持較高的一致性,否則節(jié)點組合到一起后,會導致錯誤幀的出現(xiàn),各節(jié)點間無法進行通信。

位時間偏差主要發(fā)生在如下情況:使用了非整數(shù)值的晶振(比如 11.0592MHZ)、極端溫度導致晶振偏差、CAN 控制器內(nèi)部波特率發(fā)生器偏差。針對MCU的晶振器件選型包括晶振電路的調(diào)試在我們另外的文檔中進行介紹,本次位時間測試是在已經(jīng)調(diào)試好晶振電路的電路上進行驗證測試。

MM32F0140 系列的 FlexCAN控制器將一個位時間分為同步段、傳播時間段、相位段1、相位段2等若干個 Tq 時間序列,每個段所占的 Tq 數(shù)可根據(jù)對應寄存器所配置,合理配置位時序的 Tq 數(shù)極為重要,具體可以參照 UM 手冊中 23.3.10.4 協(xié)議時序章節(jié)描述去理解每個段和 Tq 配置。

官方驅動例程中,選取的系統(tǒng)時鐘源為 HSI 倍頻到 72M,再經(jīng)過 2 分頻后得到 CAN 系統(tǒng)時鐘(CHI) 36M,也就是 FlexCAN通信時鐘源中的同步時鐘(MM32F0140 系列只能選擇該時鐘源,而不能選擇外部晶振作為時鐘源,即 PE 時鐘等于 CHI 時鐘),由于內(nèi)部時鐘精度要比外部晶振低,所以在測試位時間時需要將 RCC 時鐘外設改寫配置,選擇 HSE 倍頻到 72M 其它不變。其它按照默認配置,得到的波特計算公式為:

Baud = Fsclock / (CAN_CTRL1.PSEG1+ CAN_CTRL1.PSEG2 + CAN_CTRL1.PROPSEG+ 4)

Fsclock = Fcanclk / (CAN_CTRL1.PRESDIV+1)

Fsclock 為 FlexCAN串行時鐘頻率, Fcanclk 為 PE 時鐘頻率,即為 CHI 時鐘頻率 Fsys

通過以上公式計算得出波特率為 500KHz,與實際程序配置是相符合的。位時間計算公式為:

Tcanbit = 1 / Baud

通過以上公式計算得出位時間為 2us,F(xiàn)lexCAN最小時間單元 Tq 個數(shù)為 canTiming[0].timeQuanta = 8(即為 canTiming[0] 中的 PROPSEG/PSEG1/PSEG2 之和再加1),Tq 時長計算公式為:

Tq = Tcanbit / Tq num

Tq = (CAN_CTRL1.PRESDIV+1) / Fsys

通過以上 2 公式都可以計算得 Tq 時間為 0.25us。經(jīng)過理論計算后,需要實際使用示波器抓取一個位波形來測量位時間寬度,一般需要多次測量一幀數(shù)據(jù)中的位寬波形直至超過 100 次,或者截取一串數(shù)據(jù)幀中偏差最大的那一幀總時長再除以位數(shù)即可得出位時間,再或者就是直接使用 CAN Scope 的位時間精度功能實測,可以得出以下結果:

4623cd98-08cf-11ed-ba43-dac502259ad0.png

官方驅動中的 SJW 默認設置為 1 ,在實際允許的容忍偏差范圍內(nèi),可以自行調(diào)整該參數(shù),一般建議設置為 2~3 個 Tq 。

2.2 采樣點測試

除了精準的波特率,采樣點位置的匹配同樣是要求即為嚴苛的,在不同的標準中對采樣點要求各不相同,而且不同車廠對采樣點的設置、時鐘源的需求以及每個段所占的 Tq 數(shù)也都是不盡相同的。下圖展示了 CiA 推薦的數(shù)據(jù)場采樣點位置范圍:

464977a0-08cf-11ed-ba43-dac502259ad0.png

46732b0e-08cf-11ed-ba43-dac502259ad0.png

在汽車工程師協(xié)會 SAE class C 標準中將高速總線波特率定為 125K ~ 1 M 范圍,中、低速總線波特率定為 125K 以下范圍,高速總線推薦使用單次采樣模式,而中低速總線推薦 3 倍采樣模式。

網(wǎng)絡中節(jié)點采樣點的不一致會導致同樣的采樣頻率出現(xiàn)采樣錯誤,進而使整車網(wǎng)絡出現(xiàn)故障問題,影響整車環(huán)境穩(wěn)定。

官方例程中默認使用的 3 倍采樣,且 CAN Scope 僅支持單次采樣模式,所以需要按照以下方式修改采樣點模式:

4685e848-08cf-11ed-ba43-dac502259ad0.png

更改后,其它按照默認配置,則采樣點設置成了 75% ,采樣點計算公式如下:

Sample-Point = (1 + (canTiming[0].propSeg + canTiming[0].phaseSeg1)) / (1 + (canTiming[0].propSeg + canTiming[0].phaseSeg1) + (canTiming[0].phaseSeg2))

Sample-Point = (1 + (CAN_CTRL1.PROPSEG + CAN_CTRL1.PSEG1+2)) /

(1 +(CAN_CTRL1.PROPSEG+CAN_CTRL1.PSEG1+2) + (CAN_CTRL1.PSEG2+1))

清楚采樣點計算公式后,實際使用 CAN Scope 的采樣點計算功能測試真實采樣點,需要注意,在上位機設置中需要將終端電阻選擇為 60Ω ,且在采樣點設置向導中需要勾選輸入 TQS 并且設置 ABT TQS 總個數(shù)(這里與默認配置一致,即為 8),實際測試得出真實采樣點精度偏差小于 0.5% :

46b7eb54-08cf-11ed-ba43-dac502259ad0.png

由于例程中不能涵蓋所有需要的采樣點,這里推薦使用 ARM 波特率計算器來計算出實際需要填寫的各個寄存器參數(shù),按照下圖中的配置可以得出實測的采樣點為 83%,落在設置的要求范圍內(nèi):

46e4d164-08cf-11ed-ba43-dac502259ad0.png

470d8a3c-08cf-11ed-ba43-dac502259ad0.png

計算器中的參數(shù)與程序中位時序配置的對應關系如下:

TSEG1 +1 = phaseSeg1 + propSeg

TSEG2 + 1 = phaseSeg2

系統(tǒng)時鐘 9M = PE 時鐘 / preDivider

2.3 其它測試

報文 DLC 測試實際上可以通過具有數(shù)據(jù)解析功能的 CAN 工具來進行測試,主要評估 ECU 發(fā)送和接收報文的正確性。關于負載監(jiān)測和壓力測試,可以評估 ECU 處理緊急包的能力,理論上 CAN 是可以滿負載運行工作的,這也是 CAN 的優(yōu)勢所在,但一般情況下會需要保證運行在 30% 以下的負載率。

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

    關注

    146

    文章

    16667

    瀏覽量

    347811
  • 示波器
    +關注

    關注

    113

    文章

    6104

    瀏覽量

    183403
  • CAN網(wǎng)絡

    關注

    1

    文章

    44

    瀏覽量

    16821

原文標題:靈動微課堂 (第223講) | MM32F0140 FlexCAN一致性測試 (1)

文章出處:【微信號:MindMotion-MMCU,微信公眾號:靈動MM32MCU】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    高壓開關動特性測試儀使用方法是怎么樣的?

    不管在選擇任何一種檢測儀器時肯定都需要提前了解一下它的具體使用方法是怎樣的,然后在使用時才能夠凸顯出它的高價值,而對于選擇高壓開關動特性測試儀來說也是如此。很多人都了解高壓開關動特性測試儀,對整個
    發(fā)表于 08-20 14:50

    磁性傳感器有什么特性,特征和使用方法?

    以磁性開關傳感器IC(AS系列)為例,來分析磁性傳感器有什么特性,特征和使用方法?
    發(fā)表于 04-07 06:21

    STM32H7系列單片機IO的功能特性使用方法

    本篇主要介紹STM32H7系列單片機IO的功能特性使用方法,本篇博客分為功能介紹、cubemx界面介紹、hal庫函數(shù)功能說明、例程Demo四部分。
    發(fā)表于 08-16 08:49

    了解集成穩(wěn)壓電路的特性使用方法

    參數(shù)測試仿真圖圖 2圖15.2仿真圖圖 3圖15.3仿真圖圖 4 圖15.4仿真圖圖 5圖15.5仿真圖一、實驗目的1.了解集成穩(wěn)壓電路的特性使用方法。2.掌握直流穩(wěn)壓電源主要參數(shù)測試方法。二、實驗儀器1.示波器2.數(shù)字萬用表
    發(fā)表于 11-12 09:23

    Gowin DDR Memory Interface IP特性使用方法

    Gowin DDR Memory Interface IP用戶指南主要內(nèi)容包括 IP 的結構與功能描述、端口說明、配置調(diào)用、參考設計等。主要用于幫助用戶快速了解 GowinDDR Memory Interface IP 的產(chǎn)品特性使用方法
    發(fā)表于 10-08 08:03

    示波器的使用方法

    示波器的使用方法 1 示波器使用        本節(jié)介紹示波器的使用方法。示波器種類、型號很多,功能也不同。
    發(fā)表于 01-14 13:06 ?1.8w次閱讀

    Matlab使用方法和程序設計

    Matlab使用方法和程序設計 實驗一 Matlab使用方法和程序設計一、
    發(fā)表于 10-17 00:18 ?5294次閱讀
    Matlab<b class='flag-5'>使用方法</b>和程序設計

    示波器的使用方法

    數(shù)字萬用表使用方法和示波器的使用方法詳解。
    發(fā)表于 03-14 10:38 ?32次下載

    xilinx 原語使用方法

    xilinx 原語使用方法
    發(fā)表于 10-17 08:57 ?11次下載
    xilinx 原語<b class='flag-5'>使用方法</b>

    ORCAD PSPICE 使用方法

    ORCAD PSPICE 使用方法
    發(fā)表于 10-18 14:52 ?39次下載
    ORCAD PSPICE <b class='flag-5'>使用方法</b>

    示波器的使用方法(三):示波器的使用方法詳解

    示波器的使用方法并非很難,重點在于正確使用示波器的使用方法。往期文章中,小編對模擬示波器的使用方法和數(shù)字示波器的使用方法均有所介紹。為增進大家對示波器的
    的頭像 發(fā)表于 12-24 20:37 ?2983次閱讀

    FlexCAN一致性測試方案

    一直關注我們靈動微課堂的朋友們,想必通過前面的介紹已經(jīng)掌握了 FlexCAN 的基本使用方法,也能夠在自己的方案中運用自如了。今天小編想和大家借助 ZLG 的CAN Scope工具了解我們這顆 MCU 的 CAN 的特性,看看在
    的頭像 發(fā)表于 07-22 11:24 ?1178次閱讀

    一文淺談FlexCAN OTA

    FlexCAN OTA
    的頭像 發(fā)表于 09-27 16:17 ?742次閱讀
    一文淺談<b class='flag-5'>FlexCAN</b> OTA

    FlexCAN中文手冊

    電子發(fā)燒友網(wǎng)站提供《FlexCAN中文手冊.pdf》資料免費下載
    發(fā)表于 06-20 11:14 ?3次下載

    DC/DC模擬的基本使用方法特性確認方法

    本篇介紹了DC/DC模擬的基本使用方法及確認基本特性方法。
    的頭像 發(fā)表于 08-20 17:08 ?330次閱讀
    DC/DC模擬的基本<b class='flag-5'>使用方法</b>和<b class='flag-5'>特性</b>確認<b class='flag-5'>方法</b>