Archiv verlassen und diese Seite im Standarddesign anzeigen : 2 * RS232 Schnittstellen
Unregistriert
21.10.2004, 21:49
Hallo,
ich beschäftige mich seit kurzem mit einem Atmel AT89S8252.
Ich habe vor einene art "Lauscher" zu bauen der zwichen 2 Geräte gesetz wird um die Kommunikation zu überwachen und die Befehle zu übersetzen.
Dies mus über 2 serielle Schnittstellen geschehen.
Leider weis ich nicht, wie ich dass hardwaretechnisch und softwaretechnisch realisieren soll.
Könntet Ihr mir bitte weterhelfen.
Danke
Z.B. so ? :
2 x AT89S8252 nehmen .
Hardware UART betreiben über RXD (P3.0) .
Mit einem MAX232 dazu .
Beispiele für 8051er UART in asm findet man im Prog-Studio ( nach der Installation ) .
crazy horse
22.10.2004, 00:38
es gibt mehrere Möglichkeiten:
-wie schon gesagt, einen 2. MC nehmen, kann durchaus sinnvoll und rentabel sein, Kommunikation zwischen den beiden dann über SPI
-eine 2.UART extern anschliessen, kommt eigentlich nur der MAX3800 (hiess der so?, habe ich mal ins Auge gefasst, war dann aber zu teuer, nicht für ein Einzelstück, da wärs mir egal, ging um ein 100 Stk) in Frage, funktioniert prima, leistet aber auch nicht mehr als ein Hilfknecht-MC
-je nach Baudrate eine Software-Uart aufbauen, bei 11.0596MHz und 9600Baud purzelt alle 96 Maschinentakte ein Bit herein, das schafft man noch, lbelastet die MC-Gesamtleistung allerdings schon deutlich (Startbit mit ex. Int erkennen, halbe Bitzeit warten, nochmal startbit prüfen, Timer mit Bitzeit programmieren, dann alle 104µs ein Bit einlesen, zu einem Byte zusammenschieben, schauen, ob schon 8 Bits drin sind, evtl. parity-bit prüfen, stop bit prüfen, empfangenes byte in einem Ringpuffer speichern, pointer aktualisieren, buffer-overflow kontrollieren. Das sind so die groben Sachen, die du tun musst. Senden ist etwas einfacher. Wie schon gesagt, bei ca. 9600 Baud ist Schluss mit lustig, Taktfrequenz erhöhen (bei 22.12MHz sind auch 19200 drin) oder einen AVR nehmen. Wenn du aber mit 9600 oder weniger zufrieden bist, ist das eine sehr günstige Möglichkeit.
Unregistriert
22.10.2004, 07:43
Danke für die schnelle Antwort.
Aber ist es denn überhaupt nicht möglich an einen MC 2 serielle Schnittstellen anzuschließen und diese "gleichzeitig zu betreiben"?
Danke nochmal
Unregistriert
22.10.2004, 07:48
Nachtrag:
Ich brauche das nur über eine Geschwindigkeit von 300 Bd
smartronik
22.10.2004, 08:00
ATMEGA162 hat zwei serielle Schnittstellen.
Aber nur zum Lauschen, langt eine.
Das Ganze macht aber nur Sinn, wenn die zu belauschende Kommunikation seriell ist und die Baudrate fest und bekannt ist. Ansonsten wäre ein Datenlogger die bessere Lösung.
crazy horse
22.10.2004, 09:46
nö, eine reicht nicht zum lauschen, wenn zwischen 2 Geräten der komplette traffic abgehört werden soll. Dann braucht man 2 Receiver.
Aber, wie schon beschrieben, bei 300Baud gar kein Ding. Das kann der MC nebenbei erledigen. Wenn du keine Lust hast, es selbst zu programmieren oder es nicht kannst, musst du im Netz nach fertigen Programmschnipseln suchen, findet man bestimmt was.
Aber es ist wirkllich easy, dass selbst zu machen, 1bit kommt alle 1/300=3.333ms, das sind für einen MC kleine Ewigkeiten.
Es gibt auch 8051er mit 2 x UART drinn .
Die meisten ( oder alle ? ) sind teuerer als 2 x AT89S8252 ...
Bei nur 300 Baud geht das auch mit Software. Da kann man ja zusehen wie die Buchstaben reintröpfeln. Anzahl Bits sollte halt bekannt sein.
Powered by vBulletin® Version 4.1.12 Copyright ©2012 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.