| Автор | Сообщение |
|---|
winit_a
Зарегистрирован: 16 ноября 2003 Сообщений: 17
| 15 февраля 2004 5:42 Как создать UART с программным обеспечением (не используется SBUF) на 8051 | | | Теги: UART 8051 с программным обеспечением UART 8051 8051 MCU с 3 UART |
|
| Как создать UART с программным обеспечением? Мой проект б 3 UART (нормальный иметь 1 UART с аппаратной P3.0 и P3.1)
8051 MCU@11.0592MHz Как создать UART используется P2 или P1 для интерфейса RS-232 |
|
| Вернуться к началу | |
 |
pisoiu
Зарегистрирован: 31 декабря 2002 Сообщений: 894 Помогали: 24 Место проведения: Румыния
| 15 февраля 2004 11:58 Re: Как создать UART с программным обеспечением (не используется SBUF) на 8051 | | | Теги: UART для осуществления в 8051 с XON XOFF 8051 UART С 8051 ПО 8051 UART UART выполнить программу 8051 8051 XON XOFF реализации |
|
| Привет, Мое мнение: это чертовски трудно. Вам придется делать это с помощью прерывания, а 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 из Санкт т.д.)
Аджай |
|
| Вернуться к началу | |
 |