1,概念:CAN是控制器局域网络(Controller Area Network, CAN)的简称,是由以研发和生产汽车电子产品著称的德国BOSCH公司开发的,并最终成为国际标准(ISO 11898),是国际上应用最广泛的现场总线之一。
2,CAN特点
①,多主控制。在总线空闲时,所有单元都可以发送消息,如果有2个及以上的单元开始发送消息,则通过标识符决定优先级,优先级高的可继续发送消息,优先级低的停止发送并转为接收消息。
②,通信速度较快。通信距离远。最高1Mbps(距离小于40M),最远可达10KM(速率低于5Kbps)。
③,具有错误检测,错误通知和错误恢复功能。
3,CAN协议包含以下5种类型的帧:
①,数据帧
②,遥控帧
③,错误帧
④,过载帧
⑤,间隔帧
4,CAN数据帧一般由7个段构成,即:
①,帧起始。表示数据帧开始的段。为1位的高电平。
②,仲裁段。表示该帧优先级的段。标准格式为11位ID,扩展格式为29位ID,外加1位的RTR(0,数据帧;1,远程帧)。
③,控制段。表示数据的字节数及保留位的段。6位,包含4位的数据长度+1位的IDE(0,使用标准标识符;1,使用扩展标识符)+1位的保留位
④,数据段。数据的内容,一帧可发送0~8个字节的数据。
⑤,CRC段。检查帧的传输错误的段。
⑥,ACK段。表示确认正常接收的段。
⑦,帧结束。表示数据帧结束的段。
5,can通信的波特率设置
BaudRate = 1/(t_q + t_BS1 + t_BS2)
t_q = (BRP[9:0] + 1) * t_PCLK
t_BS1 = tq * (TS1[3:0] + 1)
t_BS2 = tq * (TS2[2:0] + 1)
t_PCLK = APB 时钟的时间周期。(stm32f1系列为APB1的时钟36M,stm32f4系列为APB1的时钟42M)
BRP[9:0]、TS1[3:0] 和 TS2[2:0] 在
2,CAN特点
①,多主控制。在总线空闲时,所有单元都可以发送消息,如果有2个及以上的单元开始发送消息,则通过标识符决定优先级,优先级高的可继续发送消息,优先级低的停止发送并转为接收消息。
②,通信速度较快。通信距离远。最高1Mbps(距离小于40M),最远可达10KM(速率低于5Kbps)。
③,具有错误检测,错误通知和错误恢复功能。
3,CAN协议包含以下5种类型的帧:
①,数据帧
②,遥控帧
③,错误帧
④,过载帧
⑤,间隔帧
4,CAN数据帧一般由7个段构成,即:
①,帧起始。表示数据帧开始的段。为1位的高电平。
②,仲裁段。表示该帧优先级的段。标准格式为11位ID,扩展格式为29位ID,外加1位的RTR(0,数据帧;1,远程帧)。
③,控制段。表示数据的字节数及保留位的段。6位,包含4位的数据长度+1位的IDE(0,使用标准标识符;1,使用扩展标识符)+1位的保留位
④,数据段。数据的内容,一帧可发送0~8个字节的数据。
⑤,CRC段。检查帧的传输错误的段。
⑥,ACK段。表示确认正常接收的段。
⑦,帧结束。表示数据帧结束的段。
5,can通信的波特率设置
BaudRate = 1/(t_q + t_BS1 + t_BS2)
t_q = (BRP[9:0] + 1) * t_PCLK
t_BS1 = tq * (TS1[3:0] + 1)
t_BS2 = tq * (TS2[2:0] + 1)
t_PCLK = APB 时钟的时间周期。(stm32f1系列为APB1的时钟36M,stm32f4系列为APB1的时钟42M)
BRP[9:0]、TS1[3:0] 和 TS2[2:0] 在