| Autore | Messaggio |
|---|
winit_a
Iscritto il: 16 novembre 2003 Interventi: 17
| 15 febbraio 2004 5:42 Come creare UART con Software (SBUF non utilizzati), su 8051 | | |
|
| Come creare UART con software? Il mio progetto Usato 3 UART (normale avere 1 UART hardware P3.0 e P3.1)
8051 MCU@11.0592MHz Come creare UART utilizzati P1 o P2 per interfaccia RS-232 |
|
| Torna a inizio pagina | |
 |
pisoiu
Iscritto il: 31 dicembre 2002 Interventi: 723 Contribuito: 24 Località: Romania
| 15 feb 2004 11:58 Re: Come creare UART con Software (SBUF non utilizzati), su 8051 | | |
|
| Salve, Il mio parere: è dannatamente difficile. Avrete a che fare con gli interrupt, ma 8051 è un controller relativamente lento, il suo rendimento resta sotto 1mips a 11,0592 MHz di clock per il 8051 le versioni classiche (1instruction ciclo di ciclo di clock = 12). Più di una porta seriale attuate in software mangiare quasi tutti i processori tempo, specialmente se si vuole andare fino a 115200bps con i porti, o se si vuole attuare tutti i possibili parametri (6/7/8 bit di dati selecteble, 1 / 2 bit di stop, parità pari / dispari / marchio / spazio / nessuno, il controllo di flusso xon-xoff/hard/none selezionabile). Il mio sugestion è quello di utilizzare uno modificati architettura 8051 da cipressi, o l'utilizzo di un microcontrollore scenix (www.ubicom.com). Per scenix controller di I grado di fornire il codice di 8 uarts contemporaneamente. Questo se si vuole un software di applicazione. Se desidera Yau hardware, è possibile utilizzare max3100 (massima).
Il migliore, |
|
| Torna a inizio pagina | |
 |
Ajay
Iscritto il: 29 febbraio 2004 Interventi: 31
| 01 marzo 2004 0:10 Re: Come creare UART con Software (SBUF non utilizzati), su 8051 | | |
|
| Si potrebbe creare uno UART (in aggiunta a quelle che utilizzano il SBUF) utilizzando un timer dedicato molto veloce e la scrittura di codice per ruotare bit. Sul lato in entrata (RXD), è necessario utilizzare un interrupt pin. Quando arriva l'interrupt, avviare il timer e leggere il codice PIN in stato trasportare, ruotare e creare il tuo arrivo byte. Funziona bene fino a 9600 Baud (ho usato).
Tuttavia, la creazione di altri due allo stesso tempo? Dimentichi. Anche se si utilizzano due timer dedicato, interrompere la routine diventata così grande che si mancherà bit.
Se stai cercando un lento UARTs (1200 Baud o più lento), quindi questa tecnica per lavori fino a 2 UART's. Tieni presente che ti darà tutte le tre timer (quello utilizzato per il baud rate per gen SBUF, uno per la porta 1 e uno per la porta 2 tempi), così come sia la interrompe.
Quindi, una migliore progettazione è quello di utilizzare un chip ARM con due UART's (Ho creato 2 supplementari UARTs a 19.200 Baud con un braccio) o utilizzare il controller di coniglio o di alcune di queste cose.
Ajay |
|
| Torna a inizio pagina | |
 |
beuch
Iscritto il: 06 giugno 2001 Interventi: 65 Luogo: Francia
| 03 mar 2004 14:45 Re: Come creare UART con Software (SBUF non utilizzati), su 8051 | | |
|
| Salve,
Provate a dare un'occhiata al file allegato da Philips web AN.
AN446
ciao
|
|
| Torna a inizio pagina | |
 |
crazytnt
Iscritto il: 02 febbraio 2004 Posti: 8
| 03 mar 2004 17:43 Re: Come creare UART con Software (SBUF non utilizzati), su 8051 | | |
|
| E 'molto difficile. Consigliamo di utilizzare l'hardware. |
|
| Torna a inizio pagina | |
 |
J_expoler2
Iscritto il: 10 maggio 2003 Interventi: 179 Contribuito: 19
| 03 mar 2004 18:00 Re: Come creare UART con Software (SBUF non utilizzati), su 8051 | | |
|
| Salve Ho qualche idea UART inviare i dati, ma solo mediante timer 0 T232 po 'come TxD MOV TMOD, # 22H MOV TH0, # 70H MOV TL0, # 70H SETB EA SETB ET0 SETB TR1 ; ; ; ; funzione di invio dei dati: CLR T232; INIZIO BIT SETB tr0 MOV R7, # 8
TX_LOOP: RRC A JNB TF0, $ MOV T232, C CLR TF0 DJNZ R7, TX_LOOP JNB TF0, $ SETB T232; BIT DI STOP CLR TF0 JNB TF0, $ RET forse aiutare u BR. |
|
| Torna a inizio pagina | |
 |
fireplus
Iscritto il: 31 ottobre 2003 Interventi: 195 Contribuito: 5
| 04 marzo 2004 3:29 Re: Come creare UART con Software (SBUF non utilizzati), su 8051 | | |
|
| provare che
[hr: 5c6e3c7296] Fuoco nel Wire: SM2 |
|
| Torna a inizio pagina | |
 |
Google AdSense

| 04 marzo 2004 3:29 Annunci | | |
|
|
|
|
| Torna a inizio pagina | |
 |
Ajay
Iscritto il: 29 febbraio 2004 Interventi: 31
| 08 mar 2004 12:28 Re: Come creare UART con Software (SBUF non utilizzati), su 8051 | | |
|
| | J_expoler2 ha scritto: | Salve Ho qualche idea UART inviare i dati, ma solo mediante timer 0 T232 po 'come TxD MOV TMOD, # 22H MOV TH0, # 70H MOV TL0, # 70H SETB EA SETB ET0 SETB TR1 ; ; ; ; funzione di invio dei dati: CLR T232; INIZIO BIT SETB tr0 MOV R7, # 8
TX_LOOP: RRC A JNB TF0, $ MOV T232, C CLR TF0 DJNZ R7, TX_LOOP JNB TF0, $ SETB T232; BIT DI STOP CLR TF0 JNB TF0, $ RET forse aiutare u BR. |
Questo è solo un bene per la trasmissione. Problema nasce quando si tenta di ricevere un bene. Prima di tutto, questo metodo non potrà mai lavorare per il funzionamento full-duplex a meno che non si utilizzano due DIVERSI timer.
Inoltre, per la ricezione, è necessario utilizzare un componente hardware che si interrompono proprio avviare il timer al momento giusto e quindi contribuirà a trasferire i dati. Ancora una volta, questo metodo è buono solo come un mezzo di comunicazione duplex.
Un altro complessità deriva dal fatto che l'interrupt routine diventare lungo e causare problemi mancanti bit. Tieni presente che l'errore si accumulano nel corso di un periodo di tempo!
Il modo migliore è quello di utilizzare un chip che ha più porte seriali (ARM, uPSD da ST ecc)
Ajay |
|
| Torna a inizio pagina | |
 |