前言:
CAN是Controller Area Network的缩写,是ISO国际标准化的串行通信协议。是德国博世公司开发面向汽车的CAN通信协议。
CAN控制器根据两根线上的电位差来判断总线电平。总线电平分为显性电平和隐形电平,二者必居其一。
CAN协议具有以下特点:
1.多主控制,在总线空闲时多个单元都可以发送消息,而两个单元以上同时开始发送消息时,根据标识符(identifier 简称ID)决定优先级。ID表示访问总线的消息的优先级。优先级高的继续发,优先级低的就停止发送了。
2.系统的柔软性。增加单元时不用改硬件,直接接上即可(速度需要与总线速度一致)。
3.通信速度快,通信距离远。最高1Mbps(小于40M),最远可达10KM(低于5Kbps)
4.具有错误检测、错误通知和错误恢复功能。
5.故障封闭功能。
6.连接节点多。
CAN协议经过ISO标准化有两个标准:ISO11898(125Kbps~1Mbps高速通信标准)和ISO11519-2(125Kbps以下低速通信标准)。
标识符过滤是一种过滤标识符的功能,它可以将想接收的标识符的过滤接收,也可以将想拒绝的标识符过滤掉。它的存在减少了CPU处理CAN通信的开销。
STM32F429共有标识符过滤器28组,每一组由两个32位的寄存器,CAN_FxR1和CAN_FxR2组成。而这个32位寄存器可以根据配置为1个32位过滤器,也可以为两个16位过滤器。
为了过滤一组标识符,应该设置过滤器组工作在屏蔽位模式。
为了过滤一个标识符,应该设置过滤器组工作在标识符列表模式。
<