| Auteur | Message |
|---|
winit_a
Inscrit le: 16 Nov 2003 Messages: 17
| 15 février 2004 5:42 Comment faire pour créer des logiciels UART (pas utilisé SBUF) sur 8051 | | |
|
| Comment faire pour créer UART avec logiciel? Mon projet d'occasion 3 UART (normale de 1 UART avec HARDWARE P3.0 et P3.1)
8051 MCU@11.0592MHz Comment faire pour créer UART utilisé P1 ou P2 à l'interface RS-232 |
|
| Haut de page | |
 |
pisoiu
Inscription: 31 décembre 2002 Messages: 723 A aidé: 24 Lieu: Roumanie
| 15 février 2004 11:58 Re: Comment faire pour créer des logiciels UART (pas utilisé SBUF) sur 8051 | | |
|
| Salut, Mon avis: il est sacrément difficile. Vous aurez à le faire en utilisant les interruptions, mais 8051 est un contrôleur relativement lente, sa performance reste sous 1mips à 11,0592 mhz horloge classique pour les versions 8051 (1instruction cycle = 12 cycle d'horloge). Plus d'un port série de mises en œuvre dans le logiciel de traitement de manger presque tous les temps, surtout si vous voulez aller jusqu'à 115200 bps avec ces ports, ou si vous souhaitez mettre en œuvre tous les paramètres possibles (6/7/8 bits de données selecteble, 1 / 2 bits de stop, parité impaire / même / marque / espace / none, contrôle de flux xon-xoff/hard/none sélectionnables). Ma suggestion est d'utiliser une modification de l'architecture 8051 de cyprès, ou d'utiliser un microcontrôleur scenix (www.ubicom.com). Pour scenix contrôleur je peux vous donner le code pour 8 UART simultanément. Ce, si vous voulez un logiciel de mise en œuvre. Si le matériel yau voulez, vous pouvez utiliser max3100 (maxime).
Meilleur, |
|
| Haut de page | |
 |
Ajay
Inscrit le: 29 février 2004 Posts: 31
| 01 mars 2004 0:10 Re: Comment faire pour créer des logiciels UART (pas utilisé SBUF) sur 8051 | | |
|
| Vous pourriez créer un UART (en plus de l'utilisation des SBUF) consacré à l'aide d'une minuterie et d'écriture très rapide pour faire tourner le code bit. Sur le côté entrant (RXD), vous devez utiliser une interruption broches. Quand vient l'interrompre, démarrez votre timers et lire la broche en état transporter, faire pivoter et de créer vos octets. Fonctionne bien jusqu'à 9600 Baud (je l'ai utilisée).
Toutefois, la création de deux autres en même temps? Forget it. Même si vous utilisez deux consacrés timers, les routines d'interruption devenir si grand que vous manquez bits.
Si vous êtes à la recherche de la lenteur des UART (1200 bauds ou plus lent), alors cette technique fonctionne pour jusqu'à 2 UART's. Gardez à l'esprit que vous allez renoncer à toutes les trois timers (un pour la vitesse de transmission utilisée pour SBUF gen, l'une pour le port 1 et un port pour les 2 temps) ainsi que les interruptions.
Ainsi, une meilleure conception est d'utiliser une puce ARM avec deux UART's (j'ai créé 2 autres UART à 19200 bauds avec un ARM) ou utiliser le contrôleur de lapin ou autre chose.
Ajay |
|
| Haut de page | |
 |
beuch
Inscrit le: 06 juin 2001 Posts: 65 Lieu: France
| 03 mars 2004 14:45 Re: Comment faire pour créer des logiciels UART (pas utilisé SBUF) sur 8051 | | |
|
| Salut,
jeter un oeil à la pièce jointe à partir de Philips web AN.
AN446
au revoir
|
|
| Haut de page | |
 |
crazytnt
Inscription: 02 février 2004 Messages: 8
| 03 mars 2004 17:43 Re: Comment faire pour créer des logiciels UART (pas utilisé SBUF) sur 8051 | | |
|
| Il est très difficile. Suggérons d'utiliser le matériel. |
|
| Haut de page | |
 |
Google AdSense

| 03 mars 2004 17:43 Annonces | | |
|
|
|
|
| Haut de page | |
 |
J_expoler2
Inscrit le: 10 Mai 2003 Messages: 179 A aidé: 19
| 03 mars 2004 18:00 Re: Comment faire pour créer des logiciels UART (pas utilisé SBUF) sur 8051 | | |
|
| Salut J'ai une idée UART mais seulement envoyer des données à l'aide de timer 0 T232 peu comme TxD MOV TMOD, # 22H MOV TH0, # 70h MOV TL0, # 70h SETB EA SETB ET0 SETB TR1 ; ; ; ; fonction de l'envoi de données: CLR T232; START 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; STOP BIT CLR TF0 JNB TF0, $ RET peut-être aider à u BR. |
|
| Haut de page | |
 |
fireplus
Inscrit le: 31 Oct 2003 Messages: 195 Helped: 5
| 04 mars 2004 3:29 Re: Comment faire pour créer des logiciels UART (pas utilisé SBUF) sur 8051 | | |
|
| essayer
[hr: 5c6e3c7296] Fire in the Wire: SM2:
|
|
| Haut de page | |
 |
Ajay
Inscrit le: 29 février 2004 Posts: 31
| 08 mars 2004 12:28 Re: Comment faire pour créer des logiciels UART (pas utilisé SBUF) sur 8051 | | |
|
| | J_expoler2 a écrit: | Salut J'ai une idée UART mais seulement envoyer des données à l'aide de timer 0 T232 peu comme TxD MOV TMOD, # 22H MOV TH0, # 70h MOV TL0, # 70h SETB EA SETB ET0 SETB TR1 ; ; ; ; fonction de l'envoi de données: CLR T232; START 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; STOP BIT CLR TF0 JNB TF0, $ RET peut-être aider à u BR. |
Ce n'est bon pour la transmission. Le problème arrive quand vous essayez de recevoir aussi. Tout d'abord, cette méthode ne fonctionnera jamais pour le fonctionnement en duplex intégral, sauf si vous utilisez deux DIFFERENTS timers.
En outre, pour la réception, vous aurez besoin d'utiliser une interruption de matériel qui sera précisément commencer le compte à rebours, au bon moment et permettra de transférer les données. Encore une fois, cette méthode est valable seulement comme une communication half duplex.
Une autre complexité vient du fait que les routines d'interruption devenir long et peut causer des problèmes par manque bits. Gardez à l'esprit que l'erreur s'accumulent sur une période de temps!
Le meilleur moyen est d'utiliser une puce qui a plus de ports série (ARM, de ST uPSD etc)
Ajay |
|
| Haut de page | |
 |