嵌入式——CAN
CAN由芯片内部CAN外设(CAN控制器)、CAN芯片(CAN收发器)、CAN总线(CANH、CANL);CANH - CANL = 2V,显性电平(逻辑0)CANH - CANL = 0V,隐形电平(逻辑1)CAN总线以“帧”形式进行通信。CAN协议定义了5种类型的帧:==数据帧、遥控帧、错误帧、过载帧、间隔帧,==其中数据帧最为常用。起始帧:start = 0(显性信号),长度1仲裁段:标识符
·
CAN
CAN(Controller Area Network,控制局域⽹络)是一种串行通信协议
物理层介绍
CAN由芯片内部CAN外设(CAN控制器)、CAN芯片(CAN收发器)、CAN总线(CANH、CANL);
CAN使用差分信号进行数据传输,根据CANH和CANL上的电位差来判断总线电平以高速CAN为例:
CANH - CANL = 2V,显性电平(逻辑0)
CANH - CANL = 0V,隐形电平(逻辑1)
协议层介绍
CAN总线以“帧”形式进行通信。CAN协议定义了5种类型的帧:==数据帧、遥控帧、错误帧、过载帧、间隔帧,==其中数据帧最为常用。
标准数据帧CAN2.0A:
- 起始帧:start = 0(显性信号),长度1
- 仲裁段:标识符位(ID)确定优先级,RTR= 0(数据帧)/RTR = 1(遥控帧)
- 控制段:控制数据段长度
- CRC段:循环校验,检查帧是否正确
- ACK段:确认正常正确接收
- 结束帧:end = 1,EOF为7个隐形信号
发送实例
以发送数据帧为例:
若总线处于空闲状态,首先发送显性信号的单元获得发送权
若多个单元同时发送,仲裁段判断,率先出现隐性信号(=1)的单元转为接收(仲裁失利),连续 输出显性信号(=1)的单元继续发送
竞争失败的单元持续检测总线状态,若空闲再次尝试发送
更多推荐
所有评论(0)