Saya ingin dapat membuat daisy rantai beberapa perangkat hanya menggunakan kabel catu daya dan kemudian menyuntikkan sinyal komunikasi melalui saluran listrik untuk mengubahnya menjadi jaringan setengah dupleks.
Apakah ada metode umum untuk mencapai ini? Semakin sederhana semakin baik dan akan lebih bagus jika menggunakan UART pada mikrokontroler.
Sunting: Sebenarnya ada dua proyek yang sedang saya kerjakan yang saya pikir akan mendapat manfaat dari ini - satu adalah jaringan sensor daya rendah. Yang lainnya adalah proyek pencahayaan LED. Dalam kedua kasus tujuannya adalah untuk menyederhanakan kabel, tetapi jika solusinya terlalu kompleks maka mungkin lebih masuk akal untuk menggunakan tiga kabel (pwr, gnd, comms).
communication
uart
power-line-communication
Peter Gibson
sumber
sumber
Jawaban:
Sudahkah Anda melihat protokol Dallas 1-Wire ? Ini benar-benar kecepatan rendah dan jika perangkat Anda mengambil arus yang relatif sedikit maka Anda bisa lolos dengan menggunakan daya parasit dan daya perangkat dengan jalur data.
sumber
Anda pada dasarnya perlu mendorong sinyal AC ke saluran listrik DC, dan memisahkannya lagi. Ini biasa terjadi di rumah dengan antena TV - power amplifier diletakkan di dekat antena, dan daya DC didorong ke atas kabel antena saat sinyal TV turun dari kabel antena.
Anda tidak memberikan detail yang cukup untuk contoh sirkuit, tetapi inilah dasar-dasarnya:
Sumber daya harus memiliki induktor secara seri pergi ke output untuk memblokir sinyal frekuensi tinggi yang masuk ke catu daya dan mungkin menyebabkan masalah regulasi.
Input daya setiap unit juga harus dilindungi dengan induktor untuk menyaring sinyal AC. Mengumpankannya ke dalam dioda dan kapasitor akan memastikan sinyal AC tidak membahayakan daya modul Anda.
Sebelum ke induktor, Anda juga akan memasang kapasitor. Mungkin nilai yang rendah sehingga sebagian besar sinyal AC di saluran melewati kapasitor, tetapi tidak ada DC yang mau.
Output kapasitor ini MUNGKIN dapat digunakan langsung ke dalam mikrokontroler (dengan penjepit dioda) jika Anda memiliki keterampilan untuk mengimplementasikan perangkat lunak yang diperlukan untuk membaca data yang sekarang dimutilasi dari telepon. Anda juga dapat mengirim pulsa langsung ke kapasitor dengan pin I / O.
Lihatlah seperti apa ruang lingkup - gelombang persegi yang masuk ke kapasitor akan terlihat seperti lonjakan yang membusuk pada saluran listrik. Ketika keluar kapasitor lain di jaringan itu akan lebih jauh berubah - hanya lonjakan di telepon.
Membaca paku-paku ini bisa sulit, dan menyaring kebisingan bisa sulit, jadi jika Anda menjalankan jalur yang panjang, memiliki catu daya yang bising, atau menjalankan jalur di dekat sumber kebisingan lainnya maka Anda harus menerapkan pemrosesan sinyal yang signifikan. Biasanya ini berupa AM (ASK - Amplifing Shift Keying) atau FM (FSK - Frequency Shifting Keying) di telepon, dengan slicers data, pembanding, generator nada dan detektor, dll. Atau pemrosesan yang setara dalam perangkat lunak.
Ini mungkin tampak seperti banyak pekerjaan, tetapi mulailah dengan detektor pulsa sederhana di sisi penerima dan mengirim gelombang persegi saat transmisi. Gunakan osiloskop untuk memahami apa yang terjadi, dan jika Anda membutuhkan solusi yang lebih kompleks, tanyakan lagi tentang deteksi ASK atau FSK.
Detektor denyut nadi bisa berupa perangkat lunak sederhana yang menginterupsi pin input perubahan, atau 555 yang diatur sebagai pengatur denyut nadi.
sumber
Saya telah membangun sesuatu seperti ini untuk sistem pengendali kereta api (kereta model, tentu saja).
Itu adalah protokol kecepatan rendah monodirectional (satu entitas mengirim data, yang lainnya hanya penerima) dan transmisi dilakukan dengan hanya membalik polaritas rel.
Pada setiap "klien" ada rangkaian sederhana yang dilakukan dengan pic (16C54, tahun yang lalu!), Sebuah penyearah dan beberapa saklar dip untuk mengatur alamat.
Saya tidak memiliki kode sumber lagi, tetapi sistemnya sangat mudah, dan bekerja tanpa cacat selama bertahun-tahun, memungkinkan kontrol yang mudah dari setiap lokomotif tunggal, penghalang muatan rel, semaphore, dll. Dari panel kontrol utama tanpa kabel tambahan.
sumber
Saya akan merekomendasikan untuk memikirkannya sebagai sinyal bahwa Anda menambah dan menghapus DC Offset. Anda dapat menggunakan kapasitor untuk memblokir DC dengan menempatkannya secara seri dengan rangkaian Anda.
Selain itu, sulit untuk mengatakan apa yang perlu Anda lakukan karena itu akan tergantung pada aplikasi Anda. Anda mungkin perlu menggunakan opamp untuk memisahkan kapasitor kopling Anda dari apa yang pernah menerima sinyal Anda. Jika tegangan offset DC Anda besar dibandingkan dengan tegangan sinyal Anda, Anda bahkan mungkin tidak perlu melakukan pengkondisian daya untuk menghilangkan riak, ini semua tergantung pada aplikasi Anda.
Saya memiliki sepasang speaker yang menggunakan teknik yang sama untuk menyalakan LED daya pada speaker sekunder. Jika saya memutar volume cukup keras saya benar-benar dapat melihat LED menjadi lebih cerah. Dalam aplikasi khusus ini mereka perlu khawatir tentang jenis filter RC apa yang sedang dibuat.
sumber
Saya tahu ini adalah utas yang cukup lama, tapi ini nilai 2 pence saya ...
Saya belum mendapatkan apa pun yang berfungsi, tetapi sedang melihat melakukan sesuatu yang serupa menggunakan Arduino + VirtualWire (ditetapkan pada baud rate yang sangat rendah). Seperti yang dikatakan Adam Davis di atas, Anda mengirim / menerima data Anda dari jalur 12V melalui kapasitor bernilai rendah. Ini berarti Anda pada dasarnya mendapatkan 0V dengan sedikit paku di atasnya, yang VirtualWire dapat (mungkin) memecahkan kode. Kabar baiknya tentang metode ini adalah bahwa secara teori setiap perangkat di jalur 12V dapat berbicara, dan siapa pun dapat menerima. Saya sudah menggunakan ini dengan sedikit kawat biasa antara dua perangkat di papan tempat memotong roti, tetapi tidak yakin apakah itu akan bekerja jarak jauh, atau melalui kabel listrik yang sebenarnya.
Jika transmisi selalu dari tempat yang sama, maka mungkin menggunakan sesuatu seperti metode Hornby mungkin lebih baik - yaitu. minta pemancar mengganti saluran listrik antara + 12V dan -12V untuk membuat sinyal. Setiap penerima memiliki penyearah pada koneksi ke saluran listrik, sehingga selalu mendapat pasokan + 12V. Anda bisa dibilang cukup pulsa + 12V, dan minta setiap perangkat menggunakan kapasitor besar untuk menghaluskan gundukan. Salah satu dari metode ini mungkin lebih dapat diandalkan karena sinyal pada saluran listrik akan jauh lebih kuat dan karenanya lebih mudah untuk memecahkan kode (saya masih menggunakan VirtualWire untuk melakukannya, tetapi UART dapat bekerja juga).
Untuk proyek pencahayaan LED, ada peluang bagus Anda harus menggeser beberapa amp ke garis 12V. Itu membuatnya lebih sulit, sehingga Anda mungkin lebih baik dengan metode RF-over-kapasitor. Namun, ketinggian paku yang Anda terima akan berkurang cukup besar dengan arus yang lebih tinggi, sehingga Anda mungkin perlu memperkuat sinyal yang Anda tulis ke saluran (mis. Gunakan transistor frekuensi tinggi atau dua untuk 'memperkuat' sinyal TTL ke 12V sebelum mendorongnya melalui kapasitor ke jalur 12V).
Either way, sesuatu seperti VirtualWire hampir selalu akan bekerja lebih baik daripada UART (dan mungkin I2C dll). Alasannya adalah karena menggunakan loop terkunci fase untuk 'menyinkronkan' transmisi dan penerimaan bersama-sama, yang berarti rasio sinyal terhadap noise yang lebih tinggi dan lebih sedikit kesalahan. Itu seharusnya membuatnya sedikit lebih memaafkan perangkat keras yang kurang sempurna ;-)
sumber
Ada banyak pertanyaan yang bisa saya tanyakan sebelum memberikan saran. Saya kira hal pertama yang harus kita pahami adalah, apa tujuan Anda di sini? Biaya membangun rendah, komunikasi lama berjalan sehingga menghemat kabel, bukti konsep atau sesuatu yang lain. Mereka semua akan mendapat rekomendasi berbeda. Misalnya jika Anda tidak khawatir tentang biaya maka mungkin pergi dengan solusi Zigbee atau jika berjalan lama maka itu menciptakan masalah dengan sebagian besar transmisi kawat tunggal dan sekarang Anda perlu melihat opsi lain. Saya kira hal yang paling membuat saya khawatir tentang pertanyaan Anda adalah bahwa Anda mengatakan "semakin sederhana semakin baik". Apa yang Anda tanyakan adalah mungkin dalam beberapa situasi, tetapi saya berani mengatakan itu tidak akan sederhana. Terutama karena masalah dunia nyata yang akan Anda temui, seperti kehilangan sinyal, kebisingan dan manajemen saat ini.
Semoga berhasil.
sumber
Apakah Anda yakin semacam solusi USB tidak bisa diterapkan? Anda memiliki sekitar 2-2.5W tersedia.
Berikut adalah beberapa ide lain -
Power over ethernet (POE) mengintegrasikan sinyal daya dan ethernet. Ada berbagai semikonduktor dan konverter DC / DC yang dirancang untuk perangkat ini. Ini mungkin pilihan terbaik Anda karena ada bagian yang tidak tersedia untuk ini.
Saya percaya beberapa perusahaan otomasi rumah mengintegrasikan daya AC dan sinyal komunikasi. Mungkin beberapa di antaranya mudah beradaptasi.
Orang-orang audio memiliki "hantu" menyalakan mikrofon. 48VDC plus audio melalui kabel mikrofon.
sumber
The X-10 protokol tidak tepat ini.
Juga beberapa saran di atas tidak aman atau pasti tidak dapat digunakan di perangkat yang disetujui (UL / CE).
sumber
Ada besarbesaran semikonduktor khusus yang mendapatkan byte UART dan mentransfernya melalui saluran listrik dengan kecepatan hingga 115.2Kbps. Perangkat ini dirancang untuk otomotif sehingga kuat untuk kebisingan. Lihat http://yamar.com/product/sig60/
sumber
Periksa ini:
Dan utas tempat saya mengambil informasi itu (pertanyaan yang sama seperti Anda).
sumber
Ini dilakukan dalam sistem telepon. Seperti yang Anda ketahui di telepon, kami memiliki kekuatan dan panggilan nada dan suara dalam sistem dua kawat. Anda dapat mengirim perintah melalui saluran listrik dengan menghasilkan nada (seperti panggilan nada pada telepon biasa) sirkuit terpadu (Ic) untuk aplikasi ini biasa digunakan dan karenanya sangat murah.
Saya melakukan proyek seperti ini untuk mengendalikan katup air di pabrik besar di Iran (hingga 99 katup). Saya dapat menambahkan diagram blok sirkuit coder decoder saya jika Anda pikir ini mungkin berguna.
sumber