| Συντάκτης | Μήνυμα |
|---|
winit_a
Συνεκδικασθείσες: 16 Νοέμβρη 2003 Θέσεις: 17
| 15 Φεβρουαρίου 2004 5:42 Τρόπος δημιουργίας UART με Λογισμικού (δεν χρησιμοποιείται SBUF) για 8051 | | |
|
| Τρόπος δημιουργίας UART με λογισμικό; Το έργο Μεταχειρισμένα UART 3 (1 κανονική έχουν UART με HARDWARE P3.0 και P3.1)
8051 MCU@11.0592MHz Τρόπος δημιουργίας UART χρησιμοποιούνται P1 ή P2 για Interface RS-232 |
|
| Επιστροφή στην κορυφή | |
 |
Google AdSense

| 15 Φεβρουαρίου 2004 5:42 Διαφημίσεις | | |
|
|
|
|
| Επιστροφή στην κορυφή | |
 |
pisoiu
Συνεκδικασθείσες: 31 Δεκέμβριος 2002 Μηνύματα: 723 Έχει βοηθήσει: 24 Τοποθεσία: Ρουμανία
| 15 Φεβρουαρίου 2004 11:58 Re: Πώς να δημιουργήσετε UART με Λογισμικού (δεν χρησιμοποιείται SBUF) για 8051 | | |
|
| Γεια σου, Η γνώμη μου: είναι καταραμένο σκληρά. Θα πρέπει να το κάνετε αυτό, χρησιμοποιώντας τη διακοπή, αλλά 8051 είναι μια σχετικά αργή ελεγκτή, τις επιδόσεις του παραμένει υπό 1mips σε 11,0592 MHz κλασικό ρολόι για τις εκδόσεις 8051 (1instruction κύκλου ρολογιού του κύκλου = 12). Περισσότερες από μια σειριακή θύρα υλοποιούνται σε λογισμικό που θα τρώνε σχεδόν όλα επεξεργαστή χρόνο, ειδικά αν θέλετε να ανεβείτε σε 115200bps με τους λιμένες αυτούς, ή αν θέλετε να εφαρμόσει όλες τις πιθανές παραμέτρους (6/7/8 bits δεδομένων selecteble, 1 / 2 stop bits, parity περίεργα / ακόμα και / σήμα / χώρου / ΚΑΝΕΝΑ, έλεγχο ροής επιλέξιμο xon-xoff/hard/none). My sugestion είναι να χρησιμοποιήσετε ένα τροποποιημένο αρχιτεκτονική 8051 από κυπαρίσσια, ή να χρησιμοποιήσετε ένα scenix μικροϋπολογιστικά (www.ubicom.com). Για scenix ελεγκτής θα μπορεί να προσφέρει κωδικό για 8 uarts ταυτόχρονα. Αυτό, αν θέλετε μια εφαρμογή λογισμικού. Αν θέλετε yau υλικού, μπορείτε να χρησιμοποιήσετε max3100 (γνωμικό).
Καλύτερος, |
|
| Επιστροφή στην κορυφή | |
 |
Ajay
Συνεκδικασθείσες: 29 Φεβ 2004 Θέσεις: 31
| 01 Μαρ 2004 0:10 Re: Πώς να δημιουργήσετε UART με Λογισμικού (δεν χρησιμοποιείται SBUF) για 8051 | | |
|
| Μπορείτε να δημιουργήσετε μία UART (εκτός από τη χρήση του SBUF) με τη χρήση εξειδικευμένου χρονόμετρο και γραπτώς πολύ γρήγορα κωδικό εναλλαγής λίγο. Από την πλευρά εισερχόμενες (RXD), πρέπει να χρησιμοποιήσετε ένα διακόπτουν το pin. Όταν έρχεται η διακοπή, έναρξη χρονομετρητές σας και διαβάστε την καρφίτσα σε κατάσταση μεταφοράς, περιστρέψτε και δημιουργούν εισερχόμενων bytes. Έργα και μέχρι 9600 Baud (Ι έχουν κάνει χρήση).
Ωστόσο, με τη δημιουργία δύο ακόμη την ίδια στιγμή; Ξεχάστε το. Ακόμα κι αν χρησιμοποιήσετε δύο αφιερωμένη χρονομετρητές, διακόπτουν τη ρουτίνα γίνει τόσο μεγάλη που θα σας λείψει bit.
Αν ψάχνετε για αργή UARTs (1200 Baud ή αργότερα), τότε η τεχνική αυτή λειτουργεί για έως και 2 UART του. Λάβετε υπόψη σας ότι θα παραιτηθούν από όλα τα τρία χρονόμετρα (εκείνο που χρησιμοποιείται για την ταχύτητα baud gen για SBUF, ένα για την θύρα 1 και ένα χρονοδιάγραμμα για την θύρα 2), καθώς και οι δύο διακόπτουν.
Έτσι, η βελτίωση του σχεδιασμού είναι να χρησιμοποιήσετε ένα ARM chip με δύο UART του (έχω δημιούργησε 2 επιπλέον UARTs σε 19.200 Baud με ARM) ή χρησιμοποιήστε το Κουνέλι ελεγκτή ή κάποιο τέτοιο πράγμα.
Ajay |
|
| Επιστροφή στην κορυφή | |
 |
beuch
Συνεκδικασθείσες: 06 Ιουν 2001 Θέσεις: 65 Τόπος: Γαλλία
| 03 Μαρ 2004 14:45 Re: Πώς να δημιουργήσετε UART με Λογισμικού (δεν χρησιμοποιείται SBUF) για 8051 | | |
|
| Γεια σου,
ρίξτε μια ματιά στο συνημμένο αρχείο της Philips web ΑΝ.
AN446
αντίο
|
|
| Επιστροφή στην κορυφή | |
 |
crazytnt
Συνεκδικασθείσες: 02 Φεβ 2004 Θέσεις: 8
| 03 Μαρ 2004 17:43 Re: Πώς να δημιουργήσετε UART με Λογισμικού (δεν χρησιμοποιείται SBUF) για 8051 | | |
|
| Είναι πολύ δύσκολο. Προτείνετε τη χρήση του υλικού. |
|
| Επιστροφή στην κορυφή | |
 |
J_expoler2
Συνεκδικασθείσες: 10 Μαΐου 2003 Μηνύματα: 179 Έχει βοηθήσει: 19
| 03 Μαρ 2004 18:00 Re: Πώς να δημιουργήσετε UART με Λογισμικού (δεν χρησιμοποιείται SBUF) για 8051 | | |
|
| Γεια σου Έχω μια ιδέα UART αποστολή δεδομένων αλλά μόνο με τη χρήση χρονομετρητή 0 T232 λίγο ως TxD MOV TMOD, # 22H MOV TH0, # 70H MOV TL0, # 70H SETB EA SETB ET0 SETB TR1 ? ? ? ? λειτουργία αποστολή δεδομένων: 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 αυτό ίσως βοηθήσει u BR. |
|
| Επιστροφή στην κορυφή | |
 |
fireplus
Συνεκδικασθείσες: 31 Οκτ 2003 Μηνύματα: 195 Έχει βοηθήσει: 5
| 04 Μαρ 2004 3:29 Re: Πώς να δημιουργήσετε UART με Λογισμικού (δεν χρησιμοποιείται SBUF) για 8051 | | |
|
| δοκιμάστε το
[hr: 5c6e3c7296] Φωτιά στα σύρματα ": sm2:
|
|
| Επιστροφή στην κορυφή | |
 |
Ajay
Συνεκδικασθείσες: 29 Φεβ 2004 Θέσεις: 31
| 08 Μαρ 2004 12:28 Re: Πώς να δημιουργήσετε UART με Λογισμικού (δεν χρησιμοποιείται SBUF) για 8051 | | |
|
| | J_expoler2 έγραψε: | Γεια σου Έχω μια ιδέα UART αποστολή δεδομένων αλλά μόνο με τη χρήση χρονομετρητή 0 T232 λίγο ως TxD MOV TMOD, # 22H MOV TH0, # 70H MOV TL0, # 70H SETB EA SETB ET0 SETB TR1 ? ? ? ? λειτουργία αποστολή δεδομένων: 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 αυτό ίσως βοηθήσει u BR. |
Αυτό είναι μόνο καλό για τη μετάδοση. Πρόβλημα προκύπτει όταν προσπαθείτε να λάβετε επίσης. Πρώτα από όλα, αυτή η μέθοδος δεν θα είναι ποτέ έργο για την πλήρη αμφίδρομη λειτουργία αν δεν χρησιμοποιούν δύο διαφορετικές χρονόμετρα.
Επιπλέον, για τη λήψη, θα χρειαστεί να χρησιμοποιήσετε μια διακοπή υλικού το οποίο θα ξεκινήσει το χρονόμετρο ακριβώς τη σωστή στιγμή και έπειτα θα βοηθήσει τη μετάβαση των δεδομένων. Και πάλι, η μέθοδος αυτή είναι καλή μόνο ως ημιαμφίδρομη επικοινωνία.
Μια άλλη πολυπλοκότητα προέρχεται από το γεγονός ότι η διακοπή ρουτίνες γίνει μεγάλες και θα προκαλέσουν προβλήματα λείπουν από bits. Να θυμάστε ότι το λάθος θα συσσωρεύονται σε μια χρονική περίοδο!
Ο καλύτερος τρόπος είναι να χρησιμοποιήσετε μια μάρκα που έχει περισσότερες σειριακές θύρες (ARM, uPSD από ST κ.λπ.)
Ajay |
|
| Επιστροφή στην κορυφή | |
 |