| Autor | Nachricht |
|---|
winit_a
Beitritt: 16. Nov 2003 Beiträge: 17
| 15 Feb 2004 5:42 So erstellen Sie mit Software-UART (nicht verwendet SBUF) auf 8051 | | |
|
| So erstellen Sie UART mit Software? Mein Projekt Gebraucht 3 UART (normal ist 1 UART mit Hardware P3.0 und P3.1)
8051 MCU@11.0592MHz So erstellen Sie UART verwendet P1 oder P2 zu Schnittstelle RS-232 |
|
| Zurück zum Anfang | |
 |
pisoiu
Beitritt: 31. Dezember 2002 Beiträge: 902 Geholfen: 24 Ort: Rumänien
| 15 Feb 2004 11:58 Re: Wie erstellt man mit Software-UART (nicht verwendet SBUF) auf 8051 | | |
|
| Hi, Meine Meinung: Es ist verdammt hart. Sie werden zu tun haben, es mit Interrupts, aber 8051 ist ein relativ langsam Controller, seine Leistung bleibt unter 1mips auf 11,0592 MHz Takt für klassische 8051-Versionen (1instruction Zyklus = 12 Taktzyklus). Mehr als eine serielle Schnittstelle in Software implementiert werden essen fast alle Prozessor-Zeit, vor allem, wenn Sie wollen bis zu 115200bps mit den Ports, oder wenn Sie wollen, alle möglichen Parameter (6/7/8 Datenbits selecteble, 1 / 2 Stopbits, Parität Ungerade / Gerade / Marke / space / "none", "Flow Control xon-xoff/hard/none wählbar). Mein sugestion ist die Verwendung eines modifizierten Architektur 8051 von Zypressen, oder die Verwendung eines scenix Mikrocontroller (www.ubicom.com). Für scenix-Controller kann ich die Codes für 8 UARTs gleichzeitig. Dies, wenn Sie möchten, dass eine Software-Implementierung. Wenn Yau Hardware wollen, können Sie max3100 (Maxim).
Bester, |
|
| Zurück zum Anfang | |
 |
Ajay
Beitritt: 29. Feb 2004 Beiträge: 31
| 01. März 2004 0:10 Re: Wie erstellt man mit Software-UART (nicht verwendet SBUF) auf 8051 | | |
|
| Sie könnten ein UART (zusätzlich zu den von der SBUF) durch die Verwendung einer speziellen Timer und Schreiben sehr schnell zu drehen Bit-Code. Auf der Eingangsseite (RXD), müssen Sie einen Interrupt Pin. Wenn der Interrupt kommt, starten Sie den Timer und lesen Sie die PIN-Status zu tragen, drehen und erstellen Sie Ihre eingehenden Bytes. Funktioniert gut, bis zu 9600 Baud (Ich habe es).
Jedoch, die Schaffung von zwei weiteren in der gleichen Zeit? Vergessen Sie es. Selbst wenn Sie zwei spezielle Timer, den Interrupt-Routinen so groß, dass Sie auf Bits.
Wenn Sie langsam UARTs (1200 Baud oder langsamer), dann wird diese Technik funktioniert für bis zu 2 UART's. Beachten Sie, dass Sie wird alle drei Zähler (einer für die Baudrate Gen für SBUF, eine für Port 1 und Port 2 für Timing), sowie die Interrupts.
Also, besser ist die Verwendung eines ARM-Chip mit zwei UART's (Ich habe 2 zusätzliche UARTs auf 19200 Baud mit einem ARM) oder nutzen Sie die Kaninchen-Controller oder so was.
Ajay |
|
| Zurück zum Anfang | |
 |
beuch
Joined: 06 Jun 2001 Beiträge: 65 Ort: Frankreich
| 03. März 2004 14:45 Re: Wie erstellt man mit Software-UART (nicht verwendet SBUF) auf 8051 | | |
|
| Hi,
Werfen Sie einen Blick auf die angehängte Datei von Philips Web AN.
AN446
Tschüss
|
|
| Zurück zum Anfang | |
 |
crazytnt
Joined: 02 Feb 2004 Beiträge: 8
| 03. März 2004 17:43 Re: Wie erstellt man mit Software-UART (nicht verwendet SBUF) auf 8051 | | |
|
| Es ist sehr schwierig. Vorschläge mit Hardware. |
|
| Zurück zum Anfang | |
 |
Google AdSense

| 03. März 2004 17:43 Anzeigen | | |
|
|
|
|
| Zurück zum Anfang | |
 |
J_expoler2
Beitritt: 10. Mai 2003 Beiträge: 179 Geholfen: 19
| 03. März 2004 18:00 Re: Wie erstellt man mit Software-UART (nicht verwendet SBUF) auf 8051 | | |
|
| Hi Ich habe eine Idee, UART, aber die Daten nur mit Timer 0 Bit-T232 als TxD MOV TMOD, # 22H MOV TH0, # 70h MOV TL0, # 70h Setb EA Setb ET0 Setb TR1 ; ; ; ; Funktion Daten senden: CLR T232; Startbit Setb tr0 MOV R7, # 8
TX_LOOP: RRC A JNB TF0, $ MOV T232, C CLR TF0 DJNZ R7, TX_LOOP JNB TF0, $ Setb T232; STOP BIT CLR TF0 JNB TF0, $ RET es vielleicht helfen, u BR. |
|
| Zurück zum Anfang | |
 |
fireplus
Joined: 31 Oct 2003 Beiträge: 195 Geholfen: 5
| 04. März 2004 3:29 Re: Wie erstellt man mit Software-UART (nicht verwendet SBUF) auf 8051 | | |
|
| versuchen, dass
[hr: 5c6e3c7296] Fire in the Wire: SM2:
|
|
| Zurück zum Anfang | |
 |
Ajay
Beitritt: 29. Feb 2004 Beiträge: 31
| 08. März 2004 12:28 Re: Wie erstellt man mit Software-UART (nicht verwendet SBUF) auf 8051 | | |
|
| | J_expoler2 schrieb: | Hi Ich habe eine Idee, UART, aber die Daten nur mit Timer 0 Bit-T232 als TxD MOV TMOD, # 22H MOV TH0, # 70h MOV TL0, # 70h Setb EA Setb ET0 Setb TR1 ; ; ; ; Funktion Daten senden: CLR T232; Startbit Setb tr0 MOV R7, # 8
TX_LOOP: RRC A JNB TF0, $ MOV T232, C CLR TF0 DJNZ R7, TX_LOOP JNB TF0, $ Setb T232; STOP BIT CLR TF0 JNB TF0, $ RET es vielleicht helfen, u BR. |
Dies ist nur gut für die Übertragung. Problem ist, wenn Sie versuchen, erhalten werden. Zuerst von allen, ist diese Methode nicht funktionieren für Full-Duplex Betrieb, wenn Sie zwei verschiedene Timer.
Darüber hinaus erhalten, benötigen Sie eine Hardware-Interrupts, die genau den Timer zum richtigen Zeitpunkt und dann Unterstützung der Verlagerung der Daten. Auch diese Methode ist nur gut wie ein Halb-Duplex-Kommunikation.
Eine weitere Komplexität ergibt sich aus dem Umstand, dass die Interrupt-Routinen zu lang und führt dazu, dass Probleme durch fehlende Bits. Beachten Sie, dass die Fehler häufen sich über einen längeren Zeitraum!
Der beste Weg ist, ein Chip, der hat mehr serielle Schnittstellen (ARM, uPSD aus ST etc.)
Ajay |
|
| Zurück zum Anfang | |
 |