| May-akda | Mensahe |
|---|
winit_a
Joined: 16 Nov 2003 Posts: 17
| 15 Feb 2004 5:42 Paano Gumawa ng UART sa Software (hindi na ginagamit SBUF) sa 8051 | | |
|
| Paano Gumawa ng UART Sa Software? Aking mga proyekto Ginamit 3 UART (normal na may 1 UART sa P3.0 Hardware at P3.1)
8051 MCU@11.0592MHz Paano Gumawa ng UART ginagamit P2 o P1 sa Interface RS-232 |
|
| Bumalik sa tuktok | |
 |
pisoiu
Joined: 31 Dec 2002 Posts: 723 Helped: 24 Lokasyon: Romania
| 15 Feb 2004 11:58 Re: Paano Gumawa ng UART sa Software (hindi na ginagamit SBUF) sa 8051 | | |
|
| Hi, Ang aking opinyon: ito ay sumpain hard. Ikaw ay may sa gawin ito gamit ang interrupts, ngunit ang 8051 ay isang relatibong mabagal controller, ang pagganap nito mananatili sa ilalim ng 1mips at 11,0592 MHz orasan para sa mga klasikong 8051 bersyon (1instruction cycle = 12 orasan cycle). Higit sa isang serial port ipinatupad sa software ay kumain ng processor na ang halos lahat ng oras, lalo na kung gusto mong pumunta sa 115200bps may mga port, o kung nais mong ipatupad ng lahat ng posibleng mga parameter (6/7/8 data bits selecteble, 1 / 2 itigil bits, pareho gansal / kahit na / markahan / space / none, daloy control selectable xon-xoff/hard/none). Aking sugestion ay ang paggamit ng isang binagong architecture 8051 mula sa saypres, o ang paggamit ng isang scenix microcontroller (www.ubicom.com). Para sa scenix controller ko ay maaaring magbigay ng code para sa 8 uarts sabay-sabay. Na ito kung nais mo ang isang software na pagpapatupad. Kung gusto yau hardware, maaari mong gamitin ang max3100 (kasabihan).
Pinakamahusay, |
|
| Bumalik sa tuktok | |
 |
Ajay
Joined: 29 Feb 2004 Posts: 31
| 01 Mar 2004 0:10 Re: Paano Gumawa ng UART sa Software (hindi na ginagamit SBUF) sa 8051 | | |
|
| Maaari kang lumikha ng isa UART (bukod pa sa paggamit ng SBUF) sa pamamagitan ng paggamit ng isang dedikado timer at pagsulat masyadong mabilis code na paiikutin bit. Sa mga papasok na side (RXD), kailangan mong gumamit ng isang makatakip pin. Kapag ang makatakip lumapit, simulan ang iyong timer at basahin ang pin na kalagayan sa carry, paikutin at lumikha ng iyong mga papasok na bytes. Mabuting gumagawa upto 9600 Baud (ako ay may ginagamit ito).
Gayunman, ang paglikha ng dalawang KARAGDAGANG ng sabay-sabay? Kalimutan na ito. Kahit na ikaw ay gumagamit ng dalawang dedikado timer, ang makatakip gawain upang maging malaki na ikaw ay pumalya bits.
Kung ikaw ay naghahanap ng mabagal UARTs (1200 Baud o mabagal), pagkatapos ng diskarteng ito ay gumagana para sa upto 2 UART's. Isaisip na ikaw ay magbibigay sa lahat ng tatlong timer (isa na ginagamit para sa baud rate para sa gen SBUF, isa para sa port 1 at isa para sa port 2 tiyempo) pati na rin ang parehong interrupts.
Kaya, mas mahusay na disenyo ay ang paggamit ng isang braso chip na may dalawang UART's (ako ay may ginawa 2 karagdagang UARTs sa 19200 Baud sa isang braso) o gamitin ang Kuneho controller o ilang mga ganoong bagay.
Ajay |
|
| Bumalik sa tuktok | |
 |
beuch
Joined: 06 Jun 2001 Posts: 65 Lokasyon: France
| 03 Mar 2004 14:45 Re: Paano Gumawa ng UART sa Software (hindi na ginagamit SBUF) sa 8051 | | |
|
| Hi,
magkaroon ng isang tumingin sa mga nakalakip na file mula sa Philips web ISANG.
AN446
paalam |
|
| Bumalik sa tuktok | |
 |
Google AdSense

| 03 Mar 2004 14:45 Ads | | |
|
|
|
|
| Bumalik sa tuktok | |
 |
crazytnt
Joined: 02 Feb 2004 Posts: 8
| 03 Mar 2004 17:43 Re: Paano Gumawa ng UART sa Software (hindi na ginagamit SBUF) sa 8051 | | |
|
| Ito ay mahirap. Magmungkahi ng paggamit ng hardware. |
|
| Bumalik sa tuktok | |
 |
J_expoler2
Joined: 10 May 2003 Posts: 179 Helped: 19
| 03 Mar 2004 18:00 Re: Paano Gumawa ng UART sa Software (hindi na ginagamit SBUF) sa 8051 | | |
|
| Hi ako ay may ilang mga ideya UART ngunit ipadala lamang ang mga data sa pamamagitan ng paggamit ng timer 0 bit T232 bilang TxD MOV TMOD, # 22H MOV TH0, # 70H MOV TL0, # 70H SETB EA SETB ET0 SETB TR1 ; ; ; ; function na magpadala ng data: CLR T232; START kinagat / kapiraso 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 kinagat / kapiraso CLR TF0 JNB TF0, $ Magpabasa ito baka makatulong sa u BR. |
|
| Bumalik sa tuktok | |
 |
fireplus
Joined: 31 Oct 2003 Posts: 195 Helped: 5
| 04 Mar 2004 3:29 Re: Paano Gumawa ng UART sa Software (hindi na ginagamit SBUF) sa 8051 | | |
|
| subukan na
[hr: 5c6e3c7296] Sunog sa Wire: sm2:
|
|
| Bumalik sa tuktok | |
 |
Ajay
Joined: 29 Feb 2004 Posts: 31
| 08 Mar 2004 12:28 Re: Paano Gumawa ng UART sa Software (hindi na ginagamit SBUF) sa 8051 | | |
|
| | J_expoler2 wrote: | Hi ako ay may ilang mga ideya UART ngunit ipadala lamang ang mga data sa pamamagitan ng paggamit ng timer 0 bit T232 bilang TxD MOV TMOD, # 22H MOV TH0, # 70H MOV TL0, # 70H SETB EA SETB ET0 SETB TR1 ; ; ; ; function na magpadala ng data: CLR T232; START kinagat / kapiraso 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 kinagat / kapiraso CLR TF0 JNB TF0, $ Magpabasa ito baka makatulong sa u BR. |
Ito ay lamang ang mabuti para sa Ipinapadala. Ang problema ay kapag ikaw ay subukan upang tumanggap rin. Una sa lahat, ang paraan na ito ay hindi na gumana para sa buong dyupleks operasyon maliban kung gumamit ka ng dalawang magkaibang timer.
Saka, para sa pagtanggap, kailangan mong gumamit ng isang hardware na matigil na kung saan ay tiyak na simulan ang timer sa tamang panahon at pagkatapos ay makakatulong sa paghahalili sa data. Muli, ito lamang ang paraan ay mabuti bilang isang kalahati dyupleks komunikasyon.
Isa pang kumplikado ay mula sa katotohanan na ang tumakip na gawain maging mahaba at ay magiging sanhi ng mga problema sa pamamagitan ng mga nawawalang bits. Isaisip na ang error ay maipon sa loob ng isang panahon ng oras!
Ang pinakamahusay na paraan ay ang paggamit ng isang maliit na tilad na may mas maraming mga serial port (braso, uPSD mula sa ST atbp)
Ajay |
|
| Bumalik sa tuktok | |
 |