EM9170工控主板采用FlexCAN,有關filter的設置,說明如下。
CAN Filter的設置:通過DeviceIoControl的CAN_IOCTL_SET_FILTER命令來設置,輸入?yún)?shù)為數(shù)據(jù)結構:
typedef struct
{
DWORD dwGroup; // 組號,= 0,1,2
DWORD dwType; // = 0:標準幀;= 1:擴展幀
DWORD dwID; // 標準幀:11-bit;擴展幀:29-bit,右對齊
DWORD dwRTR; // = 0:數(shù)據(jù)幀;= 1:遠程幀
DWORD dwMask; // 各位與dwID對應,= 0:該位不檢查;= 1:該位須檢查
} CAN_FILTER, *PCAN_FILTER;
對以上數(shù)據(jù)結構中各個參數(shù)的定義解釋如下:
? DWORD dwGroup:組號,EM9170的CAN接收Buffer共分成3組,可同時接收不同ID組的數(shù)據(jù)幀。EM9170的多個分組,類似于SJA1000中的雙濾波概念,即總線上的數(shù)據(jù)
幀只要滿足任意一組設定的條件,該數(shù)據(jù)幀將被接收。
? DWORD dwType:設置本組接收數(shù)據(jù)幀的類型。
? DWORD dwRTR:設置本組接收的是否為遠程幀。
? DWORD dwID:用于定義本組接收的數(shù)據(jù)幀ID的公共部分,即相同部分。
? DWORD dwMask:用于定義需要匹配的bit位,即置1的bit位。dwMask與dwID需要配合使用,舉例說明如下:
例:本組為標準幀包括連續(xù)的64個ID號,dwID = 2’b01010000000 = 0x280,相應的dwMask = 2’b11111000000 = 0x7C0。這時的dwMask表示可被接收的數(shù)據(jù)幀的低6位ID可以是任意編碼(設置為0的那些位),但其高5位(設置為1的那些位)必須與dwID的高5位的定義匹配,即為2’b01010xxxxxx。在實際應用中,為了便于理解,CAN地址的劃分,通常采用低位分配給各個設備,而高位地址作為應用組標志。而每一個應用組的地址數(shù)采取2的冪次方,可方便設置dwMask。
-
嵌入式主板
+關注
關注
7文章
6100瀏覽量
36273
發(fā)布評論請先 登錄
科普|信創(chuàng)是什么?一文讀懂“信息技術應用創(chuàng)新”戰(zhàn)略

2025第二屆教育信息技術應用創(chuàng)新大賽正式開賽
信創(chuàng)浪潮下,國產(chǎn)主板有什么新的發(fā)展機遇?

龍芯主板是安全可信基石,可守護信息資產(chǎn)
龍芯中科榮獲2024年度信息技術應用創(chuàng)新工作委員會卓越貢獻成員單位
芯盛智能榮獲2024年信息技術應用創(chuàng)新工作委員會卓越貢獻成員單位
飛騰助力首屆教育信息技術應用創(chuàng)新大賽圓滿落幕
有方科技參編的信息技術團體標準發(fā)布
龍芯中科助力2024首屆教育信息技術應用創(chuàng)新大賽成功舉辦
拓維信息參與牽頭組建!長沙新一代信息技術產(chǎn)教聯(lián)合體正式獲批

中科創(chuàng)達榮獲2024年軟件和信息技術服務優(yōu)秀企業(yè)
信創(chuàng)國產(chǎn)化背景下的工控主板發(fā)展現(xiàn)狀
梯度科技入選2023年信息技術應用創(chuàng)新解決方案名單
CAN轉Profinet協(xié)議轉化網(wǎng)關

評論