| Autor | Správa |
|---|
winit_a
Založený: 16. november 2003 Príspevky: 17
| 15. február 2004 5:42 Ako vytvoriť UART s Software (nepoužívaný SBUF) na 8051 | | |
|
| Ako vytvoriť UART softvér? Môj projekt Used 3 UART (bežné mať 1 UART s hardware P3.0 a P3.1)
8051 MCU@11.0592MHz Ako vytvoriť UART použité P2 alebo P1 na rozhranie RS-232 |
|
| Späť na začiatok | |
 |
pisoiu
Založený: 31. decembra 2002 Príspevky: 723 Pomohol: 24 Poloha: Rumunsko
| 15. február 2004 11:58 Re: Ako vytvoriť UART s Software (nepoužívaný SBUF) na 8051 | | |
|
| Nazdar, Môj názor: je to zatraceně ťažké. Budete musieť urobiť pomocou prerušenia, ale 8051 je relatívne pomalý radič, jeho výkon zostane pod 1mips na 11,0592 MHz času pre klasické verzie 8051 (1instruction cyklus = cyklus 12 hodín). Viac ako jeden sériový port implementovaný v softvéri sa bude jesť takmer všetky spracovateľa času, najmä v prípade, že chcete ísť do 115200bps v týchto prístavoch, alebo ak chcete vykonať všetky možné parametre (6/7/8 dátových bitov selecteble, 1 / 2 stop bity, parita Odd / Even / Mark / Space / žiadna, riadenie toku xon-xoff/hard/none voliteľné). Moja sugestion je použiť modifikované architektúra 8051 od cyprusov, alebo použiť scenix mikrokontroléry (www.ubicom.com). Pre scenix kontrolór môžem poskytnúť kód 8 uarts súčasne. To máte záujem o implementáciu software. Ak chcete Yau hardvér, môžete použiť max3100 (Maxim).
Najlepšie, |
|
| Späť na začiatok | |
 |
Ajay
Založený: 29. február 2004 Príspevky: 31
| 01. marec 2004 0:10 Re: Ako vytvoriť UART s Software (nepoužívaný SBUF) na 8051 | | |
|
| Tie by mohli vytvoriť jednu UART (okrem pomocou SBUF) pomocou špecializovaného časovač a písania kódu, aby veľmi rýchlo striedať bit. Na prichádzajúci strane (RXD), musíte použiť prerušenie čapu. Keď príde prerušenia, časovača a začať čítať pin postavenie do seba otočiť a vytvoriť si prichádzajúci bytoch. Funguje dobre až 9600 Baud (som použil).
Však vytvára ďalšie dva naraz? Zabudnite na to. I keď budete používať dve špecializované časovača, prerušenie rutiny stala natoľko veľká, že vám bude chýbať bitov.
Ak hľadáte pre pomalé UARTs (1200 Baud alebo pomalšie), potom sa táto technika funguje až pre 2 UART to. Majte na pamäti, že budete dávať všetky tri časovača (jeden používa pre prenosovú rýchlosťou gén pre SBUF, jeden pre port 1 a jeden pre port 2 časování), ako aj sa preruší.
Takže, lepší dizajn je použitie čipu ARM s dvoma UART to (som vytvoril 2 ďalšie UARTs na 19200 Baud s ARM), alebo použiť Rabbit radiče alebo nejakú takú vec.
Ajay |
|
| Späť na začiatok | |
 |
beuch
Založený: 06 jún 2001 Príspevky: 65 Miesto: Francúzsko
| 03 marec 2004 14:45 Re: Ako vytvoriť UART s Software (nepoužívaný SBUF) na 8051 | | |
|
| Nazdar,
sa pozrite na priložený obrázok z webu Philips AN.
AN446
nashledanou |
|
| Späť na začiatok | |
 |
Google AdSense

| 03 marec 2004 14:45 Reklamy | | |
|
|
|
|
| Späť na začiatok | |
 |
crazytnt
Založený: 02 február 2004 Príspevky: 8
| 03 marec 2004 17:43 Re: Ako vytvoriť UART s Software (nepoužívaný SBUF) na 8051 | | |
|
| Je to veľmi ťažké. Navrhnúť pomocou hardware. |
|
| Späť na začiatok | |
 |
J_expoler2
Založený: 10. máj 2003 Príspevky: 179 Pomohol: 19
| 03 marec 2004 18:00 Re: Ako vytvoriť UART s Software (nepoužívaný SBUF) na 8051 | | |
|
| Nazdar Mám určitú predstavu, ale UART posielať dáta len pomocou časovača 0 bit T232 ako TxD MOV TMOD, # 22h MOV TH0, # 70H MOV TL0, # 70H Osev EA Osev ET0 Osev TR1 ; ; ; ; funkciu odosielania dát: CLR T232, START BIT Osev TR0 MOV R7, # 8
TX_LOOP: RRC A JNB TF0, $ MOV T232, C CLR TF0 DJNZ R7, TX_LOOP JNB TF0, $ Osev T232, STOP BIT CLR TF0 JNB TF0, $ RET Možno to pomôže u BR. |
|
| Späť na začiatok | |
 |
fireplus
Založený: 31 október 2003 Príspevky: 195 Pomohol: 5
| 04 marca 2004 3:29 Re: Ako vytvoriť UART s Software (nepoužívaný SBUF) na 8051 | | |
|
| skúsiť
[hr: 5c6e3c7296] Oheň v Wire: SM2:
|
|
| Späť na začiatok | |
 |
Ajay
Založený: 29. február 2004 Príspevky: 31
| 08. marca 2004 12:28 Re: Ako vytvoriť UART s Software (nepoužívaný SBUF) na 8051 | | |
|
| | J_expoler2 Napísal: | Nazdar Mám určitú predstavu, ale UART posielať dáta len pomocou časovača 0 bit T232 ako TxD MOV TMOD, # 22h MOV TH0, # 70H MOV TL0, # 70H Osev EA Osev ET0 Osev TR1 ; ; ; ; funkciu odosielania dát: CLR T232, START BIT Osev TR0 MOV R7, # 8
TX_LOOP: RRC A JNB TF0, $ MOV T232, C CLR TF0 DJNZ R7, TX_LOOP JNB TF0, $ Osev T232, STOP BIT CLR TF0 JNB TF0, $ RET Možno to pomôže u BR. |
To je dobré len na prenos. Problém je pri pokuse dostať rovnako. Po prvé, táto metóda nebude nikdy pracovať na plný duplex prevádzky, ak budete používať dva rôzne časovača.
Navyše, pre príjem, budete musieť použiť hardvérové prerušenia, ktoré bude presne začať časovač v správny čas a potom pomôže presunúť dáta. Opäť platí, že táto metóda je len dobrá ako half duplex komunikáciu.
Ďalším zloľitosti pochádza zo skutočnosti, že prerušenie rutiny stala dlho a budú spôsobovať problémy, ktoré chýbajú bitov. Majte na pamäti, že chyba bude hromadiť po určitú dobu!
Najlepším spôsobom je použitie čipu, ktorý má viac sériové porty (ARM, DVSD z ST atď)
Ajay |
|
| Späť na začiatok | |
 |