Switcha seriella signaler

Elektronikrelaterade (på komponentnivå) frågor och funderingar.
cjonash
Inlägg: 613
Blev medlem: 20 maj 2011, 08:53:58
Ort: Göteborg

Switcha seriella signaler

Inlägg av cjonash »

Bakgrund:
För tillfället åker mina kollegor runt i världen och gör grafik på basketmatcher. En viktig del av basketgrafik är klockorna (matchklockan och skottklockan), och givetvis så har alla arenor olika klocksystem. Lösningen vi använder nu är att jag har gjort kablar för alla olika system, som de sedan kopplar in i en RS232->USB eller RS442->USB beroende på typ av signal. Det fungerar, men dels är det ett problem om det visar sig att dokumentationen inte är korrekt (så att kabeln inte är korrekt gjord), dels finns en viss risk att någon använder fel kabel (många system använder 9-pin DSUB, men med olika pinkonfigureringar) och det kan i värsta fall bränna upp något.

Idé:
Den tanke jag fick idag, är att bygga en liten box som har några olika ingångskontakter (de som används i de olika systemen) samt en RS232 receiver och en RS422 receiver. Samt en mikrokontroller som dels kodar av de olika protokollen och skickar ut det som ett standardprotokoll, dels kan styra någon form av switch så att rätt pinnar på kontakterna kopplas till rätt ingångar på de seriella mottagarna.

Alltså; utgångarna på switcharna kopplas till ingången på en RS232 receiver respektive ingångarna (+/-) på en RS422 receiver (så totalt 3 utgångar). In till switchen går alla pinnar från alla kontakter. På så sätt kan man i mjukvara konfigurera vilka pinnar man vill läsa på, och med vilken signalstandard.

Fråga till forumet:
Någon som har en ide om hur man konstruerar denna typ av switch? Den skall ha valfritt antal ingångar (men i praktiken handlar det väl om kanske 16 stycken), tre utgångar, och valfri ingång skall kunna kopplas till valfri utgång (men 1-1, så inga parallella kopplingar). Den behöver kunna hantera både positiva och negativa signaler, och tåla att en AC eller DC matningsspänning på upp till 48V kopplas till en utgång. Den får heller inte belasta ingångarna i någon större utsträckning (vi skall ju bara "sniffa" på ett befintligt inkopplat system).

Alla förslag tas tacksamt emot!
Användarvisningsbild
Icecap
Inlägg: 26106
Blev medlem: 10 januari 2005, 14:52:15
Ort: Aabenraa, Danmark

Re: Switcha seriella signaler

Inlägg av Icecap »

Det bör gå att ha en avkänning av spänningsnivåer som att de håller sig inom specifika nivåer.

Detta kan man sedan använda till att avgöra om det är RS232 eller RS422 osv. Avkänningen av nivåerna kan sedan leda till intern automatisk omkoppling.

Jag hade gjort det med en op-amp för varje ingång, där kan man skydda ingångarna ganska bra och ändå ha fullt koll.

Första stegets drivning hade jag gjort med isolerat DC-DC omvandlare och optokopplareutgång, på det vis kommer det ingen jordslingor och evt. spänningsoffset är utan betydelse.

Men detta kommer "bara" att ge ut en kontakt med data, inte en tolkning av dessa data. För att uppnå detta måste du ha en µC som "känner igen" de olika protokoll och växlar till dom. Är de kända är det inte så himla svårt men det kräver "lite kraft" vilket ju är enkelt med dagens µC.

Så det blir lite av ett projekt - men det är fullt möjligt.
cjonash
Inlägg: 613
Blev medlem: 20 maj 2011, 08:53:58
Ort: Göteborg

Re: Switcha seriella signaler

Inlägg av cjonash »

Tack Icecap för dina idéer - det uppskattas mycket!

Det är inte helt ovanligt när man läser sina egna inlägg, särskilt efter att andra har kommenterat dem, att man inser att man kanske inte varit så tydlig som man avsett - även om man försökt. Så också i det här fallet...

För att börja från slutet, så har tanken aldrig varit att systemet skall känna av protokollen automatiskt. Inte heller automatiskt koppla signalerna rätt. Tanken var att ha en hårdvara som kan programmeras till att användas med alla systemen, utan att behöva ha specialkablar (annat än i de fall där det är speciella kontakter från början). Så antingen så har man någon form av GUI där användaren väljer typ av klocka, alternativt så har man en mjukvara för varje klocka. Den första lösningen är mest aktuell för mobila system, medan den senare passar om man skall installera en box fast i en arena. Mjukvaran vet således vilka pinnar som skall användas för en given typ av klocka (och också om det är RS232 eller RS422).

Precis som du nämner, och som jag gjort i ett liknande projekt tidigare (beskrivet i en projekttråd) så är tanken att hela ingångssteget inklusive RS232 och RS422 mottagarna är elektriskt isolerade från resten. Så via en optokopplare kommer det seriella dataströmmen in till mikroprocessorn. Via ytterligare några optokopplare skickas styrdata från processorn till "switchen".

Så utmaningen (för mig) är att hitta ett ingångssteg som låter mig koppla valfria pinnar på min ingångskontakt till ingångarna på en RS232 respektive RS422 mottagare, och samtidigt skydda såväl mottagarna som den sändande utrustningen mot felkoppling - alltså att fel pinnar (innehållande exempelvis matningsspänning) kopplas in på mottagarna. Ett sätt är att använda relän, men det vill jag helst undvika eftersom det skulle krävas rätt många vilket inte minst skulle ta upp mycket plats på kortet.

Man skulle kunna bryta ner det i dessa frågor:

1) Förslag på elektronik som kan switcha dessa signaler, som inte "förstör" dem varken för den sändande enheten (man skall komma ihåg att den här utrustningen i många fall bara är parallellkopplad med redan existerande teknik) eller för mottagaren, och som tål upp till 50VAC och +/- 50VDC.

2) Förslag på hur man kan skydda en RS232 och en RS422 mottagare så att de tål om matningsspänningar på upp till 50VAC och +/- 50VDC läggs på dess ingångar.

Förslaget med OP-förstärkare är ju inte helt fel. Men vad händer med en sådan om man lägger t.ex. +50VDC på dess ingång? Att den inte kan driva utgången högre än sin matningsspänning (eller strax under) är ju givet, men tål den det? Kommer den bara att klippa signalen? En annan aspekt är ju att man heller inte vet vilken pinne i ingångskontakten som är jord. Så redan där blir det väl problem med att sätta en OP som buffer på alla ingångar? Det är ju först när man satt switch(arna) i rätt "läge" som man har en jordreferens (i fallet med RS232, medans i fallet med RS422 har man ju bara de balanserade signalerna och ingen jord).
Användarvisningsbild
Icecap
Inlägg: 26106
Blev medlem: 10 januari 2005, 14:52:15
Ort: Aabenraa, Danmark

Re: Switcha seriella signaler

Inlägg av Icecap »

Om du designer ingången till en op-amp rätt tål den snart sagt vad som helst.

Ett motstånd först - sedan en tranzorb/zenerdiod, sedan ytterligare ett motstånd bara för god ordens skull. Självklart en DC-bias som är användbar.

En op-amp har mycket hög ingångsimpedans - vilket betyder att man kan ha en del mellan innan utan att det försämrar data.
Användarvisningsbild
arvidb
Inlägg: 4537
Blev medlem: 8 maj 2004, 12:56:24
Ort: Stockholm

Re: Switcha seriella signaler

Inlägg av arvidb »

RS422 ska väl ha en viss ingångsimpedans - är det 100 Ω? Funkar den ingångsimpedansen även med RS232?
Användarvisningsbild
Icecap
Inlägg: 26106
Blev medlem: 10 januari 2005, 14:52:15
Ort: Aabenraa, Danmark

Re: Switcha seriella signaler

Inlägg av Icecap »

Faktisk ska RS422/485 inte det! Men om kablarna har en viss längd ska de termineras med den impedans som de behöver, ofta runt 120 Ohm.
Användarvisningsbild
arvidb
Inlägg: 4537
Blev medlem: 8 maj 2004, 12:56:24
Ort: Stockholm

Re: Switcha seriella signaler

Inlägg av arvidb »

Ah, det är förstås själva kablarna som ska termineras och inte ingången? Men sätter man ändå inte ofta termineringen som en del av ingången? Jag kollade lite datablad för RS485-transcievers för några år sedan och där hade de ritat in termineringen som en del av typkretsschemat i databladet.

Men då betyder det att man kommer att behöva en extern terminering att använda om det visar sig vara RS422-signaler som ska tas emot av switchen? Eller att switchen måste kunna koppla in termineringen som en del av sin funktion kanske? (Jag fattade inte riktigt om denna switch ska kopplas in permanent och konfigureras en gång på plats eller om det ska vara något slags universalinterface som flyttas runt mellan olika platser.)
cjonash
Inlägg: 613
Blev medlem: 20 maj 2011, 08:53:58
Ort: Göteborg

Re: Switcha seriella signaler

Inlägg av cjonash »

Termineringen kommer inte att göras i min enhet. Den kopplas alltid in parallellt med existerande enheter, där eventuell nödvändig terminering redan finns. Som utgångspunkt kommer enheterna att flyttas runt, men visst kan det bli aktuellt med fasta installationer också. Men fortfarande i befintliga fungerande system.

Någon som har förslag på typ av switchkretsar?
Användarvisningsbild
Icecap
Inlägg: 26106
Blev medlem: 10 januari 2005, 14:52:15
Ort: Aabenraa, Danmark

Re: Switcha seriella signaler

Inlägg av Icecap »

Alltså: ingen terminering.

Förstår jag rätt: ni sniffar bara kommunikation? Inte utför eran enhet aktiv kommunikation med systemen det kopplas till?

Om detta är rätt gäller det att switchen kan vara rimligt högohmig utan problem så en CMOS analog switch 405x skulle duga fint.

Skyddet på ingångarna ska då vara innan switchen och saken är biff.

Alternativt finns det små smidiga SSR som klarar jobbet hur bra som helst.
cjonash
Inlägg: 613
Blev medlem: 20 maj 2011, 08:53:58
Ort: Göteborg

Re: Switcha seriella signaler,

Inlägg av cjonash »

Exakt, vi sniffar bara på den kommunikationen som går mellan manöverpanelen (klockan) och displayerna i sporthallarna.
Och eftersom det finns en hel hög med olika system, så hade det varit fint med en hårdvaruneutral lösning, bl.a. så att användarna inte kan bränna upp hallens system genom att råka använda fel kabel eller enhet. Jag går nämligen för mig att det inte skulle uppskattas speciellt mycket... :oops:
cjonash
Inlägg: 613
Blev medlem: 20 maj 2011, 08:53:58
Ort: Göteborg

Re: Switcha seriella signaler

Inlägg av cjonash »

Jag lyfter den här tråden igen, för situationen jag försökte lösa för några år sedan är fortfarande lika aktuell...

Sedan sist så har jag gjort ett proof-of-concept (finns delvis beskrivet i en projekttråd), där jag använde en matris av reed-relän för att koppla valfria pinnar på en 9-pin DSUB till antingen en RS232-mottagare (signal + jord) eller en RS422 mottagare (2 signal, ingen jord). Detta fungerar precis så som jag önskat, rent tekniskt. 18 relän (2 per pinne i dsub-kontakten) kopplar respektive pinne till en av två linjer. Dessa två linjer kopplas sedan med 2+2 relän antingen till RS232+jord eller till RS422.
Dock är lösningen lite opraktisk av några skäl:

- Inte så skalbart om man vill ha flera ingångspinnar (ex. flera kontakter) då mängden relän snabbt ökar.
- Tar relativt mycket plats, både yta och höjd.
- Relativt dyrt (egentligen inte ett problem på grund av så få enheter, men ändå)

Så jag försöker hitta alternativ. Icecap föreslog ju SSR och analoga switchar, men när jag tittar på dem så har jag svårt att hitta modeller som uppfyller alla kraven. För att sammanfatta dem igen:

- En ”okopplad” ingång ska inte påverkas alls (alltså inte förändra egenskaperna på den pinnen på kontakten)
- En kopplad ingång skall inte påverkas mer än vad den normalt görs när den kopplas till motsvarande typ av ingång.

Med andra ord ska den elektroniska switchen ha i princip samma egenskaper som ett relä i förhållande till den switchade signalen.

Dessutom ska switchen tåla såväl AC som DC upp till ca 50-60V. Det skyddet får dock inte förstöra (läs belasta) en felaktig signal. Igen, det ska vara så transparent som möjligt för det vi kopplar in oss på. Men framför allt så finns det ingen gemensam jord som signalerna kan förhålla sig till - det är ju först när båda signalerna (data+jord eller balanserad data) kopplats fram till respektive mottagare som det går att få en referens.

Är det här möjligt att göra utan relä? Och i så fall, hur?

Jag är verkligen tacksam för alla förslag som kan få mig att komma vidare!
Skriv svar