昨天设计了电源板,今天要设计通信板,想到几点记录一下。
CAN模块的功能是处理所有CAN总线上的报文接收和发送。报文发送时,首先将报文装载到正确的报文缓冲器和控制寄存器中。通过SPI接口设置控制寄存器中相应位或使用发送使能引脚可启动发送操作。通过读取相应的寄存器可以检查通讯状态和错误。会对在CAN总线上检测到的任何报文进行错误检查,然后与用户定义的滤波器进行匹配,以确定是否将报文移到两个接收缓冲器中的一个。
常见的一些MCU,如AVR,STM等单片机都继承了CAN控制器,所以只需要外接一个CAN收发器即可完成功能。
对于一些本身并不支持CAN总线的设备,需要使用SPI接口或者一些其他通讯接口,接一个CAN控制器。(例如树莓派本身不支持CAN总线,就需要使用SPI接口的MCP2515作为CAN控制器)
一些关于CAN的基础知识:
首先时CAN的全称:Controller Aera Network,翻译过来就是控制局域网络。
最早被设计出来用于汽车电子,当然现在也是主要用在汽车,工业,医疗,船舶,航天等领域。
例如汽车上,各种部件都由CAN总线连在一起,空调、车门、发动机、气囊、网关等。