CAN总线面试题目
- CSMA/CA与CSMA/CD的区别:
带冲突避免的载波侦听多路访问技术(CSMA/CA)。
带冲突检测的载波监听多路访问技术(CSMA/CD)。 - 多个单元同时发送消息时,根据标识符(Identifier 以下称为 ID)决定优先级。ID 并不是表示发送的目的地址,而是表示访问总线的消息的优先级。
- 可通过发送“遥控帧” 请求其他单元发送数据。
- 在同一网络中,所有单元必须设定成统一的通信速度。即使有一个单元的通信速度与其它的不一样,此单元也会输出错误信号,妨碍整个网络的通信。不同网络间则可以有不同的通信速度。
- CAN协议有几种帧,分别有哪些:
5种:数据帧、遥控帧、错误帧、过载帧、帧间隔 - 数据帧和遥控帧有标准格式和扩展格式两种格式。两种帧格式分别有多少位的标识符。
11位、29位 - 数据帧分为哪几段:
共7部分:帧起始、仲裁段、控制段、数据段、CRC段、ACK段、帧结束 - 帧起始(SOF):一个显性位
- 仲裁段:ID+RTR(帧类型;显性电平:数据帧;隐性电平:遥控帧)
- 控制段: IDE 帧格式(扩展帧标识符)、DLC(数据长度)
- 数据段:0~8字节
- CRC段:15位(由SOF到数据段部分计算得出)+1位CR界定符(隐性电平)。
- ACK段:发送单元发送2个隐性电平:ACK槽(接收单元接受正确后发送显性电平)+ACK界定符(隐性电平)
- 帧结束(EOF):7位隐性电平
- 遥控帧与数据帧的不同:
遥控帧的RTR为隐性电平,且没有数据段。
没有数据段的数据帧和遥控帧可通过 RTR 位区别开来。 - 遥控帧没有数据段,数据长度码该如何表示?
遥控帧的数据长度码以所请求数据帧的数据长度码表示。 - 错误帧由那两部分构成:错误标志(分为主动错误标志、被动错误标志)、错误界定符(8个隐性位)。
- 主动错误标志和被动错误标志区别:
主动错误标志:6个显性位,处于主动错误状态的单元检测出错误时输出的错误标志;
被动错误标志:6个隐性位,处于被动错误状态的单元检测出错误时输出的错误标志。 - 过载帧的作用和构成:
接收单元发出的通知,以表明其尚未作好接收准备,其构成包括过载标志(6 个位的显性位)和过载界定符(8个隐性位)。 - 帧间隔的作用:
数据帧和遥控帧可通过插入帧间隔将本帧与前面的任何帧(数据帧、遥控帧、错误帧、过载帧)分开。 - 帧间隔的构成:间隔(3个隐性位)、延迟传送(8个隐性位,只有被动错误状态的单元在刚发送一份消息后的帧间隔包含这一部分)、总线空闲(0~∞个隐性位)
- 优先级是如何决定的:
多个单元同时开始发送时,各发送单元从仲裁段的第一位开始进行仲裁。连续输出显性电平最多的单元可继续发送。仲裁失利的单元,从下一个位开始转为接收状态工作。 - 数据帧和遥控帧的优先级:有RTR决定,数据帧的RTR为显性电平,所以数据帧的优先级高。
- 标准格式和扩展格式优先级:标准格式的RTR(显性电平)与扩展格式的SSR(隐性电平)相对。标准格式优先级更高。
- 位填充有何作用,是如何工作的?
位填充是为防止突发错误而设定的功能。当同样的电平持续 5 位时则添加一个位的反型数据。
注意:位填充出现在数据帧和遥控帧的收发时,SOF~CRC段间的数据。 - CAN通信中的错误类型有几种,有哪些?
共有5种,位错误、CRC错误、ACK错误、格式错误、填充错误。 - 位错误:检测输出电平和总线电平,不一样时产生的错误。
- 位填充错误:在SOF~CRC部分连续检测到了6位相同的电平是所检测到的错误。
- 格式错误:检测出与固定格式的位段相反的格式时所检测到的错误。如:CRC界定符、ACK界定符、EOF、错误界定符、过载界定符都是隐性电平,检测到显性位则是格式错误。
- 错误帧的输出:对于CRC错误,ACK界定符后的下一位输出错误标志,其他4种错误实在检测到错误后的下一位输出错误标志。
- 故障封闭:当总线上发生持续数据错误时,可将引起此故障的单元从总线上隔离出去。
- 错误状态有几种,有哪些?
3种: 主动错误状态、被动错误状态、总线关闭状态。
对于被动错误状态的单元在发送结束后不能马上再次开始发送。在开始下次发送前,在间隔帧期间内必须插入“延迟传送”(8 个位的隐性位)。 - ISO11898与ISO11519区别
ISO11898:高速CAN,速度125k~1Mbps,闭环总线,终端电阻120Ω,最大距离40m。
ISO11519:低速CAN,速度10k~125kbps,开环总线,终端电阻2.2kΩ,最大距离1km。