分类:
2010-02-08 21:07:58
今天算是把STM32的CAN总线弄清楚了吧,发送邮箱,接受FIFO,过滤器,总算有了比较清晰的结构了。
对于过滤器,看中文手册上写的不是太清楚,STM32共有14组过滤器,用以对接收到的帧进行过滤。每组过滤器包括了2个可配置的32位寄存器:CAN_FxR0和CAN_FxR1。对于过滤器组,可以将其配置成屏蔽位模式,这样CAN_FxR0中保存的就是标识符匹配值,CAN_FxR1中保存的是屏蔽码,即CAN_FxR1中如果某一位为1,则CAN_FxR0中相应的位必须与收到的帧的标志符中的相应位吻合才能通过过滤器;CAN_FxR1中为0的位表示CAN_FxR0中的相应位可不必与收到的帧进行匹配。过滤器组还可以被配置成标识符列表模式,此时CAN_FxR0和CAN_FxR1中的都是要匹配的标识符,收到的帧的标识符必须与其中的一个吻合才能通过过滤。
此外,过滤器组还可以分为16位和32位的位宽。
CAN总线的底层就先了解到这了,接下来看看高层协议吧。