我希望能够仅使用电源线以菊花链方式连接多个设备,然后通过电源线注入通信信号以将其变成半双工网络。
有没有实现这一目标的常用方法?越简单越好,如果在微控制器上使用 UART 那就太好了。
编辑:实际上我正在从事两个项目,我认为这会从中受益 - 一个是低功耗传感器网络。另一个是LED照明项目。在这两种情况下,目标都是简化布线,但如果解决方案过于复杂,那么使用三根线(pwr、gnd、comms)可能更有意义。
我希望能够仅使用电源线以菊花链方式连接多个设备,然后通过电源线注入通信信号以将其变成半双工网络。
有没有实现这一目标的常用方法?越简单越好,如果在微控制器上使用 UART 那就太好了。
编辑:实际上我正在从事两个项目,我认为这会从中受益 - 一个是低功耗传感器网络。另一个是LED照明项目。在这两种情况下,目标都是简化布线,但如果解决方案过于复杂,那么使用三根线(pwr、gnd、comms)可能更有意义。
您是否研究过Dallas 1-Wire协议?它的速度非常低,如果您的设备消耗的电流相对较小,那么您可以使用寄生电源并使用数据线为设备供电。
您基本上需要将交流信号推送到直流电源线上,然后再次将它们分开。这在有电视天线的家庭中很常见 - 功率放大器放在天线附近,直流电源向上推到天线线上,而电视信号从天线线上下来。
您没有为示例电路提供足够的详细信息,但以下是基础知识:
电源应该有一个串联到输出端的电感器,以阻止高频信号进入电源并可能导致调节问题。
每个单元的电源输入都应使用电感器进行类似的保护,以滤除交流信号。将其馈入二极管和电容器将确保交流信号不会危及您的模块电源。
在电感器之前,您还将连接一个电容器。它可能是一个低值,因此线路上的大多数交流信号都会通过电容器,但直流电都不会。
如果您有能力实施必要的软件来离线读取现已损坏的数据,则该电容器的输出可以直接用于微控制器(具有二极管钳位功能)。同样,您可以使用 I/O 引脚将脉冲直接发送到电容器中。
看看示波器上的样子——进入电容器的方波看起来就像电源线上的衰减尖峰。当它出现在网络上的另一个电容器时,它将进一步改变 - 只是线路上的一个尖峰。
读取这些尖峰可能很困难,滤除噪声也很困难,因此,如果您的线路较长、电源嘈杂或在其他噪声源附近运行线路,则必须实施重要的信号处理。通常这采取在线上的AM(ASK - 幅移键控)或FM(FSK - 频移键控)的形式,带有数据限幅器,比较器,音调发生器和检测器等。或者在软件中进行等效处理。
看起来工作量很大,但从接收端的简单脉冲检测器开始,并在发送时发送方波。使用示波器了解正在发生的事情,如果您发现需要更复杂的解决方案,请再次询问 ASK 或 FSK 检测。
脉冲检测器可能是更改输入引脚上的简单软件中断,或设置为脉冲展宽器的 555。
我已经为火车控制器系统(当然是模型火车)构建了类似的东西。
它是一种单向低速协议(单个实体发送数据,所有其他实体仅是接收器),传输是通过简单地反转轨道极性来完成的。
在每个“客户端”上,都有一个简单的电路,用一张图片(16C54,几年前!)、一个整流器和一些拨码开关来设置地址。
我已经没有源代码了,但是系统真的很简单,并且多年来工作完美无瑕,可以从主控制面板轻松控制每一个机车、铁路护栏、信号灯等,而无需额外的电线。
我建议将其视为您正在添加和删除 DC 偏移的信号。您可以通过将电容器与电路串联来使用电容器来阻止直流电。
除此之外,很难说您需要做什么,因为这取决于您的应用程序。您可能需要使用运算放大器将耦合电容器与接收信号的电容器分开。如果您的直流偏移电压与您的信号电压相比较大,您甚至可能不需要对其进行任何电源调节以消除纹波,但这完全取决于您的应用。
我有一对扬声器,它们使用相同的技术来点亮辅助扬声器上的电源 LED。如果我把音量调得足够大,我实际上可以注意到 LED 变得更亮。在这个特定的应用程序中,他们需要担心正在创建什么类型的 RC 滤波器。