Kommunikation mellan kretsar. Val av överföring?
Kommunikation mellan kretsar. Val av överföring?
Hallå.
Jag har ett par fönsterlampor där styrningen ska göras om (egengjord från början) och jag ska även bygga ut min RGB-belysning till ett närliggande skåp. De två delarna ska vara separata och kunna styras för sig och med en tredje krets som tar emot signaler från nätverk/nexa-fjärr/skymminingsaktivering.
De nya RGB lamporna i skåpet (vitrin med frostat glas) ska stängas av och ersättas av spot när dörren öppnas men jag vill att färgen i övrigt ska vara syncad.
Båda ljuskorten kommer dock att vara mer eller mindre identiska då jag tänkte försöka göra någon "massproducerbar" lösning. Som styrning hade jag tänkt mig ATMega88 med arduino-bootloader.
Den tredje enheten är för att styra belysningen. Förmodligen med en knapp och mottagning av nexa/waveman-signaler.
Problemet är inte hur jag ska konstruera dessa tre kort med sina olika funktioner utan vad jag ska välja som kommunikation emellan för att det ska bli hyfsat störokänsligt och expanderbart? Eftersom jag har hållit på lite med DMX tänkte jag först att jag skulle använda RS485 men jag vill ha tvåvägs-kommunikation så det blir fyra trådar för kommunikationen. Problemet är att jag inte kan koppla in fler (än två) enheter på samma fyra trådar.
Min fråga är: Finns det något bättre sätt/lösning för att få det mer expanderbart?
Om man använder RS485 är det då smidigare med full eller halv duplex?
Kraven jag har är att det är det inte kostar för mycket i plats eller pengar.
Jag har ett par fönsterlampor där styrningen ska göras om (egengjord från början) och jag ska även bygga ut min RGB-belysning till ett närliggande skåp. De två delarna ska vara separata och kunna styras för sig och med en tredje krets som tar emot signaler från nätverk/nexa-fjärr/skymminingsaktivering.
De nya RGB lamporna i skåpet (vitrin med frostat glas) ska stängas av och ersättas av spot när dörren öppnas men jag vill att färgen i övrigt ska vara syncad.
Båda ljuskorten kommer dock att vara mer eller mindre identiska då jag tänkte försöka göra någon "massproducerbar" lösning. Som styrning hade jag tänkt mig ATMega88 med arduino-bootloader.
Den tredje enheten är för att styra belysningen. Förmodligen med en knapp och mottagning av nexa/waveman-signaler.
Problemet är inte hur jag ska konstruera dessa tre kort med sina olika funktioner utan vad jag ska välja som kommunikation emellan för att det ska bli hyfsat störokänsligt och expanderbart? Eftersom jag har hållit på lite med DMX tänkte jag först att jag skulle använda RS485 men jag vill ha tvåvägs-kommunikation så det blir fyra trådar för kommunikationen. Problemet är att jag inte kan koppla in fler (än två) enheter på samma fyra trådar.
Min fråga är: Finns det något bättre sätt/lösning för att få det mer expanderbart?
Om man använder RS485 är det då smidigare med full eller halv duplex?
Kraven jag har är att det är det inte kostar för mycket i plats eller pengar.
RS485 it is. Blir att rita om designen lite då.
Är det någon som har koll på något färdigt fungerande protokoll? Jag kan sätta mig och knåpa ihop ett men finns det något färdigt är det att föredra.
Kommer inte ihåg om det var RS485 inblandat men såg någonstans i projektdelen ett projekt för husstyrning med massa noder och som gjorde olika saker. Sökte lite men gav upp. Tror hjärnorna gick chalmers eller LTH men är inte säker.
Är det någon som har koll på något färdigt fungerande protokoll? Jag kan sätta mig och knåpa ihop ett men finns det något färdigt är det att föredra.
Kommer inte ihåg om det var RS485 inblandat men såg någonstans i projektdelen ett projekt för husstyrning med massa noder och som gjorde olika saker. Sökte lite men gav upp. Tror hjärnorna gick chalmers eller LTH men är inte säker.
RS485:
2-Tråd Halv duplex Multipoint.
4-Tråd Full duplex Multipoint.
Dock kan det bara finnas en Master.
RS422 är elektriskt samma, dock kan den inte hantera multipoint, bara Mulltidrop, dvs en sändare, flera mottagare.
Den största skillnaden ligger i att sändarna i RS 485 normalt är avstängda, och sätts på vid sändning, medans sändarna i RS 422 alltid är påslagna.
I och med detta kan i princip RS422 bara sända och ta emot från 2 punkter (P2P) medans RS485 kan hantera sann multipoint, dvs ett antal sändare och mottagare på bussen. (antalet beror naturligtvis på lastimpendansen)
I RS422 använder man 4 trådar (2 par), där paren går sändare till mottagare och vice versa, eftersom datariktningen är bestämd på paren så kan det i princip bara finnas två enheter på bussen, (man kan dock ha flera mottagere i rep riktning. (Multidrop)
RS485 i 2-tråd(halvduplex) är fullständigt bidirektionell, och sändare resp mottagare är kopplade på samma fysiska par, vilket innebär att samtliga enheter kan skicka och ta emot data från varandra (Multipoint).
Vid RS485 Full duplex är den dock inte sann Multipoint, då slavarnas sändare ligger på ena paret, kopplade till masterns mottagare och Masterns sändare ligger på andra paret kopplade till slavarnas mottagare.
Detta innebär då att Mastern kan sända till och ta emot från alla slavar, medans slavarna endast kan sända till och ta emot från mastern.
2-Tråd Halv duplex Multipoint.
4-Tråd Full duplex Multipoint.
Dock kan det bara finnas en Master.
RS422 är elektriskt samma, dock kan den inte hantera multipoint, bara Mulltidrop, dvs en sändare, flera mottagare.
Den största skillnaden ligger i att sändarna i RS 485 normalt är avstängda, och sätts på vid sändning, medans sändarna i RS 422 alltid är påslagna.
I och med detta kan i princip RS422 bara sända och ta emot från 2 punkter (P2P) medans RS485 kan hantera sann multipoint, dvs ett antal sändare och mottagare på bussen. (antalet beror naturligtvis på lastimpendansen)
I RS422 använder man 4 trådar (2 par), där paren går sändare till mottagare och vice versa, eftersom datariktningen är bestämd på paren så kan det i princip bara finnas två enheter på bussen, (man kan dock ha flera mottagere i rep riktning. (Multidrop)
RS485 i 2-tråd(halvduplex) är fullständigt bidirektionell, och sändare resp mottagare är kopplade på samma fysiska par, vilket innebär att samtliga enheter kan skicka och ta emot data från varandra (Multipoint).
Vid RS485 Full duplex är den dock inte sann Multipoint, då slavarnas sändare ligger på ena paret, kopplade till masterns mottagare och Masterns sändare ligger på andra paret kopplade till slavarnas mottagare.
Detta innebär då att Mastern kan sända till och ta emot från alla slavar, medans slavarna endast kan sända till och ta emot från mastern.
Jag tror mig ha koll på de olika RS-standarderna nu. Det blir förmodligen RS485 med obestämt protokoll. Jag är lite osäker på vad jag ska använda som kontakt. Nu har jag ett modularjack uppritat där både signal och ström kommer in men även det är subjekt för förändring.
Tanken bakom det är att jag vill minimera antalet kablar till och från mina kretsar.
Icecap:
Har du namnet någon drivkrets som stänger av sig automatiskt i huvudet? (Annars kan jag leta själv)
Kastar med en länk till schemat: http://netile.se/projects/files_files/main.pdf
Det är ett utkast gjort innan jag startade tråden.
Men kom gärna med kommentarer.
Tanken bakom det är att jag vill minimera antalet kablar till och från mina kretsar.
Icecap:
Har du namnet någon drivkrets som stänger av sig automatiskt i huvudet? (Annars kan jag leta själv)
Kastar med en länk till schemat: http://netile.se/projects/files_files/main.pdf
Det är ett utkast gjort innan jag startade tråden.
Men kom gärna med kommentarer.
Inte riktigt, Enligt standarden, kan ej sändarna på RS422 stängas av, varvid det är omöjligt att använda fler än en sändare på samma par, vilket i sin tur gör multipoint omöjligt.Icecap skrev:RS485 i full duplex är RS422, så enkelt är det.
Ska fler sändare samsas om samma datalina måste de inaktiva stängas av, detta kan göras på olika sätt, en del drivkretsar har denna funktion inbyggd.
RS485 sändarna skall alltid stängas av, vilket i sin tur möjliggör multipoint.
Comparing EIA-485 and EIA-422-A
Selecting and Using RS-232, RS-422, and RS-485 Serial Data Standards
Comparing Bus Solutions
422 and 485 Standards Overview and System Configurations
Oftast är det processorn med en utgång som styr om utgången skall vara högimpediv (lyssnande läge) eller drivande (pratar)och styr detta i samband med sin protokoll.
i sådana sammanhang får bara en utgång i taget 'prata', annars blir det krock och korrupt data. RS485 är som tur var designade att inte gå sönder om flera utgångar skulle prata samtidigt, så i det avseendet behöver man inte var rädd i sin utvecklingsfas.
har man inte en extra utgång för detta så får man lösa det med någon monostabil vippa på tex. UART-utgången och trigga på en nedåtgående flank och offra en byte data som väckning och sedan välja en tidskonstant på monostabila vippan att den inte går tillbaka inom ett par bytes tid efter sista omslaget med den baudrate man kör - givetvis måste slaven vänta ut den tiden + marginal innan den kan börja prat i sin tur.
med andra ord är det mycket enklare att processorn i sitt kommunikationsprotokoll styr enablepinnen på RS485-kretsens utgång.
---
skall man klara av att inte låsa hela nätet när en slav/master hänger sig av någon anledning och håller utgången aktiv hela tiden så får man börja tänka till lite extra...
i sådana sammanhang får bara en utgång i taget 'prata', annars blir det krock och korrupt data. RS485 är som tur var designade att inte gå sönder om flera utgångar skulle prata samtidigt, så i det avseendet behöver man inte var rädd i sin utvecklingsfas.
har man inte en extra utgång för detta så får man lösa det med någon monostabil vippa på tex. UART-utgången och trigga på en nedåtgående flank och offra en byte data som väckning och sedan välja en tidskonstant på monostabila vippan att den inte går tillbaka inom ett par bytes tid efter sista omslaget med den baudrate man kör - givetvis måste slaven vänta ut den tiden + marginal innan den kan börja prat i sin tur.
med andra ord är det mycket enklare att processorn i sitt kommunikationsprotokoll styr enablepinnen på RS485-kretsens utgång.
---
skall man klara av att inte låsa hela nätet när en slav/master hänger sig av någon anledning och håller utgången aktiv hela tiden så får man börja tänka till lite extra...