场景:智能家居的有线通讯协议,实现一线多连,全屋传输信号( 100M 足够用)。
线路大约是双绞线,可以带有直流电源的一组线。
类似 I2C 协议,但是 I2C 协议通讯距离不到 10M 。
热插拔协议、至少能实现树状连接。
![]() | 1 lingex 2024-08-17 21:38:07 +08:00 双绞线 485 比较合适,热插拔没试过不太确定,连接通常是总线型。 |
2 Od37v61n5s89gXx8 2024-08-17 21:40:32 +08:00 CAN 啊,冲突检测自动重传,最长能到 10 公里(低速率),最高能到 5M |
![]() | 3 sagaxu 2024-08-17 21:51:10 +08:00 RS-485 或 CAN |
4 fengtons 2024-08-18 00:00:34 +08:00 via Android rs485 最简单了,就是差分传输的串口,可以去到 1 公里,一对多的话可能要自己想办法实现了 |
5 someonesnone 2024-08-18 00:17:39 +08:00 via Android 485 can lin |
6 someonesnone 2024-08-18 00:19:02 +08:00 via Android 还有最新的 two wire ethernet 似乎是这么叫 100BaseT1 2-Wire Automotive Ethernet provides 100MBPS connections over simple twisted 2 wires for a distance of up to 15 meters. The line signaling on the wire is not directly compatible with traditional 100BaseTX (RJ45) |
![]() | can 协议啊,比 rs485 功能更完善 |
9 2xvaHoK2LGxQ29R5 2024-08-18 03:26:47 +08:00 via Android 别的不说,光是"可以带有直流电源的一组线。"这个要求就不太靠谱,100 米要能有直流电源驱动,光线上面的能量耗损就已经相当可观了。 一般网线也好或者是其他电介质传输编码都是要保证直流平衡的,除了降低误码率的一个重要原因就是不要产生因为传输电产生的功率负载。 |
10 2xvaHoK2LGxQ29R5 2024-08-18 03:33:52 +08:00 via Android 另外与其追求链路层面的总线功能,不如转成逻辑总线,即局部设备通过 I2C,zigbee 或者其他链路链接到边缘网关节点,然后各网关节点通过 TCPIP/MQTT 或者其他的协议链接通过网线到核心节点,然后可以通过 HA 等解决方案对于每个边缘网关节点进行控制,从而实现整体依然是逻辑总线协议控制,但是只有边缘到局部设备为真正 I2C 等物理总线协议 |
11 2xvaHoK2LGxQ29R5 2024-08-18 03:37:37 +08:00 via Android 主要是一线多联的可靠性很低,一旦你这条线任意点位断掉那么立马整个总线结构就完蛋了 |
![]() | 12 R4rvZ6agNVWr56V0 2024-08-18 04:44:35 +08:00 |
13 misericorde 2024-08-18 09:28:28 +08:00 需要注意的是无论 CAN 还是 RS485 ,均要求总线是“一条”而非树状,挂在总线上的设备到总线本身的距离(叫做 stub length )不能太长,最好控制在 50cm 以内。可以搜一下 CAN bus topology 及 CAN bus stub length 。 |
14 si 2024-08-18 11:53:59 +08:00 485 就可以了吧,不过还是直接走网络比较方便。 |