驱动 CAN总线(未完)

CAN(ControllerAreaNetwork)是一种串行通信协议,常用于汽车电子设备间的通信。其特点是结构简单、抗干扰性强、速度快,支持多主机多从机。ISO11898系列标准定义了CAN的数据链路层和物理层,包括经典CAN和灵活数据速率帧格式。CAN总线有四种模式:空闲、有效、休眠和唤醒,不同模式下电平逻辑有所不同,且有单线CAN、低速容错CAN、高速CAN等变种,各具特点。
摘要由CSDN通过智能技术生成

Controller Area Network(控制器局部网络)是一种有效支持分布式控制或实时控制的串行异步半双工的现场总线,支持多主机多从机,需要 CAN控制器 和 CAN收发器 的硬件支持

特点:

        结构简单,抗干扰强,速度快

        节点自由增减,理论上无数量限制

        各节点之间自由通讯

标准内容
ISO 11898-1:2015定义数据链路层(包括逻辑链路控制(LLC)子层、媒体访问控制(MAC)子层、物理信令(PHS)子层),规定了经典CAN帧格式和新引入的CAN灵活数据速率帧格式。经典CAN帧格式允许比特率高达1mbit /s,有效负载高达每帧8字节。灵活数据速率帧格式允许比特率高于1mbit /s,有效负载大于每帧8字节。有三种实现选项:只支持经典CAN帧格式,不支持灵活数据速率帧格式;支持经典CAN帧格式和容忍灵活数据速率帧格式;支持经典CAN帧格式和灵活数据速率帧格式。

ISO 11898-2:2016

高速、低功耗、选择性唤醒的物理层
ISO 11898-3:2006低速容错物理层,传输速率 40 kbit/s 到 125 kbit/s,该标准允许在连线失败时仍能继续运行
ISO 11898-4:2004时间触发通讯

有 2 条差分信号线:CAN_HIGH(黄色)和 CAN_LOW(绿色)

        隐性状态 = 1

        显性状态 = 0

两种状态用 电压差 来分辨,但 CAN 协议并没有具体定义实现方式(差值的设定,需要两条线都呈显性时才能达到阈值,只有一条线呈显性电平则达不到阈值)

CAN 总线采用二进制不归零(NRZ)编码方式,所以总线上不是 0 就是 1

若两个节点同时分别发送 0 和 1,采用 与 运算,与 0 清 0,所以总线上是 0,即显性

常用的 CAN 总线:单线CAN、低速容错CAN、高速CAN,这三种总线的主要区别在于电平逻辑

CAN 总线有 空闲、有效、休眠、唤醒 这四种模式:

空闲时(隐性位)

        单线 CAN:

                电平为 0V

        低容错 CAN:

                CANH为 0V

                CANL为 5V

                        差为 5

        高速 CAN:

                CANH为 2.5V

                CANL为 2.5V

                        差为 0

有效时(显性位)

        单线 CAN:

                电平为 4V(空闲为 0V)+4

        低容错 CAN:

                CANH为 4V(空闲为 0V)+4

                CANL为 1V(空闲为 5V)-4

                        差为 3,大于 3 时都为隐性(3、4、5)

        高速 CAN:

                CANH为 3.6V(空闲为 2.5V)+1.1

                CANL为 1.4V(空闲为 2.5V)-1.1

                        差为 2.2,小于 2.2 时都为隐性(0、1.1、2.2)

休眠时

        单线 CAN:

                休眠电平为 0V

        低容错 CAN:

                CANH休眠电平为 0V

                CANL休眠电平为 12V(空闲为 5V)

        高速 CAN(收发器不同,标准不同):

               TJA1040: 

                        CANH休眠电平为 0V(空闲为 2.5V)

                        CANL休眠电平为 0V(空闲为 2.5V)

                TJA1050:

                        CANH休眠电平为 2.5V

                        CANL休眠电平为 2.5V

唤醒时

       单线 CAN:

                唤醒电平为 12V(休眠为 0V)(空闲为 0V)

                必须连续 3 个唤醒位才能唤醒其他节点

        低容错 CAN:

                CANH唤醒电平为 1.8V(休眠为 0V)(空闲为 0V)

                CANL唤醒电平为 3.2V(休眠为 12V)(空闲为 5V)

        高速 CAN:

                TJA1040: 

                        CANH为 0V(空闲为 2.5V)

                        CANL为 0V(空闲为 2.5V)

                TJA1050:

                        CANH为 2.5V

                        CANL为 2.5V

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值