微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > STM8 CAN总线的IdMask模式的讲解

STM8 CAN总线的IdMask模式的讲解

时间:11-13 来源:互联网 点击:

四、附录
在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位的位宽是相似的,跟上面的分析一样。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top