DC 전원 공급 라인을 통한 통신 신호 주입


22

전원 공급 장치 전선 만 사용하여 여러 장치를 데이지 체인으로 연결 한 다음 전력선을 통해 통신 신호를 주입하여 반이중 네트워크로 전환하고 싶습니다.

이것을 달성하는 일반적인 방법이 있습니까? 마이크로 컨트롤러에서 UART를 사용하면 간단할수록 좋습니다.

편집 : 실제로 내가하고있는 두 가지 프로젝트가 있습니다.이 중 하나는 저전력 센서 네트워크입니다. 다른 하나는 LED 조명 프로젝트입니다. 두 경우 모두 배선을 단순화하는 것이 목표이지만 솔루션이 너무 복잡한 경우에는 세 개의 와이어 (pwr, gnd, comms)를 사용하는 것이 더 합리적입니다.


1
AC 또는 DC 전원 공급 장치? 전원 전압은 무엇입니까?
mjh2007

3
일부 답변에서 언급 된 커패시터 + 인덕터 배열의 이름은 bias-T 입니다.
davidcary

답변:


15

Dallas 1-Wire 프로토콜 을 살펴 보셨습니까 ? 속도가 매우 느리며 장치가 비교적 적은 전류를 소비하면 기생 전력을 사용하여 데이터 라인을 사용하여 장치에 전원을 공급할 수 있습니다.


고마워요-1-Wire는 상당히 인기가 있고 저전력 센서 네트워크에 적합합니다.
피터 깁슨

2
안녕하세요 피터, UART를 구체적으로 요청했기 때문입니다. UART를 1-Wire 버스 마스터로 사용하기위한 최대 애플리케이션 노트를 찾을 수있었습니다. ( maxim-ic.com/app-notes/index.mvp/id/214 참조 )
Terry Chen

11

기본적으로 AC 신호를 DC 전원 라인으로 밀어 넣어 다시 분리해야합니다. 이것은 TV 안테나가있는 가정에서 일반적입니다. 전력 증폭기는 안테나 근처에 있으며 TV 신호는 안테나 와이어로 내려 오는 동안 DC 전원은 안테나 와이어로 올라갑니다.

회로 예제에 대한 자세한 정보는 제공하지 않지만 기본 사항은 다음과 같습니다.

전원 공급 장치에 직렬로 연결된 인덕터가 있어야 전원에 공급되는 고주파 신호를 차단하고 조정 문제가 발생할 수 있습니다.

AC 신호를 필터링하려면 각 장치의 전원 입력을 인덕터로 유사하게 보호해야합니다. 다이오드와 커패시터에 공급하면 AC 신호로 인해 모듈 전원이 손상되지 않습니다.

인덕터를 사용하기 전에 커패시터를 연결해야합니다. 라인의 AC 신호 대부분이 커패시터를 통과하도록 DC의 값이 낮아 지도록 값이 낮아질 수 있습니다.

현재 절단 된 데이터를 온라인으로 읽는 데 필요한 소프트웨어를 구현할 수있는 기술이 있다면이 커패시터의 출력을 마이크로 컨트롤러 (다이오드 클램핑 포함)에 직접 사용할 수 있습니다. 마찬가지로 I / O 핀을 사용하여 커패시터에 직접 펄스를 보낼 수 있습니다.

스코프에서 어떤 모양인지 확인하십시오. 커패시터로 들어가는 구형파는 전력선에서 부패하는 것처럼 보입니다. 네트워크에서 다른 커패시터가 나오면 라인의 급격한 증가로 더 변경됩니다.

이러한 스파이크를 읽는 것이 어려울 수 있으며 노이즈를 필터링하기 어려울 수 있으므로 긴 라인을 실행하거나 잡음이 많은 전원 공급 장치를 사용하거나 다른 노이즈 소스 근처에서 라인을 실행하는 경우 상당한 신호 처리를 구현해야합니다. 일반적으로 이것은 데이터 슬라이서, 비교기, 톤 제너레이터 및 검출기 등 소프트웨어와 함께 AM (ASK-Amplitude shift keying) 또는 FM (FSK-Frequency shift keying) 형식으로되어 있습니다.

많은 일처럼 보일지 모르지만 수신 측의 간단한 펄스 감지기로 시작하여 송신 할 때 구형파를 보냅니다. 오실로스코프를 사용하여 발생하는 상황을 이해하고보다 복잡한 솔루션이 필요한 경우 ASK 또는 FSK 감지에 대해 다시 문의하십시오.

펄스 검출기는 변경 입력 핀에 대한 간단한 소프트웨어 인터럽트이거나 펄스 들것으로 설정된 555 일 수 있습니다.


나는 모든 통신이 FM을 수행해야한다고 생각하고 신호를 거의 완벽하게 되돌릴 수있는 멋진 필터를 만들 수 있다는 점을 제외하고는 아담과 동의합니다. 그는 이것을 언급했지만 올바른 필터와 FM 변조로 시끄러운 신호가 다시 아름답게 될 수 있음을 분명히하기 위해 메모를 추가 할 것이라고 생각했습니다.
Kortuk

1
FM은 AM 또는 다른 많은 간단한 변조 방식보다 훨씬 우수하지만 하드웨어 및 / 또는 소프트웨어 측면에서 약간 더 높은 비용이 들며, 신호 품질이 좋으면 과잉 일 수 있습니다.
Adam Davis

7

나는 열차 컨트롤러 시스템 (모델 열차)을 위해 이와 같은 것을 만들었습니다.

단방향 저속 프로토콜 (단일 엔터티는 데이터를 보내고 다른 모든 것은 리시버 만)이며 전송은 단순히 레일 극성을 반대로하여 수행되었습니다.

모든 "클라이언트"에는 그림 (16C54, 몇 년 전!), 정류기 및 일부 딥 스위치로 주소를 설정하는 간단한 회로가있었습니다.

더 이상 소스 코드가 없지만 시스템은 정말 쉽고 수년간 완벽하게 작동하여 추가 전선없이 기본 제어판에서 모든 단일 기관차, 라이로드 장벽, ​​세마포어 등을 쉽게 제어 할 수 있습니다.


Axeman, 할 말이 없지만 당신은 저에게 감동을주었습니다. 그 솔루션은 나를 킥킥 웃게 만듭니다.
Kortuk

Kortuk, 나는 당신이 "낄낄 거림"이 "엄지 손가락"을 의미하기를 희망합니다 (나는 당신이 볼 수 있듯이 이탈리아어로 영어가 강하지 않습니다 :-) DCC : Digital Command Control (동일한 목적) : en.wikipedia.org/wiki/Digital_Command_Control
Axeman

5

DC 오프셋을 추가하고 제거한다는 신호로 생각하는 것이 좋습니다. 커패시터를 회로와 직렬로 배치하여 DC를 차단할 수 있습니다.

그 외에도 응용 프로그램에 따라 달라지기 때문에 수행해야 할 작업을 말하기가 어렵습니다. 커플 링 커패시터를 신호 수신 대상에서 분리하려면 opamp를 사용해야 할 수도 있습니다. DC 오프셋 전압이 신호 전압에 비해 큰 경우 리플을 제거하기 위해 전원 조정을 수행 할 필요가 없을 수도 있습니다. 이는 모두 애플리케이션에 따라 다릅니다.

동일한 기술을 사용하여 보조 스피커의 전원 LED를 켜는 한 쌍의 스피커가 있습니다. 볼륨을 충분히 크게 올리면 실제로 LED가 밝아지는 것을 알 수 있습니다. 이 특정 응용 프로그램에서는 어떤 유형의 RC 필터가 생성되는지 걱정해야합니다.


12V 전원에 연결된 고주파 신호로 RS232를 변조하는 것을 고려했습니다. 리플을 매끄럽게 만들지 않도록 PSU 커패시턴스를 분리하는 것이 중요하다고 생각합니까?
피터 깁슨

4

나는 이것이 꽤 오래된 실이라는 것을 알고 있지만 여기에 2 펜스 가치가 있습니다 ...

아직 아무것도 작동하지 않지만 Arduino + VirtualWire (실제로 낮은 전송 속도로 설정)를 사용하여 비슷한 작업을 수행하려고했습니다. Adam Davis가 위에서 언급했듯이 12V 라인에서 낮은 값의 커패시터를 통해 데이터를 송수신합니다. 그것은 VirtualWire가 (아마도) 디코딩 할 수있는 스파이크가 거의없이 0V를 얻는 것을 의미합니다. 이 방법에 대한 좋은 소식은 이론적으로 12V 회선의 모든 장치가 통신하고 수신 할 수 있다는 것입니다. 나는 브레드 보드의 두 장치 사이에 일반적인 전선을 사용하여 작동했지만 거리 또는 실제 전력선에서 작동하는지 확실하지 않습니다.

전송이 항상 같은 장소에서 온다면 Hornby 방법과 같은 것을 사용하는 것이 좋습니다. 송신기가 + 12V와 -12V 사이에서 전력선을 전환하여 신호를 생성하도록합니다. 각 수신기에는 전원 선 연결에 정류기가 있으므로 항상 + 12V 전원을 공급받습니다. 논란의 여지없이 간단히 + 12V를 펄스 할 수 있으며 각 장치에 큰 커패시터를 사용하여 범프를 부드럽게 할 수 있습니다. 전력선의 신호가 훨씬 강력하고 디코딩하기 쉽기 때문에 이러한 방법 중 하나가 더 신뢰할 수 있습니다 (여전히 VirtualWire를 사용하여 마음에 들지만 UART도 작동 할 수 있습니다).

LED 조명 프로젝트의 경우 12V 라인 아래로 몇 암페어를 이동해야 할 가능성이 높습니다. 따라서 스위칭이 조금 더 어려워 지므로 RF 오버 커패시터 방식을 사용하는 것이 더 나을 수있다. 그러나 수신되는 스파이크의 높이는 더 높은 전류로 상당히 줄어 듭니다. 따라서 라인에 쓰는 신호를 증폭해야합니다 (예 : 고주파 트랜지스터 또는 2 개를 사용하여 TTL 신호를 12V로 '증폭'하기 전에) 커패시터를 통해 12V 라인으로 밀어 넣습니다).

어느 쪽이든, VirtualWire와 같은 것은 UART (그리고 아마도 I2C 등)보다 거의 항상 더 잘 작동합니다. 그 이유는 위상 고정 루프를 사용하여 송수신을 '동기화'하기 때문에 신호 대 잡음비가 높고 오류가 적다는 것입니다. 그것은 완벽하지 않은 하드웨어를 조금 더 용서해야합니다. ;-)


2

조언을하기 전에 물어볼 수있는 질문이 많이 있습니다. 우리가 이해하려고하는 첫 번째 것은, 당신의 목표는 무엇입니까? 낮은 구축 비용, 긴 통신 실행으로 배선, 개념 증명 등을 절약합니다. 그들은 모두 다른 권고를 가질 것입니다. 예를 들어 비용에 대해 걱정하지 않는다면 Zigbee 솔루션을 사용하거나 장기간 실행되는 경우 대부분의 단일 와이어 전송에 문제가 발생하므로 다른 옵션을 살펴 봐야합니다. 귀하의 질문에 대해 가장 걱정되는 것은 "단순할수록 좋다"는 것입니다. 어떤 상황에서는 당신이 묻는 것이 가능하지만 간단하지 않다고 감히 말하고 있습니다. 주로 신호 ​​손실, 노이즈 및 전류 관리와 같은 실제 문제로 인해 발생합니다.

행운을 빌어 요.


고마워요-내가 겪을 수있는 잠재적 인 문제를 듣는 것이 좋습니다. 위의 게시물에서 내 요구를 좀 더 명확하게하려고 노력했습니다.
피터 깁슨

2

어떤 종류의 USB 솔루션이 작동하지 않습니까? 약 2-2.5W를 사용할 수 있습니다.

다음은 몇 가지 다른 아이디어입니다.

PoE (Power over Ethernet)는 전원 및 이더넷 신호를 통합합니다. 이러한 장치를 위해 설계된 다양한 반도체 및 DC / DC 변환기가 있습니다. 상용 부품이 있으므로 아마도 이것이 최선의 선택 일 것입니다.

나는 일부 홈 오토메이션 회사들이 AC 전원 및 통신 신호를 통합한다고 생각합니다. 아마도 그 중 일부는 적응할 수 있습니다.

오디오 사람들은 마이크의 "팬텀"전원을 사용합니다. 마이크 케이블을 통한 48VDC 및 오디오.


1
USB에서 전원을 끌어 오는 데주의해야합니다. 장치를 USB 포트에 처음 연결하면 5v = 0.5W에서 100mA가 부여됩니다. 그러면 장치는 추가 전력을 요청하고 5v = 2.5W에서 500mA를 얻을 수 있습니다. 당신은 또한 당신이 처음에 연결하면 장치가 큰 풀을 실 거예요 것을 보장해야합니다 위키 백과의 '파워'섹션에서 USB 전원에 대해 조금 이야기. en.wikipedia.org/wiki/Universal_Serial_Bus#Power
Kellenjb

Kellenjb, 열거 형은 더 많은 전력을 요구하는 것과 정확히 같지 않습니다. 지능형 장치임을 확인하는 것으로 생각합니다. 대부분의 사람들은 또한 다른 사람에게 장치를 제공하는 경우 전원이 공급되지 않는 허브에 연결되어 상황에 관계없이 최대 100mA를 끌어 올릴 수 있음을 잊습니다.
Kortuk

1

X-10 프로토콜은 정확히이 일을합니다.

또한 위의 제안 중 일부는 안전하지 않거나 승인 된 (UL / CE 마크) 장치에서 사용할 수 없습니다.


1
"전원 와이어"는 저전압 와이어를 의미한다고 가정합니다. 만약 그들이 AC 전원 선이라면, 대부분의 다른 답변들은 이것을 고려하지 않고는 적합하지 않습니다.
Adam Davis

2
X10은 설계 상 AC 전력선을 가정하며 특정 동조 변압기가 필요합니다. 그것이 질문의 "간단한 더 나은"부분에 맞지 않는다고 생각하십시오 :-)
Axeman

0

UART 바이트를 가져 와서 최대 115.2Kbps의 속도로 전력선을 통해 전송하는 전용 반도체가 있습니다. 이 장치는 자동차 용으로 설계되어 소음에 강합니다. http://yamar.com/product/sig60/ 참조



-2

전화 시스템에서 이루어집니다. 전화에서 알 수 있듯이 2 선 시스템에는 전원 및 발신음 및 음성이 있습니다. 일반 전화의 톤 다이얼링과 같은 톤을 생성하여 전력선을 통해 명령을 보낼 수 있습니다.이 응용 프로그램의 집적 회로 (Ic)는 일반적으로 사용되므로 매우 저렴합니다.

나는이란의 큰 공장에서 워터 밸브를 제어하기 위해 이와 같은 프로젝트를 수행했습니다 (최대 99 밸브). 유용하다고 생각되면 코더 디코더 회로의 블록 다이어그램을 추가 할 수 있습니다.


2
이것은 질문에 대답하지 않습니다.
Null

Saeed는 오래된 질문에 답할 때 (2010), 특히 이미 다른 좋은 답변이 있기 때문에 크게 기여하는 것이 일반적입니다. 여기에서 탐색하는 사람에게는 답변이 도움이 될 것이므로 개인 정보 교환을 제안하지 마십시오.
clabacchio
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.