基础
1.帧类型: 数据帧、遥控帧、错误帧、过载帧、帧间空隙
2.数据帧: 数据帧有7个域组成
帧开始:
仲裁域:优先级
控制域:保留位和数据字节数
数据域:0-8个字节
CRC域:检查传输错误
ACK域:是对帧已经被正常接收的证实
帧结束:
3.遥控帧: 接收单元请求发送单元发送一个信息
没有数据域外其它与数据帧的结构是一样的
4.错误类型:
填充错误
位错误
CRC错误
格式错误
ack错误
Time Quantum(称为Tq) 最小时间单位
CAN总线控制器的整体设计
控制器SJA1000的功能结构 包括:
接口管理逻辑、发送缓冲器、接收缓冲器、接收滤波器、位数据流处理器、位时序逻辑、错误管理逻
1)CAN_IML设计:
是CAN总线控制器接口逻辑,主要功能是解释来自微处理器的命令,控制CAN寄存器的寻址,向微处理器提供中断信息和状态信息。
Port_0_io_7到Port_0_io_0为地址/数据复合总线。
Cs_can_i 为片选输入信号。当Cs_can_i为0时允许访问CAN总线控制器。
Ale_i为1时,允许对寄存器进行赋值。
Rd_i和Wr_i为微处理器的读使能信号和写使能信号。
Irq_on为中断输出信号,用于中断微处理器。
Rst_i为复位输入,用于复位CAN接口。
Clkout_o为FPGA CAN控制器提供给微处理器的时钟输出信号,时钟分频寄存器可禁止该引脚输出。
Bus_off_on控制总线关闭和总线开放接口,Tx_o和Rx_i与收发器相连,向总线发送和接收数据。
2)CAN_Registers设计:
设计的CAN总线控制器的寄存器模块包括以下寄存器:
模式寄存器、
命令寄存器
状态寄存器、
中断寄存器、
中断使能寄存器、
总线定时寄存器0~1、
仲裁丢失捕获寄存器、
错误代码捕获寄存器、
错误报警限制寄存器、
接收错误计数器、
发送错误计数器、
验收代码寄存器0~3、
验收屏蔽寄存器0~3、
接收信息计数器和接收/发送缓冲器。
3)CAN_Core设计:
CAN_Core为CAN协议控制器的核心部分,完成CAN协议中的数据链路层的全部功能以及物理层的部分功能,包括LLC子层的接收滤波、超载通知和恢复管理、MAC子层的数据封装/拆装、帧编码、媒体访问管理、错误检测、错误标定、应答和串行