PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Steckervorschlag für RS485



Kjion
24.02.2004, 13:11
Hi, wie sieht das eigentlich mit dem RS485 Bus bzw. CAN aus ??
Bei CAN gibts soweit ich weiß schon eine Norm mit SubD Stecker. RS485 könnte man vierpolig ( 1. RS485B 2. RS485A 3. Vcc 4. GND ) oder zehnpolig machen ... was meint ihr ??

MfG Kjion

Stefan
24.02.2004, 13:16
Hallo, was ist denn RS485, wird die irgendwo beschrieben? Über CAN hatte ich was gelesen, aber nutzt die Schnittstelle auch wirklich jemand?

Kjion
24.02.2004, 13:32
Ich benutzt RS485, will aber demnächst evnt. auch mit CAN arbeiten. ;) Diese Schnittstellen sind eigentlich erst in Verbindung mit Multimastersystem sinnvoll.
Bei RS485 ist allerdings kein Protokoll festgelegt, das muss man noch selbst implementieren. Anderes ist das bei CAN, dafür gibts schon fertige Bausteine, die man realtiv einfach an µC hängen kann...

Eine Gegenüberstellung findet man auf http://www.elektronik-projekt.de unter Artikel >> Elektronik >> RS485 Bus

MfG Kjion

24.02.2004, 13:41
Ist offenbar nicht viel anders als RS232, offenbar nur schneller. Aber warum nimmt man dann nicht gleich SPI, ist doch noch schneller!

Kjion
24.02.2004, 15:29
SPI ist wieder was ganz anders. RS485 ist RS232 schon sehr ähnlich, nur das es eben die Verbinung mehrere µC erlaubt ( bis zu 32 bis 128 je nach Treiberbaustein ).

SPI ist eine syncrone serielle Übertragung mit nur einem Master und meheren Slaves, RS485 und RS232 sind asynchron, das heißt es wird kein Taktsignal generiert. Beides hat Vorteile, aber eben nicht immer ;)

Das SPI jetzt sehr viel schneller sein soll glaub ich mal nicht. Mit den richtigen µC ( ATmega zum Beispiel :mrgreen: ) und Treibern kann man mit RS485 Datenübertragungsraten bis 2,5 MBaud schaffen ... aber wer braucht das schon ;)

MfG Kjion

Frank
24.02.2004, 17:11
@Kjion
Die RS485 noch auf den RNB-Hauptstecker zu legen macht glaub nicht so Sinn. Zum einen weiss ich nicht ob die hohen Datenrate da nicht doch Störungen verursacht zum anderen haben wir kaum noch Controllerleitungen zur Verfügung, die meisten sind vordefiniert. Notfalls könnte man noch auf Pin´s 46 und 47 einen halbduplex Rs485 definieren. Aber eigentlich sollte man diese Ports in Reserve haben, oder?
Vielleicht sollte man noch einen Stecker für RS485 definieren. Den kann dann jeder der ihn braucht optional auf seinem Board unterbringen.

Gruß Frank

Matrix
25.02.2004, 20:28
Hallo
also ich finde das dann alle 4 Leitungen + Spannungen auf einem Stecker zusammengefaßt werden sollte.

Was haltet ihr davon?

2x5 Wannenstecker wie I2C-Bus

Pin 1 = RS485 A
Pin 3 = RS485 B
Pin 5 = RS485 C (Handshake)
Pin 7 = RS485 D (Handshake)
Pin 9 = VDD (max. 12 V)
Pin 2, 4, 6,
Pin 8+10 = 5V

Kennt jemand die Bezeichnungen der Handshake Leitungen?

Frank
26.02.2004, 00:35
Ja, denke das ist garnicht übel. Was meinen die RS485 Experten?

Kjion
01.03.2004, 23:28
Da ich auf meinen Laufroboter nicht so viele Kabel verlegen wollte/konnte, hab ich einen vierpoligen Stecker genommen:

1. RS 485 B
2. RS 485 A
3. Vcc
4. GND

Das wäre halt nur für einen Half-Duplex Bus...

MfG Kjion

Frank
02.03.2004, 00:40
Vcc ist wohl Batteriespannung? Zumindest eine fünfte Leitung stabilisieren 5V wäre dann noch günstig.

Kjion
02.03.2004, 12:07
Vcc heißt in diesem Fall + 5 Volt ;)
Darüber läuft auch die Versorgung der einzelnen Module...

MfG Kjion

Frank
02.03.2004, 12:09
Hi Kjion
Wie realisierst du die RS485 - muss man da einen Baustein wie Max verwenden oder kann man das auch im TTL-Pegel mit 2 normalen Ports machen? Wenn ja, gibts da irgendwo Treiber für?

Gruß Frank

Kjion
02.03.2004, 12:16
Als Treiber verwende ich für Half Duplex die MAX485/481 bzw. kompatible ( SN75176 zum Beispiel ).

Man sollte das schon über Treiber machen, da man sich sonst leicht die entsprechenden Pins kaputtmachen kann bzw. keine so gute Reichweite und Störsicherheit hat...

MfG Kjion

Frank
05.03.2004, 15:08
Hallo
Hast Du zufällig mal ne Skizze/Schaltplan zu RS485? Kann man die auch softwaremaßig über zwei normale Ports ansteuern (mit IC´s). Gibts da Software-Treiber?

Gruß Frank

Kjion
06.03.2004, 19:46
Hi,

http://www.elektronik-projekt.de/content/images/2wirers485bus_small.gif
( von Elektronik-Projekt.de http://www.elektronik-projekt.de/include.php?path=content/articles.php&contentid=16 )

Ist im Prinzip so ähnlich wie die serielle Schnittstelle zum PC.
Um das ganze an zwei beliebige Ports anschließen zu können, müsste man eine serielle Schnittstelle softwareseitig implementieren.

Daher ists am sinnvollsten das ganze an die RXD und TXD Pins anzuschließen. Man braucht dann natürlich noch ein Protokoll. Ich werd demnächst mal meinen Code dazu online stellen. Ist in C für AVR-GCC geschrieben...

MfG Kjion

Frank
07.03.2004, 12:22
Hi, Danke für die Schaltung. Was mir noch Unklar ist:

Wenn der Max485 mit RX/TX verbunden wird, mit wievile Baud wird denn dann vom AVR zum Max485 und zurück übertragen? Wenn da doch auch nur 9800 Baud oder etwa smehr machbar sind, was hat die 485 dann für einen Sinn?

Gruß Frank

Kjion
07.03.2004, 13:45
Wenn der Max485 mit RX/TX verbunden wird, mit wievile Baud wird denn dann vom AVR zum Max485 und zurück übertragen?
Wenn da doch auch nur 9800 Baud oder etwa smehr machbar sind, was hat die 485 dann für einen Sinn?

Möglich sind bis zu 2,5 Mbps ;) Der Max485 ist im Prinzip nur ein Ausgangstreiber der die Signale die vom Mikroprozessor so umwandelt, dass sie übertragen werden können...

MfG Kjion

Frank
07.03.2004, 13:51
Sind da die TTL Leitungen bis zum Max485 nicht etwas kritisch, störanfällig? Wie lang können die in etwa sein, gibts da Erfahrungswerte?

Kjion
07.03.2004, 14:18
Hab ich noch nicht ausprobiert. Theoretisch sollte es aber relativ störunanfällig sein, da die Daten als Spannungsdifferenz übertragen werden...
Ich hab mal ein bißchen gesucht :

* max. 100 m bei 12 Mbit/s
* max. 200 m bei 1,5 Mbit/s
* max. 400 m bei 500 kbit/s
* max. 1 km bei 187,5 kbit/s
* max. 1,2 km bei 9,6 ... 93,75 kbit/s

MfG Kjion

Frank
07.03.2004, 14:24
Ich glaub das hast du nu falsch verstanden, oder? Du meinst glaub die Rs485 Kabelänge zwischen den Teilnehmern. Ich meine die Leitungslänge vom Controller bis zum MAX485! Das ist ja noch ganz normaler TTL Pegel!

Kjion
07.03.2004, 21:17
Achso, dann hatte ich das wirklich falsch verstanden ??
Ist das denn so wichtig ?? Wie weit willst du die denn voneinander entfernen ??
Ich hatte meine bisher immer relativ nahe am Controller .... keine Ahnung wie weit die entfernt sein dürfen ....

Frank
08.03.2004, 09:09
Hi,

das ist schon sehr wichtig. Natürlich wenn man Max imme rgleich daneben setzen kann, dann braucht man sich da keine Gedanken machen. Aber es gibt auch größere Boards wo viele Bausteine gerne neben dem Controller / Prozessor sitzen wollen ;-), da muss man schon mal überlegen wo die wirklichen Grenzen liegen. "In der Nähe" ist ja ein sehr relatives Maß :-)
Ich frage mich halt ob 20-30 cm ohne Probleme machbar sind. Solche Entfernungen könnten z.B. auf einen PC-Mainboard ganz schnell zustande kommen.

Gruß Frank

Kjion
08.03.2004, 09:23
Da kenne ich mich leider überhaupt nicht aus.
Ich denke aber, bei langsamen Geschwindigkeiten sollten auch 20-30 cm zu schaffen sein. Ob es dann bei höheren Übertragungsraten zu Schwierigkeiten/ Störungen kommt weiß ich allerdings nicht.

MfG Kjion

Frank
08.03.2004, 09:28
Na ja, ich werts irgendwann mal testen wenn ich es brauch. Momentan ist es sowieso nur theoretisch interessant. Im schlimmsten Fall müsste man halt Datenrate etwas reduzieren wenn Leitung zu lang wird.

Gruß Frank

stupsi
09.03.2004, 19:37
Ich habe mal zwischen einem Drehgeber (TTL-Ausgang) und einem Frequenzumrichter (RS485 - Eingang) einen RS485 Treiber dazwischengeschaltet. Beide Geräte waren 5m auseinander und
der Treiber in der Mitte dazwischen. Es funzte einwandfrei trotz erheblicher EMV- Störungen vom Frequenzumrichter und nicht bedachtem Masseverlauf. Leider hatte der Drehgeber eine Maximalfrequenz von nur 12 kHz.
:wink:

Frank
10.03.2004, 10:57
Hi Stupsi,

danke für Info. Das klingt gut, gibt mir wieder etwas Spielraum bei einigen zukünftigen Ideen ;-) Ich brauch ja nur maximal 30 cm, das sollte dann wohl auch gehen :-)

Gruß Frank

Frank
19.03.2004, 13:26
Also nachdem keine weiteren Vorschläge kommen schlag ich nochmal folgendes vor

Stiftleiste 2x5 die wie folgt belegt ist:

Pin 1. Voller Batteriespannung
Pin 3. GND
Pin 5. 5V
Pin 7. RS 485 A
Pin 9 RS 485 B

Pin 2. Voller Batteriespannung
Pin 4. GND
Pin 6. 5V
Pin 8. RS 485 C
Pin 10 RS 485 D

Diese Steckerbelegung hat einige Vorteile. Man kann auch nur einen Stecker mit 5 Polen aufstecken wenn man nur einen Half-Duplex Bus benötigt. Man hat dann in diesen 5 polen alles drin und die Belegung entspricht sogar noch den bisherigen Normierungen von uns (+12 GND +5 port port).
Möchte man Vollduplex nutzen dann müsste man den vollen Stecker benutzen - man hat also die Wahl!
Es ist sogar noch kompatibel zu Kijon´s Stecker, auch wenn man es erst bei zweiten hinsehen bemerkt.

Wenn keiner einen besser Vorschlag hat, dann nehme ich den auch so als Empfehlung in das PDF-Dokument auf.

Gruß Frank

Kjion
20.03.2004, 08:50
Hört sich gut an ;)
Besonders das
Es ist sogar noch kompatibel zu Kijon´s Stecker, auch wenn man es erst bei zweiten hinsehen bemerkt.

MfG Kjion

Frank
20.03.2004, 10:38
Dachte mir schon das Dir der Satz am besten gefällt :-)
Nach der reichlichen Zustimmung ;-) werden wir es wohl so festhalten.

Gruß frank

Frank
04.05.2004, 17:00
Ich hab die PDF- mit den Steckernormen mal erweitert und auch diesen Stecker aufgenommen.
Aktuelle findet man weiterhin hier https://www.roboternetz.de/phpBB2/dload.php?action=category&cat_id=16