十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

can总线相关

can总线相关 CAN 总线是一种基于“差分信号”和“多主竞争”的串行通信协议具备极强的抗干扰能力和完善的错误处理机制广泛应用于汽车电子、工业控制、医疗设备等对可靠性要求极高的场景。高速can总线结构can收发器负责把MCU输出的逻辑电平转换成总线上的差分信号同时把总线上的差分信号转换成MCU能识别的逻辑电平。简单说MCU内部只是逻辑0/1CAN收发器负责把逻辑“翻译”成物理信号差分电压。物理总线双绞线为了抗干扰CANH 和 CANL 这两根物理导线在出厂时就被紧紧地像麻花一样扭在一起。外部电磁干扰会同时作用在两根线上双绞能保证两根线受到的干扰“几乎一模一样”这样接收器做减法时干扰才能被完美抵消。“共模干扰抑制”因为双绞线靠得极近紧紧扭在一起所以外部电磁干扰会在两根线上产生完全相同的电压共模信号。接收器只提取两根线的差值干扰就被完美地“相减消除”了CAN 总线采用双绞线差分传输。根据 ISO 11898 标准电平定义如下显性电平Dominant对应逻辑“0”。此时总线驱动器主动施加电流CANH 与 CANL 之间形成约 2V 的差分电压。隐性电平Recessive对应逻辑“1”。此时总线驱动器被释放高阻态CANH 与 CANL 之间无差分电压0V依靠终端电阻维持共模电平。关键物理属性显性电平在电气上具备主动驱动的能力能够强制覆盖隐性电平。只要总线上任意节点输出显性“0”该总线物理状态就必然呈现显性“0”这种特性被称为“线与Wired-AND”机制。普通串口下两个节点同时发数据一个发 1一个发 0总线上会发生“电气对拉短路”现象一个芯片内部电源正极强行对地短路。这会导致信号直接失真严重时会导致发送器的 I/O 口烧毁或者触发保护机制。而在can总线下当两个节点在同一时刻争抢 CAN 总线时它们会经历一场毫秒级的“非破坏性逐位仲裁”。首先双方同时发送显性电平的起始帧随后在各自的 11 位标识符ID上开始“掰手腕”由于 0 是显性、能强制覆盖隐性的 1且每个节点都具备“边发边听”的硬件机制发送隐性位1的节点若在回读时检测到总线为显性0便会立刻判定自己仲裁失败并在不丢失任何数据的前提下自动退让转为监听等待而发送显性位0的节点则胜出毫无中断地继续发送完剩余的数据帧。输掉的节点不会重传或崩溃它只会在总线再次空闲后自动排队重试。整个网络在电气上构成了一个从发送端到接收端无反射的完整回路。而两端的120Ω 电阻就是防止信号跑到终点撞墙反弹的“吸收堵头”它同时为总线空闲提供了稳定的基准电压是 CAN 总线能够高速、长距离稳定通信的物理地基左端接 5V/3.3V右端接地两个 120Ω 电阻串联电流流过它们时会在中间产生一个稳定的2.5V分压。这就给总线提供了一个“不说话的基准电压”。当某个节点要强行发送“0”显性时它必须把 CANH 拉到 3.5V把 CANL 拉低到 1.5V形成 2V 压差。数据类型数据帧帧起始SOF固定的 1 位显性0。告诉总线“我要发数据了”仲裁场ID11 位标准帧或 29 位扩展帧。这是决定优先级的字段。即我们之前讲的“掰手腕”。控制场DLC4 位。告诉总线“我后面要发几个字节的数据”注意CAN 数据场最长只有 8 个字节。数据场Data Field0~8 个字节64 位。这是真正的载荷您可以把自己定义的数据塞进去。CRC 校验场15 位。计算前面的数据防止传输中受干扰出错。ACK 场2 位。接收方如果收到正确的数据会自动回一个“收到”的信号。帧结束EOF7 位隐性1。宣告这次通信结束。设备树内核裁剪
返回列表