作為目前車載網絡領域成熟、應用廣泛的通信總線之一,CAN總線具有傳輸可靠性高、速度快、易用等特點。由于其涉及到用戶的人身安全,所以在汽車研發、生產、檢測、維修等過程中均需做嚴格的測試。
由于CAN信號是差分信號,在測試過程中一般需要使用差分探頭來進行測試,但在研發階段的板級測試中,確認安全的前提下可以使用普通低壓無源探頭進行測試。今天給大家介紹鼎陽科技SDS5000X標配的CAN總線觸發與解碼,了解示波器是如何測試CAN信號。本文將以SDS5054X+STB3演示板+普通無源探頭展示CAN的測試,供大家參考。
1、CAN 協議
在測試前需要充分了解CAN 協議。
CAN協議有4種幀類型,分別為數據幀、遠程幀、錯誤幀、過載幀。其中數據幀和遠程幀又分為標準格式和擴展格式兩種。標準格式的標識符為11位,擴展幀為29位。
1.1 數據幀
由7個不同的場組成。分別為幀起始、仲裁場、控制場、數據場、CRC場、應答場、幀結尾。
a、幀起始
(SOF)標志數據幀和遠程幀的開始,僅由一個“顯性”(邏輯電平“0”為顯性電平,“1”為隱性電平)位組成,只有在總線空閑時才允許發送信號。
b、仲裁場
CAN總線上發送的每一條報文都具有的一個11位或29位的ID。CAN總線狀態取決于二進制數“0”而不是“1”,所以ID號越小,則該報文擁有越高的優先權。因此一個為全“0”標志符的報文具有總線傳輸上的高優先權。
標準格式幀和擴展格式幀的仲裁場格式不同:
標準格式里,仲裁場由11位識別符和RTR位組成。識別符位為ID28…ID18。識別符后為RTR位。RTR位在數據幀必須為“顯性”,在遠程幀必須為“隱性”。
擴展格式里,仲裁場包括29位識別符ID28…ID0(基本ID 11位,擴展ID 18位)、SRR位、IDE位、RTR位。基本ID首先發送,其次是SRR、IDE位。
c、控制場
控制場由6個位組成。標準格式里的幀包括數據長度代碼,IDE位及保留位R0。擴展格式里的幀包括數據長度和保留位R1和R0。保留位必須顯性發送。
d、數據場
數據場由數據幀中的發送數據組成。它可以為0-8個字節,每字節包含了8個位,MSB先發送。
e、CRC場
CRC場包括CRC序列,其后是CRC界定符。CRC序列為循環冗余檢驗碼。CRC序列之后是CRC界定符,它包含一個單獨的“隱性”位。
f、應答場
應答場長度為2位。包含應答間隙和應答界定符。在應答聲里,發送兩個“隱性”位,當接收器正確地接收到有效報文,接收器就會在應答間隔期間向發送器發送“顯性”位以示應答。
g、幀結尾
每一個數據幀和遠程幀均由一標志序列界定。由7個“隱性”位組成。
1.2 遠程幀
遠程幀目的在于請求發送具有同一標識符的數據幀;遠程幀由6個不同位的場組成。分別為幀起始、仲裁場、控制場、CRC場、應答場、幀結尾。與數據幀相反,遠程幀的RTR位是“隱性”的。
1.3 錯誤幀
錯誤幀由錯誤標志和錯誤界定符兩部分組成:
錯誤標志分為主動的錯誤標志和被動的錯誤標志。主動的錯誤標志由6個連續的“顯性”位組成,被動的錯誤標志由6個連續的“隱性”位組成。
錯誤界定符:錯誤界定符包括8個“隱性”位。
1.4 過載幀
過載幀包括過載標志和過載界定符。過載標志由6個“顯性”位組成;過載界定符包括8個“隱性”位。
2、示波器測試
在充分了解CAN協議后,接下來通過示波器展示如何測試CAN總線。示波器在測試總線時一般使用觸發和解碼同時進行。觸發可以根據實際的需求捕獲預期事件,而解碼則可以把捕獲到的信號進行解碼。
2.1 觸發配置
先我們通過STB3演示板輸出CAN信號并使用無源探頭通過測試CAN_L和GND,接入到示波器,然后根據信號特征設置合適的電壓和時基檔位。
配置如下:
a、總線選擇
先進入觸發菜單,類型選擇為“總線”,總線協議設置為“CAN”。如圖1所示。
圖1:總線選擇
b、信號配置
進入信號菜單,信源設置為信號輸入通道,本次輸入通道為C1。閾值電平需設置到波形區域內,通常為波形中部。如圖2所示。
圖2:信號配置
c、觸發配置
進入觸發設置菜單,設置合適的觸發條件,如圖3所示。從圖可以看到觸發條件分為開始條件、遠程幀、ID、ID+數據、錯誤幀。從上節CAN協議可以知道,這些觸發條件均為CAN協議的里規定的幀特征,是捕獲CAN信號的核心。根據需求設定觸發條件,進而監控CAN總線上的信息。
開始條件:即為數據幀和遠程幀的幀起始(SOF)。把開始條件作為觸發條件時,示波器捕獲所有具有SOF特征的信號。
遠程幀:遠程幀的結構與數據幀類似但不傳輸數據,只為傳輸數據作初始化。其顯著的標志是RTR為“隱性”電平。設置為此條件時,示波器將只捕獲遠程幀。
ID(地址):為數據幀和遠程幀的仲裁場識別符。識別符ID越小優先級越高。
ID+數據:專門為數據幀準備的觸發條件,可以指定具體的地址和數據在,方便捕獲特定數據。
錯誤幀:專門檢測符合錯誤標志的數據;用于監測總線上的錯誤幀。
圖3:觸發條件
d、總線配置
進入菜單將標準波特率配置為輸入信號的波特率。CAN 大支持1Mbit/s的傳輸速率。STB3演示板的波特率為50Kbit/s。如圖4。
圖4:波特圖形
2.2 解碼配置
解碼功能可以把觸發捕獲的信號進行解碼并以一定格式顯示出來。按下示波器的“Decode”按鍵進入解碼菜單并開啟總線功能,如圖5所示。
圖5:解碼菜單
a、解碼列表
設置總線并配置解碼的行數。顯示列表的作用是配置用于顯示數據量并查看每幀數據。其中行數可配置1-7行;滾動表示當前正在查詢的具體的數據,選中時數據行高亮,可查看屏幕上所有的解碼數據。如圖6。表示當前采集了43幀數據,正在查看第43幀數據。
圖6:解碼列表
b、顯示選項
數據顯示格式,支持二進制、十進制、十六進制、ASCAII碼。如圖7。
圖7:顯示格式
c、協議信號
與觸發菜單類似,設定信源及閾值。需要注意的是,閾值電壓需要設置于波形內,若閾值電平位于波形區域外則無法解碼。
d、協議配置
配置與輸入信息相同的波特率。
e、協議復制
若用戶非常清楚觸發或解碼的協議信號和協議配置,可使用此功能快速復制觸發參數到解碼,或復制解碼參數到觸發。
2.3 參數配置小結
通過觸發配置和解碼配置,我們可以看到CAN總線只要配置好觸發條件、觸發和解碼的閾值電平、波特率以及數據顯示格式即可得到CAN數據。
下圖為STB3輸出的CAN 信號輸入到示波器,示波器的觸發條件為開始條件,觸發和解碼的波特率均設置為50kbit/s即可得到CAN 的解碼數據,如圖8所示。
圖8:總線解碼
從上圖中,我們可以看到,解碼列表里顯示了與波形相對應的解碼數據:
序號代表從屏幕左邊到右對應幀的數據。
Time代表每幀相對水平中間位置的時間。
Type代表解碼得到的幀類型。是標準數據幀、遠程幀或是擴展幀。
ID代表解碼后的報文地址;設置為觸發條件,可以對特定報文進行篩選。
Length代表解碼得到的數據長度;數據長度0到8個字節。
Data代表數據幀的數據信息;測試者關心的數據。
CRC為檢驗碼;當校驗數據不正確時,提示錯誤信息。
ACK為響應位,Yes表示有響應位。
此外還可以通過示波器放大功能,選定數據進行放大。總線解碼顯示與之對應的解碼數據并通過不同顏色標注數據的地址、數據、檢驗碼以及響應位。當顯示空間不足時,無法顯示的數據均以紅點表示。當示波器解碼結果與協議不一致時,示波器則會顯示相應錯誤。
該文章來源于“鼎陽硬件設計與測試智庫”。