久久精品99久久_亚洲一区二区综合_狠狠色伊人亚洲综合成人_亚洲综合爱爱久久网

你好!歡迎來到深圳市穎特新科技有限公司!
語言
當前位置:首頁 >> 品牌中心 >> ST/意法 >> STM8 CAN總線的IdMask模式的講解

STM8 CAN總線的IdMask模式的講解

關鍵字:STM8CAN總線IdMask 作者: 來源: 發布時間:2019-01-03  瀏覽:45

前言
在CAN協議里,報文的標識符不代表節點的地址,而是跟報文的內容相關的。因此,發送者以廣播的形式把報文發送給所有的接收者。節點在接收報文時根據標識符的值決定軟件是否需要該報文;如果需要,就拷貝到RAM里;如果不需要,報文就被丟棄且無需軟件的干預。為滿足這一需求,BeCAN為應用程序提供了個可配置的、位寬可變的6個(0-5)過濾器組,用于只接收那些軟件需要的報文。硬件過濾的做法節省了CPU開銷,否則就必須由軟件進行過濾,從而占用一定的CPU資源。

1


一、IdMask模式
首先,需要明白IdMask的作用:
舉個例子吧,過濾器長度為32位,模式為屏蔽模式,假如我要發送的標示符為0x1314;那過濾器設置如下
1、過濾器完全無效 接收到的標示符全部通過
0x1314 二進制碼: 00000000 0000 0000 0001 0011 0001 0100
CAN_Filter xxxx xxxx xxxx xxxx xxxx xxxxxxxx xxxx
CAN_FilterMask 0000 0000 0000 0000 00000000 0000 0000
因為 CAN_FilterMask屏蔽寄存器所有位都是0 ,對應標識符全為“不關心”,也就是接收到數據的ID(標識符)不用與 CAN_Filter寄存器的任何一位進行匹配。
2、過濾器完全有效 接收到的標識符要跟據CAN_FilterMask寄存器指定需要匹配的位進行與CAN_Filter比較。
部分匹配 :
0x1314 二進制碼: 00000000 0000 0000 0001 0011 0001 0100
CAN_Filter xxxx xxxx xxxx xxxx xxxx xxx1 xxxx xxxx
CAN_FilterMask 0000 0000 0000 0000 0000 0001 0000 0000
CAN_FilterMask 寄存器指定接收到的標示符要與第8位進行匹配,其他位不管。也就是說接收到的標示符第8位必須為1,否則報文就會被丟棄。

全部匹配:
0x1314 二進制碼: 00000000 0000 0000 0001 0011 0001 0100
CAN_Filter 0000 0000 0000 0000 0000 0011 0001 0100
CAN_FilterMask 1111 1111 1111 1111 1111 1111 1111 1111
這種情況最為嚴格,接收到的標示符必須每一位都得與過濾器中的標示符的每一位進行匹配,有一位不對報文就會被丟棄。(這個標示符匹配的工作是CAN 模塊內部硬件自動完成的)


二、IdMask庫代碼
本程序中,使用的軟件代碼是:
軟件:
\STM8S_StdPeriph_Lib\Project\STM8S_StdPeriph_Examples\CAN\CAN_Networking路徑下面的代碼。
硬件:
STM8/128 EVAL板子,上面的MCU為STM8S208MBT6B ;
程序里面打開了接收的中斷:

2


為了能夠更有效的操作實踐這一功能,我使用了如上圖的CAN總線的分析儀器USB-CAN200 以及它的上位機.
在這里需要說明一點,將R0+與R0-相短接,則內部的120歐姆的電阻會被接入總線,不需要畫蛇添足,在R0+與R0-之間自己再找一個120歐姆的電阻外部接上!!

3

4
在接收中斷里面已經有現成的標準楨結構,所以設置好Idfliter或者Idmask就可以。

5

也就是上面的 這一段函數;
按照剛才的理解,
如果我的擴展id是0x12345678 ;想只接收0x12xxxxxx的標識符號,那么是否填入
CAN_FilterID1 = 0x12 ;
CAN_FilterIDMask = 0xFF
就可以了呢? 本以為是這樣,結果通過上位機發出去之后,led板上的符號并沒有變化;說明并沒有接收到。這是為什么呢?



三、分析

6

所以對于擴展的ID號碼它有29位,但是程序中設計的過濾器位32位,所以:
如果假設擴展id為0x12345678(0001,0010,0011,0100,0101,0110,0111,1000)

7

所以擴展id的順序填入如上圖所示意,這兒假設:
RTR位我們設置為0表示數據幀,IDE位設置為1表示擴展ID,因為我們的ID是29位的,所以RTR = 0; IDE = 1;
再來看我們參考手冊中,定義的 :

8
將上面數據中的標示符號位再填入到過濾器中:

9

所以可以看到顏色的順序已經被打亂了,
如果要關心到具體的某一個比特位置;如果要過濾器讓它只接收0x12xxxxxx的標識符號;
這時候要根據它實際在identifier中的位置去修改idmask ; 前八個比特,對應的就是黃色和綠色的部分,
所以其他的顏色,可以都填0表示不需要關心,則這里填入:1 1 1 1 ,1 xx x,我們這里填入0xF8 ;
即:
CAN_FilterID1=0x91;
CAN_FilterID2=0x00;
CAN_FilterID3=0x00;
CAN_FilterID4=0x00;
CAN_FilterIDMask1=0xF8; //0
CAN_FilterIDMask2=0x00; //0
CAN_FilterIDMask3=0x00; //0x0
CAN_FilterIDMask4=0x00; //
同理,對于下面的配置是只接收標準id=0x321(0011,0010,0001)的ID(也是32位過濾器),
因為也是數據幀,所以RTR = 0,標準的id,所以IDE= 0 ;所以填入到:

10

CAN_FilterID1=0x64;
CAN_FilterID2=0x20;
CAN_FilterID3=0x00;
CAN_FilterID4=0x00;
CAN_FilterIDMask1=0xFF; //0
CAN_FilterIDMask2=0xE0; //0
CAN_FilterIDMask3=0x0; //0x0
CAN_FilterIDMask4=0x0; //
如下圖,測試通過

11


四、附錄
在CAN規范中并未定義代表邏輯電平的物理狀態(例如電壓),iCAN網絡使用符合ISO11898-2標準的電平信號,一般來講,CAN總線為“隱性”(邏輯1)時,CAN_H和CAN_L的電平為2.5V(電位差為0V);CAN總線為“顯性”(邏輯0)時,CAN_H和CAN_L的電平分別是3.5V和1.5V(電位差為2.5V)。

識別符
識別符—標準格式 識別符的長度為11 位,相當于擴展格式的基本ID(Base ID)。這些位按ID-28 到ID-18 的順序發送。最低位是ID-18。7 個最高位(ID-28- ID-22)必須不能全是“隱性”。

識別符—擴展格式 和標準格式形成對比,擴展格式由29 位組成。其格式包含兩個部分:11 位基本ID、18 位擴展ID。

基本ID:基本ID 包括11 位。它按ID-28 到ID-18 的順序發送。它相當于標準識別符的格式。基本ID定義擴展幀的基本優先權。

擴展ID:擴展ID 18 位。它按ID-17 到ID-0 順序發送。 標準幀里,識別符其后是RTR 位。 RTR 位(標準格式以及擴展格式) RTR 的全稱為“遠程發送請求位(RemoteTransmission Request BIT)”。 RTR 位在數據幀里必須為“顯性”,而在遠程幀里必須為“隱性” 。

擴展格式里,基本ID 首先發送,其次是IDE 位和SRR 位。擴展ID 的發送位與SRR 位之后。
SRR 位(擴展格式)
SRR 的全稱是“替代遠程請求位(SubstituteRemote Request BIT)”。
SRR 是一隱性位。它在擴展格式的標準幀RTR 位位置,因此代替標準幀的RTR 位。
標準幀與擴展幀的沖突是通過標準幀優先于擴展幀這一途徑得以解決,擴展幀的基本ID(參見以下的“擴展識別符”)如同標準幀的識別符。
IDE 位(擴展格式) IDE 的全稱是“識別符擴展位(IdentifierExtension Bit)”
IDE 位屬于:
- 擴展格式的仲裁場
- 標準格式的控制場
標準格式里的IDE位為“顯性(邏輯0)”,而擴展格式里的IDE位為“隱性”。

在標識符列表模式下,屏蔽寄存器當作標識符寄存器用。因此,使用2個標識符來代替上面的標識符加屏蔽位的方式。接收報文標識的每一位都必須跟過濾器標識符相同。
設置過濾器0只接收ID為0x1828A0EF和0x1828A0EE的數據幀。(工作在標識符列表模式)
首先我們把這兩個ID寫成二進制:
0x1828A0EF: 00011000001010001010000011101111
0x1828A0EE: 00011000001010001010000011101110
然后我們將0x1828A0EF二進制的格數據組成如上圖mapping所示的格式
Cna_fxr1:1100 0001 0xc1
Cna_fxr2:01001001 0x49 //這里有個RTR位我們設置為0表示數據幀,IDE位設置為1表示擴展ID,
Cna_fxr3:0100 0001 0x41
Cna_fxr4:1101 1110 0xDE
這時我們工作在標識符列表模式,identifier/Mask的寄存器相當于identifier使用。
再將0x1828A0EE二進制的格數據組成如上圖mapping所示的格式
Cna_fxr5:1100 0001 0xc1
Cna_fxr6:01001001 0x49 //這里有個RTR位我們設置為0表示數據幀,IDE設置為1表示擴展ID
Cna_fxr7:0100 0001 0x41
Cna_fxr8:1101 1100 0xDC
以下是用庫函數配置的程序小片段:
CAN_FilterNumber =CAN_FilterNumber_0;
//注意這是的模式是跟IdMask例不一樣的

CAN_FilterMode =CAN_FilterMode_IdList;
CAN_FilterScale =CAN_FilterScale_32Bit;
CAN_FilterID1=0xc1;
CAN_FilterID2=0x49;
CAN_FilterID3=0x41;
CAN_FilterID4=0xde;
CAN_FilterIDMask1=0xc1;
CAN_FilterIDMask2=0x49;
CAN_FilterIDMask3=0x41;
CAN_FilterIDMask4=0xdc;
相信看到這里你對這兩種工作模式都會有了一定的了解。好了,到此例子就介紹完了,算是拋磚引玉。8位、16位的位寬是相似的,跟上面的分析一樣。

STM32/STM8 意法半導體/ST/STM

編輯:admin  最后修改時間:2019-01-03

聯系方式

0755-82591179

郵箱:ivy@yingtexin.net

地址:深圳市南山區桃源街道平山社區平山一路2號南山云谷創業園二期11棟410-411

Copyright © 2014-2026 穎特新科技有限公司 All Rights Reserved.  粵ICP備14043402號-4

久久精品99久久_亚洲一区二区综合_狠狠色伊人亚洲综合成人_亚洲综合爱爱久久网
亚洲综合在线一区二区| 国产日韩欧美大片| 免费视频爱爱太爽了| 亚洲精品www.| 色香蕉在线观看| 一级一片免费播放| 国产精品久久成人免费观看| 久久免费一级片| 日本福利视频在线观看| 日韩小视频网站| 国产成人精品视频免费看| 欧美精品一区免费| 午夜在线观看av| 国产卡一卡二在线| 国产一线二线三线女| 黄色大片中文字幕| 色哟哟精品视频| 91香蕉视频网址| 国产精品久久久久久久乖乖| 美女福利视频在线| 一级 黄 色 片一| 日韩网站在线免费观看| 成人久久久久久久久| 最新中文字幕2018| 草草草视频在线观看| 国产亚洲欧美在线视频| 亚洲黄色av片| 日韩在线一级片| 日韩高清在线一区二区| 国产精品自拍片| 国产精品久久久久久久av福利| 久草视频国产在线| 精品综合久久久久| 成年人视频观看| 日本一区二区免费高清视频| 成人一对一视频| 亚洲黄色片免费| 污污视频网站免费观看| 在线观看18视频网站| 91激情视频在线| 成人性生活视频免费看| 亚洲国产午夜精品| 无人在线观看的免费高清视频| 国产片侵犯亲女视频播放| 色婷婷.com| 黄色a级片免费| 蜜臀av无码一区二区三区| 在线视频一二区| 最新天堂在线视频| 九九视频精品在线观看| 久久久久久久久久久99| 99在线观看视频免费| 99re99热| www.黄色网址.com| 亚洲午夜精品一区| 色一情一区二区| 国产福利影院在线观看| av动漫免费看| 99福利在线观看| 日韩免费高清在线| 午夜激情福利在线| 欧美三级午夜理伦三级富婆| 日本成人中文字幕在线| 久久久国产欧美| 在线观看av日韩| 一区二区xxx| 九一精品在线观看| 不卡av免费在线| 国产美女18xxxx免费视频| 欧美日韩中文不卡| 高清av免费看| 亚洲精品永久视频| 亚洲国产精品女人| 日本人妻伦在线中文字幕| 996这里只有精品| 欧美v在线观看| 妺妺窝人体色www在线观看| 免费成年人高清视频| 欧美日韩在线免费观看视频| 狠狠精品干练久久久无码中文字幕 | 日本激情视频在线播放| 色诱视频在线观看| 性生生活大片免费看视频| 男插女免费视频| 色综合久久久久无码专区| 欧美伦理片在线看| 亚洲国产精品女人| 亚洲人成色77777| 91丝袜超薄交口足| 狠狠干 狠狠操| 九色porny自拍| 丁香婷婷综合激情| 午夜免费高清视频| 男人添女荫道口喷水视频| 天天影视综合色| 久久精品xxx| 依人在线免费视频| 免费一级特黄特色毛片久久看| 成人亚洲精品777777大片| 日韩国产成人无码av毛片| 国产自偷自偷免费一区| 99久久99久久精品| 一道本视频在线观看| 成人精品视频在线播放| 成人不卡免费视频| 日韩手机在线观看视频| www.亚洲视频.com| 欧美日韩亚洲国产成人| 国产性生交xxxxx免费| 人妻无码一区二区三区四区| 亚洲成人福利在线| 日本三级免费网站| 成人免费在线网| 亚洲av综合色区| 亚洲一二三不卡| 污版视频在线观看| 日韩视频免费在线播放| 欧美成人三级在线视频| 神马午夜伦理影院| 国产又爽又黄ai换脸| 婷婷中文字幕在线观看| 蜜桃福利午夜精品一区| 色悠悠久久综合网| 亚洲欧美在线精品| 成人黄色一级大片| 不用播放器的免费av| 中文字幕色网站| 久久久久久久高清| 国产一级片中文字幕| 午夜影院免费观看视频| 国产福利精品一区二区三区| 国产精品久久久久久9999| 日韩肉感妇bbwbbwbbw| 污污网站在线观看视频| 天天干天天综合| 日韩高清在线一区二区| 欧美成人手机在线视频| 国产精品12p| 人妻无码久久一区二区三区免费| 做爰高潮hd色即是空| 日本成人xxx| 性高湖久久久久久久久aaaaa| 免费看国产一级片| 91看片就是不一样| 欧美成人乱码一二三四区免费| 一级片免费在线观看视频| 国产女人18毛片| 日本www在线播放| 午夜精品久久久久久久99热影院| 黄色a级在线观看| 国产av天堂无码一区二区三区| 麻豆传传媒久久久爱| 国产大片一区二区三区| 性一交一乱一伧国产女士spa| 日本黄网站免费| 中国一级黄色录像 | 国产精品嫩草影院8vv8| 国产欧美自拍视频| 成人一级片网站| 色中文字幕在线观看| 国产中文字幕在线免费观看| 涩涩网站在线看| 又粗又黑又大的吊av| www.午夜av| 激情综合在线观看| 欧美日韩午夜爽爽| 国产一线二线三线在线观看| 成人av在线播放观看| 亚洲精品性视频| 日本福利视频在线| 日韩在线视频在线| 777一区二区| 又色又爽又高潮免费视频国产| 黄色网zhan| 欧美婷婷精品激情| 漂亮人妻被中出中文字幕| 嫩草影院中文字幕| 深爱五月综合网| 亚洲精品自拍网| 成人中文字幕av| 92看片淫黄大片一级| 日本欧美黄色片| 成人在线观看你懂的| www.一区二区.com| 国产日产欧美一区二区| 中国黄色片一级| 亚洲免费一级视频| 国产一区二区在线免费播放| 免费无码av片在线观看| 国产一区二区网| 69sex久久精品国产麻豆| 色撸撸在线观看| 手机在线国产视频| 亚洲一区二区福利视频| 潘金莲激情呻吟欲求不满视频| 国产精品一区二区小说| 在线观看国产中文字幕| 亚洲综合在线一区二区| 超碰在线超碰在线| 潘金莲一级淫片aaaaaa播放1|