QWE4562009 发表于 2024-12-24 19:04

为什么电动车,汽车电子还是摩托车电子大多数采用CAN通讯?不用485或者其他的通讯...

<p>为什么电动车,汽车电子还是摩托车电子大多数采用CAN通讯?不用485或者其他的通讯方式?为什么MCU不能直接控制LED?而要经过CAN收发器?</p>

<div style="text-align: center;"></div>

<p>&nbsp;</p>

dukedz 发表于 2024-12-24 19:41

<p>因为当时 cdbus.org 还没出来</p>

qwqwqw2088 发表于 2024-12-24 20:35

<p>这好解释</p>

<p>CAN 通讯可以多主站通讯模式,抗干扰好,</p>

<p>485 是一主多从的通讯</p>

qwqwqw2088 发表于 2024-12-24 20:41

<p>为什么MCU不能直接控制LED?而要经过CAN收发器?</p>

<p>MCU完全是可以直接控制 LED 的。</p>

<p>在简单的电路中,MCU 可以通过一个普通的 I/O 口输出高低电平来直接控制 LED 的亮灭。</p>

<p>&nbsp;</p>

<p>&nbsp;</p>

qwqwqw2088 发表于 2024-12-24 20:41

<p>在汽车、摩托车中,LED灯距离MCU较远,直接用GPIO控制信号可能衰减严重,使用CAN收发器可以长距离稳定传输信号。</p>

QWE4562009 发表于 2024-12-25 17:23

qwqwqw2088 发表于 2024-12-24 20:41
在汽车、摩托车中,LED灯距离MCU较远,直接用GPIO控制信号可能衰减严重,使用CAN收发器可以长距离稳定传输 ...

<p>为什么CAN收发器可以长距离稳定传输信号?</p>

qwqwqw2088 发表于 2024-12-25 17:43

<div class='shownolgin' data-isdigest='no'>QWE4562009 发表于 2024-12-25 17:23
为什么CAN收发器可以长距离稳定传输信号?

<p>先,单说,楼主的问题,电磁环境恶劣的汽车摩托车、包括一些工业现场,CAN总线更具优势。</p>

<p>&nbsp;</p>
</div><script>showreplylogin();</script><script type="text/javascript">(function(d,c){var a=d.createElement("script"),m=d.getElementsByTagName("script"),eewurl="//counter.eeworld.com.cn/pv/count/";a.src=eewurl+c;m.parentNode.insertBefore(a,m)})(document,523)</script>

qwqwqw2088 发表于 2024-12-25 17:48

<div class='shownolgin' data-isdigest='no'><div class="quote">
<blockquote><font size="2"><a href="forum.php?mod=redirect&amp;goto=findpost&amp;pid=3383652&amp;ptid=1302737" target="_blank"><font color="#999999">QWE4562009 发表于 2024-12-25 17:23</font></a></font> 为什么CAN收发器可以长距离稳定传输信号?</blockquote>
</div>

<p>只能说,CAN 协议具备强大的错误检测能力,加上传输线的阻抗匹配,收发器设计有隔离,传输距离有很大优势。就是硬件成本稍高。</p>
</div><script>showreplylogin();</script>

QWE4562009 发表于 2024-12-25 18:14

<div class='shownolgin' data-isdigest='no'>qwqwqw2088 发表于 2024-12-24 20:35
这好解释

CAN 通讯可以多主站通讯模式,抗干扰好,

485 是一主多从的通讯

<p>CAN为什么可以做到多主多从呢&nbsp;&nbsp;</p>
</div><script>showreplylogin();</script>

QWE4562009 发表于 2024-12-25 18:16

<div class='shownolgin' data-isdigest='no'>qwqwqw2088 发表于 2024-12-25 17:48
只能说,CAN 协议具备强大的错误检测能力,加上传输线的阻抗匹配,收发器设计有隔离,传输距离有很大优 ...

<p>就是协议定义的原因吗?如果485的通讯机制如果做成和CAN一样&nbsp; 是否就可以实现多主多从?</p>
</div><script>showreplylogin();</script>

qwqwqw2088 发表于 2024-12-25 21:28

<div class='shownolgin' data-isdigest='no'>QWE4562009 发表于 2024-12-25 18:14
CAN为什么可以做到多主多从呢&nbsp;&nbsp;

<p>是协议设计的,如想多了解,可以搜一下非破坏性仲裁机制</p>

<p>CAN协议允许多个节点在同一时间内主动发送数据,不分主从。</p>

<p>&nbsp;</p>
</div><script>showreplylogin();</script>

qwqwqw2088 发表于 2024-12-25 21:33

<div class='shownolgin' data-isdigest='no'>QWE4562009 发表于 2024-12-25 18:16
就是协议定义的原因吗?如果485的通讯机制如果做成和CAN一样&nbsp; 是否就可以实现多主多从?

<p>如果485的通讯机制如果做成和CAN一样&nbsp; 是否就可以实现多主多从?</p>

<p>&nbsp;</p>

<p>这种想法,理论是可行。</p>

<p>RS-485是串行通信协议,是支持多主机通信,并不直接支持像CAN那样的多主多从通信模式,非要像CAN一样,估计硬件设计和软件协议需要大动干戈一番,</p>

<p>你可以深入研究一下</p>

<p>&nbsp;</p>
</div><script>showreplylogin();</script>

qwqwqw2088 发表于 2024-12-25 21:41

<div class='shownolgin' data-isdigest='no'><p>主从通信关系很常见,如果搞过软硬件通信设计,现在的很多自动化控制现场、物联网关产品都是经常用到485,CAN通讯,都经常看到他俩该用到什么场景</p>

<p>&nbsp;</p>

<p>比如,一个由 PLC主设备和多个传感器 、传送带这些从设备组成的 485 网络中,PLC 会轮询各个从设备,询问它们的数据状态或者向它们发送控制指令。</p>

<p>从设备不能主动发送数据,除非得到主设备的许可。</p>
</div><script>showreplylogin();</script>

dukedz 发表于 2024-12-26 09:17

<div class='shownolgin' data-isdigest='no'><div class="quote">
<blockquote><font size="2"><a href="forum.php?mod=redirect&amp;goto=findpost&amp;pid=3383695&amp;ptid=1302737" target="_blank"><font color="#999999">qwqwqw2088 发表于 2024-12-25 21:33</font></a></font> 如果485的通讯机制如果做成和CAN一样&nbsp; 是否就可以实现多主多从? &nbsp; 这种想法,理论是可 ...</blockquote>
</div>

<p>二楼提到的 cdbus 就是让串口 485 也支持多主通讯,支持 can 那样的仲裁:</p>

<p>https://bbs.eeworld.com.cn/thread-1267965-1-1.html</p>
</div><script>showreplylogin();</script>

qwqwqw2088 发表于 2024-12-26 09:43

<div class='shownolgin' data-isdigest='no'>dukedz 发表于 2024-12-26 09:17
二楼提到的 cdbus 就是让串口 485 也支持多主通讯,支持 can 那样的仲裁:

https://bbs.eeworld.com ...

<p>谢谢分享</p>

<p>让串口 485 也支持多主通讯,支持 can 那样的仲裁</p>

<p>这个不错,可以推荐给楼主,参考</p>
</div><script>showreplylogin();</script>

QWE4562009 发表于 2024-12-26 11:19

<div class='shownolgin' data-isdigest='no'>dukedz 发表于 2024-12-26 09:17
二楼提到的 cdbus 就是让串口 485 也支持多主通讯,支持 can 那样的仲裁:

https://bbs.eeworld.com ...

<p>cdbus???不是CANBUS?</p>
</div><script>showreplylogin();</script>

QWE4562009 发表于 2024-12-26 11:19

<div class='shownolgin' data-isdigest='no'>qwqwqw2088 发表于 2024-12-25 21:41
主从通信关系很常见,如果搞过软硬件通信设计,现在的很多自动化控制现场、物联网关产品都是经常用到485,C ...

<p>从设备不能收发数据吗&nbsp;</p>
</div><script>showreplylogin();</script>

QWE4562009 发表于 2024-12-26 11:22

<div class='shownolgin' data-isdigest='no'>qwqwqw2088 发表于 2024-12-25 21:33
如果485的通讯机制如果做成和CAN一样&nbsp; 是否就可以实现多主多从?

&nbsp;

这种想法,理论是可 ...

<p>其实我是想搞清楚为什么CAN可以多主多从。而485不可以,本质上都是差分线,究其原因是什么导致的</p>
</div><script>showreplylogin();</script>

qwqwqw2088 发表于 2024-12-26 14:20

<div class='shownolgin' data-isdigest='no'>QWE4562009 发表于 2024-12-26 11:22
其实我是想搞清楚为什么CAN可以多主多从。而485不可以,本质上都是差分线,究其原因是什么导致的

<p>是差分的</p>

<p>485不能多主多从的原因<br />
485协议并没有定义完整的数据包格式和仲裁规则<br />
用的是一主多从的通信方式,即一个主机负责轮询多个从机进行通信。</p>

<p>具体用过485的都知道,用两根线A 线和 B 线来传输信号,通过两根线之间的电压差来表示逻辑状态。<br />
例如,当 A - B &gt; +200mV 时表示逻辑 1,当 A - B &lt; - 200mV 时表示逻辑 0。</p>
</div><script>showreplylogin();</script>

dukedz 发表于 2024-12-26 14:25

<div class='shownolgin' data-isdigest='no'> 本帖最后由 dukedz 于 2024-12-26 14:32 编辑

<div class="quote">
<blockquote><font size="2"><a href="forum.php?mod=redirect&amp;goto=findpost&amp;pid=3383821&amp;ptid=1302737" target="_blank"><font color="#999999">QWE4562009 发表于 2024-12-26 11:22</font></a></font> 其实我是想搞清楚为什么CAN可以多主多从。而485不可以,本质上都是差分线,究其原因是什么导致的</blockquote>
</div>

<p>没错,就是 cdbus,可以让串口 485 也支持多主多从。</p>

<p>传统串口 485 最小传输单元是一个字节,而 can 是多个字节。</p>

<p>只有多个字节才方便定义开头多少字节或bit是仲裁,后面是数据。</p>

<p>&nbsp;</p>

<p>所以 cdbus 也给串口定义了一个基础的多个字节的数据包:3 字节头+用户数据+ 2字节 crc 校验结尾。</p>

<p>3 字节头的 3 个字节分别是:原地址、目标地址、用户数据长度。</p>

<p>这样,cdbus 就拿 原地址 做为仲裁,实现多主多从的总线。</p>

<p>&nbsp;</p>

<p>类似的,正式的串口通讯基本都会定义一个打包格式,譬如有些是 ff aa 之类的标记做为开头,有些是用 modbus,但这些协议制定之初都没有考虑支持多主多从,而 cdbus 设计之初就是为了支持 多主多从。</p>
</div><script>showreplylogin();</script>
页: [1] 2
查看完整版本: 为什么电动车,汽车电子还是摩托车电子大多数采用CAN通讯?不用485或者其他的通讯...