fyzicku vrstvu by som dal jednoznacne rs485...alebo rs422. Ta dokaze fungovat celkom rychlo a spolahlivo aj na dlhsom kabli. Protokol si bud vymyslite vlastny, alebo mozete pouzit aj nieco existujuce...v tomto nemam az taky prehlad
pipa, 1.2.2008 08:53:40
co použít optickej kabel ?
To vcelku chapu, ze RS bude dobre. To tak asi nakonec udelam, resim ale to ze neni MCU ktere ma tolik portu... jak to vlastne fyzicky propojit o to me jde, program pokud by to zjednodusilo budu rad, ale uz ted je jiste ze nebude snadne se se vsemi bez kolizne domluvit.
Lukaso, 1.2.2008 11:39:00
Na RS485 by měl jít použít např. obvod SN75176. V jeho katalogovém listu (
http://focus.ti.com/lit/ds/symlink/sn75176a.pdf ) na straně 12 je ukázka spojení až 32 transceiverů. Ty by mohli být připojeny na seriový kanál a jeden řídící bit (ovládající směr kamunikace) každého z procesorů s tím že jeden by byl MASTER a řídil by komunikaci všech ostatních procesorů SLAVE. Byla by využita multiprocesorová komunikace. Pokud by vyslal 9bitů (adresní mód) a data by se shodovala s adresou daného procesoru, "dal by mu tím slovo" ke zpětné komunikaci. Ve výsledku by protokol byl rozšířen o řídící bajt, který by např. určoval co se má odeslat. Toto je spíše teoretické a zatím v praxi neověřné, jen návrh.
nechapem otazku...."To tak asi nakonec udelam, resim ale to ze neni MCU ktere ma tolik portu." Ved vsetky jednotky by boli predsa "paralelne" na tej istej linke. Najjednoduchsim riesenim je master-slave, kde PC by bol master a by dookola osahaval vsetky slave jednotky po celom dome. Horsie je to uz, ked bude treba aby slave na zaklade nejakej udalosti potreboval okamzite poslat do PC paket...tam uz je treba riesit moznu koliziu...
To s tim obvodem 75176 se mi docela libi.
Takze jestli to dobre chapu. jedna se o 422 linku, vlastne proudovou smycku po dvou kabelech, s tim ze ridim smer POSILAM / PRIJIMAM.
V pripade ze master chce poslat na adresu nekteremu MCU prepne si linku na VYSILANI, naadresuje si kdo to ma prijmout, ODESLE. Prijmou to vsichni predpokladam soucasne, ale jen ten ktery ma spravnou adresu si to pobere, pocka, PREPNE si linku a odesle do proudove smycky zpatky sva data.
S tim devitibitovym adresovanm jsem to nekde cetl, jeste jsem to nikdy takto ale nedelal.
ASD, 1.2.2008 15:47:26
Nápad: UTP kabel, 3 páry napájení 24VDC, 1 pár RS485, každé zařízení 4xTransil+LM2574+MAX485+ATMega8/ATMega16, interface do počítače FT232RL, spínač SSR, teplota DS18B20. 9-ti bitový protokol je výhodný, ale nekompatibilní, třeba PC ani FT232 ho neumí, lze to řešit s ATMega162 (má dva USARTy) jako překladač komunikace nebo samozřejmě přejít na 8-bitový protokol, ten funguje vždy a všude. Pokud má být jeden MCU natvrdo jako řídící a ostatní jako podřízené, pak je komunikace triviální, prostě slave čekají, dokud se jich Master nezeptá. RS485 je taktéž triviální, prostě defaultně všichni poslouchají a ten, kdo chce vysílat, si pinem procesoru zapne vysílání, odvysílá a pak se zase přepne na příjem. FT232 má na tohle speciální pin asi TXEN. Myslím, že celkově je to jednoduchá úloha a směle se do ní může pustit i začátečník, i když to bude dost časově náročné.
ASD, 1.2.2008 15:54:15
Ještě jsem si vzpoměl: Jednotlivé MAX485 připojíš na jeden UTP pár samozřejmě paralelně, na konci obou koncích vedení dáš odpor 120 ohmu a libovolně na vedení dáš na v klidu kladný vodič (A) odpor 680 ohmu na +5 a na v klidu záporný vodič (B) odpor 680 ohmu na zem. To vše kvůli odrazům a rušení.
MAX485 má samozřejme spoustu ekvivalentů, třeba TLC485 nebo SN75176.
Vyborne takto se mi to pozdava, prakticky trvale budu volat jednotlive SLAVE, a oni jen potvrzovat, jsem tu...
Jakmile budu potrebovat zasahnout ci neco precist datazu se jinym slovem, a on mi jen vrati co jsem potreboval.
9ti bitove volani je slusne co se tyka absolutni detekce volani, neco jako vsichni pozor volam, ostatni jiz pak nikdo neakceptuje, Nikdy jsem s tim ale nedelal. Tak se spis nechci do toho poustet z tohoto neznama. Jinak se to myslim da resit necim jako 3x po sobe FF. je to prakticky totozne, A zadne mnozstvi dat tam nepotece nikdy. Pustim to do toho 75176 (zda se mi malicky) a po dvou vodicich do proudove smycky pro vsechny. To se mi zda pouzitelne. nechci ale videt to jadro k minimalni komunikaci tohoto vseho, to bude docela beh na dlouhe trati myslim.
Lukaso, 1.2.2008 16:52:48
ASD: "9-ti bitový protokol je výhodný, ale nekompatibilní, třeba PC ani FT232 ho neumí" v jedné knize jsem viděl řešení 9-bitů způsobem vysílání paritního(devátého) bitu, který je buď nastaven nebo shozen, podle toho, zda to jsou data, nebo adresa. Ovšem ani toto nemám odzkoušené v praxi. Jinak by bylo ideální použít na MASTER procesor s dvěma seriovými kanály, jeden pro sběrnici, který by neustále četl stavy ostatních procesorů a případně na ně reagoval a druhý pro komunikaci s PC.
ASD, 4.2.2008 12:56:41
> Ovšem ani toto nemám odzkoušené v praxi.
Já to odzkoušené v praxi mám, jedná se o přepínání paritního bitu na MARK a SPACE a to nelze považovat za spolehlivé řešení, prostě to na PC nefunguje dobře z důvodu časování. Pokud to někdo umí líp, rád se to dozvím.
Jak už jsem psal, pokud chcete 9-bitový protokol, pořiďte si cokoliv, co má dva UARTy, třeba ATMega162 a ten bude komunikaci překládat 8-bit <-> 9-bit.