КОМПЬЮТЕРНОЕ ЖЕЛЕЗО
HARDWARE FOR PC

Специализированные интерфейсы периферийных устройств

С самых первых моделей IBM PC был введен и фактически стандартизо¬ван интерфейс игрового адаптера — Game port, к которому можно подключить до двух джойстиков или иных устройств. Суммарно на порте доступно 4 координат¬ных датчика (XI, Х2, Y1 и Y2), изменяющих сопротивление, и 4 дискретных входа для кнопок управления. Назначение координатных датчиков зависит от игры и кон-струкции манипулятора. Для авиасимуляторов XI может соответствовать переме¬щению рукоятки вверх-вниз, Y1 — влево-вправо, Х2 — нажатие левой и правой педа¬лей, Y2 — рукоятка сектора газа. Для автомобильных рулей XI — руль, Y1 — газ, Х2 — тормоз (газ и тормоз могут быть совмещены в координате Y1). Кроме игро¬вых целей порт может применяться и для подключения «серьезных» датчиков.
Современные игровые устройства имеют свой интеллект (микроконтроллер) и подключаются к компьютеру цифровым интерфейсом — по шине USB или че¬рез СОМ-порт. Их функциональные возможности богаче, они позволяют устанав¬ливать и двустороннюю связь с игроком (вводить механические воздействия).
Адаптер Game-порта имеет в пространстве ввода-вывода один регистр с адресом 20 lh, биты которого при чтении отображают состояние кнопок и компараторов аналоговых сигналов. Ввод дискретных сигналов от кнопок пояснений не требу¬ет. Упрощенная схема одного канала аналогового ввода приведена на рис. 8.19. В начале преобразования конденсатор разряжается через ключ, после чего начи¬нается его заряд, скорость которого определяется величиной сопротивления дат¬чика (чем больше сопротивление, тем медленнее заряд). Напряжение на кон¬денсаторе контролируется компаратором, который срабатывает по достижении определенного уровня. Выходы компараторов всех четырех каналов преобразова¬ния, как и дискретные входы, собираются в регистр (см. ниже), который может быть программно считан. Преобразование выполняется чисто программно и на¬чинается по выводу любого байта в регистр адаптера (20lh), при этом биты 0-3 устанавливаются в единицу. Далее программа циклически выполняет чтение ре¬гистра адаптера и измеряет время до возврата в нулевое состояние бит 0-3, соот-ветствующих четырем аналоговым каналам. Если аналоговый вход закорочен на шину GND или цепь измеряемого сопротивления разорвана, соответствующий бит не обнулится. Поэтому в программе преобразования должен быть предусмотрен тайм-аут. Для измеряемых сопротивлений в диапазоне 0-100 кОм время опреде¬ляется по формуле
Т(мкс)=24,2+1 1ХК(КОМ).

350
Глава 8. Специализированные интерфейсы периферийных устройств
Точность и линейность преобразования невысока, преобразование выполняется не быстро (до 1,12 мс) и сильно загружает процессор.

Hosted by uCoz