| Autor | Mesaj |
|---|
winit_a
Alăturat: 16 noiembrie 2003 Posts: 17
| 15 februarie 2004 5:42 Cum se creează UART cu Software-ul (nu este utilizat SBUF) pe 8051 | | |
|
| Cum se creează UART Cu software-ul? Meu proiect folosita 3 UART (1 UART-au obișnuit cu hardware-ul P3.0 și P3.1)
8051 MCU@11.0592MHz Cum se creează UART utilizate P2 sau P1 la interfata RS-232 |
|
| Back to top | |
 |
pisoiu
Alăturat: 31 decembrie 2002 Posts: 902 A ajutat: 24 Locatie: Romania
| 15 februarie 2004 11:58 Re: Cum se creează UART cu Software-ul (nu este utilizat SBUF) pe 8051 | | |
|
| Salut, Parerea mea: este al naibii de greu. Va trebui să o fac, folosind întrerupe, dar 8051 este un controler relativ lent, performanța rămâne sub 1mips la 11,0592 MHz pentru ceasul clasic 8051 versiuni (1instruction ciclu ciclu de ceas = 12). Mai mult de un port serial puse în aplicare în software-ul va mananca aproape toate procesor timp, mai ales dacă vrei să mergi până la 115200bps cu aceste porturi, sau dacă doriți să pună în aplicare toate posibil parametri (6/7/8 biți date selecteble, 1 / 2 opri biți, paritate impar / chiar / marca / spațiu / nu exista, a fluxului de control selectabile xon-xoff/hard/none). Sugestion meu este de a folosi o arhitectura modificate de la Cypress 8051, sau de a utiliza o scenix microcontroler (www.ubicom.com). Pentru scenix controller-am putea oferi codul pentru 8 uarts simultan. Acest lucru, dacă doriți un program de punere în aplicare. Dacă doriți yau hardware, puteți utiliza max3100 (maxim).
Cel mai bun, |
|
| Back to top | |
 |
Ajay
Alăturat: 29 februarie 2004 Posts: 31
| 01 martie 2004 0:10 Re: Cum se creează UART cu Software-ul (nu este utilizat SBUF) pe 8051 | | |
|
| Ai putea crea un UART (în plus față de utilizarea SBUF) prin utilizarea unui dedicat timp și de scris, foarte rapid cod pentru a roti de biți. Pe partea de incoming (RXD), trebuie să utilizați o întrerupere de aderență. Când vine de întrerupere, începe să-ți timp și să citesc și PIN-ul de stare în transporta, se rotește și pentru a vă crea sosite octeți. Lucrari de bine până la 9600 baud (am folosit-o).
Cu toate acestea, crearea de alte două în același timp? Las-o balta. Chiar dacă utilizați două dedicat cronometre, a întrerupe rutinele devenit atât de mari pe care le va fi dor de biți.
Dacă sunteți în căutarea lentă UARTs (1200 baud sau mai lent), atunci aceasta tehnica de lucrări de până la 2 UART lui. Țineți minte că va renunța la toate cele trei cronometre (utilizate pentru o rată baud gen pentru SBUF, unul pentru portul 1 și unul pentru port 2 calendarul), precum și atât întrerupe.
Deci, mai bine de proiectare este de a utiliza un braț chip cu două UART's (Mi-am creat 2 suplimentare UARTs la 19200 baud cu un braț) sau de a folosi iepure controler sau a unor astfel de lucru.
Ajay |
|
| Back to top | |
 |
beuch
Alăturat: 06 iunie 2001 Posts: 65 Locatie: Franța
| 03 martie 2004 14:45 Re: Cum se creează UART cu Software-ul (nu este utilizat SBUF) pe 8051 | | |
|
| Salut,
trebuie să aruncați o privire la fisier atasat de la Philips web AN.
AN446
pa
|
|
| Back to top | |
 |
crazytnt
Alăturat: 02 februarie 2004 Posts: 8
| 03 martie 2004 17:43 Re: Cum se creează UART cu Software-ul (nu este utilizat SBUF) pe 8051 | | |
|
| Este foarte dificil. Propuneți utilizând hardware. |
|
| Back to top | |
 |
J_expoler2
Alăturat: 10 mai 2003 Posts: 179 A ajutat: 19
| 03 martie 2004 18:00 Re: Cum se creează UART cu Software-ul (nu este utilizat SBUF) pe 8051 | | |
|
| Salut Am o idee UART trimite date, dar numai prin utilizarea de timp 0 bit T232 ca TxD MOV TMOD, # 22h MOV TH0, # 70H MOV TL0, # 70H SETB EA SETB ET0 SETB TR1 ; ; ; ; funcție trimite date: 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 aceasta poate ajuta u BR. |
|
| Back to top | |
 |
fireplus
Alăturat: 31 octombrie 2003 Posts: 195 A ajutat: 5
| 04 martie 2004 3:29 Re: Cum se creează UART cu Software-ul (nu este utilizat SBUF) pe 8051 | | |
|
| că încercați să
[hr: 5c6e3c7296] Foc in Wire: sm2: |
|
| Back to top | |
 |
Google AdSense

| 04 martie 2004 3:29 Reclame | | |
|
|
|
|
| Back to top | |
 |
Ajay
Alăturat: 29 februarie 2004 Posts: 31
| 08 martie 2004 12:28 Re: Cum se creează UART cu Software-ul (nu este utilizat SBUF) pe 8051 | | |
|
| | J_expoler2 a scris: | Salut Am o idee UART trimite date, dar numai prin utilizarea de timp 0 bit T232 ca TxD MOV TMOD, # 22h MOV TH0, # 70H MOV TL0, # 70H SETB EA SETB ET0 SETB TR1 ; ; ; ; funcție trimite date: 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 aceasta poate ajuta u BR. |
Aceasta este numai bun pentru a transmite. Problema vine, atunci când încercați să primească, de asemenea. Mai întâi de toate, această metodă nu va funcționa pentru full duplex cu excepția cazului în care operațiunea să utilizați două cronometre.
Mai mult decât atât, pentru a primi, va fi nevoie de a utiliza o întrerupere de hardware, care va începe la timp exact la momentul potrivit și apoi vă va ajuta în schimburi de date. Din nou, aceasta metoda este numai de bine ca o jumătate de comunicare duplex.
Un alt complexitatea vine de la faptul că întrerupe rutinele deveni lung și va cauza probleme de lipsă de biți. Țineți minte că de eroare vor acumula pe o perioadă de timp!
Cea mai bună cale este de a utiliza un cip care are mai multe porturi seriale (ARM, uPSD din ST etc)
Ajay |
|
| Back to top | |
 |