对于CAN邮箱的理解:
CAN总线有接收邮箱和发送邮箱:
”发送邮箱“是用于CAN总线数据发送的,总共有3个,并且存在优先级关系。优先级越高表示其里面的数据会被优先发送。数据在发送前都会被送到优先级最高且空闲的发送邮箱,然后依次发送。最后说明一点:“发送邮箱有3个,且每个邮箱只能装一个报文”。
”接收邮箱“是用于CAN总线数据接收用的,在接收数据端会有一个过滤器处于”接收邮箱“的前面,过滤器使用于删选”标识符“的,只有标识符符合的报文才会被放入到”接收邮箱“当中。注意:”接收邮箱不同于发送邮箱,接收邮箱只有2(FIFO0、FIFO1)个,但是每一个有三层,每层都可以存放一个报文,即每一个接收邮箱可以接收三个报文。但读取时只能读到最先收到的报文,等这个读完之后,才能读下一个报文”。
------------------------------------------------------------------------------------------
对过滤器的补充:
---》过滤器模式说明:
因为过滤器是用来删选标识符的,而标识符有标准模式(11位)和扩展模式(29位)两种,所以过滤器同样有两种模式。一种是“列表模式”,还有一种是“屏蔽模式”。
->“列表模式”中的过滤器会将设置好的所需的ID与报文中的标识符进行比较,只有每个位数据都相同时才视为匹配。因其这样的特性,所以只有唯一的标识符能成功进入接收邮箱。
->“屏蔽模式”的过滤器有两个值,“ID值” & “屏蔽值“。通过这两个值的配合与报文中的标识符进行比较从而删选出想要的报文。那么他们是如何配合的呢?其实屏蔽值就是对ID值进行限定的,即屏蔽值的为”1“的位表示对应ID值上的这个位的值报文中的标识符必须与其完全相同,即视为”关心位“。反之为”0“就是”不关心“位,标识符中对应的位可以相同也可以不相同。由于这样的特性,这种模式下所能匹配的标识符就不止唯一的一个了,就可以是一组标识符,这是与列表模式最大的不同的地方。这样说起来还是不够直观,建议去看看,图解,在我的资料中有。