TSMaster軟件平臺支持對不同總線(CAN、LIN、FlexRay)報文和信號的過濾,包括全局接收過濾、數(shù)據(jù)流過濾、窗口過濾、字符串過濾、可編程過濾,針對不同的總線信號過濾器的使用方法基本相同。今天重點和大家分享一下關(guān)于TSMaster中報文消息過濾的多種方式操作。
本文關(guān)鍵字:CAN、LIN、FlexRay、報文消息過濾
目錄
Catalog
1. CAN報文消息過濾
2. LIN報文消息過濾
3. FlexRay報文消息過濾
CAN報文消息過濾
在CAN報文信息中用到的過濾操作有以下幾種:全局接收過濾、數(shù)據(jù)流過濾、窗口過濾、字符串過濾、可編程過濾;下面將對這幾種過濾操作進行詳細的講解。
1、全局接收過濾
全局接收過濾是指在硬件控制器上完成過濾的設(shè)置,這種方式僅限支持同星的硬件及同星虛擬通道,其他廠家設(shè)備不支持。在操作之前需要將硬件通道選擇同星的設(shè)備,這里以TC1016為例。
▲ 圖一
隨后打開總線硬件-CAN硬件配置-過濾ID設(shè)置,如圖二所示。在這里可以選擇對標準幀和擴展幀進行過濾,默認是通過型過濾器,無法修改成阻止型過濾器。過濾條件是對報文ID的每個二進制位識別,每個位對應(yīng)有三個設(shè)置符“0、1、x”,x表示該位可以為0也可以為1。如果只需要過濾一個ID也可以直接指定標識符,完成設(shè)置之后下方會顯示可以通過的標識符列表,坐下方可以驗證期望的標識符是否能通過這個過濾器。
▲ 圖二
2、數(shù)據(jù)流過濾(測量過濾器)
TSMaster軟件有測量設(shè)置窗口,在這個窗口可以通過組合數(shù)據(jù)流方向,實現(xiàn)過濾的效果,同時支持在窗口前添加過濾器窗口。
其基本的思路為,數(shù)據(jù)流經(jīng)過一個窗口,這個窗口內(nèi)包含的數(shù)據(jù)才允許通過,其他數(shù)據(jù)不允許通過。如下圖所示,在測量設(shè)置窗口當(dāng)中將報文信息#2、測量過濾器、圖形三個窗口進行拓撲連接,從報文信息窗口可以看到是有EngineData報文下EngSpeed這個信號,但是在圖形窗口中是n.a.,表示無效。這是因為在測量設(shè)置中添加了個過濾器阻止了通道一的EngineData。
▲ 圖三
測量窗口的過濾器是在窗口單擊任意窗口所選框右鍵選擇插入過濾器,也可以直接在空白處選擇添加然后拖動到另一窗口后面。雙擊即可打開插入的過濾器,在這里可以選擇要過濾的通道,過濾條件這里支持任意報文、單個ID、ID范圍、節(jié)點篩選、以及錯誤幀篩選,最后需要注意的是過濾器的類型可以選擇通過型或阻止型。
3、報文ID過濾器
該過濾方式直接單擊報文信息窗口的漏斗圖標即可彈出配置窗口,適用于實時監(jiān)聽總線數(shù)據(jù)或者進行報文回放的時候操作,在這里支持報文ID過濾和通道過濾,需要注意左下角選擇的是通過型還是阻止型。
▲ 圖四
4、字符串過濾
字符串過濾跟窗口過濾的使用場景相同,支持模糊查詢,過濾的范圍包含了報文信息中報文標識符、報文信息名稱解析過后的報文名稱、物理值(枚舉值),解析報文則需要提前加載數(shù)據(jù)庫并綁定相應(yīng)的通道。這里建議加載DBC數(shù)據(jù)庫。
▲ 圖五
5、可編程過濾
編程過濾器是過濾條件最齊全的一種,它過濾的條件包括了報文結(jié)構(gòu)體的全部成員屬性,具體可以從TSMaster頭文件查看,包括報文幀類型、收發(fā)方向、DLC等等。
使用這個過濾器需要先點擊報文信息窗口右上角的漏斗圖標,選擇激活過濾器,然后選擇安裝默認的過濾器庫;安裝完成之后會彈出默認庫的C小程序,小程序可以看出,分別針對CAN、LIN、FlexRay、Ethernet創(chuàng)建了自定義函數(shù)來進行區(qū)分,其結(jié)構(gòu)體定義都在TSMaster.h頭文件中可以找到。
關(guān)鍵的一點是:return 0表示符合條件的報文是被阻止的,而返回非0則表示該報文是可以窗口通過的。
▲ 圖六
▲ 圖七
以下是對通道一的報文進行通過型過濾的操作,編寫完代碼后需要編譯小程序,最后在可編程過濾器中選擇對應(yīng)的API函數(shù)即可。
▲ 圖八
▲ 圖九
▲ 圖十
LIN報文消息過濾
LIN報文消息的過濾是有如下幾種過濾操作方式。
1、數(shù)據(jù)流過濾
在測量設(shè)置中配置測量過濾器、LIN報文信息#2、圖形三個窗口的拓撲,結(jié)果可以看到經(jīng)過過濾器只有0x15的這幀報文通過到達了報文信息窗口,同時圖形窗口的SteeringLampState信號值為n.a.無效值。從報文信息窗口可以看到原本的數(shù)據(jù)流是有這個信號數(shù)據(jù)的。
▲ 圖十一
2、報文ID窗口過濾
窗口過濾與前面不同的是,此處的通道過濾設(shè)置移到了過濾器設(shè)置窗口的右下角,在激活使能過濾器之后選擇只顯示通道1或者其他,就會立即生效;另外所增加的標識符的通道是跟右下角配置的通道對應(yīng)上的,這點跟前面講到CAN的窗口過濾有所不同。
▲ 圖十二
3、字符串過濾
字符串過濾的作用域也是報文信息中報文標識符、報文信息名稱解析過后的報文名稱、物理值(枚舉值)。建議加載DBC數(shù)據(jù)庫。
▲ 圖十三
4、可編程過濾
如下圖,通過可編程過濾通過通道一且第一個報文數(shù)據(jù)字節(jié)為0x00的報文。
▲ 圖十四
▲ 圖十五
FlexRay報文消息過濾
FlexRay的報文消息過濾只有窗口過濾、字符串過濾和可編程過濾。
1、窗口過濾
FlexRay窗口過濾支持添加通道過濾和從數(shù)據(jù)庫中添加對應(yīng)的報文。
▲ 圖十六
2、字符串過濾
字符串過濾與CAN、LIN的使用相同,進行信號關(guān)鍵詞的搜索。
▲ 圖十七
3、可編程過濾
可編程過濾也是通過對FR結(jié)構(gòu)體成員進行條件判斷來完成,以下以Slot Id為例,可以實現(xiàn)Slot id的范圍過濾。
▲ 圖十八
▲ 圖十九
-
信號
+關(guān)注
關(guān)注
11文章
2739瀏覽量
76168 -
總線
+關(guān)注
關(guān)注
10文章
2817瀏覽量
87697 -
過濾器
+關(guān)注
關(guān)注
1文章
419瀏覽量
19380
發(fā)布評論請先 登錄
相關(guān)推薦
評論