《CAN总线协议.》由会员分享,可在线阅读,更多相关《CAN总线协议.(28页珍藏版)》请在金锄头文库上搜索。
1、CAN基本通讯协议培训 CAN的基本介绍 CAN是ControllerAreaNetwork的缩写 以下称为CAN 它是一种国际标准化的串行通信协议 出于对安全性 舒适性 方便性 低公害 低成本的要求 各种各样的电子控制系统被开发了出来 由于这些系统之间通信所用的数据类型及对可靠性的要求不尽相同 由多条总线构成的情况很多 线束的数量也随之增加 在这种背景下 提出了CAN总线 CAN总线在汽车上的应用 CAN总线的特点 多主控制在总线空闲时 所有的单元都可开始发送消息 多主控制 系统的柔软性总线上增加单元时 连接在总线上的其它单元的软硬件及应用层都不需要改变 通信速度根据整个网络的规模 可设定适
2、合的通信速度 通讯波特率5K 1MBPS 实时性好 CSMA采用无时间损耗总线仲裁方式 采用发送帧优先权方式 可靠性好 采用CRC校验等容错方式 如果接受出现错误 则自动重发 CAN信号的传输 CAN信号在总线上的传输是采用差分电压作为数字信号进行传输的 差分电压状态有两种 当总线的两根线有2V的压差时 这时总线称为显性状态 当总线的两根线电压相等时称为隐性状态 一般CAN协议定义显性定义为数字0 而隐性定义为数字1 CAN分为 高速CAN 125K 1MBPS 低速CAN 40K 125KBPS RT120 RT120 ECU2 ECUn CANH CANL Stubs 0 3m 终端电阻可
3、以放在ECU内部 Twisted pairmedia 波特率最高1M 汽车常用500K总线长度最大40m最多16个节点总线两端各有2个120欧姆电阻 3 5V 2 5V 1 5V recessive dominant recessive CANH CANL ECU1 101 CANH通过MOS管接高CANL通过MOS管接低隐性状态时 总线差分电压为0v显性状态时 总线差分电压为2v共模电压2 5v ECU2 ECUn CANH CANL Twisted pairmedia 波特率 125kbps总线错误时 自动切换到单线模式总线最大总长度40m节点最多32个 3 5V 1 5V recessi
4、ve dominant recessive CANH CANL Gnd Vcc Rx Tx ECU1 0V Vcc RH RL 101 CANH通过终端电阻RH接地CANL通过终端电阻RL接Vcc隐性状态时 总线差分电压为 5v显性状态时 总线差分电压为2v差分电压阀值通常设为 3 2v强抗干扰性 CAN消息帧 数据帧遥控帧错误帧过载帧帧间隔 数据帧 用于发送单元向接收单元传送数据的帧 帧起始标志一个数据帧或者远程帧的开始 仲裁段包括报文标识位和远程发送申请位 RTR 识别符主要的高7位不能全部为隐性控制段由6个位组成 主要表示数字段的字节数 其中前两位保留 数字段最多可以发送8个字节的数字量
5、 CRC段检查帧是否传输错误的帧 ACK段用来接收是否正常接收的 帧结束表示该帧的结束段 由7个隐性位组成 遥控帧 接收单元向发送单元请求发送数据所用的帧 和数据帧结构相比 主要是少了数据段这一块 遥控帧的CRC位是隐性位 没有数据的数据帧和遥控帧可以通过CRC位来进行区分 遥控帧的数据长度码以所请求数据帧的数据长度码表示 错误帧 用于在接收和发送消息时检测出错误通知错误的帧 错误帧由错误标志和错误界定符构成 错误界定符主要由八个隐性位组成 错误标志主要包括两种方式 主动错误标志 主要由六个显性位组成被动错误标志 主要由六个隐性位组成 过载帧 过载帧是用于接收单元通知尚未完成接收准备的帧 其结
6、构主要也是由过载标志和过载界定符组成 帧间隔 用于分隔数据帧和遥控帧的帧 延迟传送 8个隐性位组成 只有在处于被动错误状态的单元刚发送一个消息后的帧才包括此段 优先级 仲裁 在总线空闲的时候 最先开始发送消息的单元获得发送优先 多个单元同时开始发送时 各发送单元从仲裁段的第一位开始进行仲裁 连续输出显性电平最多的单元可继续发送 仲裁的过程如下图 具有相同ID的数据帧和遥控帧进行竞争时 由于数据帧的CRC位为隐性位 因此在竞争的时候获胜 数据帧具有优先权 相同ID的标准数据帧和扩展数据帧在一起竞争的时候 标准数据帧具有优先权 位填充 位填充是为防止突发错误而设定的功能 当同样的电平持续5位时则添
7、加一个位的反型数据 CAN总线的层结构 CAN遵从OSI模型 按照OSI基准模型 CAN结构划分为两层 数据链路层和物理层 数据链层主要分为两个部分 逻辑链路控制 LLC logiclinkcontrol 媒体访问控制层 MAC mediumaccesscontrol LLC子层提供的功能主要包括 帧接收滤波 超载通告和恢复管理 MAC层的功能 发送功能包括 发送数据封装包括接收LLC帧 并接口控制信息 CRC循环计算 通过向LLC帧附加SQF RTR位 保留位 CRC位 ACK和EOF构造MAC帧 发送媒体访问管理包括确认总线空闲之后开始发送过程 MAC帧串行化 插入填充位 在丢失仲裁的情况下 退出仲裁并转入接收方式 错误检测 监控和格式校验 应答校验 确认超载条件 构造超载帧 并发送 构造出错帧并发送 输出串行位流至物理层并准备发送 接收功能包括 接收媒体访问管理包括由物理层接收串行位流 解除串行结构并重新构筑帧结构 检测填充位 带误检测 发送应答 构造错误帧并开始发送 确认超载条件 重激活超载帧结构并开始发送 接收数据卸载包括 由接收帧中去除MAC特定信息 输出LLC帧和接口控制信息至LLC子层 CAN网络的应用实例 CAN网络应用框图 谢谢大家