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

 
 
> Штатное квитирование в 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
Shamil
сообщение May 18 2007, 15:59
Сообщение #5


Частый гость
**

Группа: Свой
Сообщений: 160
Регистрация: 23-12-04
Из: Уфа
Пользователь №: 1 631



Цитата(AlexBoss @ May 18 2007, 21:11) *
8251 и Более того именно КР580ВВ51 никогда не имели ни каких _аппаратных_средств_ прерывания передачи от принимающей стороны.

Ну это Вы зря. Я хоть и работал с ними, последний раз, лет 12 назад,
и то помню, что там был как раз аппаратный запрет передачи, как
впрочем и у наших 1002ХЛ1 .
Вот нашел даже даташит от Intel i8251A.
Как там указано сигнал CTS запрещает передачу (но не прерывает ее) аппаратно.
Более того, нет возможности считать состояние этого сигнала (CTS), для программной
реализации останова передачи.
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 24th July 2025 - 06:25
Рейтинг@Mail.ru


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