宁波网站建设与设计制作,wordpress自定义模块,自己做网站难么,网站后台做的超链接打不开介绍
它是一种异步通讯#xff0c;can_high和can_low两条线利用的是电位差传输信号#xff0c;抗干扰能力强#xff0c;但是必须要有can控制器如TJA1050#xff08;我的开发板#xff09; 当 CAN 节点需要发送数据时#xff0c;控制器把要发送的二进制编码通过 CAN_Tx 线…介绍
它是一种异步通讯can_high和can_low两条线利用的是电位差传输信号抗干扰能力强但是必须要有can控制器如TJA1050我的开发板 当 CAN 节点需要发送数据时控制器把要发送的二进制编码通过 CAN_Tx 线发送到收发器然后由收发器把这个普通的逻辑电平信号转化成差分信号通过差分线 CAN_High 和 CAN_Low 线输出到 CAN 总线网络。而通过收发器接收总线上的数据到控制器时则是相反的过程收发器把总线上收到的 CAN_High 及 CAN_Low 信号转化成普通的逻辑电平信号通过 CAN_Rx 输出到控制器中。
位时序
他是异步通信想uart没有时钟信号线连接在同一个总线网络中的各个节点会像串口异步通讯那样节点间使用约定好的波特率进行通讯特别地CAN 还会使用“位同步”的方式来抗干扰、吸收误差实现对总线电平信号进行正确的采样确保通讯正常。
为了实现位同步CAN 协议把每一个数据位的时序分解成如图 CAN 位时序分解图 所示的 SS 段、PTS 段、PBS1 段、PBS2 段这四段的长度加起来即为一个 CAN 数据位的长度。分解后最小的时间单位是 Tq而一个完整的位由 8~25 个 Tq 组成。
SS段(SYNC SEG)同步段固定1TqPTS 段 (PROP SEG)传播时间段用于补偿网络的物理延时时间。是总线上输入比较器延时和输出驱动器延时总和的两倍。PTS 段的大小可以为 1~8TqPBS1 段 (PHASE SEG1)相位缓冲段用来补偿边沿阶段的误差它的时间长度在重新同步的时候可以加长。PBS1 段的初始大小可以为 1~8Tq。PBS2 段 (PHASE SEG2)是另一个相位缓冲段也是用来补偿边沿阶段误差的它的时间长度在重新同步时可以缩短。PBS2 段的初始大小可以为 2~8Tq。
波特率
总线上的各个通讯节点只要约定好 1 个 Tq 的时间长度以及每一个数据位占据多少个 Tq就可以确定 CAN 通讯的波特率。 假设上图中的 1Tq1us而每个数据位由 19 个 Tq 组成则传输一位数据需要时间 T1bit19us从而每秒可以传输的数据位个数为 这个每秒可传输的数据位的个数即为通讯中的波特率。
同步过程分析
硬同步
可以看到当总线出现帧起始信号时某节点检测到总线的帧起始信号不在节点内部时序的 SS 段范围所以判断它自己的内部时序与总线不同步因而这个状态的采样点采集得的数据是不正确的。所以节点以硬同步的方式调整把自己的位时序中的 SS 段平移至总线出现下降沿的部分获得同步同步后采样点就可以采集得正确数据了。 重新同步
重新同步的方式分为超前和滞后两种情况以总线跳变沿与 SS 段的相对位置进行区分。第一种相位超前的情况如图相位超前时的重新同步 节点从总线的边沿跳变中检测到它内部的时序比总线的时序相对超前 2Tq这时控制器在下一个位时序中的 PBS1 段增加 2Tq 的时间长度使得节点与总线时序重新同步。
第二种相位滞后的情况如图相位滞后时的重新同步 节点从总线的边沿跳变中检测到它的时序比总线的时序相对滞后 2Tq这时控制器在前一个位时序中的 PBS2 段减少 2Tq 的时间长度获得同步。
在重新同步的时候PBS1 和 PBS2 中增加或减少的这段时间长度被定义为“重新同步补偿宽度SJW (reSynchronization Jump Width)”
重新同步补偿宽度SJW
一般来说 CAN 控制器会限定 SJW 的最大值如限定了最大 SJW3Tq 时单次同步调整的时候不能增加或减少超过 3Tq 的时间长度若有需要控制器会通过多次小幅度调整来实现同步。当控制器设置的 SJW 极限值较大时可以吸收的误差加大但通讯的速度会下降。
简单说就是SJW会帮他重新对齐时序SWJ值就是对齐一次的幅度值
报文
在原始数据段的前面加上传输起始标签、片选 (识别) 标签和控制标签在数据的尾段加上 CRC校验标签、应答标签和传输结束标签把这些内容按特定的格式打包好就可以用一个通道表达各种信号了只要这些设备按格式去解读就能还原出原始数据这样的报文就被称为 CAN 的“数据帧”。
为了更有效地控制通讯CAN 一共规定了 5 种类型的帧
帧帧用途数据帧用于节点向外传送数据遥控帧用于向远端节点请求数据错误帧用于向远端节点通知校验错误过载帧用于通知远端节点:本节点尚未做好接收准备帧间隔用于将数据帧及遥控帧与前面的帧分离开来