Comments 3
Ставлю виртуальный плюс, реальных больше не могу.
Когда связываете два последовательных порта, как показано на схеме (кроссом для теста), их signal grounds лучше тоже соединить — даже если это два порта одного устройства.
В управлении розетками было бы чуть лучше, если бы контроллер повторял посланный командный байт: сказали «A» — он и ответил «A», если услышал его. На остальное управление это не влияет, если вообще клиентская часть сделана с учётом реалий — зовёт tcflush(,TCIFLUSH) перед любой посылкой "?".
В управлении розетками было бы чуть лучше, если бы контроллер повторял посланный командный байт: сказали «A» — он и ответил «A», если услышал его. На остальное управление это не влияет, если вообще клиентская часть сделана с учётом реалий — зовёт tcflush(,TCIFLUSH) перед любой посылкой "?".
Когда связываете два последовательных порта, как показано на схеме (кроссом для теста), их signal grounds лучше тоже соединить — даже если это два порта одного устройства.
Дело в том, что это не просто два порта одного устройства, а два порта, реализованных в одном и том же чипе. И контакты — на одном и том же разъёме. Но даже если бы чипов было два на одной плате, то паянный контакт через широкую дорожку (а сегодня это физически — отдельный слой на плате) будет намного лучше, чем через провод и сопротивление минимум двух контактов на стыке «разъём-провод».
В управлении розетками было бы чуть лучше, если бы контроллер повторял посланный командный байт: сказали «A» — он и ответил «A», если услышал его. На остальное управление это не влияет, если вообще клиентская часть сделана с учётом реалий — зовёт tcflush(,TCIFLUSH) перед любой посылкой "?".Достаточно посылать не «A», а «A?». Буфер USB FS — 64 байта, оба байта уйдут в одном и том же физическом пакете. И устройство пришлёт пакет с ответом из трёх байт, в которых на заведомо известной позиции будет стоять эхо. Можно даже посылать пакет вида «AbC?» — это тоже менее шестидесяти четырёх байт. И они тоже уйдут в одном USB пакете. Порт же виртуальный. При разработке протокола эти возможности были учтены.
В итоге каждый может посылать так, как сочтёт нужным. Лично мне нравится без эха. Но добавляем в посылаемую строку знак вопроса, который не даст никаких накладных расходов из-за особенностей протокола USB, получаем то, что нравится тем, кто любит ответы.
Sign up to leave a comment.
Доступ к шинам комплекса Redd, реализованным на мостах FTDI