Seriell överföring med endast en tråd?

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
dangraf
Inlägg: 530
Blev medlem: 9 juni 2003, 15:30:56
Ort: göteborg

Re: Seriell överföring med endast en tråd?

Inlägg av dangraf »

Men JAG är nyfiken på hur en full-duplex kommunikation fungerar med 1 lina :-) Om du har lust får du gärna berätta.
blueint
Inlägg: 23238
Blev medlem: 4 juli 2006, 19:26:11
Kontakt:

Re: Seriell överföring med endast en tråd?

Inlägg av blueint »

Jag läser gärna den förklaringen också.. :)
Användarvisningsbild
Icecap
Inlägg: 26658
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Re: Seriell överföring med endast en tråd?

Inlägg av Icecap »

Det kräver ju lite extra "klister". Först lite nomenklatur:
TX1, RX1, TX2, RX2 är TX och RX från de 2 µC. "Linan" = ledaren som förbinder de 2 enheter (+ GND såklart).

TX1 skickar data via ett motstånd till "andra ändan" som är identisk kopplat.
Men samtidig sitter det en op-amp och har ena input till "linjen" och den andra input sitter till en spänningsdelare som sitter mellan TX1 och GND. Utgången från op-ampen går till RX1. Det förutsätt att TXx har en "hård" drivning då det hela beror på impedansanpasning.

När TX1 sänder kommer spänningen på "Linan" att motsvaras av spänningen som alstras med spänningsdelaren och op-ampen ska (i terorin) inte ge utsignal alls. För att få teori att stämma med praxis kan man skapa en lätt offset.

I den andra ändan står TX2 "still" och spänningen på "Linan" varierar = utsignal från op-amp'en till RX2.

Jag har sett denna koppling på en utrustning jag är utbildat på, där åkte videosignal ena hållet och man kunde välja vilket videosignal vid att en box skickade seriella data tillbaka via samma coax på detta vis.

Man kan nog förenkla hela kopplingen en del, t.ex. med en PNP med emitter på TX1, kollektor med en pulldown och sedan en inverter-funktion innan RX1 och basen via ett motstånd till "Linan" men jag har inte experimenterat med detta då det är en nödlösning och jag designer "stadig" elektronik, inte nödlösningar.

Tänkt exempel:
- Inget signal, alla i stand-by = 5V på "Linan".
- Ena TX sänder en '0' = 2,5V på linan, andra ändans PNP öppnar och en nolla kommer till dess RX (oavsedd vilken ända som sänder)
- Båda ändar sänder en '0' = 0V på "linan", båda PNP av, '1' till båda RX vilket är fel. Med det mera komplicerade kretslopp med op-amp kan denna situation bli "rätt".

Sedan är det ju frågan om man vill ha full duplex eller om det ska fungera "som vanligt": master skickar en fråga och slaven svarar, det fall fungerar half-duplex utmärkt. Fördelen med ett par transistorer är att man inte behöver sortera bort "egna" tecken, med t.ex. en PIC24 finns det ju en FIFO-buffer på 4 tecken till UART-TX och då får mjukvaran hålla koll på detta och det kommer att ta lite tid.

Man får å andra sidan en bra koll på att kommunikationen inte är störd ut vid att "lyssna" på egna tecken...
blueint
Inlägg: 23238
Blev medlem: 4 juli 2006, 19:26:11
Kontakt:

Re: Seriell överföring med endast en tråd?

Inlägg av blueint »

Tror det vore bra med ett litet schema på det där.. ;)
Användarvisningsbild
Klas-Kenny
Inlägg: 11843
Blev medlem: 17 maj 2010, 19:06:14
Ort: Växjö/Alvesta

Re: Seriell överföring med endast en tråd?

Inlägg av Klas-Kenny »

Sorry att jag inte svarat tidigare, har varit lite upptagen och inte haft tid till att läsa igenom alla svar :)

Jag tror jag har fått koll på hur jag skall gå till väga nu, i alla fall så har jag en grund att stå på.

Till de nyfikna så funderar jag på att bygga ett eget digitalt system till en modelljärnväg (Blev inspirerad att plocka fram den gamla järnvägen igen av en tråd här på forumet :roll: ), och då rälsen endast har en ledare så blir det svårt att kommunicera över fler än en.

Överföringshastigheten är inget större krav, så som jag tänkt ut nu skall jag skicka paket på två byte, första byten är adress till vilken nod i järnvägssystemet som skall ta emot instruktionen, och den andra byten är instruktionen vad den skall göra. Funderar på en paritetsbit eller liknande också för att få litegranna felsäkerhet, så att inte alla tåg går beserk pga. signalförlust :shock: Men, så länge jag kan föra över (troligen) 17 bitar på under kanske 0,2-0,3s är det ju inga problem alls. (Är ju trevligt ifall jag får svar på kommandona på under 0,5s i alla fall, med överföring samt lite annat jobb av både sändare och mottagare)

Nu till nästa problem, hur för jag över signaler på samma ledning där jag har den vanliga spänningen? (30v AC har jag för mig att det ligger på, inte säker dock, kan kolla ifall det spelar roll) Detta ska ju gå, då de färdiga digitala systemen fungerar på detta vis, samt det finns ju LAN över elnätet, som fungerar på samma vis. Borde väl inte vara helt omöjligt att få ihop något fungerande med mina låga krav på överföringshastighet på det viset?

Vid det här laget bör även anledningen till att jag behöver flera µC i samma projekt fram med, en för varje nod, samt en "huvudenhet".
Sen lär jag få ha lite mellanenheter (Typ i stil med en switch fast en µC) i framtiden med, att koppla vartenda lampa, vartenda lok, vartenda växel osv till en och samma µC kan kräva en hel del ingångar i längden.

Jag vet att det finns färdiga digitala lösningar att köpa, men hur kul är det? :vissla:


Edit: Dessutom skall det bara skickas data på ett håll, så det är inga problem med det.
blueint
Inlägg: 23238
Blev medlem: 4 juli 2006, 19:26:11
Kontakt:

Re: Seriell överföring med endast en tråd?

Inlägg av blueint »

Kika på: http://en.wikipedia.org/wiki/Digital_Command_Control

Överlagra datasignalen med kapacitiv koppling.
Användarvisningsbild
Klas-Kenny
Inlägg: 11843
Blev medlem: 17 maj 2010, 19:06:14
Ort: Växjö/Alvesta

Re: Seriell överföring med endast en tråd?

Inlägg av Klas-Kenny »

Åhå, tackar!


Så, om jag förstått saken rätt, så är PWM lösningen?
Användarvisningsbild
Micke_s
EF Sponsor
Inlägg: 6741
Blev medlem: 15 december 2005, 21:31:34
Ort: Malmö

Re: Seriell överföring med endast en tråd?

Inlägg av Micke_s »

Då kanske http://www.opendcc.de/index_e.html är intressant att titta på.
Jag tycker du självklart ska köra DCC standard, då har du möjlighet att båda köra färdiga och hemmbyggda prylar tillsammans.
NMRA DCC starnarder: http://www.nmra.org/standards/DCC/stand ... CStds.html
Användarvisningsbild
vfr
EF Sponsor
Inlägg: 3515
Blev medlem: 31 mars 2005, 17:55:45
Ort: Kungsbacka

Re: Seriell överföring med endast en tråd?

Inlägg av vfr »

Håller fullständigt med Micke. Klart du ska köra DCC! Det finns ju även stora möjligheter om du vill bygga själv.
Jonas L
Inlägg: 432
Blev medlem: 14 juli 2009, 14:28:41
Ort: Karlshamn

Re: Seriell överföring med endast en tråd?

Inlägg av Jonas L »

Jag funderade på detta en del, men slutsatsen blev att det finns mycket att göra brevid järnvägen. Om man gör ett helt eget system måste man uppfinna alla delar av hjulet från början, och då finns det en uppenbar risk att man kör fast långt innan det har hänt något konstruktivt. Gör man någon utökning av DCC-systemet så kan man komma igång direkt och bygga på bitar efter hand.

Vill man dock göra eget så ska man nämna att PWM är en metod av flera. Det finns/har funnits digitalsystem som har baserats på en spänning med överlagrade signaler. Dock tror jag att DC är bäst för matningen, då det blir lättare att skilja ut signalfrekvensen (signalfrekvenserna). Som jag har fattat det har dessa blivit mindre populära eftersom de kräver en bunt analoga komponenter på lokdekodrarna, vilket tar plats. En normal mikroprocessor av valfritt slag har allt som behövs för att avkoda DCC.
Användarvisningsbild
baron3d
EF Sponsor
Inlägg: 1355
Blev medlem: 1 oktober 2005, 23:58:43
Ort: Torestorp

Re: Seriell överföring med endast en tråd?

Inlägg av baron3d »

Varför inte sätta en tranceiver i loken, t.ex. erwf3022.
Dessutom kan man styra och mäta trådlöst på andra delar av anläggningen.
Loken kan ev. också "tala om" var de är.
Jonas L
Inlägg: 432
Blev medlem: 14 juli 2009, 14:28:41
Ort: Karlshamn

Re: Seriell överföring med endast en tråd?

Inlägg av Jonas L »

Därför att den är större än tåget?
Skriv svar