苏州集团网站建设,做网站 属于电子商务,知乎推广公司,徐州市城乡建设局网站6文章目录 CAN介绍CAN的优势多主控制通信速度较快#xff0c;通信距离远具有错误检测、错误通知和错误恢复功能故障封闭功能连接节点多 ISO11519-2物理层特性ISO11898物理层特性CAN 收发芯片 JTA1050 CAN 协议5 种帧5种帧介绍数据帧的构成帧起始仲裁段控制段数据段CRC段ACK段帧… 文章目录 CAN介绍CAN的优势多主控制通信速度较快通信距离远具有错误检测、错误通知和错误恢复功能故障封闭功能连接节点多 ISO11519-2物理层特性ISO11898物理层特性CAN 收发芯片 JTA1050 CAN 协议5 种帧5种帧介绍数据帧的构成帧起始仲裁段控制段数据段CRC段ACK段帧结束 CAN介绍
CAN 是 Controller Area Network 的缩写以下称为 CAN是 ISO 国际标准化的串行通信协议。
Controller意味着 ECU electronic control unit电子控制单元。
ECU集成了供电系统 单片机 驱动系统是汽车里面最小的控制模块。 CAN就是为了让ECU进行通讯而设计。组成局域网进行通讯。
现场总线是当今自动化领域技术发展的热点之一被誉为自动化领域的计算机局域网。它的出现为分布式控制系统实现各节点之间实时、可靠的数据通信提供了强有力的技术支持。CAN在欧洲是汽车网络的标准协议。
CAN 有两种标准
ISO11898是针对通信速率为125Kbps~1Mbps 的高速通信标准。ISO11519-2是针对通信速率为 125Kbps以下的低速通信标准。
异步通讯
I2C、 SPI 等具有时钟信号的同步通讯方式不同 CAN 通讯是一种异步通讯CAN只具有 CAN_High 和 CAN_Low 两条信号线共同构成一组差分信号线以差分信号的形式进行通讯。
半双工
由于CAN 总线协议的物理层只有 1 对差分线在一个时刻只能表示一个信号所以对通讯节点来说 CAN 通讯是半双工的收发数据需要分时进行。
CAN的优势
多主控制
在总线空闲时所有单元都可以发送消息多主控制两个以上的单元同时开始发送消息时根据标识符Identifier 以下称为 ID决定优先级。
通信速度较快通信距离远
最高 1Mbps距离小于 40M最远可达 10KM速率低于 5Kbps。
具有错误检测、错误通知和错误恢复功能
所有单元都可以检测错误错误检测功能检测出错误的单元会立即同时通知其他所有单元错误通知功能正在发送消息的单元一旦检测出错误会强制结束当前的发送。强制结束发送的单元会不断反复地重新发送此消息直到成功发送为止错误恢复功能。
故障封闭功能
CAN 可以判断出错误的类型 总线上暂时的数据错误如外部噪声等持续的数据错误如单元内部故障、驱动器故障、断线等。 当总线上发生持续数据错误时可将引起此故障的单元从总线上隔离出去。
连接节点多
CAN 总线是可同时连接多个单元的总线。可连接的单元总数理论上是没有限制的。 CAN 通讯协议不对节点进行地址编码而是对数据内容进行编码所以网络中的节点个数理论上不受限制。实际上可连接的单元数受总线上的时间延迟及电气负载的限制 降低通信速度可连接的单元数增加。提高通信速度则可连接的单元数减少。
ISO11519-2物理层特性
标准的低速、远距离“开环网络”要求每根总线上各串联有一个“2.2 千欧”的电阻。最大传输距离为 1km最高通讯速率为 125kbps电气特性 10
ISO11898物理层特性 高速网络
标准的高速、近距离“闭环网络”。
传输速率与传输距离
线最大长度为 40m通信速度最高为 1Mbps。
通讯节点
CAN 通讯节点由一个 CAN 控制器及 CAN 收发器组成 控制器与收发器之间通过CAN_Tx 及 CAN_Rx 信号线相连 § CAN_Tx 及 CAN_Rx 使用普通的类似 TTL 逻辑信号收发器与 CAN 总线之间使用 CAN_High 及 CAN_Low信号线相连 § CAN_High 及CAN_Low 是一对差分信号线
电气特性 差分线使用两根线表示一个信号。 逻辑 1 时(隐性电平)CAN_High 和 CAN_Low线上的电压均为 2.5v即它们的电压差 VH-VL0V表示逻辑 0 时(显性电平)CAN_High 的电平为 3.5V CAN_Low 线的电平为 1.5V即它们的压差为2V。
线与特性
在总线上显性电平具有优先权只要有一个单元输出显性电平总线上即为显性电平。假如有两个 CAN 通讯节点在同一时间一个输出隐性电平另一个输出显性电平类似 I2C 总线的“线与”特性将使它处于显性电平状态显性电平的名字就是这样来的 即可以认为显性具有优先的意味。
终端电阻
在 CAN 总线的起止端都有一个 120Ω的终端电阻来做阻抗匹配以减少回波反射。
CAN 收发芯片 JTA1050
经过TJA1050前是逻辑TTL电平经过TJA1050之后会转换成CAN的高低电平 连接STM32 的 CAN 通过 P9 的设置连接到 TJA1050 收发芯片然后通过接线端子CAN同外部的 CAN 总线连接。实际中通过跳线帽将 PA11 和 PA12 分别连接到 CAN_RX 和 CAN_TX 上面。
需要注意
CAN 和 USB 共用了 PA11 和 PA12所以他们不能同时使用。在战舰 STM32 开发板上面是带有120Ω的终端电阻的如果我们的开发板不是作为 CAN 的终端的话需要把这个电阻去掉以免影响通信。
CAN 协议5 种帧 5种帧介绍
CAN 协议是通过以下 5 种类型的帧进行的
数据帧和遥控帧有标准格式和扩展格式两种格式。
标准格式有 11 个位的标识符ID扩展格式有 29 个位的 ID。
数据帧的构成
数据帧一般由 7 个段构成即 1 帧起始。表示数据帧开始的段。 2 仲裁段。表示该帧优先级的段。ID 3 控制段。表示数据的字节数及保留位的段。 4 数据段。数据的内容一帧可发送 0~8 个字节的数据。 5 CRC 段。检查帧的传输错误的段。 6 ACK 段。表示确认正常接收的段。 7 帧结束。表示数据帧结束的段。
帧起始 D 表示显性电平2.5R 表示隐形电平0下同。
帧起始(Start Of Frame)这个比较简单标准帧和扩展帧都是由 1 个位的显性电平表示帧起始。
仲裁段 RTR((Remote Transmission Request Bit)远程传输请求) ,用于标识是否是远程帧0数据帧1远程帧IDE(Identifier Extension Bit)译作标识符扩展位) 位为标识符选择位0使用标准标识符1使用扩展标识符SRR(Substitute Remote Request Bit) 位为代替远程请求位为隐性位它代替了标准帧中的 RTR 位。
仲裁段表示数据优先级的段当同时有两个报文被发送时总线会根据仲裁段的内容决定哪个数据包能被传输标准帧和扩展帧格式在本段有所区别
标准格式的 ID 有 11 个位。从 ID28 到 ID18 被依次发送。禁止高 7 位都为隐性禁止设定ID1111111XXXX。扩展格式的 ID 有 29 个位。基本 ID 从 ID28 到 ID18扩展 ID 由ID17 到 ID0 表示。基本 ID 和标准格式的 ID 相同。禁止高 7 位都为隐性ID1111111XXXX。
根据识别码ID就可以识别到底是发给哪个设备。
控制段 r0 和 r1 为保留位必须全部以显性电平发送但是接收端可以接收显性、隐性及任意组合的电平。DLC(Data Length Code)译为数据长度码) 为数据长度表示段由 4 个数据位组成,高位在前DLC 段有效值为 0~8但是接收方接收到 9~15 的时候并不认为是错误。表示本报文中的数据段含有多少个字节.
控制段由 6 个位构成表示数据段的字节数。标准帧和扩展帧的控制段稍有不同
数据段
数据段该段可包含 0~8 个字节的数据。从最高位MSB开始输出标准帧和扩展帧在这个段的定义都是一样的。
CRC段
CRC 段该段用于检查帧传输错误。由 15 个位的 CRC 顺序和 1 个位的 CRC 界定符用于分隔的位组成标准帧和扩展帧在这个段的格式也是相同的。
CRC 的值计算范围包括帧起始、仲裁段、控制段、数据段。接收方以同样的算法计算 CRC 值并进行比较不一致时会通报错误。CRC 校验码之后有一个 CRC 界定符它为隐性位主要作用是把 CRC 校验码与后面的 ACK 段间隔起来。
ACK段
ACK 段此段用来确认是否正常接收。由 ACK 槽(ACK Slot)和 ACK 界定符 2 个位组成。标准帧和扩展帧在这个段的格式也是相同的。
发送单元的 ACK发送 2 个位的隐性位 发送 ACK 的是在既不处于总线关闭态也不处于休眠态的所有接收单元中接收到正常消息的单元发送单元不发送 ACK。所谓正常消息是指不含填充错误、格式错误、CRC 错误的消息。 接收到正确消息的单元在 ACK 槽ACK Slot发送显性位通知发送单元正常接收结束这个过程叫发送 ACK/返回 ACK。
在 ACK 槽和帧结束之间由 ACK 界定符间隔开。
帧结束
帧结束(End Of Frame)这个段也比较简单标准帧和扩展帧在这个段格式一样由 7 个位的隐性位组成,7 个隐性位表示结束。1111111