Forum: Mikrocontroller und Digitale Elektronik µC 8 x UART/RS485 Server


von Erik .. (erik_mit_k)


Lesenswert?

Hallo,
ich habe ein echtes Problem und Goolge hat mir auch noch nicht im 
ausreichenden Maße geholfen…

Ich habe eine Sonde mit einem ADuC7060 gebaut die über die UART->RS485 
mit 1600Hz je 11Byte an Messwerten sendet (Baudrate 320000). Nun möchte 
ich bis zu 8 Sonden des gleichen Typs in einer Art Netzwerk verbinden. 
D.h. also ich benötige einen µC der idealerweise bis zu 8 RS485/UART 
Schnittstellen besitzt und eine USB/Ethernet Schnittstelle um die Daten 
an den PC weiterzuleiten. Nebenbei soll dieser µC die aufkommenden Daten 
auf SD-Karte o.ä. zwischenspeichern. Ich dachte eventuell an die 
Prozessorfamilie PIC32MX5XX oder eine Raspberry PI mit entsprechenden 
Schnittstellenerweiterungen. Jedoch scheint mir der Programmieraufwand 
recht hoch zu sein…

Hat eventuell schon jemand etwas ähnliches realisiert (8 mal 
UART(320000Baud) + SD + USB oder Ethernet) und könnte mir ein paar Tipps 
geben?

Vielen Dank im Voraus

von Olaf (Gast)


Lesenswert?

Du könntest einen Renesas R32 verwenden. Die hatten 9xserielle 
Multifunktionseinheiten. (also RS232, SPI, I2C) Allerdings kein 
Ethernet.

Ich könnte mir auch vorstellen das dies etwas problematisch wird. Es 
scheint wohl eine Trennung zu geben zwischen Controllern die sich eher 
an Consumer Multimedia usw wenden und Controllern die speziell fuer 
industrielle Steuerungen gedacht sind.

Olaf

von Daniel V. (danvet)


Lesenswert?

Dir ist aber schon bewußt, dass du bei RS485 mehrere Teilnehmer 
anschließen kannst:
http://www.mikrocontroller.net/articles/RS-485

Warum du jetzt einen Controller mit 8 Anschlüssen brauchst ist mir nicht 
ganz klar....

von Martin P. (billx)


Lesenswert?

Die frage is ob die Software in den Sensoren darauf ausgelegt ist an 
einem Bus betrieben zu werden. RS485 spezifiziert und die elektrischen 
Eigenschaften... nicht das Protokol. Wer darf dann wan senden und so 
dinge ...

von Daniel V. (danvet)


Lesenswert?

Martin P....... schrieb:
> Die frage is ob die Software in den Sensoren darauf ausgelegt ist an
> einem Bus betrieben zu werden. RS485 spezifiziert und die elektrischen
> Eigenschaften... nicht das Protokol. Wer darf dann wan senden und so
> dinge ...

Steht doch im Link, dass das Protokoll das steuert. Aber es kann 
natürlich sein, dass der TE nur RS485 gewählt hat, weil man damit höhere 
Übertragungsraten hin bekommt....

von Frank K. (fchk)


Lesenswert?

Nimm einfach einen Controller mit externem Adress-/Datenbus und externe 
UARTs.
Eine Möglichkeit wäre z.B. der NXP SC28L198, der 8 Kanäle hat und auf 
jedem Kanal bis zu 1MBit/s fahren kann. Das ist eine Weiterentwicklung 
des Motorola 68681.
Wenn Du etwas 16C550-kompatibles haben willst, gibts z.B. den SC16C654B 
mit 4 Kanälen und 64 Byte FIFOs. Von diesen hier bräuchtest Du zwei 
Stück.

Es gibt auch noch den SC16IS762 mit zwei Kanälen und I2C/SPI-Interface, 
wobei I2C zu langsam ist.

Siehe hier:

http://ics.nxp.com/literature/other/interface/pdf/UARTS_Bridge_ICs.pdf

fchk

von Erik .. (erik_mit_k)


Lesenswert?

Daniel V. schrieb:
> Dir ist aber schon bewußt, dass du bei RS485 mehrere Teilnehmer
> anschließen kannst:
> http://www.mikrocontroller.net/articles/RS-485
>
> Warum du jetzt einen Controller mit 8 Anschlüssen brauchst ist mir nicht
> ganz klar....

Vielen Dank erstmal für die schnellen Antworten!

Um die 11 Byte 1600 mal in der Sekunde zu übertragen benötige ich eine 
relativ hohe Datenrate. Mein Favorit wäre eigentlich auch die Buslösung 
gewesen. Aber wie sich herausgestellt hat ist die maximale 
Übertragungsrate die der ADuC7060 mit UART schafft 320000 Baud und dabei 
ist die Schnittstelle schon mit einer Sonde hast komplett ausgelastet 
(140800Bit/s + Delay beim Senden der einzelnen Byte da ADuC7060 kein DMA 
unterstützt). Daher benötige ich 8 Schnittstellen welche die Daten auf 
eine schnellere Schnittstelle umsetzen. Das Hardwarelayout steht leider 
schon komplett und kann nicht mehr verändert werden.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Frank K. schrieb:
> Eine Möglichkeit wäre z.B. der NXP SC28L198, der 8 Kanäle hat und auf
> jedem Kanal bis zu 1MBit/s fahren kann.

Ich habe bei dem keine Hardwareunterstützung für die 
Sender-/Empfängerumschaltung von RS485-Treibern gesehen, war ich nur zu 
oberflächlich beim Datenblattlesen oder kann der das wirklich nicht?

von Frank K. (fchk)


Lesenswert?

Rufus Τ. Firefly schrieb:
> Frank K. schrieb:
>> Eine Möglichkeit wäre z.B. der NXP SC28L198, der 8 Kanäle hat und auf
>> jedem Kanal bis zu 1MBit/s fahren kann.
>
> Ich habe bei dem keine Hardwareunterstützung für die
> Sender-/Empfängerumschaltung von RS485-Treibern gesehen, war ich nur zu
> oberflächlich beim Datenblattlesen oder kann der das wirklich nicht?

Der 68681 konnte das auch nicht, deswegen wirst Du wohl recht haben.

fchk

von Johannes V. (j-v)


Lesenswert?

Hallo,

den XMEGA128A1 gibts mit 8 UARTS.

Gruß Johannes

von Gregor B. (Gast)


Lesenswert?

Freescale MCF54415/6/7/8 10 Uarts + 2 x Fast Ethernet

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.