не знаю, как клавиатура на мышь, но мышь на порт клавиатуры влияет и именно по CLK. Как то делал устройство, висящее на PS/2 на MSP430. Поначалу решил проблему установив мышь на ЮСБ. Потом решил это программно. Дело было 2 года назад - плохо помню. Но по-моему просто при высоком CLK со стороны клавы опрашивал вход CLK (уже в процессе передачи). Если он 0 - то начинал передачу сначала.
Кстати, насчет квитирования. Цитирую Гука, проверял - работает: "Клавиатура может начать передачу данных в произвольный момент, когда интерфейс находится в покое. Клавиатура формирует стартовый бит (низкий уровень) на линии KB-Data и первый импульс KB-Clock, что является сигналом контроллеру(имеется ввиду контроллер на стороне матери) о необходимости начала приема. После подъема KB-Clock она выводит 0-й бит данных на линию KB-Data, а затем и следующий импульс KB-Clock. Контроллер должен «защелкивать» принятый бит данных по спаду KB-Clock. Так передаются все 8 бит данных и бит паритета, дополняющий число единичных бит до нечетного. После синхроимпульса бита паритета контроллер клавиатуры (имеется ввиду контроллер на стороне матери) должен сформировать импульс KB-Clock, подтверждающий прием байта (Ack). Если весь байт с битом паритета не будет получен контроллером за 2 мс, контроллер прекращает прием данного байта и фиксирует ошибку тайм-аута."
Сообщение отредактировал Dimmy - Jul 4 2007, 18:41
|