ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Четверг
11 июля
385703 Топик полностью
Ксения (06.02.2013 19:24 - 19:26, просмотров: 92) ответил FDA на Как можно аппаратно определить, зависло ли внешнее USB-устройство? Если, допустим, напрямую подключиться к линиям DM, DP и отслеживать активность на линии. Или USB Host постоянно что-то передаёт?
Можно зашить в протокол внешнего USB-устройства реакцию на интерфейсную команду SEND_BREAK (0x2123). Про ее поддержку обычно забывают, как необязательную. Однако если ее поддержать (достаточно формально - ответить ACK), то появится возможность тестировать связь, минуя обычный байтный обмен, с помощью Windows-API-функции ClearCommBreak(). Команда эта совершенно безвредная, т.к. Set_Break никогда не посылаают, однако по реакции на вызов Clear_Break (true/false) можно судить, "живо" ли USB-устройство или отсоединилось/зависло. Если "живо", то ClearCommBreak() должна вернуть true.