Hallo. Ich habe mich in den letzten tagen in die rs232 eingearbeitet und habe noch ein paar fragen dazu. 1.) Es gibt ja verschiedene modi. einmal den synchronen und den asynchronen. Ist Es richtig, dass beim synchronen ein Takt mit übertragen werden muss und beim asynchronen der takt von den 2 geräten getrennt generiert wird ? 2.) Wozu gibt es die ganzen handsake signale, wenn ich doch zur kommunikation nur 2 Pins brauche ? 3.) wie kann ich bei einem AVR zwischen synchronen und asynchronen betrieb wählen ? 4.) die Baudrate ist ja ein synonym für Bits pro sekunde...Was bedeutet nun bits pro sekunde ? werden die stoppbits dazugezählt oder wie ? Vielen Dank vorab!
zu 1: RS232 ist prinzipiell asynchron zu 2: richtig, zur reinen Kommunikation bauchst du nur Rx und Tx, aber manche Geräte müssen auch Statussignale übertragen (können), z.B. Modem RI und CD, RTS und CTS werden benutzt, um vor dem Losschcken von Bytes zu prüfen, ob der Empfänger auch bereit ist Daten aufzunehmen. zu 3. Falls du die USART meinst - steht alles schön im Datenblatt zu 4: Die Baudrate sagt aus, wie lang ein Bit ist bzw. wie viele Bits in eine Sekunde passen. Jedes Bit ist gleich lang, egal ob es nun ein Start-,Stop-, Parity- oder Datenbit ist.
RS232 wurde nicht für Microcontroller erfunden, sondern für Anbindung von Modems. Dafür sind die übrigen Leitungen da. Beim µC werden die allenfalls für sachfremde Funktionen wie Vampirspeisung verwendet. Synchron ist in diesem Kontext extrem selten. Allein schon weil's am anderen Ende (dem PC) nicht ohne teuere Interfacekarte geht. Asynchron wird nur über das Startbit synchronisiert und daher müssen die Taktphasen so lange hinreichend genau passen bis das Stopbit durch ist, d.h. die Frequenz muss bis auf grob 1% übereinstimmen. Gewählt wird es beim AVR über ein Steuer-Register. Ein Bit ist ein Bit, egal ob Daten drin sind oder Stops.
Hi Crazy Horse. zu 3.) Ich hatte gedacht, dass der USART nur für die rs232 ist. Stimmt das nicht ? Was kann ich denn och mit dem USART Machen? zu 4.) das heisst, dass ich von der baudrate noch die start, stop usw bits abzeihen muss um die reine "daten"übertragung zu errechnen. MfG
1.) Ja 2.) Braucht man in der Regel für uC nicht. Wird eher in Modems verwendet... 3.) Das USART eines AVRs ist asynchron (deswegen muss eine Baudrate eingestellt werden) 4.) Beim USART benötigt eine Byte (8Bits) in der Regel 10 Bits wegen Start- und Stoppbit (==> Bei 9600 Baud werden 960 Bytes/Sekunde übertragen) ich hoffe es hat geholfen... Wolfgang
Mit den Handshakes kann man den Sender mitteilen, daß der Empfänger gerade beschäftigt ist. Beispiel: Ein EEProm soll beschrieben werden. Wenn man mal von Page-Write absieht, braucht ein Byte 4-5ms zum Schreiben, das ist selbst für 9600 Baud zu langsam. Dann kann der Empfänger den PC über die RTS/CTS Leitungen ausbremsen. Eine recht gute Informationsquelle für verschiedenste Schnittstellen: http://www.beyondlogic.org
@crazy horse
> RS232 ist prinzipiell asynchron
oops, der RS-232 Standard (EIA) sagt aber u.a. folgende Merkmale zu:
- serielle Übertragung, synchron und asynchron, LSB zuerst
- Leitungsfunktionen nach CCITT V.24
- Elektrische Eigenschaften nach CCITT V.28
- 25poliger(!) Stecker mit Definition der Pinbelegung
Wobei Pin 15 (TC) zum "Transmission Signal Element Timing" bei
synchroner Übertragung vorgesehen ist. Im Übrigen definiert RS-232 zwei
komplette Kanäle (TX1/RX1 und TX2/RX2)
Nichts für Ungut,
Andreas
Das ist ja interessant, noch nie gehört, scheint aber wohl zu stimmen. Gibts (gab) es je Geräte, die wirklich sowas benutzt haben?
dann fragt sich nur noch welcher derzeit verfügbare rs232 port diese besonderheiten unterstützt. das letzte mal ist mir ein 25poliger stecker in einem 486 untergekommen und ich weiss nicht, ob der dort voll beschaltet war oder nur aus kompatibilität drin war
@Tobi Genau das sind eben keine (vollständigen) RS-232 Schnittstellen, auch wenn sie umgspr. so genannt werden. Die heutigen, an PC's (noch) vorhandenen seriellen Schnittstellen halten sich nur an Teile des RS-232 Standards. Für die (PC-) Anwendungen ist das allerdings ausreichend. Daher ist in PC-Manuals meist auch nur vom Vorhandensein einer "seriellen" Schnittstelle und nicht einer RS-232 Schnittstelle die Rede. @crazy horse Ich glaube, an SPS sind solche noch vorzufinden. (Und auch hier Achtung: SPS ist nicht nur S5/S7) Andreas
also hab ich das jetzt alles richtig verstanden?! ich brauche also nur 2 leitungen die ich mit dem µC verbinde das ist die TxD und RxD leitung! diese leitungen muss ich kreuzen oder?sonst würde ja die leseleitung vom PC auf die leseleitung des µC gehen genau wie die schreibleitung?! was ist mit NC und GND?
Von GND spricht niemand weil das so selbstverständlich ist wie die tatsache dass man zum atmen luft braucht ;)
sowas kann man als anfänger aber ganz schnell falsch verstehen! (-; PS: dann werd ich wohl mal schnell GND dranlöten...
P.S. Aus ATmega128 Datenblatt USART The Universal Synchronous and Asynchronous serial Receiver and Transmitter (USART) ... d.h. Sowohl Async. als auch Sync.
jaja...datenblatt kenn ich langsam auswendig! hab aber kein "original" atmega128 sondern ein crum128 v.2 und das datenblatt ist voll sch...! (-; kannst dir ja mal angucken wenn du magst...musste aber nicht WEIL: steht eh nix drin! (-; ausser das der CON4 für rs232 signale verantwortlich ist...
Da ist doch ein ATmega128 rauf?! Hol Dir von http://www.atmel.com/dyn/products/product_card.asp?part_id=2018 das Datenblatt. (Ich hoffe der Link lässt sich Bookmarken). Wenn Du dann mit den 389 Seiten durch bist ... ;)
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.