Hallo, gibt es irgend ein standartisiertes Verfahren das es ermöglicht, Daten unidirektional über die Versorgungsleitung zu übertragen. Das Problem ist es müssen 5mA übertragen werden, die Übertragungsrate spielt weniger eine Rolle! Die max. Leitungslänge soll zwischen 500m und 1000m betragen! Danke, Mathias
1-Wire... geht sogar bidirektional. Sämtliche digitalen Modelleisenbahnen aubeiten nach so einem Prinzip. Du kannst die Daten auch per Kondensator einkoppeln...
Hallo, ist ein gängiges Problem in der Haustechnik. (4..20 mA Signale als passive Stromschleifen). Da gibts nen XTR116 für solche Sachen. Sieht aber mit 5 mA schlecht aus und funzt nur wenn dein Stromverbraucher auch Nachrichtenquelle ist. (alles Analog technik) Deine Kabellänge ist aber zu hoch für den und unidirektional kannste da gar nix machen. Wie wärs mit einer Konstantspannungsquelle dessen Last sich periodisch ändert. (z.B. NE555 als VCO) Schon hast du einen Träger und könntest PWM/FM/ oder besser noch FSK benutzen. Die andere Seite muss dann über einen Shunt das ganze demodulieren (2 Filter bei 2-FSK)). Würde in beide Richtungen Funktionieren. Probleme gibts bloß mit der Konstanz der Verbraucher-Spannung. Kannste aber abgrenzen mit Spannungsreglern wenn Lasten bekannt und Shuntgrößen abgeglichen sind. Ist nicht ganz ohne dein Projekt. Gibts aber auch Fertig im Media Markt fürs Stromnetz. (Steckdose mit Ethernet)
@ Rahul: 1 Wire geht aber sicher nicht über die Versorgungsleitung oder? und wie siehts mit den 5mA aus??
Hallo, du kannst es prinzipiel wie 1-Wire lösen. Du schaltest deine Versorgungsspannung aus und ein. Auf der Seite des Verbrauchers kommt hinter eine Diode ein großer Elko der die Versorgungsspannung des Verbrauchers während deiner Aus-Zeiten liefert. Die Spannung am Sender sollte größer sein als die Versorgungsspannung des Verbrauchers. Gruß Manfred
Das hatte ich nicht ganz richtig gelesen. 1-Wire versorgt Chips (DS1820 o.ä.) über die Datenleitung. Bei so allgemeinen Fragen habe ich immer adas Anwendugsproblem: Was sind die Randbedingungen? 5mA können bei 3V fliessen, aber auch bei 3kV. Gleichstrom oder Wechselstrom? Komm doch mal mit solchen Daten rüber.
U: 24V Gleichspannung I: 5mA Leitungslänge: 500-1000m Es müssen über die Versorgungsleitung etwa 10 Slaves adressiert und geringfügig gesteuert werden! (Ledgruppen ein und ausschalten) Eventuell werde ich für die Slaves einen kleinen uC zur Steuerung verwenden!
Kann man denn mit 1-Wire mehrere uC's an einen Bus hängen und adressieren? Und wie sieht es mit der Überschreitung der max. möglichen 300m Leitungslänge aus?
Ich würde als Übertragungsprotokoll einfach RS232 nehmen und mit diesem Signal einfach die Polung der Versorgungsspannung modulieren. Als Ergebniss hätte man dann eine 24V Rechteck Wechselspannung auf einen 2 Draht Daten/Versorgungsbus. Die Daten kann man sich herunterholen, indem man den Eingang eines Optokoplers mit einer Diode und einem Vorwiderstand in Reihe schaltet. Am Ausgang des Optokopplers hat man dann wieder das RS232 Signal. Natürlich müssen die Signallevel evt. angepasst werden. Die Versorgung bekommt man mit einem Gleichrichter mit nachgeschaltetem Elko wieder vom Bus runter. Die Belastbarkeit hängt lediglich von den Leitungstreibern am Master ab. Die Datenübertragungsrate muß natürlich an Leitungslänge angepasst werden, aber bei entsprechend geringer Geschwindigkeit (evt 300 Baud?) sollten 1000m ohne weiteres drin sein. Vorteil der ganzen Sache ist, daß man keine Spezialkomponenten braucht und das RS232 (sprich die stinknormale serielle Schnittstelle) noch an vielen PCs und in sehr vielen µC zu finden ist. Bis dann Hauke
Hi, ich würde das so realisiern wie bei einer Digitalen Modelleisenbahn(DCC-Protokoll) Decodiere dein Signal als Rechteckspannung mit Arithmetischen Mittelwert deiner Versorgungsspannung. Am Endverbraucher kannst du dann die Wechselspannung gleichrichten und als Spannungsversorgung benutzen. Über einen Optokoppler kannst du das Signal(vor dem Gleichrichten) auswerten. Matthias
abuze schrieb: "Ist nicht ganz ohne dein Projekt. Gibts aber auch Fertig im Media Markt fürs Stromnetz. (Steckdose mit Ethernet)" Das nennt sich Inhouse-PLC und hat zwei gravierende Nachteile: 1.) Reichweite nur bis 50m 2.) Ein Inhouse-PLC-Gerät kann den Kurzwellenbereich im Umkreis von 250m verseuchen. Wenn sich da ein Rundfunkhörer oder Funkamateur bei der BNetzA beschwert, wird das Teil stillgelegt und der Betreiber dieses PLC-Gerätes darf den Messwageneinsatz bezahlen - Bis 2500 Euro kann das dann kosten. Also: Finger weg von PLC! Es gibt bessere Methoden. Gruss Jadeclaw. .
Hallo, DCC, von der Modeleisenbahn, macht fast genau das was Hauke Sattler beschrieben hat nur eben mit einer anderen Codierung. Ich würde es auf jeden Fall so machen wie von Hauke Sattler beschrieben. Eventuell noch einen DC/DC-Wandler hinter den Gleichrichter, damit ist der Verbraucher Potentialfrei und die 24V dürften auch wieder etwas besser stimmen (falls das wichtig ist). Ein kleiner µC in den Endgeräten/Empfängern kostet ja nun wirklich nicht die Welt und RS232 ist fast immer mit dabei. Das mit der Adressierung ist dann auch kein Problem mehr. Im Hinblick auf die hohe Leitungslänge solltest Du Dir auf jeden Fall Gedanken über eine angemessene Überspannungsabsicherung machen. Der Treiber sollte wenn möglich auch Kurzschlusfest sein. Grüße und viel Erfolg beim aufbauen Erik
@Hauke
Hallo Hauke.
>> die Polung der Versorgungsspannung modulieren.
Meinst Du damit die +24V und die -24V oder die +24V und 0V (Masse)?
Der zweite Fall würde mich interessieren. Ich möchte gern über die
Versorgungsleitungen (24V und Masse) ein TTL-Signal mit dem
RS232-Protokoll aufmodulieren. Ich habe es mir so vorgestellt, dass ein
uC über einen Ausgang das Gate eines MOSFETs steuert. Im Ruhezustand,
d.h. wenn der uC nicht sendet, ist seine Datenleitung auf "1". Somit
schaltet der uC durch und die zu versorgende Zielschaltung bekommt ihre
Spannung (1 Diode und 1 Elko, da Spannung nur 24V oder 0 ist: also
1Weg-Gleichrichter).
Beim Startbit (DatenLeitung auf "0") und bei den "0"-Daten eines zu
übertragenden Bytes ist dann der Elko gefragt.
Ich sehe den Nachteil beim Worst Case: Datenbyte =0x00. Da muss der
Elko für die Zeitdauer der 8 Bits + Startbit aufkommen. Das wäre zu
lang bei der geringen Baudrate.
Hast Du die Schaltung schon mal aufgebaut? Hast Du einen Schaltplan
dazu? Es wäre sehr nett.
Gruss
Hilel
@ Hilel: Ich mache es wahrscheinlich mit +-24V! Wobei der Kondensator müsste es normalerweise locker schaffen, die Versorgung während der Datenübertragung aufrecht zu halten.. auch bei geringen Baudraten @Hauke: Weißt du zufällig ob die RS232 für so lange Leitungslängen irgendwo spezifiziert ist? Bräuchte irgend so eine Din - Norm für die Realisierung des Projekts! Wobei mir schon klar ist, dass es mit 300 Baud sicherlich über 1km funktionieren wird! Danke @ all, mfg Mathias
>Weißt du zufällig ob die RS232 für so lange Leitungslängen
irgendwo spezifiziert ist?
rs232 reicht nicht soweit... aber rs485 kommt bis 1,2km.
RS232 beschreibt die Schnittstelle mit +/- 15V bzw. einem Totbereich von +/-3V. Unter diesen Bedingungen hat sie eine (garantierte) maximale Reichweite von 15m. Wenn man die in fast jedem Mikrocontroller vorhandene serielle Schnittstelle für Datenübertragungen benutzen will, dann kann man das ohne die RS232 in irgendeiner Weise zu berühren. Man kann mit µCs auch Midi-Schnittstellen realisieren. Diese sind ganz bestimmt nicht RS232 konform. Wikipedia zu dem Thema: http://de.wikipedia.org/wiki/RS232 http://de.wikipedia.org/wiki/RS485 Bei so langen Leitungen sollte man vielleicht auf Protokolle wie Manchester-Codierung etc. zurückgreifen. Auch Sachen wie ASFK (Frequenzsprung-Übertragung) oder so helfen. Eine Wechselspannung zu übertragen ist auf jeden Fall wegen der geringeren Verluste sinnvoller. Um die Störsicherheit zu erhöhen, sollte man eine differentielle Übertragung wählen... Welche Übertragungsart (z.B. 8N1) gewählt wird, ist dabei relativ egal.
Guten Abend allerseits. Die Zielschaltung enthält einen Tiny, der eine Last für einige Millisekunden über einen MOSFET mit 1A versorgt. Die Entfernung liegt bei 100m und die Baudrate kann bis zu 300 baud liegen. Beim Sender sitzt ebenfalls ein Tiny und über sein TXD-Pin soll die Polung der Versorgungsspannung moduliert werden. Bei "1" soll beispielsweise die Spannung von +24V und bei "0" die Spannung von -24V über die Leitung gespeist werden. Wie kann man diese Modulation technisch realisieren? Auf der Empfängerseite ist mir das klar, wie die Nutzdaten gewonnen werden und wie die Versorgungsspannung für die Zielschaltung gleichgerichtet wird. Mein Problem ist bei der Modulation. Hat jemand von Euch ein Schaltungsbeispiel? Danke im voraus Hilel
Ich verwende für sowas gerne das gleiche Prinzip das bei ISDN für die Übertragung zwischen Vermittlungsstelle und NTBA eingesetzt wird; siehe Uk0-Schnittstelle unter http://tinyurl.com/c9zsz . Der Vorteil dürfte sein, daß Deiner Schaltung eine konstante Versorgungsspannung zur Verfügung steht, Datensignal/Versorgungsspannung sich nicht gegenseitig beeinflussen und die Datenübertragung symmetrisch, also störungsunempfindlicher erfolgt.
Mal ne Frage, könnte man auf eine 24V= eigentlich auch den RS485 mittels Kondensatoren auf modulieren? Eine Leiter führt 0V der andere 24V und die RS485-Signale werde mittels Kondensatoren auf beide Leiter aufmoduliert, so dass die Spannung zwischen den Leitern immer 24V= sind...
Hallo Flow. Danke für die rasche Antwort. Kannst Du mir auch die Schaltung verraten? Ich werde mir die Site genauer angucken.
@ uwe: ist mir schon klar dass die rs485 weiter geht, aber mal schaun ob man dass irgendwie über gnd und vcc hinbekommt
Instabus macht das sehr gut. Aber etwas aufwendiger. SG Lumpi
@ Flow wie integrierst du das ganze dann in deine schaltung?? ist es auch möglich höhere spannungen zu übertragen? und der strom müsste 5A betragen!
Hallo, @Mathias Am besten wird diese Übertragung funktionieren wenn Du im Sender die Versorgungsspannung nicht einfach abschaltest sondern umpolst. Soll heisen für eine 1 (oder auch IDLE) bekommt Leitung A +24V und Leitung B Masse. Für eine 0 bekommt Leitung A Masse und Leitung B +24V (so machen das auch die Modelbahnen mit DCC). Dazu benutzt man am besten einen H-Brückentreiber im Sender und im Empfänger einen kompletten Gleichrichter. Hinter den Gleichrichter noch einen kleinen Kondensator der die Totzeit während der Umpolung überbrückt und vor den Gleichrichter noch den Eingang vom Optokoppler anklemmen. Für Deinen Verbrauch von 5A würde ich Dir zwei normale Halbbrückentreiber und 4 Leistungsmosfets empfehlen. Damit solltest Du problemlos 4800Baud auf 1km bekommen. Am Ende der langen Leitung sollte aber noch ein Abschlusswiederstand (5kOhm würde ich mal probieren) und eventuell noch ein kleiner (ungepolter) Kondie (aus dem Bauch raus sage ich mal 100pF) paralell dazu. Am besten Du schaust Dir das ganze mal ungefähr in der Mitte Deiner langen Leitung mit nem Oszi an, eventuell vorhandene Reflektionen sollten Auffallen sind aber bei Deinen hohen Spannungen nicht allzu schlimm (wenn weniger als 1 bis 3 V). Das ISDN-Prinziep oder auch das Aufmodulieren mit Kondies kann Dir zwar höhere Baudraten bringen erfordert aber auch mehr Aufwand. Für das Protokoll würde ich vollgendermaßen vorgehen: 1 StartByte (z.B. 0x55) 1 Adressbyte um den gewünschen Empfänger zu selektieren 1 Längenbyte (falls erforderlich) das die Anzahl der follgenden Nutzbytes angibt X Nutzbytes mit den Commandos o.ä. 2 Byte-Prüfsumme : einfach alle vorrangegangenen Bytes aufaddieren (mit Übertrag) oder gar CRC16 (bietet eine bessere Fehlererkennung) Zwischen den einzelnen Paketen immer etwas Pause (etwa 5 Byte-Zeiten) und dann klappt das schon. Wir haben hier nach einem ähnlichem System auch eine Kommunikation über größere Entfernungen am Laufen. Fehlerhafte Pakete treten bei uns etwa ein mal pro Tag auf und werden im Empfänger einfach verworfen da der Sender alles immer wiederholt. Grüße Erik
Naja, auf der Senderseite kann man entweder zwei Leistungsopamps nehmen oder eine Art H-Brücke. Bei den Opamps wird einer als invertierender Verstärker und einer als nichtinvertierender Verstärker geschaltet. Da Opamps oft Spannungsverluste haben sollte die Versorgungsspannung etwas höher als die Zielspannung sein (z.B. 30V). Die Versorgungsspannung kann aber ruhig asymetrisch sein, (d.h. nur +30V und 0V). Bei der H-Brücke müßte eine schnelle Motor-H-Brücke gehen. Die serielle Signalleitung (des Masters) würde dann an den Drehrichtungseingang der H-Brücke angeschlossen werden (natürlich nach evt. Pegelanpassung). Wichtig bei beiden Varianten ist, das man kapazitive Lasten direkt (d.h. ohne Gleichrichter dazwischen) zwischen den beiden Busleitungen vermeidet.
Hallo, OpAmps mit 5A*24V Ausgangsleistung sind schon recht fette Teile und dürften auch einiges an Verlustleistung erzeugen. Rein vom Wirkungsgrad her würd ich auf jeden Fall die H-Brücke bevorzugen aber als Erstversuch ist die Variante mit den OpAmps nicht schlecht. Klar ist aber auch das die H-Brücke etwas mehr Kentnisse erfordert. Achja, "twisted-pair" und/oder Schirmung sind auch nicht schädlich. Was für ein Kabel soll den benutzt werden? Hinter dem Gleichrichter, am Empfänger, sollte IMHO ein potentialfreier DC/DC-Wandler hin. Bei so langen Kabeln können auf jeden Fall Probleme mit induzierten Spannungen entstehen, dazu muss noch nicht mal ein Blitz in der Nähe einschlagen. Grüße Erik
hmm hätten am ehesten an ein normales 2x2.5 bzw. 1x1.5 kabel gedacht
> Achja, "twisted-pair" und/oder Schirmung sind auch nicht schädlich.
das war nur ein Tipp und kein muss
probier einfach die nächst kleinere Baudrate
Hast Du schon mal überschlagen wieviel Baud Du überhaupt brauchst?
Grüße
Erik
Das mit den Opamps ist auch eher was für nur ein paar Dutzend mA. Michael hat oben ja auch nur 5 MILLIAmpere verlangt. Aus Toleranzgründen würde ich die ganze Sache eher für 50-100mA auslegen. Und in diesem Falle wäre eine H-Brücke etwas oversized. cu Hauke
1200 baud würden mir reichen! darf ich fragen in welcher umgebung dein system eingesetzt wird ( da du ja nur ein paket pro tag verlierst )? Das ganze muss mit 5A laufen ( habe am anfang des threats fälschlicherweise 5mA geschrieben) mfg, mathias
OK 5A sind schon eine ganz andere Hausnummer. Das wird man mit Opamps nicht mehr hinbekommen. Also H-Brücke nehmen. cu Hauke
du köntest auch noch eine art träger auf deine versorgungsspannung aufmodulieren und darüber deine daten senden und empfangen. nur ein theoretischer gedanke wird aber auch bei modelleisenbahnen ähnlich gemacht! mfg sven
Hallo, > ... in welcher umgebung dein system eingesetzt wird > ( da du ja nur ein paket pro tag verlierst )? Steuerung an einem großen Industriegebäude. 4800Baud aber mit Versorgung auf 2 extra Leitungen. Bestimmt über 10'000 Pakete, mit ca. 8 bis 12 Bytes, pro Tag. Das mit den (induzierten) Überspannungen ist hier am Anfang ein Problem gewesen, nach großzügigem Einsatz entsprechender Maßnahmen (DC/DC-Wandler, gute OptoKopler, Überspannungsableiter u.ä.) hat sich das aber sehr deutlich gebessert. 1200 Baud ist ja fast nichts. Das schaft auch ein langsamer Leistungs-MosFET problemlos. Beim Brückentreiber solltest Du aber auf eine eingebaute Totzeit achten damit die MosFETs sich nicht gegenseitig wegheizen. Grüße Erik
@Vikinger Findet die Datenübertragung bidirektional statt? Grüße Hilel
Hallo,
> Findet die Datenübertragung bidirektional statt?
Ja, mit Kollisionserkennung, Protokoll und allem was sonst noch
dazugehört. War ein hartes Stück Arbeit, funktioniert aber zu meiner
vollsten Zufriedenheit.
Grüße
Erik the Vikinger
Könntest du vielleicht mal den Schaltplan des Sende-/Empfangsteils online stellen? Mich würde das auch interessieren...
@ Vikinger Ein Schaltplan würde mich auch sehr interessieren. Gruß Hilel
Hallo, aaaaalso einen Schaltplan? Dann gut. Das System läuft hier bald in einer 2 Version, die erste funktioniert zwar ganz gut hat aber so ihre Hacken und Ösen. Derzeitig funktioniert das über einen ganz normalen RS485-Tranceiver, sowas wie z.B. der SN65176B, im 8-Pin-Gehäuse. Dessen R und D Anschlüsse werden einfach an RX und TX von einem normalen UART an den µC Eures Vertrauens angeschlossen und die beiden /RE und DE Anschlüsse werden zusammen an einen weiteren IO-Pin geklämmt um damit entwerder auf Empfang oder auf Senden umschalten zu können. Die anderen 4 Pins werden Ihrer Bestimmung gemäß verschaltet. Wie man einen RS485-Bus aufbaut und welcher Chip für welchen Anwendungsfall der Geeignete ist wird in den jeweiligen App-Notes sehr ausführlich beschrieben. Die SW muss ungefähr vollgendes machen: Als erstes wird geprüft ob der Bus frei ist, das funktioniert am besten wenn man das RX-Signal zusätzlich auf einen normalen IO-Pin klemmt und bei jeder fallenden Flanke eine Interupt kommen lässt, dieser starten dann einen Timer, der etwas länger als ein Byte auf der Leitung braucht laufen sollte, um das Ende eines Bytes anzuzeigen. Für Messages aus mehreren Bytes muss der Timer an jeder fallenden Flanke wieder zurückgesetzt werden damit dieser immer erst nach dem letzten Byte abläuft. In dieser Zeit hat der UART alle Bytes eingelesen und man hat die gesamte Message zum verarbeiten im RAM. Vor dem Senden wird auch erstmal geprüft ob der Bus frei ist. Zu einem zufälligen Zeitpunkt wird dann einfach angefangen zu senden, falls der Bus noch frei ist. Zum senden muss natürlich das IO-Pin für die Richtung auf High gesetzt werden und nach dem das letzte Byte raus ist, also wirklich das TX-Schieberegister verlassen hat, wieder auf Low. Echte Kollisionen kommen auf einen schwach ausgelasteten Bus nur selten vor und werden ansonsten durch eine ordentliche Prüfsumme gut aussortiert. Der daraus resultierende Paketverlust muss auf höherer Protokollebene ausgeglichen werden. An die TTL-RX-Leitung sollte auf jeden Fall ein Pullup, zumindest der Protzinterne sollte benutzt werden. Als Terminierung werden hier ein hochomiger Pullup für die Leitung A und ein ebenfalls hochomiger Pulldown für die Leintung B so das ein inaktiver Pegel (Stopbit) entsteht. Und darin liegt auch einer der großen Nachteile dieses Systems, es entsteht kein gescheites Auge auf dem Oszi und das Signal aus einem UART ist auch nicht Gleichspannungsfrei. Eine richtige Kollisionserkennung ist damit auch nicht möglich. Für kleine Baudraten ist das ganze recht gut geeignet und auch sehr preiswert realisierbar, für höhere Ansprüche entwickeln wir hier zur Zeit was besseres. Wenn Ihr wollt kann ich darüber heute Abend noch etwas erzählen. Grüße Erik the Vikinger
@flow: hast du ein schaltbild mit der ISDN-lösung? welchen übertrager verwendest du?
@ vikinger: dein neues system würde mich sehr interessieren! würde denn ein power over can system funktionieren? d.h. eigene leitung für grnd und die versorgung über die 2 can leitungen? so hätte man zwar 3 leitungen jedoch eine echte gleichtaktunterdrückung! es gibt ja auch bausteine die v-can unterstützen, d.h. es wird der bus andauernt mit +24V versorgt und die Signalpegel laufen mit +-24V! Nur ist mir noch nicht ganz klar wie man da 5A übertragen kann? Irgendjemand Erfahrung damit? Mfg, Mathias
Sorry, am Samstag Abend hat meine Freundin andere Pläne gehabt. @Mathias Wenn Du wirklich nur 1200Baud brauchst (bedenke aber auch die Pausen zwischen den einzelnen Paketen und den sonstigen Overhead, Parity-Bits tät ich mir sparen wenn Du dafür eine richtige Prüfsumme einsetzt) dann sollte die Variante mit der H-Brücke am besten funktionieren und auch sonst den geringsten Aufwand/Kosten verursachen. Das ist dann natürlich keine bidirektionale Übertragung sondern geht nur vom Master, mit der H-Brücke, zu den Slaves aber Du kommst mit nem 2-adrigem Kabel aus. Wenn Du ein 3-adriges nehmen möchtest dann benutze die dritte Ader lieber zur Erdung, glaub mir da hast Du mehr von. Von der CAN-Variante halte ich persönlich nichts. CAN treibt die verschiedenen Bits mit unterschiedlicher Stärke : Dominant vs. Rezessiv. Das könnte in so einer Schaltung schief gehen außerdem hat CAN eine erheblich Lernkurve. Für Deine 1000m bekommst Du von CAN auch keine bessere Baud-Rate dafür brauchst Du zusätzliche CAN-Tranceiver. Auch das Aufmodulieren von einem höherfrequenten Signal ist zwar eine gute Variante aber auf jeden Fall mit ordentlichem Aufwand verbunden. Und Du musst dann mit Echos und allen möglichen sonstigen Problemen umgehen, das tät ich mir nicht ohne einen wirklich triftigen Grund antun. Für Deinen bisherigen Anwendungsfall, so wie Du ihn geschildert hast, finde ich persönlich die Variante mit der H-Brücke am efektievsten. Und Du kommst bei den Empfängern mit wenigen Standart-Bauteilen und nem kleinen µC aus. Das Modelbahnsystem DCC macht das fast genau so nur die verwenden eine etwas aufwendigere Kodierung um ein gleichspannungsfreies Signal auf den Schienen zu haben, wegen eventuell älteren Loks ohne Dekoder welche dann über den Efektivwert der Wechselspannung gesteuert werden. So jetzt zu unserem neuen System: Das soll mit 3 verschiedenen Pegeln auf einer Twisted-Pair-Doppelader laufen, Energie kommt extra. Vergesehen sind 200kBit/s bei 100 bis max. 200m Länge, reine Linientopologie mit möglicht kleinen Abzweigen (< 5cm) und an beiden Enden eine aktive Abschlussschaltung (kein Ahnung ob die 3 's' richtig sind sehen aber auf jeden Fall scheiße aus). Die verschiedenen Pegel sollen nicht mit einer bestimmten Spannung sondern mit einem bestimmten Strom vom Sender getrieben werden, also +50mA für H, 0mA (in diesem Fall sogar Kurzschluss also aktiv 0V) für Z und -50mA für L. Die Codierung beruht auf dem Prinzip der zeitlichen Wiederholgenauigkeit der Flanken. Die ist nämlich höher als bei den Spannungspegeln. Das heist man kann den Abstand zwischen zwei Flanken deutlich genauer messen und auch erzeugen als einen bestimmten Pegel, selbst mit Reflektionen ist das nicht ganz so schwierig man braucht nur eine präziese Schaltschwelle. Problematisch währ das nur wenn sich die Leitungseigenschaften ständig ändern und das ist bei einer Festinstallation wohl eher selten der Fall. Die Informationen werden also über die Länge der einzelnen Zustände (H,Z,L) codiert. Die Zustände haben eine bestimmte Mindestlänge und eine bestimmte Maximallänge. Die Genauigkeit mit der die Länge der einzelnen Pegel gemessen werden können bestimmt die Menge der integrierbaren Nutzbits oder auch umgekehrt die Menge der gewünschten Nutzbits bestimmt zusammen mit der Leitungsqualität die benutzten Längeunterschiede der einzelnen Pegel. Das System soll seine Übertragungsgeschwindigkeit, in Bit/s gemessen, also an der vorgefundenen Leitungsqualität anpassen. Für die verschiedenen Zustände werden verschiedene Codierungsmöglichkeiten genutzt, die H und L Zustände sollen in 9 verschiedenen Längen 3 Bits oder einen Managmentcode kodieren und der Z Zustand soll mit ebenfalls 9 verschiedenen Längen 6 ausgesuchte 5-Bit-Muster und 3 verschiedene Managmentcodes übertragen. Die SW soll auch für eine möglichst DC-freie Übertragung sorgen. Auch eine richtige Kollisionserkennung für den Sender soll integriert werden. Die hohe Übertragungsrate soll auch ein richtiges Protokoll mit ordentlichen Headern (zur Zeit sind 24 Bytes geplant) mit dicken Adressen und allem was sonst noch dazu gehört ermöglichen. So, wenn ich noch mehr ins Detail gehe bekomme ich wahrscheinlich Ärger mit meinem Chef. Aber zumindest die Variante ohne automagischer Geschwindigkeitsanpassung soll später schon etwas detailierter veröffentlicht werden. Ich schreibe dann auch gerne hier einen Artikel. Grüße Erik the Vikinger
Hallo Vikinger Angenommen es wird eine H-Brücke verwendet. Die Datenübertragung geht dann nur in eine Richtung und zwar vom Master zum Slave. Der Slave soll nun den Empfang der Daten bestätigen. (Ob die Daten gut oder schlecht sind, das interessiert ihn nicht). Er muss nur mit ja/nein bestätigen. Das stelle ich mir so vor: Nachdem der Slave die Daten erhalten hat, schaltet er kurzfristig über einen MOSFET einen bestimmten Widerstand an die gleichgerichtete Spannung, so dass ein bestimmter Strom durch Rsense der H-Brücke fliesst. Dieser Spannungsabfall wird gemessen und ausgewertet. Dann weiss der Master wenigstens, ob der Slave antwortet oder nicht. Ist sowas überhaupt machbar, oder habt Ihr einen anderen Vorschlag? Gruss Hilel
@ vikinger: das ganze sollte jetzt bidirektional sein... d.h. ich werde wohl um 3 leitungen kaum rumkommen. habe mal von einem system mit rs485 gelesen, dass bidirektional arbeitet und über 2 leitungen versorgung und daten übertragt. funktioniert aber soweit ich weiß nur für kurze leitungslängen und geringe leistung. mal schaun ob das ganze mit einer 3ten gnd leitung für höhere leistung und leitungslängen auszubauen ist! Mfg, Mathias
@Mathias zwei Fragen noch vorweg: Ist Dein Projekt für privat oder beruflich? Was soll das den überhaupt werden? Wenn es nur um eine (Anwesentheits-)Bestätigung geht dann reicht es oft auch alle Befehle immer wieder zu wiederholen, so macht das DCC auf der Modelbahn auch (auch das ist nur eine Einwegkommunikation). Was passiert den wenn ein Empfänger so ein Paket nicht bekommt? Wenn Du wirklich Bidirektional arbeiten willst dann gönne den Daten eine eigene Doppel-Ader. Ich gehe mal davon aus Du möchtest auf Grund der 5A normales Stromkabel nutzen dann schau Dir mal bitte die 5 adrige Starkstromvariante an. Ich weis das wird etwas teurer aber die (teileweise wilden) Ideen mit 3 Adern werden Dir auch so manches abverlangen. Wie man Daten mit RS485 auf einer extra Doppelader überträgt hab ich weiter oben schon grob beschrieben. Bei 1000m sind auch bestimmt 2400Baud drin. Wenn Du dazu mehr Hilfe brauchst dann sag es ruhig, mit dieser Variante hab ich nun etwas Erfahrung. Vom Kabel abgesehen dürfte das auch die billigste Variante sein, ein RS485-Transceiver kostet wirklich nicht viel. Sieh dich einfach im Katalog des Elektronik-Versenders Deines Vertrauens um, da gibts bestimmt eine gute Auswahl. Achte darauf Das alle relvanten Verzögerungszeiten, JitterZeiten, Flaken und dergleichen zusammenaddiert unter einem Zentel der gewünschten Bitzeit bleibt, also unter 41µs für 2400Bit. Achte auch auf einen möglichst hochohmigen Eingang. Kurzschlussfest und ESD gehärtet sind die normalerweise alle, so das Du Dich ruhig auch etwas vom Preis und der Lieferzeit leiten lassen kannst. Einen passenden µC mit UART findest Du hier auf 'mikrocontroller.net' bestimmt auch. Wenn Du bidirektional arbeiten möchtest must Du Dir noch überlegen ob alle Teilnehmer von sich aus senden können sollen ober ob ein Master-Slave-System reicht. Im ersten Fall brauchst Du zumindest eine vernünftige Bus-Frei-Erkennung. Wenn immer nur der Master einen Slave addressieren soll und nur dieser nur dann kurz antwortet kannst Du Dir viel Aufwand ersparen. Grüße Erik PS: Deine Entertaste prellt oder steckt da irgenteine Absicht dahinter??
@Hilel > (Ob die Daten gut oder schlecht sind, das interessiert ihn nicht) Wen interessiert das nicht? Der Slave sollte immer nur korrekt empfangene Befehle ausführen. > Er muss nur mit ja/nein bestätigen. Was muss mit ja/nein bestätigt werden? Das überhaupt Datenn empfangen wurden, das ein korrekter Befehl empfangen wurde oder das einer ausgefürt wurde? Dei Sache mit dem bestimmten Strom ist bei mehr als einem Slave etwas schwierig. Kann dieser bestimmte Strom auch in einer anderen Situation entstehen? Das währen mir zuviele Unwägbarkeiten. Was soll das den überhaupt werden? Grüße Erik the Vikinger
Hi Vikinger, leider steht es mir nicht frei darüber zu entscheiden wieviele Kabel benötigt werden dürfen. Würde das auch am liebsten über ganz normales CAN bzw. RS485 machen und die Versorgung extra. Aber die Installations- und Kabelkosten sind einfach viel zu hoch! Bin also auf zwei Kabel, im besten Fall 3 Kabel beschränkt! Eine Art Powerline Abwandlung wäre doch auch ein Idee oder? Mfg, Mathias PS: Keine Ahnung was da wegen den Doppelpostings los ist.. ist aber nur wenn ich von zuhause aus schreibe.. mus mir das mal genauer anschaun
Nachdem die Stromstärke von 5mA auf 5A erhöht wurde, hat sich da denn schon jemand Gedanken gemacht, welcher Drahtdruchmesser angebracht wäre ? Mit 'Hausmannskostkabel' wird der Sender vermutlich garnicht merken, ob am Leitungsende (1000m ?) ein Kurzschluß ist oder nicht. Und auch bei Kabel mit 1,5² oder 2,5² gibt es kaum eine Chance, daß bei 24V überhaupt 5A fließen können.
@mathias Wer hat denn da das Pflichtenheft geschrieben ? oder war der Taschenrechner kaputt ??? schon bei 100m (entsprechend 200m Leitung) und 1,5 mm² hast du schon ca. 2,38 Ohm Leitungswiderstand, bei 2,5 mm² sind es immer noch ca. 1,43 Ohm. Bei angenommen 500m und 5A sind das schon rund 59 bzw. 36 Volt Spannungsabfall auf der Leitung. Um Monsterquerschnitte zu vermeiden, sollte man wohl mit deutlich höherer Spannung und entsprechend geringeren Strömen arbeiten, bzw. das Konzept gründlich überdenken.
@mathias Ich nehme mal an das Projekt ist beruflicher Natur, daher sehe ich genau 2 Möglichkeiten: - Arbeite mit der H-Brücke und ohne Rückkanal. oder - Erkläre den Entscheidungsträgern das man eben keinen 7er-BMW zum Preis eines Mini-Golfs bekommt. Wenn Du ein guter HF-Techniker bist (ich bin keiner) dann kannst Du versuchen die Daten aufzumodulieren aber bedenke was für ein Entwicklungsaufwand hinter PLC (bestimmt etliche Mann-Jahre) steckt und wo (welche Reichweite) die heute sind. Normale Stromkabel sind einfach nicht für höhrere Frequenzen gemacht und mit Reflektionen und punktuellen Auslöschungen mußt Du auch noch kämpfen. Mit der H-Brücken-Variante bekommst Du ganz bestimmt 2400Baud und gegen einzelnen Paketverlust hilft zyklisches Wiederholen aller Befehle. Was passiert eigentlich wenn so ein Befehl nicht ausgeführt wird?? Was soll das eigentlich werden?? (bitte wenigstens grob umreißen) Zu der Angelegenheit mit dem Kabelquerschnitt haben sich ja schon andere gemeldet, ich hab darüber auch nicht nachgedacht. So eine H-Brücke kann man problemlos bis etwa 500V bauen (bei höhren Spannungen wirds dann langsam kompliziert/teuer) und die Treiber und LeistungsFETs sind normalerweise für min. 50kHz ausgelegt. Fertige DC/DC-Wandler (für die Slaves) gibts auch mit allen von Dir benötigten Eigenschaften. Grüße Erik the Vikinger
@ Vikinger: Das ganze wird so eine Art Leitsystem. (Sry darf hier leider keine genaueren Angaben geben). Also die Datenrate ist gering, jedoch sollte eine recht hohe Störsicherheit garantiert werden können... Habe jetzt wieder eine andere Alternative gefunden. Nämlich eine Abwandlung zum ASI (Aktor - Sensor - Interface)! Das Modulationsverfahren ( alternierende Pulsmodulation in Kombination mit Manchester Codierung ) scheint sich sehr bewährt zu haben. Natürlich müsste man sich das Protokoll selber schreiben, dass dürfte aber wohl das kleinste Problem sein..! zur H-Brücken-Variante: Das ganze muss jetzt bidirektional sein und sollte über 2 Draht funktionieren! Mfg, Mathias
@Vikinger >Die Sache mit dem bestimmten Strom ist bei mehr als einem Slave etwas schwierig. Es gibt nur einen Slave. >Kann dieser bestimmte Strom auch in einer anderen Situation entstehen? Ja, aber erst nach dem Bestätigen der empfangenen Daten (Erklärung folgt). >Was soll das den überhaupt werden? Es handelt sich um eine Elektronik, die in einem Becher sitzt und über 2 Kontaktringe kontaktiert wird. Über diese 2 Ringe wird sie mit der nötigen Spannung versorgt und bekommt die notwendigen Infos. Diese Infos werden dekodiert und daraufhin kurze Impulse erzeugt. Es werden 3 MOSFETs angesteuert (nicht alle gleichzeitig), die für eine Zeit von 50 ms einen Strom von etwa 0,5A durchlassen. Der Master sendet zunächst die Zeit, die zwischen den Impulsen abgewartet werden muss. Dies soll vom Slave bestätigt werden. Als nächstes sendet der Master das Startkommando. Dies wird ebenfalls bestätigt. Sofort nach der Bestätigung schaltet der uC den MOSFET 1 für 50 ms, wartet die vorgegebene Zeit ab, schaltet dann den 2. MOSFET ebenfalls für 50ms und wartet nochmal die vorgegebene Zeit ab. Dann schaltet er den 3. und letzten MOSFET für dieselbe Zeit von 50 ms und wieder ab. Nun versetzt er sich in eine Warteschleife. Damit ist das Programm beendet. Das Ganze sieht dann etwa so aus: --- --- --- -----! !--------! !--------! !------- Ich hoffe, das ist jetzt klar. Gruss Hilel
@Mathias Stromkabel mit 1000m Länge ist für alles über 100kHz mit normalen Mitteln quasie undurchlässig. Wenn Du was fertiges Kaufen kannst dann is gut, ansonsten wird das ein schwieriger Weg. Wenn die Wellenlänge der Nutzfrequenz deutlich größer (min. Faktor 10) sein soll als die Kabellänge, damit Reflektionen, Dämpfung u.ä. nicht zum Problem werden, brauchst Du viel Leistung und wenn Du mit hoher Frequenz arbeiten willst brauchst Du echt gute Technik und die gibts auch nicht gratis. Ich bin bei den Kabelpreisen nicht auf dem Laufendem aber 1km Starkstromkabel mit 5 Adern sollte weniger als ein Mann-Tag (zum Ingeniörs-Stundensatz) kosten. Also mir als Entscheidungsträger würde das ziemlich leicht fallen. 230V (AC,Potentialfrei) + 2*Data + Erde und dafür nur geringe Bauteilkosten (weil alles fertig und von x*100 Anbietern kaufbar) und fast keine Entwicklungszeit (von nem kleinem Progrämmlie für den UART mal abgesehen). Das "ASI" kenne ich nicht, werde es mir aber mal ansehen, rein aus Neugierde. Hast Du nen guten Link zum reinlesen? @Hilel Ich denke mal die Richtung vom Master zum Slave (beides nur einmal vorhanden, richtig?) ist Dir klar. Wie lang ist denn die Verbindung? Wenn die nur kurz ist (<5m) und auch gut geschirmt werden kann dann würde ich Dir, für die Rückmeldung, fast zu einem ??MHz-Sender im Slave raten. Das funktioniert unabhängig vom Stromverbrauch im Slave und auch gleichzeitig zu seinem "Programm". Im Master reicht eventuell ein ordentlicher Empfänger (alles ohne Freuenzmodulation u.ä., einfach nur kurz an für ACK und aus für NAK). Sender und Empfänger gibts bestimmt fertig zu kaufen, such Dir ein freies Band unterhalb von 20MHz (z.B. 13,56MHz) und den Rest gibts sicher für wenig Geld. Meinst Du mit "Kontaktringe" Schleifkontakte? Wenn ja dann wird das mit der Strommessung gewiss nicht einfach. Soll das mehrfach gebaut werden oder wirds ein Einzelstück? <http://www.i3modellbahn.de> die machen das so wie ich mir das vorstelle, Modelbahn funktioniert ja auch über Schleifkontakte, mit aufmodulierter HF. Bei den hohen Frequenzen reichen dafür 2 Kondis zur HF-Signal Ein/Aus-kopplung und für Power sollten 2 kleine Feritperlen vor den Gleichrichter, 2400Baud lassen sich davon nicht wirklich beeinflussen. Grüße Erik
@Mathias Hab grade unter <http://www.infoside.de/infida/asi/asi002.htm> diese Infos gefunden (bitte korrigiere mich wenn das falsch ist) : |Leitungslänge: maximal 100 m bis 1000m fehlt da noch eine Zehnerpotenz (die kurzen Daten-Spikes werden nach 100m auch kaum noch mesbar sein) |Busmedium: ungeschirmte Zweidrahtleitung für Daten und Energie | (max. 2A) und da ist bestimmt keine Luft mehr drin, schon gar nicht bei 100m |Busmanagement: Master-Slave Verfahren | (zyklische Abfrage aller Teilnehmer) das ist Okay, so würde ich das auch machen wenns einfach sein soll Interessantes System, auch die Kodierung ist nicht schlecht, aber für Deine Anforderungen viel zu Schwach. Grüße Erik
@Vikinger Danke erstmal für die Antwort > Wie lang ist denn die Verbindung? 15 bis 20m > Meinst Du mit "Kontaktringe" Schleifkontakte? Ja, das sind Schleifkontakte > Soll das mehrfach gebaut werden oder wirds ein Einzelstück? das soll mehrfach gebaut werden >Wie lang ist denn die Verbindung? >Wenn die nur kurz ist (<5m) und auch gut geschirmt werden kann dann >würde ich Dir, für die Rückmeldung, fast zu einem ??MHz-Sender im >Slave raten. Das ist eine Platzfrage. Ausserdem soll eine Streque von bis zu 20m überbrückt werden. Aber sonst ist das keine schlechte Idee. Ich habe schon mit dem Gedanken gespielt. >http://www.i3modellbahn.de die machen das so wie ich mir das vorstelle, Modelbahn funktioniert ja auch über Schleifkontakte, mit aufmodulierter HF. Bei den hohen Frequenzen reichen dafür 2 Kondis zur HF-Signal Ein/Aus-kopplung und für Power sollten 2 kleine Feritperlen vor den Gleichrichter, 2400Baud lassen sich davon nicht wirklich beeinflussen. Ich muss mir die Site genauer anschauen. Schaltungsbeispiele wird es dort wohl nicht geben. Danke nochmal und gute Nacht
@ vikinger: -100m ohne repeater 300m mit repeater ( hoffe auf 500m zu kommen ) - asi verwendet eine fixe Datenrate: diese liegt bei weiten höher als meine benötigte! da ich das aufmodulieren bzw. demodulieren "selber" mache, werde ich eine geringere datenrate verwenden und somit hoffentlich eine höhere kabellänge einsetzen können - busmedium: laut asi spez. ist es möglich bis zu 8A zu übertragen 2A werden mir aber wahrscheinlich reichen( wie schon erwähnt ist es mit einem höheren Strom eh kaum möglich über leitungslängen von etwa 500m zu kommen.. ) - busmanagment: werde ich wahrscheinlich auch so ähnlich machen, jedoch mit einem eigenen Protokoll => d.h. das einzige was ich von asi verwende ist die modulation bzw. demodulation der daten! mal schaun obs hinhaut :-) Mfg, Mathias
Hallo, @Mathias > -100m ohne repeater > 300m mit repeater ( hoffe auf 500m zu kommen ) Viel Glück! Das mit den Repeatern riecht nach viel Arbeit, die müssen nämlich u.a. selbstständig die Daten-Richtung erkennen. Klar ist das nicht schwer aber da sind noch mehr Stolpersteine. Das muss alles erst mal entwickelt, gebaut und bezahlt werden. Ich bin immer noch der Meinung das ein anderes Kabel deutlich_billiger wäre. Aber so wird eben ein Mitarbeiter damit gut beschäftigt, der könnte sich ja sonst noch langweilen. (Nicht persönlich nehmen aber Entscheidungsträger welche die Kosten vieler Mannstunden nicht mit einrechnen können mag ich einfach nicht.) Woher sollen die Repeater eigentlich ihre Energie bekommen? > - asi verwendet eine fixe Datenrate: > diese liegt bei weiten höher als meine benötigte! da ich das > aufmodulieren bzw. demodulieren "selber" mache, werde ich eine > geringere datenrate verwenden und somit hoffentlich eine höhere > kabellänge einsetzen können Das mit der geringeren Datenrate wird schwierig da ASI, zumindest nach dem was ich gestern gefunden hab, recht kurze Spikes einsetzt. Diese kurzen Spikes werden auf nem langen Kabel immer gleich verschliffen egal wie oft oder selten die kommen. Wenn Du die Spikes länger/kräftiger machen möchtest braucht der Sender mehr Energie und wenn Du die Empfänger empfindlicher machen willst soltest Du ein gutes Fehlermanagment implementieren (bei ausreichend langen Paketen bzw. schwachen Impulsen kommt kein Paket mehr unbeschädigt an so das Du ordentliche ECC-Codes brauchst), ein echter Teufelskreis eben. Fazit: betrachte es als Herrausforderung die Dir noch viele (bezahlte) Stunden beschert. Ich persönlich hake sowas immer unter Missmanagment ab. @Hilel Die genannten 13,56MHz werden von vielen RFID-Tags benutzt, dort gibts en mass günstige und kleine (Single-Chip) Sender und Emfänger. Wenn die 20m Kabel auch vieradrig sein dürfen kannst Du den Empfänger ja direckt außen an den Schleifkontakten anklemmen und mit RS485 bis zur eigentlichen Steuerung (über die 2 extra Adern) gehen. Ein Versuch ist das IMHO wert. Grüße und viel Spaß Euch beiden! Erik the Vikinger
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.