CAN介绍:
1.1Mb波特率
2.32个邮箱,可配置为接收和发送
3.0 - 8 字节的数据
4. 可编程中断
5. 时间戳功能
CAN结构:
主要由CAN控制器 , CAN的缓冲器(buffer), CAN邮箱构成
CAN工作过程简介:
接收:
- CPU通过寄存器对CAN控制器和邮箱进行配置,配置邮箱为接收邮箱,接收邮箱的ID号,mask 等
- 当接收到总线的一条数据后,先将这条数据存入buffer中
- CAN控制器提取buffer中消息,按照高优先级邮箱号依次比较。例如,CAN控制器将buffer的一条消息和31号邮箱的ID(包含mask)比较,如果匹配成功,则将这个消息给31号,如果不成功,则去找30号邮箱比较。如果所有邮箱全部匹配失败,则这条消息被丢弃。
发送:
1.CPU通过寄存器配置邮箱为发送邮箱,邮箱ID号,数据等,CPU将TRS[n]置位
2. 控制器接收到CPU命令,将这条消息存储到发送缓冲器(buffer)中
3 .当CAN总线空闲时,CAN控制器根据优先级,将buffer中的消息,依次发送出去。
注意点:
1.CAN控制寄存器是32位都和写的!
2.关于接收的问题,如果一个邮箱接收之后,CPU没有来得及去读取这个数据,结果又有一条匹配的数据来了。如果这个邮箱的允许消息覆盖,则上一条数据被新来的消息覆盖掉,如果不允许覆盖,则CAN控制器会这条消息和其他邮箱比较。