| Autor | Zpráva |
|---|
winit_a
Založen: 16. listopad 2003 Příspěvky: 17
| 15. únor 2004 5:42 Jak vytvořit UART s Software (nepoužívaný SBUF) na 8051 | | |
|
| Jak vytvořit UART software? Můj projekt Used 3 UART (běžné mít 1 UART s HARDWARU P3.0 a P3.1)
8051 MCU@11.0592MHz Jak vytvořit UART použity P2 nebo P1 na rozhraní RS-232 |
|
| Zpět na začátek | |
 |
Google AdSense

| 15. únor 2004 5:42 Reklamy | | |
|
|
|
|
| Zpět na začátek | |
 |
pisoiu
Založen: 31. prosince 2002 Příspěvky: 723 Pomohl: 24 Poloha: Rumunsko
| 15. únor 2004 11:58 Re: Jak vytvořit UART s Software (nepoužívaný SBUF) na 8051 | | |
|
| Nazdar, Můj názor: je to zatraceně těžké. Budete muset udělat pomocí přerušení, ale 8051 je relativně pomalý řadič, jeho výkon zůstane pod 1mips na 11,0592 MHz času pro klasické verze 8051 (1instruction cyklus = cyklus 12 hodin). Více než jeden sériový port implementován v softwaru se bude jíst téměř všechny zpracovatele času, zejména v případě, že chcete jít do 115200bps v těchto přístavech, nebo pokud chcete provést všechny možné parametry (6/7/8 datových bitů selecteble, 1 / 2 stop bity, parita Odd / Even / Mark / Space / žádná, řízení toku xon-xoff/hard/none volitelné). Moje sugestion je použít modifikované architektura 8051 od cypřiš, nebo použít scenix mikrokontrolér (www.ubicom.com). Pro scenix kontrolor mohu poskytnout kód 8 uarts současně. To máte zájem o implementaci software. Pokud chcete yau hardware, můžete použít max3100 (Maxim).
Nejlepší, |
|
| Zpět na začátek | |
 |
Ajay
Založen: 29. únor 2004 Příspěvky: 31
| 01. březen 2004 0:10 Re: Jak vytvořit UART s Software (nepoužívaný SBUF) na 8051 | | |
|
| Ty by mohly vytvořit jednu UART (kromě pomocí SBUF) pomocí specializovaného časovač a psaní kódu, aby velmi rychle střídat bit. Na příchozí straně (RXD), musíte použít přerušení čepu. Když přijde přerušení, časovače a začít číst pin status do sebe otočit a vytvořit si příchozí bytech. Funguje dobře až 9600 Baud (jsem použil).
Však vytváří další dva najednou? Zapomeňte na to. I když budete používat dvě specializované časovače, přerušení rutiny stala tak velká, že vám bude chybět bitů.
Pokud hledáte pro pomalé UARTs (1200 Baud nebo pomalejší), pak se tato technika funguje až pro 2 UART to. Mějte na paměti, že budete dávat všechny tři časovače (jeden používá pro přenosovou rychlostí gen pro SBUF, jeden pro port 1 a jeden pro port 2 časování), jakož i se přeruší.
Takže, lepší design je použití čipu ARM se dvěmi UART to (jsem vytvořil 2 další UARTs na 19200 Baud s ARM), nebo použít Rabbit řadiče nebo nějakou takovou věc.
Ajay |
|
| Zpět na začátek | |
 |
beuch
Založen: 06 červen 2001 Příspěvky: 65 Místo: Francie
| 03 březen 2004 14:45 Re: Jak vytvořit UART s Software (nepoužívaný SBUF) na 8051 | | |
|
| Nazdar,
se podívejte na přiložený obrázek z webu Philips AN.
AN446
nashledanou
|
|
| Zpět na začátek | |
 |
crazytnt
Založen: 02 únor 2004 Příspěvky: 8
| 03 březen 2004 17:43 Re: Jak vytvořit UART s Software (nepoužívaný SBUF) na 8051 | | |
|
| Je to velmi obtížné. Navrhnout pomocí hardware. |
|
| Zpět na začátek | |
 |
J_expoler2
Založen: 10. květen 2003 Příspěvky: 179 Pomohl: 19
| 03 březen 2004 18:00 Re: Jak vytvořit UART s Software (nepoužívaný SBUF) na 8051 | | |
|
| Nazdar Mám určitou představu, ale UART posílat data pouze pomocí časovače 0 bit T232 jako TxD MOV TMOD, # 22h MOV TH0, # 70H MOV TL0, # 70H SETB EA SETB ET0 SETB TR1 ; ; ; ; funkci odesílání dat: 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 Možná to pomůže u BR. |
|
| Zpět na začátek | |
 |
fireplus
Založen: 31 říjen 2003 Příspěvky: 195 Pomohl: 5
| 04 března 2004 3:29 Re: Jak vytvořit UART s Software (nepoužívaný SBUF) na 8051 | | |
|
| zkusit
[hr: 5c6e3c7296] Oheň v Wire: sm2:
|
|
| Zpět na začátek | |
 |
Ajay
Založen: 29. únor 2004 Příspěvky: 31
| 08. března 2004 12:28 Re: Jak vytvořit UART s Software (nepoužívaný SBUF) na 8051 | | |
|
| | J_expoler2 napsal: | Nazdar Mám určitou představu, ale UART posílat data pouze pomocí časovače 0 bit T232 jako TxD MOV TMOD, # 22h MOV TH0, # 70H MOV TL0, # 70H SETB EA SETB ET0 SETB TR1 ; ; ; ; funkci odesílání dat: 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 Možná to pomůže u BR. |
To je dobré pouze k přenosu. Problém je při pokusu dostat stejně. Za prvé, tato metoda nebude nikdy pracovat na plný duplex provozu, pokud budete používat dva různé časovače.
Navíc, pro příjem, budete muset použít hardwarové přerušení, které bude přesně začít časovač ve správný čas a pak pomůže přesunout data. Opět platí, že tato metoda je jen dobrá jako half duplex komunikaci.
Dalším sloľitosti pochází ze skutečnosti, že přerušení rutiny stala dlouho a budou způsobovat problémy, které chybí bitů. Mějte na paměti, že chyba bude hromadit po určitou dobu!
Nejlepším způsobem je použití čipu, který má více sériové porty (ARM, uPSD z ST atd.)
Ajay |
|
| Zpět na začátek | |
 |