什么是CAN總線?
CAN(Controller Area Network)總線是一種用于車輛電子設備之間通信的標準協議。CAN過濾器是用來過濾CAN總線上收到的消息,從而確保只處理特定的數據幀。在CAN通信中,過濾器的配置對于性能和消息處理的準確性非常重要。
什么是CAN過濾器單過濾模式?
在使用ECAN-E02的單過濾模式前,我們需要知道CAN過濾器的單過濾模式(Single Filter Mode)指的是過濾器只設置一個過濾條件。這種模式下,CAN控制器會基于該單一條件來篩選接收到的CAN消息。符合過濾條件的消息將被接收并傳遞給上層應用處理,而不符合條件的消息則被丟棄。
主要特點:
? 簡單易用:單過濾模式通常比較簡單,適用于只關心某一類消息的場景。
? 過濾規則簡單:只有一個過濾規則,用來匹配特定的標識符(ID),這對于應用程序來說可以減少復雜性。
? 性能適中:因為只有一個過濾條件,所以單過濾模式通常不會對系統性能產生過大的負擔,適合低延遲要求的應用。
ECAN-E02的單過濾器模式
首先觀察ECAN-E02的單過濾器模式UI界面:
? CodeHigh 代表的為16-31位的數,CodeLow 代表的為0-15位的數。
? 同理,MaskHigh 代表的為16-31位的數,MaskLow 代表的為0-15位的數。
? ECAN-E02的過濾界面,可以通過直接點擊Code,Mask進行數據的配置,1其中,對于ST這一行,RTR代表的是遠程幀,ID00-ID10代表的是標準幀ID的11位,DB1[0-7]代表的是數據幀第一個字節的8位,DB2[0-7]代表的則是數據幀第二個字節的8位(由高到低,從左到右,其中“XX”代表無需設置)。
? 對于ET這一行,RTR代表的是遠程幀,ID00-ID28代表的是擴展幀ID的29位(“XX”代表無需設置)。了解了基本的配置后,我們結合測試設置進行分析。
我們要實現效果“使用網頁配置為單過濾模式CodeHigh (Hex)配置為0x0020,CodeLow (Hex)配置為0x0008,MaskHigh (Hex)配置為0xFFCF,MaskLow (Hex)配置為0xFFF3,保存參數,重啟設備;使用網絡調試助手連接設備通道1服務器,使用CAN分析儀連接通道1CAN接口,網絡調試助手僅會收到ID為奇數并且第二個數據的第四位為高的標準數據幀(例如數據位為00 08 00 00 00 00 00 00可以被接收)與ID為奇數并且ID第十七位為0第十八位為1的擴展數據幀(例如ID50001可以接收)”。先設置好Code與Mask的值后,進行下一步;
首先觀察可以過濾的標準數據幀,觀察ST Code Mask這三行,可以發現,幀ID該位可以為1,因此在該位上任何數加一均為奇數,所以只能收到幀ID為奇數的標準幀,接下來再觀察數據DB部分;
此時ST DB2[3]對應的Code為1,Mask為0,代表該位必須為高位,Mask判斷該位必須為Code值。所以能接收ID為奇數并且第二個數據的第四位為高的標準數據幀(例如數據位為00 08 00 00 00 00 00 00可以被接收)。
現在觀察可以過濾的擴展數據幀格式,觀察ET Code Mask三行ID00-ID28分別代表29位的擴展幀ID格式,RTR代表的是遠程幀,“XX”代表不用配置。觀察格式,首先,ID00位必須滿足,該位必須為1,其次,觀察到17位,18位對應的Mask,也必須滿足第17位為0,第18位為高位的格式,所以ID為奇數并且ID第十七位為0第十八位為1的擴展數據幀(例如ID50001可以接收)。
-
CAN總線
+關注
關注
145文章
1955瀏覽量
130931 -
過濾器
+關注
關注
1文章
431瀏覽量
19673 -
CAN硬件
+關注
關注
0文章
3瀏覽量
890
發布評論請先 登錄
相關推薦
評論