| Автор | Повідомлення |
|---|
winit_a
Зареєстровано: 16 листопада 2003 Повідомлень: 17
| 15 лютого 2004 5:42 Як створити UART з програмним забезпеченням (не використовується SBUF) на 8051 | | | Теги: UART 8051 з програмним забезпеченням UART 8051 8051 MCU з 3 UART UART 8051 p3.1 |
|
| Як створити UART з програмним забезпеченням? Мій проект б 3 UART (нормальний мати 1 UART з апаратної P3.0 та P3.1)
8051 MCU@11.0592MHz Як створити UART використовується P2 або P1 для інтерфейсу RS-232 |
|
| Повернутися до початку | |
 |
pisoiu
Зареєстровано: 31 грудня 2002 Повідомлень: 895 Допомагали: 24 Місце проведення: Румунія
| 15 лютого 2004 11:58 Re: Як створити UART з програмним забезпеченням (не використовується SBUF) на 8051 | | | Теги: UART для здійснення в 8051 з XON XOFF 8051 UART З 8051 ПО 8051 UART UART виконати програму 8051 8051 XON XOFF реалізації 8051 UART з паритет з |
|
| Привіт, Моя думка: це чертовски важко. Вам доведеться робити це за допомогою переривання, а 8051 є відносно повільний контролер, її ефективність залишається під 1mips на 11,0592 МГц годинники для класичних 8051 версії (1instruction циклу = 12 годин циклу). Більше одного послідовного порту здійснюється в програмному забезпеченні буде присутній майже весь час процесора, особливо якщо ви хочете йти до 115200 біт / с портів, або якщо ви хочете здійснити всі можливі параметри (6/7/8 біт даних selecteble, 1 / 2 зупинка битами, непарна / ще / марка / Космос / ні, контролю потоку вибирається xon-xoff/hard/none). Моя sugestion це використовувати зміна архітектури 8051 з кипариса, або використовувати scenix мікроконтролера (www.ubicom.com). Для scenix контролер я можу надати код для 8 uarts одночасно. Це якщо ви хочете, щоб програмне забезпечення здійснення. Якщо хочете ЯУ обладнання, ви можете використовувати max3100 (Максим).
Кращий, |
|
| Повернутися до початку | |
 |
Аджай
Зареєстровано: 29 лютого 2004 Повідомлень: 31
| 01 березня 2004 0:10 Re: Як створити UART з програмним забезпеченням (не використовується SBUF) на 8051 | | |
|
| Можна створити один UART (на додаток до використання SBUF) за допомогою спеціального таймера і написання коду дуже швидко обертатися біт. На вхідної стороні (RXD), ви повинні використовувати один перервати PIN. Коли відбувається переривання, запустити таймер і прочитати Сцепляющій статус в нести, обертати і створювати вхідні байти. Добре працює до 9600 бод (я використав його).
Разом з тим, що створює ще два в той же час? Забудьте про них. Навіть якщо ви використовуєте дві присвячені таймери, то переривання стала настільки великий, що ви пропустіть біт.
Якщо ви шукаєте повільно UARTs (1200 бод або повільніше), то цей метод працює на до 2 UART's. Майте на увазі, що вам дадуть всі три таймера (один використовується для швидкості ген для SBUF, по одному для порту 1 і порту 2 часу), а також як переривання.
Так що, краще дизайну полягає в тому, щоб використовувати ARM чіпа з двома UART's (Я створив 2 додаткових UARTs на 19200 бод з ARM), або використовувати Кролик контролер или что-то подобное справу.
Аджай |
|
| Повернутися до початку | |
 |
beuch
Зареєстровано: 06 червня 2001 Повідомлень: 65 Місцезнаходження: Франція
| 03 березня 2004 14:45 Re: Як створити UART з програмним забезпеченням (не використовується SBUF) на 8051 | | |
|
| Привіт,
, Подивіться на прикріплений файл з веб Philips АН СРСР.
AN446
поки
|
|
| Повернутися до початку | |
 |
crazytnt
Зареєстровано: 02 лютого 2004 Повідомлень: 8
| 03 березня 2004 17:43 Re: Як створити UART з програмним забезпеченням (не використовується SBUF) на 8051 | | |
|
| Це дуже важко. Запропонувати використання апаратного забезпечення. |
|
| Повернутися до початку | |
 |
J_expoler2
Зареєстровано: 10 травня 2003 року Повідомлень: 179 Допомагали: 19
| 03 березня 2004 18:00 Re: Як створити UART з програмним забезпеченням (не використовується SBUF) на 8051 | | |
|
| Привет У мене є ідея, але UART передавати дані тільки за допомогою таймера 0 розрядних T232 як TxD MOV TMOD, # 22H MOV TH0, # 70H MOV TL0, # 70H SETB Е.А. SETB ET0 SETB TR1 ; ; ; ; Функція передачі даних: CLR T232; СНВ-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; стоповий біт CLR TF0 JNB TF0, $ RET вона може допомогти U BR. |
|
| Повернутися до початку | |
 |
fireplus
Зареєстровано: 31 жовтня 2003 Повідомлень: 195 Допомагали: 5
| 04 березня 2004 3:29 Re: Як створити UART з програмним забезпеченням (не використовується SBUF) на 8051 | | |
|
| спробувати що
[HR: 5c6e3c7296] Пожежа в Wire: SM2:
|
|
| Повернутися до початку | |
 |
Аджай
Зареєстровано: 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 Е.А. SETB ET0 SETB TR1 ; ; ; ; Функція передачі даних: CLR T232; СНВ-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; стоповий біт CLR TF0 JNB TF0, $ RET вона може допомогти U BR. |
Це тільки хороші передачі. Проблема відбувається, коли ви намагаєтеся отримати також. Перш за все, цей метод буде працювати NEVER повного дуплексу операцію, якщо ви використовуєте два РІЗНИХ таймери.
Крім того, для отримання вам необхідно використовувати апаратне переривання, який буде точно запустити таймер на потрібний час, а потім буде сприяти перехід даних. Знову ж таки, цей метод добрий, як тільки одна половина дуплексной зв'язку.
Ще одна складність виникає з-за того, що переривання стати довгим і викличе проблеми зниклих біт. Майте на увазі, що помилка буде накопичуватися протягом певного періоду часу!
Кращим способом є використання чіпа, який має більш послідовні порти (ARM, uPSD із Санкт т.д.)
Аджай |
|
| Повернутися до початку | |
 |