利用普源示波器搞懂汽車CAN-FD總線技術(shù)
隨著工業(yè)的發(fā)展,工業(yè)總線上的數(shù)據(jù)量逐日增長,尤其是在CAN總線運(yùn)用較多的汽車領(lǐng)域,總線通訊的數(shù)據(jù)量愈發(fā)龐大。例如汽車內(nèi)部出現(xiàn)更多的輔助系統(tǒng)和人機(jī)交互系統(tǒng),使得傳統(tǒng)的CAN總線在傳輸速率和帶寬方面越來越力不從心,CAN總線已逐漸達(dá)到負(fù)荷極限。根據(jù)CAN規(guī)范 ISO11898-2所定義的標(biāo)準(zhǔn)幀結(jié)構(gòu),一幀報(bào)文最大只能傳輸 64 位(8 個(gè)字節(jié))的數(shù)據(jù),在最好的情況下總線負(fù)載也已達(dá)到 70%左右。 為了應(yīng)對(duì)現(xiàn)今巨大數(shù)據(jù)量的挑戰(zhàn),亟需改進(jìn)原有的總線來提高總線傳輸速率,CAN-FD (CAN with Flexible Data-Rate)便在這樣的背景下誕生了。
一、汽車CAN網(wǎng)絡(luò)拓?fù)鋱D
下圖舉例了一個(gè)汽車CAN網(wǎng)絡(luò)拓?fù)鋱D。從中可以看到,CAN 網(wǎng)絡(luò)由CAN節(jié)點(diǎn)及不同的CAN總線構(gòu)成,CAN節(jié)點(diǎn)主要由CPU、CAN控制器以及CAN收發(fā)器組成,而不同的CAN總線上布置有不同功能的智能電子控制單元(ECU)
二、OSI協(xié)議棧模型參考
CAN協(xié)議涵蓋了ISO規(guī)定的OSI基本參照模型中的傳輸層、數(shù)據(jù)鏈路層及物理層。CAN協(xié)議的關(guān)于ISO/OSI基本參照模型中的數(shù)據(jù)鏈路層分為MAC子層和LLC子層,MAC子層是CAN協(xié)議的核心部分。數(shù)據(jù)鏈路層的功能是將物理層收到的信號(hào)組織成有意義的消息,并提供傳送錯(cuò)誤控制等傳輸控制的流程。具體地說,就是消息的幀化、仲裁、應(yīng)答、錯(cuò)誤的檢測或報(bào)告。數(shù)據(jù)鏈路層的功能通常在CAN控制器的硬件中執(zhí)行,并在物理層定義了信號(hào)實(shí)際的發(fā)送方式、位時(shí)序、位的編碼方式及同步的步驟。但信號(hào)電平、通信速度、采樣點(diǎn)、驅(qū)動(dòng)器和總線的電氣特性、連接器的形態(tài)等均未定義,必須由用戶根據(jù)系統(tǒng)需求自行確定。
三、CAN-FD 簡介
1、CAN-FD 數(shù)據(jù)幀幀格式
CAN-FD采用了兩種位速率,從控制場中的BRS位到ACK場之前 (含CRC分界符)為可變速率,其余部分為原CAN總線用的速率。CAN-FD數(shù)據(jù)幀格式如下圖所示:
2、CRC場
CAN總線由于位填充規(guī)則對(duì)CRC的干擾,會(huì)造成錯(cuò)幀漏檢率,從而無法達(dá)到設(shè)計(jì)意圖。CAN-FD對(duì)CRC算法作了改變,即CRC以含填充位的位流進(jìn)行計(jì)算。為避免在校 驗(yàn)和部分出現(xiàn)6個(gè)以上連續(xù)位,即在第一位以及以后每4位添加一個(gè)填充位加以分割。這個(gè)填充位的值是上一位的反碼,作為格式檢查,即如果填充位不是上一位的反碼,就作出錯(cuò)處理。
CAN-FD的CRC 場擴(kuò)展到了21位。由于數(shù)據(jù)場長度有很大變化區(qū)間,所以要根據(jù) DLC大小應(yīng)用不同的CRC生成多項(xiàng)式。如CRC_17,適合于幀長小于210位的幀,而CRC_21,適合于幀長小于1023位的幀。DLC編碼CAN-FD數(shù)據(jù)幀采用了新的 DLC 編碼方式,在數(shù)據(jù)場長度在0~8個(gè)字節(jié)時(shí),采用線性規(guī)則。當(dāng)數(shù)據(jù)場長度為 12~64 個(gè)字節(jié)時(shí),使用非線性編碼。如圖5所示
3、CAN-FD 總線的特點(diǎn):
以差分信號(hào)進(jìn)行傳輸,擁有出色的抗噪性能。 l
所有節(jié)點(diǎn)沒有主從之分,總線空閑時(shí),任意節(jié)點(diǎn)都可向總線發(fā)送消息。 l
非破壞性位仲裁機(jī)制,用信息內(nèi)的標(biāo)識(shí)符ID決定信息發(fā)送優(yōu)先順序,保證已發(fā) 送數(shù)據(jù)的完整性與及時(shí)性。 l
繼承自CAN總線的CAN-FD總線上的節(jié)點(diǎn)沒有“地址”的概念,因此在總線上增加節(jié)點(diǎn)時(shí),不會(huì)對(duì)總線上已有節(jié)點(diǎn)的軟硬件及應(yīng)用層造成影響。 l
可以配合網(wǎng)絡(luò)的規(guī)模,系統(tǒng)的機(jī)能設(shè)定通信素速度,此外兩條不同通信速度總線 上的節(jié)點(diǎn)可通過網(wǎng)關(guān)實(shí)現(xiàn)信息交互。
具有容錯(cuò)處理功能,所有的節(jié)點(diǎn)都可以檢測出錯(cuò)誤,檢測出錯(cuò)誤的節(jié)點(diǎn)會(huì)立即通 知總線上其它所有的節(jié)點(diǎn);正在發(fā)送消息的節(jié)點(diǎn),如果檢測到錯(cuò)誤,會(huì)立即停止 當(dāng)前的發(fā)送,并同時(shí)不斷地重復(fù)發(fā)送此消息,直到該消息發(fā)送成功為止。 l
能實(shí)現(xiàn)遠(yuǎn)程數(shù)據(jù)請求,通過發(fā)送“遙控幀”請求其他單元發(fā)送數(shù)據(jù)。
4、CAN-FD 總線分析對(duì)示波器的需求
在CAN-FD總線解析過程中,需要觀測系統(tǒng)噪聲對(duì)總線信號(hào)傳輸?shù)挠绊懀⑴袛嗫偩€報(bào)錯(cuò)時(shí)是否由于硬件造成的以及軟件編程的正確性。這對(duì)示波器的總線解析能力提出了更多的需求:
·擁有高速采樣率,清晰捕捉和顯示串行模擬信號(hào)并觀測其物理特性。
·擁有較大存儲(chǔ)深度,記錄較長時(shí)間的總線控制過程。
·豐富的觸發(fā)功能及高波形捕獲率,捕獲到錯(cuò)誤并對(duì)應(yīng)捕獲波形發(fā)掘問題根因。
·靈活的屏幕多窗口分屏顯示,同步顯示解碼結(jié)果與列表結(jié)果,方便觀測總線數(shù)據(jù)信息。
·具有多路總線分析功能,滿足同時(shí)分析多路CAN節(jié)點(diǎn)的需要。
串行總線通信在汽車等各領(lǐng)域得到了廣泛應(yīng)用。對(duì)于汽車制造,從制動(dòng)系統(tǒng)到車輛導(dǎo)航系統(tǒng),總線無處不在。要確保正常的車輛性能,保證電子控制單元(ECU)、傳感器和執(zhí)行器之間的通信尤為重要。除了驗(yàn)證總線協(xié)議的數(shù)字邏輯之外,還需要對(duì)波形質(zhì)量、噪聲以及傳感器/執(zhí)行器信號(hào)的同步測量進(jìn)行模擬物理層驗(yàn)證。
RIGOL 自主研發(fā)的 DS70000 示波器獨(dú)特的總線分析功能具有突出的優(yōu)勢:
·擁有高采樣率,基于RIGOL的“鳳凰座”示波器專用芯片組,實(shí)現(xiàn)了國內(nèi)最高的 20GSa/s 采樣率、5GHz 實(shí)時(shí)帶寬,更真實(shí)捕捉并還原信號(hào)。
·擁有更大存儲(chǔ)深度,基于RIGOL新一代UltraVision III 平臺(tái),實(shí)現(xiàn)最大2Gpts 的存儲(chǔ)深度,在高采樣率下采集更長時(shí)間的波形,滿足長時(shí)間觀測的要求。
·擁有豐富的觸發(fā)功能,以及可達(dá)每秒1百萬次的波形刷新率,更容易捕獲偶發(fā)的信號(hào)瑕疵。
·具有強(qiáng)大的串行總線分析功能,支持多種主流串行總線,如 RS232/UART、I2C、 SPI、LIN、CAN、CAN-FD 、FlexRay、I2S、MIL-STD-1553 等。
·解碼結(jié)果列表顯示,解碼總線上每個(gè)幀信息,包括地址、數(shù)據(jù)、標(biāo)識(shí)符等,支 持屏幕窗口列表顯示所有幀的分析結(jié)果,并可導(dǎo)出測試報(bào)告。
5、CAN-FD 總線解碼分析測試步驟
在實(shí)際設(shè)計(jì)場景中,工程師可以通過協(xié)議分析輕松地發(fā)現(xiàn)錯(cuò)誤、調(diào)試硬件、加快開發(fā)進(jìn)度,為高速度、高質(zhì)量完成工程提供保障。
而協(xié)議分析的基礎(chǔ)是協(xié)議解碼,只有解碼正確的協(xié)議分析才能夠被接受,只有正確的 解碼才能提供更多的錯(cuò)誤信息以供工程師進(jìn)行功能調(diào)試與設(shè)計(jì)改進(jìn)。
DS70000示波器支持CAN-FD的解碼分析,并可實(shí)現(xiàn)4路總線分析,圖6為 DS70000示波器CAN-FD解碼設(shè)置界面示意圖。
① 該選項(xiàng)可選擇解碼協(xié)議類型,支持 CAN-FD 解碼分析,此外可選擇 SPI、FlexRay、 I2S、1553B 等多種協(xié)議選項(xiàng)進(jìn)行解碼分析;
② 此處可以選擇打開或關(guān)閉總線解碼開關(guān);
③ 此處為信源選項(xiàng),可以設(shè)置信源的閾值和類型;
④ 此處信號(hào)速率選項(xiàng),支持 CAN 和 CAN-FD 不同的信號(hào)速率,并可設(shè)置期望的采樣位置。
DS70000系列示波器擁有簡便的解碼設(shè)置操作界面,為工程師提供高效的測試工具。更多關(guān)于普源示波器的信息,歡迎咨詢安泰測試。