Forum: Mikrocontroller und Digitale Elektronik 1Mbit = 921600bps?


von jamest (Gast)


Lesenswert?

Moin,
wenn in einem Datenblatt steht, dass eine RS485 Schnittstelle 1Mbit/s 
schafft und dem EIA 485 Standard entspricht, ist dann 921600 gemeint 
oder wirklich 1000000Bps? Habe nämlich dass Problem, dass ich eine RS485 
auf CAN Wandlung machen muss, CAN 250Kbit/s und RS485 1Mbit. Das ist 
aber mit dem Oszillator dann mein Problem, weil 921600 kann der 16Mhz 
nicht produzieren und ein 14,7456 Mhz könnte dann widerrum die CAN 
Bitrate nicht hinreichend genau liefern. Wie geht man sowas an? Braucht 
man dann 2 verschiedene Oszillatoren?

von Benni N. (benninori)


Lesenswert?

Wenn dein CAN eh nicht schneller ist, wieso willst du dan die RS485 
eigentlich bis an die Grenzen auslasten?

von jamest (Gast)


Lesenswert?

Das muss beim Einlesen so schnell gehen, weil ich ein paar milisekunden 
brauche um CRC zu berechnen und dann die CAN Nachrichten zu versenden.
Ich mache das Empfangen/senden nicht parallel, sondern nacheinander...

von Volker Z. (vza)


Lesenswert?

Die CRC generierung macht der CAN-Controler. Die must du nicht selber 
machen.
Ansonsten um die Quarzfrequenz zu bestimmen: Kleinster gemeinsames 
Vielfache.

von (prx) A. K. (prx)


Lesenswert?

jamest schrieb:

> wenn in einem Datenblatt steht, dass eine RS485 Schnittstelle 1Mbit/s
> schafft und dem EIA 485 Standard entspricht, ist dann 921600 gemeint
> oder wirklich 1000000Bps?

Der RS485-Standard definiert keine bestimmten Bitraten, allenfalls 
Limits davon. Und wenn dort 1MHz steht, dann sind das 1000000Hz. Was du 
draus machst oder was dein Bus benötigt ist eine andere Baustelle.

Wenn ein elektrischer Standard wie RS485 irgendwas definiert, dann ist 
das eher als Richtwert zu verstehen, mehr darf schon sein. Da sitzt 
niemand am Bus, zählt MHz mit und macht wegen Lizenzüberschreitung bei 
1000001Hz den Laden dicht ;-).

von jamest (Gast)


Lesenswert?

Volker Zabe schrieb:
> Ansonsten um die Quarzfrequenz zu bestimmen: Kleinster gemeinsames
>
> Vielfache.

Hab ausgerechnet, dass 9,25Mhz ganz gut geeignet wäre. So nen Oszillator 
gibts ja nun aber nicht fertig zu kaufen. Nimmt man dann einen VCO und 
regelt über die Spannung die Frequenz des Oszillators? Wäre so ein VCO 
dann hinreichend genau?

von (prx) A. K. (prx)


Lesenswert?

Bevor du hier Klimmzüge machst um deine heissgeliebten 0,9Mbd zu 
erreichen: benötigst du eine ganz bestimmte Bitrate auf der RS485 
Strecke, beispielsweise weil die schon existiert, oder kommst du auf die 
0,9Mbd durch Extrapolation der üblichen asynchronen Schnittstellenraten?

Denn technisch spricht nichts dagegen, eine RS485-Strecke mit exakt 1Mbd 
zu betreiben. Solange da kein PC mitmischt, der konkrete Vorstellungen 
davon hat, was eine gültige Bitrate ist und was keine.

von jamest (Gast)


Lesenswert?

:) nein auf die heissgeliebten 921600bps hab ich keinen einfluss. die 
muss ich leider so hinnehmen!

von (prx) A. K. (prx)


Lesenswert?

Na denn:

(1) Externen CAN Controller verwenden, MCP2515 oder SJA1000 
beispielsweise. Der kriegt seinen eigenen Takt.

(2) Mikrocontroller mit fraktionaler Baudratengenerierung verwenden. Da 
geht so ziemlich alles bei fast jedem nicht zu kleinen Takt. Die sind im 
32-Bit Bereich öfter anzutreffen, MSP430 kann's wohl auch.

von horst (Gast)


Lesenswert?

> in einem Datenblatt steht
auf der ersten Seite oft eine Mischung aus: Übersicht über die 
technischen Eckdaten und Marketing-Gefasel.

Auf wieviele signifikante Stellen ist 1Mbit/s denn überhaupt angegeben?
Meist steht weiter hinten im Datenblatt, unter welchen Bedingungen 
welche technischen Daten realistisch sind.

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
Noch kein Account? Hier anmelden.