Объективная реальность такова, что даже при самой высокой скорости в порту С2 - драйвер HX.SYS прекрасно справляется на синхронных участках. Проблемы возникают только тогда, когда нужно распаковать сильно упакованный пакет. Однако, благодаря особенностям протокола HX - драйвер узнаёт о "приближении распаковки" за два байта до того, как ему придётся плотно заняться делом.
В этот момент драйвер вполне может попробовать "инспирировать" снятие сигнала квитирования, но всё же в последний момент прочитать следующий байт из порта и не дать ему пропасть. Сервер же, зная, что сигнал квитирования приходит только перед "большим затыком" - тут же начнёт "цедить байты" по одному, пока драйвер не освободится от забот и не восстановит синхронный обмен.
Всё, что для этого нужно - научить драйвер HX.SYS вытаскивать байт из порта "за один бит до оверрана" - когда стоповый бит уже пришёл, а стартовый ещё не начался.
---------- Post added at 03:25 ---------- Previous post was at 03:22 ----------
Можно сделать ещё круче - ввести в протокол специальный "бросовый байт", приём (и последующий выброс) или пропадание которого можно распознавать по биту переполнения порта.
---------- Post added at 04:06 ---------- Previous post was at 03:25 ----------
А самое простое и правильное - вообще забыть про квитирование и ввести в протокол прекращение передачи байтов сервером после отправки сжатого блока - вплоть до получения от драйвера байта XON.
Таким образом можно будет на любой скорости работать с любым контроллером порта по обычной двухпроводной линии без сигналов квитирования..



Ответить с цитированием