Propojeni 16ti ATMELu

Zdravim vas, premyslim uz nejakou dobu, o vzajemne komunikaci na rodinnem dome.
vize je takova:
Hlavni MCU v nem ridici program, propojeny do PC, a k nemu dalsi podporne MCU>>>
MCU> snimac tlacitek,
MCU> spinac zarovek,
MCU> vetrani na koupelnach + WC
MCU> mereni ve studni vody
MCU> kotelna, snima teploty a zasahuje do ventillu
MCU> garaz, ridi svetla a vrata doraz vrat dalkove prijima a resi vse v garazi
MCU> sauna, ridi dle teploty a zapina ci vypina saunovani, dava vedet o pripravene saune, teploty zobrazuje lokalne na velkem displeji
MCU> zahrada, spina svetylka a fontanky, dle programu
atd… atd… vcelku maximum 16 podrizenych MCU
Je jedno co tam na tech lokalnich MCU jede. Hlavni je ze potrebuju aby kazdy komunikoval obousmerne s hlavnim modulem, ten chci pripojit na PC a vizualizaci udelat pohodove ovladani a prehled co se kde delo a deje.

Napadlo me nejakou RS linkou, mozna bych i unesl ze bude vse v serii, ale pokud se ve studni s cipem neco stane cely system komunikace zhavaruje, coz nechci.
Pak me napadlo multiplexovat seriovou linku, v coz mam zatim nejvetsi predpoklady, ale bojim se pri prepinani, ruznych ruseni a nasledneho reseni problemu s komunikaci. Problem je ze studna 50m, sauna 35m a tak, takze nejake multiprocesorve 1Mbit prenosy nepripadaji v uvahu, staci mi jen rychlost treba 1200bd bohate…

Delal tady nekdo neco podobneho ? jake jsou moznosti pri takovych propojenich ? vubec se to nikde moc nepise, tak me napada jak potom takovy system resit.
Diky za napady a budu rad za pouceni ci nahled nad veci.
Karlos

Je to velmi jednoduche.

Ku kazdemnu procesoru (RX a TX) pripoj SP485 alebo 75176, alebo MAX485 ci volaco podobneho co mas. Tak transformujes RS232-TTL na RS485. Ak chce procesor vysielat, prepne smer budica RS485 a cez TX normalne vysiela co chce. Ak “nacuva”, data mu normalne chodia cez jeho RX. RS485 je velmi odolna linka urcena do priemyslu a je urcena na prenasanie udajov do vzdialenosti 1200m, s vhodnymi svabmi i viac poloduplexnou prevadzkou. Na jednej dvojlinke moze byt zavesenych vyse 30 stanic, staci Ti vsetky prepojit jednou krutenou dvojlinkou. Ak na prepojenie pouzijes FTP kabel, zvysne pary mozes pouzit na napajanie zvysnych zariadeni. Ak Ti nejaka stanica “lahne”, nie je dovod, aby Ti lahla cela siet. Daj do googlu RS485 a najdes kopec doporuceni.

Martin

To se mi zda velmi pekne reseni, ja uz kabely UTP klasicke mam natahane, po celem dome pri prestavbe elektriky, natahal jsem jich opravdu hodne a to 5 beden po 305m. takze s kabelama problem neni, ted jen toto dotahnout a promyslet, kazdopadne jsem tahal kabely do hvezdy tak jako u pocitacove site, teda kazda periferka(bod) ma svuj kabel k MASTER. nevim jak toto ma v tomto pripade vyhodu, ale zrejme by to vadit nemelo to vse spojit do serie v tomto bode v hlavnim MASTER bode.

Vadit to podla mojich skusenosti na take male vzdialenosti nebude.
Podla normy ma vsak byt linka RS485 liniova, kvoli odrazom na viacerych koncoch kabla. Ak je linka v liniovom zapojeni, ptreba dat na konce 120R odpor kvoli impedancmenu prisposobeniu. Vo Vasom pripade to overite tak, ze z Mastra vysielajte same 0xAA - to je v podstate obdlznikovy signal 1:1. Potom na koncoch pozrite tvar signalu. Ak by ste mali niekde zakmity, tak tam dajte ten zakoncovaci odpor. Klesne sice trochu ampituda signalu, ale jeho tvar sa zlepsi. UARTy su aj tak citlive na tvar signalu v strede bitu. S 9600Bd to bude predpokladam uspecne i bez tych zakoncovacich odporov. S nimi sa stava siet i odolnejsia voci ruseniu. Nezabudnite tietenie spojit s GND iba v jednom bode a ak vo viacerych, tak aspon cez odpor cca 100R. Pri programovani protokolu (doporucujem ASCII, je to zdanlivo dlhsia komunikacia, ale dobre sa testuje a odladuje, hlavne zaciatok a koniec spravy) - neviem, ci mate nejaky vybrany - je dobre pouzit kasicku strukturu:

z MASTRA

uvodny znak - pre identifikaci uzaciatku protokolu
adresa - s ktorou stanicou sa chcete bavit - vyuzit vlaastnosti niektorych
UARTov, ze poznaju prvy bajt podla parity nie je moc vhodne,
lebo PC to nevie.
subadresa - odkial zo/do stanice chcete data
pocet - kolko bajtov sa bude v sprave prenasat
prikaz - read/write
- len ak do stanice zapisujete
ochrana spravy - minimalne 2B kontrolna suma, lepsie je CRC
koncovy znak - pre identifikaciu, kedy je treba protokol spracovat.

od SLAVE

uvodny znak - pre identifikaci uzaciatku protokolu, moze byt iny ako od
MASTRA, tak sa lahko identifikuje smer vysiealnia a ine
stanice na spravu nebudu reagovat
adresa - ktora stanica odpoveda - pre kontrolu
status1 - nejake bitiky, ktore sa do Mastra prenesu vzdy a na zaklade
ktorych vie identifikovat v rychlsoti, ci je v stanici vsetko v
poriadku
status2 - nejake bitiky
status3 - nekaje bitiky
- len ak zo stanice cita
ochrana spravy - minimalne 2B kontrolna suma, lepsie je 2B CRC
koncovy znak - pre identifikaciu, kedy je treba protokol spracovat (0x0d).

Celkom vyhovujuci je MODBUS, popis najdete na nete.
RS485 nie je stavana ako multimastova zbernica, aj ked sa da simulovat vseliakymi fintami typu TokenRing. Urcite zistite, ze oslovovanie stanic kol dokola a zistovanie ich stavu mastrom, napriklad aj havarijneho je najjednoduchsie a v podstate pre PC s Win aj najrychlejsie a bez specializovaneho hw a sw asi jednine pouzitelne riesenie (MASTER-SLAVE).

Martin

V takomto prípade, keď je kabeláž hotová, elegantné riešenie by bolo použiť ethernet, napríklad Microchip ENC28J60 na strane jednotlivých zariadení, pri PC to spojiť cez switch, takto by vznikla malá LAN. Galvanické oddelenie zabezpečia ethernet transformátory.

dloop

To už by bylo snad až zbytečně složité. Pokud se UTPčka použijí jen pro vedení sériového signálu, tak navíc zbylé vodiče (jak už Martin psal) mohou sloužit jako napájení a není tak nutné aby každé zařízení mělo vlastní trafo v zásuvce.
Jistě, existuje Power over Ethernet, ale to už by bylo nejen hodně složité, ale i hodně drahé…

Čekal jsem, že někdo hned příjde s notoricky známou RS485, ale co takhle udělat bezdrátovou síť. Třeba bluetooth. Nějaké moduly najdeš třeba na macroweil.cz/2007/souc-bezdratova-komunikace.php#
nebo na artbrno.cz/index_cz.php
Není to zrovna to nejlevnější, ale o to zajímavější. Nakonec si ušetříš spoustu práce s protahováním kabelů, sekáním do zdí atd. a galvanické oddělení je tu na 100%. Také pozdější začlenění dalších čidel do sítě je bezproblémové.

Karlos ozvete si mi na mcu555 (zavináč) seznam.cz delam na necem podobnem.

:arrow_right: administrator: příspěvek byl upraven
(z důvodu vaší ochrany před SPAMem jsem upravil zápis emailu)