Разбираюсь с такой проблемой: нужно вклиниться в линию между хостом и устройством. Сделал тестовый девайс на плис: два транссивера подключены через плис, один к хосту, другой к девайсу. В ПЛИС идет разбор протокола - анализируется в какую сторону передаются данные и соответствующим образом управляются транссиверы. В принципе такой бутерброд работает: идентификация проходит успешно, устройство отзывается. Но когда начинается интенсивный обмен все глохнет. Место сбоя пока никак отловить не могу.
Анализ протокола у меня выполняется следующим образом: по положительнуму перепаду линии DM (хоста или девайса) запускается машина состояний контролирущая появление SE0, а после его появления + 2 такта возврат в ждуший режим. Транссиверы и машина состояний управляются синхронно (тактовый сигнал подстраивается под сигналы с линий DM, DP), правда максимальная задержка между входом-выходом ~60нс.
В чем может быть проблема? Подстройка тактового сигнала и прием/передача небольших пакетов вроде работает нормально (смотрел логическим анализатором), остается протокол - может я в чем-то ошибся?
|