การฉีดสัญญาณการสื่อสารผ่านสายจ่ายไฟ DC


22

ฉันต้องการให้เดซี่เชนหลายอุปกรณ์โดยใช้สายไฟจากนั้นฉีดสัญญาณการสื่อสารผ่านสายไฟเพื่อเปลี่ยนเป็นเครือข่ายดูเพล็กซ์ครึ่ง

มีวิธีการทั่วไปในการบรรลุเป้าหมายนี้หรือไม่? ง่ายกว่าดีกว่าและจะดีมากถ้าใช้ UART กับไมโครคอนโทรลเลอร์

แก้ไข: มีสองโครงการที่ฉันทำงานจริง ๆ ซึ่งฉันคิดว่าจะได้รับประโยชน์จากสิ่งนี้ - หนึ่งคือเครือข่ายเซ็นเซอร์พลังงานต่ำ อื่น ๆ เป็นโครงการไฟ LED ในทั้งสองกรณีมีวัตถุประสงค์เพื่อลดความยุ่งยากในการเดินสาย แต่หากวิธีการแก้ปัญหานั้นซับซ้อนเกินไป


1
แหล่งจ่ายไฟ AC หรือ DC? แรงดันไฟฟ้าคืออะไร
mjh2007

3
การจัดเก็บประจุ + เหนี่ยวนำที่กล่าวถึงในคำตอบบางอย่างมีชื่อ: อคติ-T
davidcary

ที่เกี่ยวข้อง: electronics.stackexchange.com/questions/50522/…
davidcary

คำตอบ:


15

คุณดูโปรโตคอลDallas 1-Wire แล้วหรือยัง? มันเป็นความเร็วที่ต่ำมากและหากอุปกรณ์ของคุณใช้กระแสไฟฟ้าเพียงเล็กน้อยคุณก็สามารถหนีไปได้ด้วยการใช้พลังงานของกาฝากและจ่ายไฟให้กับสายข้อมูล


ขอบคุณสำหรับสิ่งที่ - 1-Wire ดูเหมือนว่ามันค่อนข้างได้รับความนิยมและเหมาะสำหรับเครือข่ายเซ็นเซอร์พลังงานต่ำ
Peter Gibson

2
สวัสดีปีเตอร์เนื่องจากคุณขอ UART เป็นพิเศษ ฉันจัดการเพื่อหาบันทึกย่อแอพสูงสุดสำหรับการใช้ UART เป็นหลักบัส 1 สาย (ดูmaxim-ic.com/app-notes/index.mvp/id/214 )
เทอร์รี่เฉิน

11

คุณจำเป็นต้องส่งสัญญาณ AC ไปยังสายไฟ DC และแยกออกอีกครั้ง นี่เป็นเรื่องปกติในบ้านที่มีเสาอากาศทีวี - เพาเวอร์แอมป์อยู่ใกล้กับเสาอากาศและพลังงาน DC จะถูกผลักขึ้นสายเสาอากาศในขณะที่สัญญาณทีวีลงมาที่เสาอากาศ

คุณให้รายละเอียดไม่เพียงพอสำหรับวงจรตัวอย่าง แต่นี่เป็นพื้นฐาน:

แหล่งพลังงานควรมีตัวเหนี่ยวนำแบบต่อเนื่องเพื่อส่งสัญญาณเพื่อบล็อกสัญญาณความถี่สูงที่ป้อนเข้าสู่แหล่งจ่ายไฟและอาจทำให้เกิดปัญหาเกี่ยวกับการควบคุม

กำลังไฟของแต่ละหน่วยควรได้รับการปกป้องในทำนองเดียวกันด้วยตัวเหนี่ยวนำเพื่อกรองสัญญาณ AC การป้อนเข้าไปในไดโอดและตัวเก็บประจุจะทำให้แน่ใจว่าสัญญาณ AC ไม่เป็นอันตรายต่อโมดูลพลังงานของคุณ

ก่อนถึงตัวเหนี่ยวนำคุณจะต้องแนบตัวเก็บประจุด้วย มันอาจจะเป็นค่าต่ำเพื่อให้สัญญาณ AC ส่วนใหญ่บนเส้นผ่านตัวตรวจจับ แต่ไม่มี DC จะทำ

เอาต์พุตของตัวเก็บประจุนี้อาจใช้งานโดยตรงในไมโครคอนโทรลเลอร์ (พร้อมไดโอดหนีบ) หากคุณมีทักษะในการใช้ซอฟต์แวร์ที่จำเป็นในการอ่านข้อมูลที่ถูกทำลายในขณะนี้ ในทำนองเดียวกันคุณสามารถส่งพัลส์ไปยังตัวเก็บประจุโดยตรงด้วยพิน I / O

ตรวจสอบสิ่งที่มีลักษณะเหมือนขอบเขต - คลื่นสี่เหลี่ยมที่เข้าสู่ตัวเก็บประจุจะมีลักษณะคล้ายเข็มที่ผุพังในสายไฟ เมื่อมันออกมาเป็นตัวเก็บประจุตัวอื่นในเครือข่ายมันก็จะถูกเปลี่ยนเพิ่มเติม - เพียงแค่ขัดขวางบนเส้น

การอ่านแหลมเหล่านี้อาจเป็นเรื่องยากและการกรองสัญญาณรบกวนอาจเป็นเรื่องยากดังนั้นหากคุณใช้สายยาวมีแหล่งจ่ายไฟที่มีเสียงดังหรือสายที่วิ่งอยู่ใกล้กับแหล่งกำเนิดเสียงอื่น ๆ คุณจะต้องดำเนินการประมวลผลสัญญาณที่สำคัญ โดยทั่วไปแล้วจะใช้รูปแบบของ AM (ASK - Amplitude shift keying) หรือ FM (FSK - Key shift shift) บนสายข้อมูลพร้อมตัวแบ่งส่วนข้อมูลตัวเปรียบเทียบตัวสร้างเสียงและเครื่องตรวจจับ ฯลฯ หรือการประมวลผลที่เทียบเท่าในซอฟต์แวร์

มันอาจจะเป็นงานที่ต้องทำมากมาย แต่เริ่มต้นด้วยเครื่องตรวจจับชีพจรอย่างง่ายที่ปลายรับและส่งคลื่นสี่เหลี่ยมเมื่อส่งสัญญาณ ใช้ออสซิลโลสโคปเพื่อทำความเข้าใจสิ่งที่เกิดขึ้นและหากคุณพบว่าคุณต้องการโซลูชันที่ซับซ้อนยิ่งขึ้นถามอีกครั้งเกี่ยวกับการตรวจจับ ASK หรือ FSK

เครื่องตรวจจับชีพจรอาจเป็นซอฟต์แวร์ขัดจังหวะอย่างง่าย ๆ ในการเปลี่ยนพินอินพุตหรือตั้งค่า 555 เป็นเปลเปล


ฉันเห็นด้วยกับอาดัมที่นี่ยกเว้นฉันเชื่อว่าการสื่อสารทั้งหมดควรทำ FM และคุณสามารถสร้างตัวกรองที่ดีมาก ๆ เพื่อให้สัญญาณของคุณกลับมาอย่างสมบูรณ์แบบ เขาได้พูดถึงสิ่งนี้ แต่ฉันคิดว่าฉันจะเพิ่มบันทึกย่อเพื่อชี้แจงว่าสัญญาณรบกวนอาจจะสวยงามอีกครั้งด้วยตัวกรองที่เหมาะสมและการปรับ FM
Kortuk

1
FM นั้นดีกว่า AM หรือรูปแบบการมอดูเลตอื่น ๆ อย่างมีนัยสำคัญ แต่ก็มีค่าใช้จ่ายที่สูงขึ้นเล็กน้อยในแง่ของฮาร์ดแวร์และ / หรือซอฟต์แวร์และหากคุณภาพสัญญาณดีอาจเป็น overkill
Adam Davis

7

ฉันได้สร้างบางสิ่งเช่นนี้สำหรับระบบควบคุมรถไฟ (โมเดลรถไฟแน่นอน)

มันเป็นโปรโตคอลความเร็วต่ำแบบ monodirectional (เอนทิตีเดียวส่งข้อมูลอื่น ๆ ทั้งหมดเป็นตัวรับเท่านั้น) และการส่งสัญญาณทำได้โดยการย้อนกลับขั้วทางรถไฟ

ใน "ลูกค้า" ทุกคนมีวงจรง่ายๆที่ทำด้วยรูป (16C54, ปีที่แล้ว!), วงจรเรียงกระแสและสวิตช์แบบจุ่มบางตัวเพื่อตั้งค่าที่อยู่

ฉันไม่ได้มีซอร์สโค้ดอีกต่อไป แต่ระบบนั้นง่ายมากและทำงานได้อย่างไร้ที่ติเป็นเวลาหลายปีทำให้สามารถควบคุมหัวรถจักรทุกคัน, รางรถไฟ, เซมาฟอร์และอื่น ๆ จากแผงควบคุมหลักโดยไม่มีสายเพิ่มเติม


Axeman ฉันไม่มีอะไรจะพูด แต่คุณประทับใจฉันคุณ / แหม่ม ทางออกนั้นทำให้ฉันหัวเราะคิกคัก
Kortuk

Kortuk ฉันหวังว่าคุณ "หัวเราะคิกคัก" หมายถึง "ยกนิ้วให้" (ฉันเป็นคนอิตาลีและไม่ค่อยแข็งแกร่งในภาษาอังกฤษอย่างที่คุณเห็น :-)) อย่างไรก็ตามหลายปีก่อน "ประดิษฐ์" ของฉัน (แต่ฉันค้นพบหลังจากโครงการของฉัน เสร็จสมบูรณ์) โรงงานรถไฟจำลองได้รับการออกแบบสร้างมาตรฐานและดำเนินการ (ในลักษณะเดียวกัน) DCC: Digital Command Control เพื่อจุดประสงค์เดียวกัน: en.wikipedia.org/wiki/Digital_Command_Control
Axeman

5

ฉันอยากจะแนะนำให้คิดเกี่ยวกับมันเป็นสัญญาณว่าคุณกำลังเพิ่มและลบ DC Offset คุณสามารถใช้ตัวเก็บประจุเพื่อบล็อก DC ได้โดยวางพวกมันเป็นอนุกรมกับวงจร

นอกเหนือจากนั้นมันยากที่จะพูดในสิ่งที่คุณจะต้องทำเพราะมันจะขึ้นอยู่กับใบสมัครของคุณ คุณอาจต้องใช้ opamp เพื่อแยกตัวเก็บประจุแบบคัปปลิ้งของคุณจากสิ่งที่เคยรับสัญญาณของคุณ หากแรงดันออฟเซ็ต DC ของคุณมีขนาดใหญ่เมื่อเทียบกับแรงดันสัญญาณของคุณคุณอาจไม่จำเป็นต้องปรับกำลังไฟใด ๆ เพื่อเอาระลอกคลื่นทั้งหมดนี้ขึ้นอยู่กับแอปพลิเคชันของคุณ

ฉันมีลำโพงคู่หนึ่งที่ใช้เทคนิคเดียวกันนี้เพื่อเปิดไฟ LED พลังงานบนลำโพงรอง ถ้าฉันเพิ่มระดับเสียงดังพอจริง ๆ แล้วฉันสามารถสังเกตเห็นว่า LED สว่างขึ้น ในแอปพลิเคชันนี้โดยเฉพาะพวกเขาจะต้องกังวลเกี่ยวกับประเภทของตัวกรอง RC ที่ถูกสร้างขึ้น


ฉันคิดว่าพยายามปรับ RS232 ด้วยสัญญาณ hi freq ควบคู่กับแหล่งจ่ายไฟ 12V - ฉันเดาว่ามันสำคัญที่จะต้องแยกความจุของ PSU เพื่อที่จะไม่พยายามปรับระลอกคลื่นให้เรียบ
Peter Gibson

4

ฉันรู้ว่านี่ค่อนข้างด้ายเก่า แต่นี่เป็นเพนนี 2 อันของฉัน ...

ฉันยังไม่ได้ทำงานอะไรเลย แต่ดูที่การทำสิ่งที่คล้ายกันโดยใช้ Arduino + VirtualWire (ตั้งค่าอัตราการรับส่งข้อมูลที่ต่ำมาก) ดังที่ Adam Davis กล่าวไว้ข้างต้นคุณรับส่งข้อมูลของคุณจากสาย 12V ผ่านตัวเก็บประจุที่มีค่าต่ำ หมายความว่าคุณได้รับ 0V โดยมี spikes เล็กน้อยซึ่ง VirtualWire สามารถถอดรหัสได้ ข่าวดีเกี่ยวกับวิธีนี้คือในทางทฤษฎีอุปกรณ์ใด ๆ ในสาย 12V สามารถพูดคุยและสามารถรับได้ ฉันได้ทำงานนี้กับสายสามัญระหว่างอุปกรณ์ทั้งสองบนเขียงหั่นขนม แต่ไม่แน่ใจว่ามันจะทำงานในระยะทางหรือผ่านสายไฟจริง

หากการส่งสัญญาณมาจากที่เดียวกันเสมออาจใช้บางอย่างเช่นวิธี Hornby อาจดีกว่า - เช่น ให้เครื่องส่งสัญญาณสลับสายไฟระหว่าง + 12V และ -12V เพื่อสร้างสัญญาณ ตัวรับสัญญาณแต่ละตัวมีวงจรเรียงกระแสที่เชื่อมต่อกับสายไฟดังนั้นจึงได้รับ + ​​12V เสมอ คุณสามารถชีพจร + 12V ได้อย่างง่ายดายและให้แต่ละอุปกรณ์ใช้ตัวเก็บประจุขนาดใหญ่เพื่อทำให้การกระแทกราบรื่น วิธีใดวิธีหนึ่งเหล่านี้น่าเชื่อถือมากกว่านี้เพราะสัญญาณบนสายไฟจะแรงกว่าและถอดรหัสได้ง่ายกว่า (ฉันยังคงใช้ VirtualWire เพื่อคำนึงถึงคุณ แต่ UART ก็สามารถทำงานได้เช่นกัน)

สำหรับโครงการไฟ LED มีโอกาสดีที่คุณจะต้องเลื่อนแอมป์สองสามเส้นลงไปที่ 12V ซึ่งทำให้การสลับเปลี่ยนทำได้ยากขึ้นเล็กน้อยดังนั้นคุณอาจจะดีกว่าด้วยวิธี RF-over-capacitor อย่างไรก็ตามความสูงของหนามแหลมที่คุณได้รับจะลดลงค่อนข้างมากกับกระแสที่สูงขึ้นดังนั้นคุณอาจต้องขยายสัญญาณที่คุณเขียนลงบนเส้น (เช่นใช้ทรานซิสเตอร์ความถี่สูงหรือสองตัวเพื่อขยายสัญญาณ TTL เป็น 12V ก่อน ผลักมันผ่านตัวเก็บประจุไปยังสาย 12V)

ไม่ว่าจะด้วยวิธีใดสิ่งหนึ่งเช่น VirtualWire จะทำงานได้ดีกว่า UART (และอาจเป็น I2C เป็นต้น) เหตุผลคือใช้เฟสล็อกลูปเพื่อ 'ซิงค์' การส่งและการรับสัญญาณเข้าด้วยกันซึ่งหมายถึงอัตราส่วนสัญญาณต่อสัญญาณรบกวนที่สูงขึ้นและข้อผิดพลาดน้อยลง นั่นควรจะทำให้การให้อภัยฮาร์ดแวร์ที่น้อยกว่าที่สมบูรณ์แบบ ;-)


2

มีคำถามมากมายที่ฉันสามารถถามก่อนที่จะให้คำแนะนำใด ๆ ฉันเดาว่าสิ่งแรกที่เราพยายามเข้าใจคือเป้าหมายของคุณคืออะไรที่นี่ ต้นทุนการสร้างต่ำการสื่อสารที่ยาวนานจึงช่วยประหยัดการเดินสายไฟพิสูจน์แนวคิดหรืออย่างอื่น พวกเขาทั้งหมดจะมีคำแนะนำที่แตกต่างกัน ตัวอย่างเช่นหากคุณไม่กังวลเกี่ยวกับค่าใช้จ่ายบางทีอาจใช้โซลูชัน Zigbee หรือหากใช้งานนานแล้วจะเกิดปัญหากับการส่งผ่านสายเดี่ยวส่วนใหญ่และตอนนี้คุณต้องดูตัวเลือกอื่น ๆ ฉันเดาว่าสิ่งที่ทำให้ฉันกังวลมากที่สุดเกี่ยวกับคำถามของคุณคือคุณพูดว่า "ง่ายกว่าดีกว่า" สิ่งที่คุณถามเป็นไปได้ในบางสถานการณ์ แต่ฉันกล้าที่จะบอกว่ามันจะไม่ง่าย สาเหตุหลักมาจากปัญหาในโลกแห่งความเป็นจริงที่คุณจะพบเช่นการสูญเสียสัญญาณเสียงรบกวนและการจัดการปัจจุบัน

ขอให้โชคดี


ขอบคุณ - เป็นการดีที่ได้ทราบปัญหาที่อาจเกิดขึ้นที่ฉันอาจพบเจอ ฉันพยายามอธิบายความต้องการของฉันเล็กน้อยในโพสต์ด้านบน
Peter Gibson

2

คุณแน่ใจหรือไม่ว่าโซลูชัน USB บางประเภทใช้งานไม่ได้ คุณมีประมาณ 2-2.5 วัตต์

นี่คือความคิดอื่น ๆ สองประการ -

Power over ethernet (POE) รวมสัญญาณพลังงานและอีเธอร์เน็ต มีเซมิคอนดักเตอร์และตัวแปลง DC / DC ที่หลากหลายที่ออกแบบมาสำหรับอุปกรณ์เหล่านี้ นี่อาจเป็นตัวเลือกที่ดีที่สุดของคุณเนื่องจากมีชิ้นส่วนที่ไม่ได้วางจำหน่ายสำหรับสิ่งนี้

ฉันเชื่อว่า บริษัท ระบบอัตโนมัติในบ้านบางรายรวมสัญญาณไฟ AC และการสื่อสารเข้าด้วยกัน อาจมีบางอย่างที่ปรับได้

กลุ่มเสียงมีพลังของไมโครโฟน "phantom" 48VDC พร้อมเสียงผ่านสายไมโครโฟน


1
คุณจะต้องระมัดระวังด้วยการดึงพลังงานจาก USB เมื่อคุณเสียบอุปกรณ์เข้ากับพอร์ต USB เป็นครั้งแรกคุณจะได้รับ 100mA ที่ 5v = 0.5W อุปกรณ์ของคุณสามารถขอพลังงานเพิ่มเติมและรับ 500mA ที่ 5v = 2.5W คุณจะต้องแน่ใจว่าอุปกรณ์ของคุณไม่มีแรงดึงขนาดใหญ่เมื่อคุณเสียบเข้าไปครั้งแรก Wikipedia พูดถึงบิตเกี่ยวกับพลังงาน USB ในส่วน 'Power' ที่en.wikipedia.org/wiki/Universal_Serial_Bus#Power
Kellenjb

Kellenjb การแจงนับไม่เหมือนกับการขอพลังงานมากขึ้นฉันชอบคิดว่ามันเป็นการยืนยันว่าคุณเป็นอุปกรณ์อัจฉริยะ คนส่วนใหญ่ก็ลืมถ้าพวกเขากำลังมอบอุปกรณ์ให้กับคนอื่นมันอาจถูกเสียบเข้ากับฮับที่ไม่ได้ใช้พลังงานทำให้เกิดการดึงสูงสุด 100mA ไม่ว่าสถานการณ์จะเกิดขึ้นก็ตาม
Kortuk

1

X-10 โปรโตคอลไม่ตรงนี้

นอกจากนี้คำแนะนำข้างต้นบางอย่างอาจไม่ปลอดภัยหรือไม่สามารถใช้ในอุปกรณ์ที่ได้รับอนุมัติ (เครื่องหมาย UL / CE) ได้อย่างแน่นอน


1
ฉันสมมติว่า "สายไฟของแหล่งจ่ายไฟ" หมายถึงสายไฟฟ้าแรงต่ำ หากพวกเขาเป็นสายไฟ AC แล้วใช่คำตอบอื่น ๆ ส่วนใหญ่ไม่เหมาะสมโดยไม่คำนึงถึงสิ่งนี้
Adam Davis

2
X10 สันนิษฐานโดยการออกแบบสายไฟ AC และต้องการหม้อแปลงปรับเฉพาะ อย่าคิดว่ามันเหมาะกับส่วน "The Simple the Better" :-)
Axeman

0

มีเซมิคอนดักเตอร์โดยเฉพาะที่ได้รับ UART ไบต์และโอนผ่านสายไฟด้วยความเร็วสูงถึง 115.2Kbps อุปกรณ์นี้ออกแบบมาสำหรับยานยนต์จึงทนทานต่อเสียงรบกวน ดูhttp://yamar.com/product/sig60/



-2

มันทำในระบบโทรศัพท์ อย่างที่คุณทราบในโทรศัพท์เรามีพลังเสียงและการโทรและเสียงในระบบสองสาย คุณสามารถส่งคำสั่งของคุณผ่านสายไฟโดยการสร้างเสียง (เช่นการโทรด้วยเสียงในโทรศัพท์ทั่วไป) วงจรรวม (IC) สำหรับแอปพลิเคชันนี้เป็นที่นิยมใช้กันทั่วไปและมีราคาถูกมาก

ฉันทำโครงการแบบนี้เพื่อควบคุมวาล์วน้ำในโรงงานขนาดใหญ่ในอิหร่าน (สูงสุด 99 วาล์ว) ฉันสามารถเพิ่มบล็อกไดอะแกรมของวงจรถอดรหัสของฉันถ้าคุณคิดว่ามันอาจมีประโยชน์


2
นี่ไม่ได้ตอบคำถาม
Null

Saeed เมื่อตอบคำถามเก่า (2010) เป็นเรื่องปกติที่จะให้การสนับสนุนที่สำคัญโดยเฉพาะเมื่อมีคำตอบที่ดีอยู่แล้ว และโปรดอย่าเสนอการแลกเปลี่ยนข้อมูลส่วนตัวเนื่องจากคำตอบน่าจะมีประโยชน์สำหรับทุกคนที่เรียกดูที่นี่
clabacchio
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.