通过直流电源线注入通信信号


22

我希望能够仅使用电源线以菊花链方式连接多个设备,然后通过电源线注入通信信号以将其转换为半双工网络。

有什么通用的方法可以做到这一点吗?越简单越好,如果在微控制器上使用UART,那就更好了。

编辑:实际上,我正在研究两个项目,我认为这将从中受益-一个是低功率传感器网络。另一个是LED照明项目。在这两种情况下,目的都是简化接线,但是如果解决方案过于复杂,则使用三根电线(pwr,gnd,comms)可能更有意义。


1
交流还是直流电源?电源电压是多少?
mjh2007'6

3
在某些答案中提到的电容器+电感器的名称为:bias-T
davidcary 2011年

Answers:


15

您是否研究过Dallas 1-Wire协议?它的速度确实很低,如果您的设备消耗的电流相对较小,那么您就可以摆脱使用寄生电源的麻烦,而可以通过数据线为设备供电。


谢谢-1-Wire看起来很受欢迎,非常适合低功耗传感器网络。
彼得·吉布森

2
彼得,您好,因为您专门要求使用UART。我设法找到有关将UART用作1线总线主设备的Maxim应用笔记。(请参见maxim-ic.com/app-notes/index.mvp/id/214)。
特里·陈

11

本质上,您需要将交流信号推到直流电源线上,然后再将它们分开。这在带有电视天线的家庭中很常见-功率放大器置于天线附近,直流电源沿天线线向上推,而电视信号沿天线线向下推。

您没有为示例电路提供足够的细节,但是这里是基础知识:

电源应具有串联的电感器,该电感器将连接到输出,以阻止高频信号馈入电源,并可能引起调节问题。

同样,每个单元的电源输入也应使用电感器进行保护,以滤除交流信号。将其馈入二极管和电容器将确保交流信号不会危害模块电源。

在电感器之前,您还将连接一个电容器。它可能是一个较低的值,因此线路上的大多数AC信号都会通过电容,但是没有DC会通过。

如果您具有执行必要的软件以离线读取现在被残废的数据的能力,则该电容器的输出可以直接用于微控制器(带二极管钳位)。同样,您可以通过I / O引脚将脉冲直接发送到电容器。

检查一下示波器上的外观-进入电容器的方波看起来像电源线上的衰减尖峰。当网络上出现另一个电容器时,它将进一步改变-只是线路上的一个尖峰。

读取这些尖峰信号可能很困难,并且很难滤除噪声,因此,如果您使用长线路,有噪声的电源或在其他噪声源附近使用线路,则必须实施大量的信号处理。通常,这采用在线上的AM(ASK-幅移键控)或FM(FSK-频移键控)的形式,以及数据限幅器,比较器,音调发生器和检测器等。或软件中的等效处理。

这似乎是一项艰巨的工作,但首先从接收端的简单脉冲检测器开始,然后在发送时发送方波。使用示波器了解正在发生的情况,如果发现需要更复杂的解决方案,请再次询问ASK或FSK检测。

脉冲检测器可以是更改输入引脚上的简单软件中断,也可以是设置为脉冲扩展器的555。


我同意亚当在这里,除了我相信所有通讯都应该在FM上完成,您可以构建一些非常好的滤波器以使信号几乎完美地返回。他已经提到了这一点,但我想我要加一个注释,以说明通过正确的滤波器和FM调制,噪声信号可以再次变得漂亮。
Kortuk

1
FM比AM或许多其他简单的调制方案要好得多,但在硬件和/或软件方面确实确实要花费稍高的成本,而且如果信号质量良好,则可能会适得其反。
亚当·戴维斯

7

我已经为火车控制器系统(当然是模型火车)构建了类似的东西。

它是一种单向低速协议(单个实体发送数据,所有其他实体仅是接收器),而传输只需简单地颠倒轨道极性即可完成。

在每个“客户”上都有一个简单的电路,带有一个图片(16C54,几年前!),一个整流器和一些拨码开关来设置地址。

我再也没有源代码了,但是系统确实很简单,并且可以完美运行多年,可以从主控制面板轻松控制每个机车,无载屏障,信号量等,而无需额外的电线。


阿克西曼,我无话可说,但是你给我留下了深刻的印象,先生/女士。该解决方案使我咯咯笑。
Kortuk

Kortuk,我希望您“咯咯地笑”的意思是“竖起大拇指”(我是意大利人,英语不太熟练,如您所见:-))无论如何,比我的“发明”要早几年(但我是在我的项目之后才发现的)已完成)设计,标准化和实施的铁路模型工厂(以相同的方式)DCC:数字命令控制,出于相同的目的: en.wikipedia.org/wiki/Digital_Command_Control
Axeman 2010年

5

我建议将其视为您要添加和删除直流偏移的信号。通过将电容器与电路串联放置,可以使用电容器来阻止直流。

除此之外,很难说您需要做什么,因为这取决于您的应用程序。您可能需要使用运算放大器将耦合电容与接收信号的电容分开。如果您的直流偏移电压比信号电压大,您甚至可能不需要对其进行任何功率调节来消除纹波,但这完全取决于您的应用。

我有一对扬声器,它们使用相同的技术来点亮辅助扬声器上的电源LED。如果我将音量调得足够大,我实际上可以注意到LED变亮了。在此特定应用中,他们将需要担心正在创建哪种类型的RC滤波器。


我考虑过尝试使用耦合到12V电源的高频率信号来调制RS232-我猜想隔离PSU电容很重要,这样它才不会试图消除纹波?
彼得·吉布森

4

我知道这是一个很老的话题,但是这就是我的2便士。

我还没有任何工作,但是我正在考虑使用Arduino + VirtualWire(设置为非常低的波特率)执行类似的操作。正如亚当·戴维斯(Adam Davis)所说,您通过一个低值电容器从12V线路发送/接收数据。这意味着您实际上得到的0V上几乎没有尖峰,VirtualWire可以(可能)对其进行解码。关于此方法的好消息是,理论上12V线路上的任何设备都可以通话,并且任何人都可以接收。我已经在面包板上的两个设备之间使用普通的电线进行了工作,但是不确定它是否可以在远距离或实际电​​源线上工作。

如果传输总是来自同一地点,那么也许使用类似Hornby方法的方法可能会更好-即。让发射器在+ 12V和-12V之间切换电源线以创建信号。每个接收器在与电源线的连接上都有一个整流器,因此它始终获得+ 12V电源。可以说,您可以简单地脉冲+ 12V,并让每个设备使用一个大电容器来平滑凸起。这两种方法中的任何一种都可能更可靠,因为电源线上的信号会更强,因此更容易解码(我仍然会使用VirtualWire来做到这一点,但是UART也可以工作)。

对于LED照明项目,您很有可能必须将12A的电流降低几个安培。这使得切换起来有点困难,因此使用RF-over-capacitor方法可能会更好。但是,随着电流的增加,接收到的尖峰的高度会大大降低,因此您可能需要放大写入线路的信号(例如,使用一两个高频晶体管将TTL信号“放大”至12V,然后再将其放大)。将其通过电容器推入12V线路)。

无论哪种方式,像VirtualWire这样的东西几乎总是比UART(可能还有I2C等)更好地工作。原因是它使用锁相环将发送和接收“同步”在一起,这意味着更高的信噪比和更少的错误。那应该使它对不太理想的硬件更加宽容;-)


2

在提出任何建议之前,我会问很多问题。我想我们首先要了解的是,您的目标是什么?较低的构建成本,较长的通信时间,从而节省了布线,概念验证或其他事情。他们都会有不同的建议。例如,如果您不担心成本,则可以选择Zigbee解决方案,或者如果运行时间长,那么大多数单线传输都会出现问题,现在您需要考虑其他选择。我想我最担心您的问题的是您说“越简单越好”。在某些情况下,您要问的是可能的,但我敢说这并不简单。主要是由于您将遇到的实际问题,例如信号丢失,噪声和电流管理。

祝你好运。


谢谢-很高兴听到我可能遇到的潜在问题。我已经在上面的帖子中尝试阐明了我的需求。
彼得·吉布森

2

您确定某种USB解决方案不可行吗?您大约有2-2.5W可用。

这里还有其他一些想法-

以太网供电(POE)集成了电源和以太网信号。为这些设备设计了各种各样的半导体和DC / DC转换器。这可能是您最好的选择,因为有一些现成的部件。

我相信一些家庭自动化公司集成了交流电源和通信信号。也许其中一些是适应性的。

音频人员具有麦克风的“幻像”电源。48VDC加上麦克风电缆上的音频。


1
您需要小心从USB供电。首次将设备插入USB端口时,会在5v = 0.5W时获得100mA的电流。然后,您的设备可以请求额外的功率,并在5v = 2.5W时获得500mA的电流。您还需要确保设备在首次插入时不会产生较大的拉力
。Wikipedia

Kellenjb,枚举与请求更多功能并不完全相同,我喜欢将其视为验证您是智能设备。大多数人也忘记了如果他们将设备交给他人使用,则可能将其插入未供电的集线器中,无论何种情况都导致最大100mA的拉动。
Kortuk

1

所述X-10协议不正是此。

另外,上面的一些建议也不安全,或者肯定不能在经过批准的(UL / CE标志)设备中使用。


1
我假设“电源线”是指低压线。如果它们是交流电源线,则是的,如果不考虑这一点,大多数其他答案都是不合适的。
亚当·戴维斯

2
X10设计为采用交流电源线,并且需要特定的调谐变压器。不要认为它适合问题的“越简单越好”部分:-)
Axeman 2010年



-2

这是在电话系统中完成的。如您所知,电话在两线制系统中具有电源以及拨号音和语音。您可以通过生成音频(例如普通电话中的音频拨号)通过电源线发送命令,该应用的集成电路(Ic)很常用,因此非常便宜。

我做了一个类似的项目,用于控制伊朗一家大型工厂的水阀(最多99个阀)。如果您认为我的编码器解码器电路可能有用,那么可以添加它的框图。


2
这不能回答问题。
空的

赛义德(Saeed)说,在回答旧问题(2010)时,通常会做出重大贡献,尤其是因为已经有其他好的答案。并且请不要建议私下交换信息,因为答案应该对任何浏览这里的人都有帮助。
clabacchio
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.