| Автор | Съобщение |
|---|
winit_a
Присъединил се: 16 Ноември 2003 Мнения: 17
| 15 февруари 2004 5:42 Как да създадете UART със софтуер (не се използва SBUF) за 8051 | | |
|
| Как да създадете UART С софтуер? Моят проект Used 3 UART (нормално има 1 UART хардуер P3.0 и P3.1)
8051 MCU@11.0592MHz Как да създадете UART използвани P2 или P1 да Интерфейс RS-232 |
|
| Обратно към началото | |
 |
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 данни selecteble бита, 1 / 2 спрете бита, паритетът странно / дори / марка / пространство / няма, дебит контрол избираема xon-xoff/hard/none). Моят sugestion е да се използват модифицирани архитектура 8051 от кипарис, или да използвате scenix microcontroller (www.ubicom.com). За scenix контролер мога да предостави код за 8 uarts едновременно. Това, ако искате софтуерно приложение. Ако искате yau хардуера, можете да използвате max3100 (Максим).
Най-добър, |
|
| Обратно към началото | |
 |
Ajay
Присъединил се: 29 февруари 2004 Мнения: 31
| 01 март 2004 0:10 Re: Как да създадете UART със софтуер (не се използва SBUF) за 8051 | | |
|
| Вие може да създадете една UART (в допълнение към помощта на SBUF), като използва специален таймер и пише много бързо код, за да завъртите малко. На входящо страна (RXD), вие трябва да използвате прекъсне ПИН. Когато се прекъсват, започнете вашата таймери и четете ПИН статус в изпълнение, се върти и да създадете вашите входящи байта. Работи добре до 9600 Baud (Имам го употребявали).
Въпреки това, създаването на два часа повече на едно и също време? Забравете го. Дори ако използвате два часа, посветен таймери, за прекъсне съчетания стане толкова голям, че ще пропуснете бита.
Ако си търсите бавна UARTs (1200 Baud или бавна), тогава тази техника работи до 2 UART години. Имайте предвид, че ще дам всичко трите таймери (един курс, използван за baud GEN за SBUF, един за 1 пристанище и един за пристанището графика 2), както и двете прекъсва.
Така че, по-добър дизайн е да се използва ARM чип с две UART (на Аз създадох 2 допълнителни UARTs най 19200 Baud с ARM) или използвайте Зайо контролер или нещо такова.
Ajay |
|
| Обратно към началото | |
 |
beuch
Присъединил се: 06 юни 2001 Мнения: 65 Местоположение: Франция
| 03 Mar 2004 14:45 Re: Как да създадете UART със софтуер (не се използва SBUF) за 8051 | | |
|
| Здрасти,
имат поглед към прикрепен файл от Philips уеб АН.
AN446
чао |
|
| Обратно към началото | |
 |
Google AdSense

| 03 Mar 2004 14:45 Обяви | | |
|
|
|
|
| Обратно към началото | |
 |
crazytnt
Присъединил се: 02 февруари 2004 Публикации: 8
| 03 Mar 2004 17:43 Re: Как да създадете UART със софтуер (не се използва SBUF) за 8051 | | |
|
| Това е много трудно. Предлагаме да използвате хардуер. |
|
| Обратно към началото | |
 |
J_expoler2
Присъединил се: 10 май 2003 Публикации: 179 Подпомогнат: 19
| 03 Mar 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 | | |
|
| пробвам
[час: 5c6e3c7296] Пожар в Wire: 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. |
Това е само добро за предаване. Проблема идва, когато се опитате да получите както извор. Първо, този метод няма да работи за пълен дуплекс операция, освен ако не използвате две различни таймери.
Нещо повече, за приемане, ще трябва да ползвате хардуер, който ще прекъсне точно стартирате таймера в точното време и след това ще помогне на смяна на данните. Отново, този метод, е само добро, колкото половин дуплекс комуникация.
Друг Сложността идва от факта, че прекъсвам съчетания стана дълго и ще доведе до проблеми с липсващи бита. Имайте предвид, че грешката ще се натрупват в продължение на период от време!
Най-добрият начин е да се използва чип, който има повече сериен портове (ARM, uPSD от ST т.н.)
Ajay |
|
| Обратно към началото | |
 |