реклама на сайте
подробности

 
 
> Штатное квитирование в RS232(CTS\RTS)наFT232R, Что причина, а что следствие?
Мур
сообщение Jul 11 2006, 10:54
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 815
Регистрация: 7-06-06
Из: Харьков
Пользователь №: 17 847



Право не ловко... wub.gif
Привык XON\XOFF на RS232 гонять (перемычками обманывая РС)
Смотрю в доке на FT232R п.8.4 введены для контроллера дополнительные сигналы CTS\RTS.
Догадываюсь, что в скоростном обмене они просто необходимы..
CTS-готовность к приёму,а
RTS-запрос на передачу. Знак# означает инверсию,-т.е. активен лог нулём..
Подскажите, от кого должна инициатива исходить, а проще подскажите протокол для тандема USB-MK??? help.gif
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
AlexBoss
сообщение Jul 11 2006, 14:02
Сообщение #2


Участник
*

Группа: Новичок
Сообщений: 19
Регистрация: 30-06-06
Из: Донецк
Пользователь №: 18 488



To zltigo!

Ваша ошибка в следующем:
>На передающей стороне аппаратно заблокируется передача ...
Ни какая аппаратная блокировка передачи в UART-ах не используется! Все чипы, начиная с 8251, 8250, .... 16550A и их клоны, а также приемо-передатчики однокристалок для "аппаратного управления потоком" (так обычно называют RTS/CTS) используют программное управление этими сигналами. Аппаратным его назвали только потому, что для его реализации используется аппаратура - пара портов ввода/вывода и проволока их соединяющая. Да и еще в пику чисто программному XON\XOFF.
Таким образом ни какими ухищрениями ни приемник ни передатчик не смогут остановить передачу, которая уже началась - будь то байт в сдвиговом регистре или набитый буфер FIFO передатчика. Остановить поток может только алгоритм, управляющий передачей, который перед очередной закладкой байтов в FIFO обнаружит сброшенный CTS.

> _сбросится_ все содержимое передатчика ....... по лини связи на вход приемника и только после этого остановится поток. Да такую ситуацию принимающий алгоритм должен учитывать и сбрасывать RTS не когда петух клюнет, а заранее - когда в приемном буфере еще есть небольшой резерв (как правило не менее 16 байт) для размещения еще пока недопринятых байт, которые могут уже сидеть в FIFO передатчика. Так он и поступает.

Если даже предположить, что UART-ы с аппаратной блокировкой передачи существуют, что моей 20-летней практикой почему-то не подтверждается, то они просто обязаны:
a) не прерывать передаваемый байт;
б) сохранять недопереданное содержимое FIFO до возобновления передачи - то, что оно придет приемнику потом, после того, как он установит RTS, очеть даже хорошо, т.к. мы же этого и добивались - приостановить передачу.
А если чип не выполняет эти требования, то это исключительное г..... (извините за грубость), с которым просто невозможно работать, которое никто применять, а значит и производить не будет.

To Мур!
Не бойтесь - все именно так красиво.
Go to the top of the page
 
+Quote Post
zltigo
сообщение May 17 2007, 17:24
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(AlexBoss @ Jul 11 2006, 17:02) *
To zltigo!
Ваша ошибка в следующем:
>На передающей стороне аппаратно заблокируется передача ...
Ни какая аппаратная блокировка передачи в UART-ах не используется!

Читать умеем? Читаем ПОЛНОСТЬЮ:
Цитата
Вышескаэанное относится к большинству чипов, хотя бывают и исключения:
На передающей стороне аппаратно заблокируется передача после завершения текущего байта (правильный, но безмерно редкий случай)

Черным по белому написано это исключение в большинстве случаев по причине указанной Вами:
Цитата
Все чипы, начиная с 8251, 8250, .... 16550A и их клоны, а также приемо-передатчики однокристалок для "аппаратного управления потоком" (так обычно называют RTS/CTS) используют программное управление этими сигналами.

Дело обстоит не так. C чем спорим?

Теперь про сбросится:
Цитата
> _сбросится_ все содержимое передатчика ....... по лини связи на вход приемника и только после этого остановится поток.

Нет сбросится, это сбросится нахрен - потеряется.
Цитата
Если даже предположить, что UART-ы с аппаратной блокировкой передачи существуют, что моей 20-летней практикой почему-то не подтверждается,

Существуют, существуют - это не 8250 а 8251. Более того именно они выпускались отечественной промышленностью долгие годы.
Цитата
то они просто обязаны:
a) не прерывать передаваемый байт;....

Увы, их разработчика поступили иначе sad.gif
Цитата
А если чип не выполняет эти требования, то это исключительное г..... (извините за грубость), с которым просто невозможно работать, которое никто применять, а значит и производить не будет.

Однако западники их производят до сих пор smile.gif и ставятся они у меня произведенные фирой NEC в одну старую железку до сих пор.

Цитата
To Мур!
Не бойтесь - все именно так красиво.

Все не красиво по причине необходимости принять в общем случае все содержимое FIFO передатчика.

P.S.
У меня сейчас в РС стоят 550 совместимые UART-ы с 128 байтами FIFO. Вот так даже "красиво" взмахнув CTS, будте добры получить все сполна. Посему в общем случае тормознув передачу CTS, будьте добры продолжать принимать до тех пор, пока не появися пауза в приеме, если не уверены в том, что у Вас на приемной строне FIFO больше, чем на передающей строне.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
AlexBoss
сообщение May 18 2007, 15:11
Сообщение #4


Участник
*

Группа: Новичок
Сообщений: 19
Регистрация: 30-06-06
Из: Донецк
Пользователь №: 18 488



Губокоуважаемый 'zltigo', кто Вам дал право поучать окружающих (напр. как надо читать даташиты) и хамить им (нап. "Чтать умеем?")?
Кто-то из мудрых сказал: "Человек заслуживает такого к себе отношения, какое он проявляет по отношению к окружающим." Видимо это тот случай.
Ну что ж, будем общаться на Вашем языке.

Цитата(zltigo @ May 17 2007, 20:24) *
Читать умеем? Читаем ПОЛНОСТЬЮ:
Черным по белому написано это исключение в большинстве случаев по причине указанной Вами:

Читать вообще учились? Черным по белому написано:
Ни какая аппаратная блокировка передачи в UART-ах не используется!
Поэтому ни каких исключений и безмерно редких случаев !
Цитата
Дело обстоит не так. C чем спорим?

Дело обстоит не KAK?
Цитата
Теперь про сбросится:
Нет сбросится, это сбросится нахрен - потеряется.

Нет не сбросится, а будет продолжать передаваться и не нахрен а по линии передачи.
Во всем мире миллионы систем используют асинхронные приемопередатчики, а у Вас нахрен - потеряется. Ну что тут сказать, может оно так и есть, но в этом сучае это исключительно Ваша проблема.
Цитата
Существуют, существуют - это не 8250 а 8251. Более того именно они выпускались отечественной промышленностью долгие годы.

Читать умеем? Черным по белому написано:
Цитата
Все чипы, начиная с 8251, 8250, .... для "аппаратного управления потоком" ... используют программное управление ...

8251 и Более того именно КР580ВВ51 никогда не имели ни каких _аппаратных_средств_ прерывания передачи от принимающей стороны.
Цитата
Увы, их разработчика поступили иначе sad.gif

Если это Ваше личное, и надеюсь скромное мнение, то так и пишите, а еще лучше держите при себе.
Цитата
Все не красиво по причине необходимости принять в общем случае все содержимое FIFO передатчика.

Все очень красиво, дстаточно лишь учесть необходимость принять в общем случае все содержимое FIFO передатчика.
Цитата
P.S.
У меня сейчас ... UART-ы с 128 байтами FIFO ... тормознув передачу CTS, будьте добры продолжать принимать ...

Свершенно верно будьте добры, снять свой RTS когда обнаружите, что в Вашем приемном буфере осталось свободного места на 128 байт. И все будет очень красиво! И ни чего не потеряется нахрен! Не хотите (не можете себе позволить) - уменьшайте размер FIFO на передающей стороне (хоть вообще его отключите). Увы, их разработчика сделали все необходимое, чтобы Вы имели и такую возможность.
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 09:18
Рейтинг@Mail.ru


Страница сгенерированна за 0.01378 секунд с 7
ELECTRONIX ©2004-2016