Компьютерные манипуляторы мыши
Вид материала | Документы |
- План реферата: Введение Основная часть Культурологическая справка о мыши Образ мыши, 164.1kb.
- Характеристика районов исследования, 154.92kb.
- Экспресс-отчет «Экономика знаний» Москва Июль, 2007 При работе с оглавлением: наведите, 549.48kb.
- Предстоящие в июне выставки / ярмарки в России и за рубежом, 89.67kb.
- Инструкция по настройке подключения к сети Мультима для windows xp s Открываем пункт, 22.94kb.
- Программа-минимум кандидатского экзамена по специальности 05. 13. 15 «Вычислительные, 126.11kb.
- 1. Графический интерфейс Большая часть манипуляций с объектами в графической оболочке, 99.42kb.
- Инструкция по установке Amadeus Selling Platform на операционную систему Windows Vista., 37.87kb.
- Учебно-методический комплекс по дисциплине «Компьютерные технологии в журналистике», 224.11kb.
- Патрисия Кори – Атлантида. Битва света и тьмы, 1892.22kb.
КОМПЬЮТЕРНЫЕ МАНИПУЛЯТОРЫ МЫШИ
Совместная работа студентов группы № 4373
Мылов Андрей Викторович, Гостев Андрей Сергеевич
Выполнил студент группы 4373: Мылов Андрей Викторович
Санкт-Петербург
2006 год
КОМПЬЮТЕРНЫЕ МАНИПУЛЯТОРЫ (МЫШИ)
- ОБЩЕЕ
Первую компьютерную мышь создал сотрудник лаборатории Xerox, расположенной в Пало-Альто (шт. Калифорния) Дуглас Энджелбарт (Duglas Engelbart) в 1963 году.
Большинство фирм, производящих подобные устройства, обеспечивают совместимость по системе команд либо с Microsoft Mouse (две управляющие клавиши), либо с Mouse Systems Mouse (три управляющие клавиши).
- ОПТИКО-МЕХАНИЧЕСКИЕ МЫШКИ
Подавляющее число компьютерных мышек используют оптико-механический принцип кодирования перемещения. С поверхностью стола соприкасается тяжелый, покрытый резиной шарик сравнительно большого диаметра. Ролики, прижатые к поверхности шарика, установлены на перпендикулярных друг другу осях с двумя датчиками. Датчики, представляющие собой оптопары (светодиод-фотодиод), располагаются по разные стороны дисков с прорезями. Порядок, в котором освещаются фоточувствительные элементы, определяет направление перемещения мыши, а частота приходящих от них импульсов — скорость. Хороший механический контакт с поверхностью обеспечивает специальный коврик.
- ОПТИЧЕСКАЯ МЫШЬ (ПЕРВЫЙ ВАРИАНТ)
Более точного позиционирования курсора позволяет добиться оптическая мышь. Для нее используется специальный коврик, на поверхности которого нанесена мельчайшая сетка из перпендикулярных друг другу темных и светлых полос. Расположенные в нижней части мыши две оптопары освещают коврик и по числу пересеченных при движении линий определяют величину и скорость перемещения. Оптические мыши не имеют движущихся частей и лишены такого присущего оптико-механическим мышам недостатка, как перемещение курсора мыши рывками из-за загрязнения шарика. Разрешающая способность применяемого в мыши устройста считывания координат составляет 400 dpi (Dot per Inch — точек на дюйм) и выше, превосходя аналогичные значения для механических устройств.
- ОПТИЧЕСКАЯ МЫШЬ (ВТОРОЙ ВАРИАНТ)
Привычные для нас сегодня оптические мыши ведут свою родословную с 1999 года, когда в массовой продаже появились первые экземпляры таких манипуляторов от Microsoft, а через некоторое время и от других производителей. «Вид» знакомых нам нынче массовых оптических мышек, базирующихся на общих принципах работы, был «выведен» в исследовательских лабораториях всемирно известной корпорации Hewlett-Packard. Точнее, в ее подразделении Agilent Technologies, которое только сравнительно недавно полностью выделилось в структуре корпорации НР в отдельную компанию.
- Как «видят» компьютерные мыши
Итак, «зрение» оптическая компьютерная мышь получает благодаря следующему процессу. С помощью светодиода, и системы фокусирующих его свет линз, под мышью подсвечивается участок поверхности. Отраженный от этой поверхности свет, в свою очередь, собирается другой линзой и попадает на приемный сенсор микросхемы — процессора обработки изображений. Этот чип, в свою очередь, делает снимки поверхности под мышью с высокой частотой (кГц). Причем микросхема (назовем ее оптический сенсор) не только делает снимки, но сама же их и обрабатывает, так как содержит две ключевых части: систему получения изображения Image Acquisition System (I A S) и интегрированный DSP процессор обработки снимков.
На основании анализа череды последовательных снимков (представляющих собой квадратную матрицу из пикселей разной яркости), интегрированный DSP процессор высчитывает результирующие показатели, свидетельствующие о направлении перемещения мыши вдоль осей Х и Y, и передает результаты своей работы вовне по последовательному порту.
Если мы посмотрим на блок-схему одного из оптических сенсоров, то увидим, что микросхема состоит из нескольких блоков, а именно:
- основной блок, это, конечно же, Image Processor — процессор обработки изображений (DSP) со встроенным приемником светового сигнала (I A S);
- Voltage Regulator And Power Control — блок регулировки вольтажа и контроля энергопотребления (в этот блок подается питание и к нему же подсоединен дополнительный внешний фильтр напряжения);
- Oscillator — на этот блок чипа подается внешний сигнал с задающего кварцевого генератора, частота входящего сигнала порядка пары десятков МГц .Служит для синхронизации всех вычислительных процессов, протекающих внутри микросхемы оптического сенсора.;
- Led Cоntrоl — это блок управления светодиодом, с помощью которого подсвечивается поверхность по мышью;
- Serial Port — блок передающий данные о направлении перемещения мыши вовне микросхемы.
Нужно уточнить, что информацию о перемещении мыши микросхема оптического сенсора передает через Serial Port не напрямую в компьютер. Данные поступают к еще одной микросхеме-контроллеру, установленной в мыши. Эта вторая «главная» микросхема в устройстве отвечает за реакцию на нажатие кнопок мыши, вращение колеса прокрутки и т.д. Данный чип, в том числе, уже непосредственно передает в ПК информацию о направлении перемещения мыши, конвертируя данные, поступающие с оптического сенсора, в передаваемые по интерфейсам PS/2 или USB сигналы. А уже компьютер, используя драйвер мыши, на основании поступившей по этим интерфейсам информации, перемещает курсор-указатель по экрану монитора.
Итак, причина столь разительного отличия в поведении оптических мышей была вовсе не в «плохих» или «хороших» установленных сенсорах, как до сих пор думают многие. В ведущие себя совершенно по-разному мыши часто устанавливались совершенно одинаковые микросхемы оптических сенсоров. Однако вот, благодаря несовершенным чипам контроллеров, устанавливаемых в оптические мыши, мы имели возможность сильно поругать первые поколения оптических грызунов.
В целом система оптического слежения мышей, помимо микросхемы-сенсора, включает еще несколько базовых элементов. Конструкция включает держатель (Clip) в который устанавливаются светодиод (LED) и непосредственно сама микросхема сенсора (Sensor). Эта система элементов крепится на печатную плату (PCB), между которой и нижней поверхностью мыши (Base Plate) закрепляется пластиковый элемент (Lens), содержащий две линзы (о назначении которых было написано выше).
Оптимальное расстояние от элемента Lens до отражающей поверхности под мышью должно попадать в диапазон от 2.3 до 2.5 мм. Это рекомендации производителя сенсоров. Вот вам и первая причина, почему оптические мыши плохо себя чувствуют «ползая» по оргстеклу на столе, всевозможным «полупрозрачным» коврикам и т. п. И не стоит клеить на оптические мыши «толстые» ножки, когда отваливаются или стираются старые.
- Из истории мышиного зрения
Каждый сенсор сочетает в себе непосредственно приемник сигнала Image Acquisition System (IAS), DSP-процессор обработки снимков, а также выходной конвертер сигнала под интерфейс PS/2 или иной.
Первыми массово выпускаемыми оптическими сенсорами стали микросхемы HDNS-2000. Эти сенсоры имели разрешение 400 cpi (counts per inch), т.е. точек (пикселей) на дюйм, и были рассчитаны на максимальную скорость перемещения мыши в 12 дюймов/с (около 30 см/с) при частоте осуществления снимков оптическим сенсором в 1500 кадров за секунду. Допустимое (с сохранением стабильной работы сенсора) ускорение при перемещении мыши «в рывке» для чипа HDNS-2000 — не более 0.15 g (примерно 1.5 м/с2).
Затем на рынке появились микросхемы оптических сенсоров ADNS-2610 и ADNS-2620. Оптический сенсор ADNS-2620 уже поддерживал программируемую частоту «съемки» поверхности под мышью, с частотой в 1500 либо 2300 снимков/с. Каждый снимок делался с разрешением 18х18 пикселей. Для сенсора максимальная рабочая скорость перемещения по прежнему была ограничена 12 дюймами в секунду, зато ограничение по допустимому ускорению возросло до 0.25 g, при частоте «фотографирования» поверхности в 1500 кадров/с.
Вышедший вскоре чип ADNS-2051 представлял собой гораздо более мощное решение, чем микросхемы HDNS-2000 или ADNS-2610, хотя внешне (упаковкой) был также на них похож. Этот сенсор уже позволял программируемо управлять «разрешением» оптического датчика, изменяя таковое с 400 до 800 сpi. Вариант микросхемы также допускал регулировку частоты снимков поверхности, причем позволял менять ее в очень широком диапазоне: 500, 1000,1500, 2000 или 2300 снимков/с. А вот величина этих самых снимков составляла всего 16х16 пикселей. При 1500 снимках/с предельно допустимое ускорение мыши при «рывке» составляло по прежнему 0.15 g, максимально возможная скорость перемещения — 14 дюймов/с (т. е. 35.5 см/с). Данный чип был рассчитан на напряжение питания 5 В.
- Лучший из
Оптический сенсор ADNS-3060, по сравнению со своими «предками», обладает поистине впечатляющим набором характеристик. Использование этой микросхемы, упакованной в корпус с 20-ю контактами, обеспечивает оптическим мышам невиданные ранее возможности. Допустимая максимальная скорость перемещения манипулятора выросла до 40 дюймов/с (то есть почти в 3 раза !), т.е. достигла «знаковой» скорости в 1 м/с. Это уже очень хорошо — вряд ли хоть один пользователь двигает мышь с превышающей данное ограничение скоростью столь часто, чтобы постоянно чувствовать дискомфорт от использования оптического манипулятора, в том числе это касается и игровых приложений. Допустимое же ускорение выросло, страшно сказать, во сто раз (!), и достигло величины 15 g (почти 150 м/с2). Теперь на разгон мыши с 0 до предельных 1 м/с пользователю отводится 7 сотых секунды — думаю, теперь очень немногие сумеют превзойти это ограничение. Программируемая скорость осуществления снимков поверхности оптическим сенсором у новой модели чипа превышает 6400 кадров/с, т.е. «бьет» предыдущий «рекорд» почти в три раза. Причем чип ADNS-3060 может сам осуществлять подстройку частоты следования снимков для достижения наиболее оптимальных параметров работы, в зависимости от поверхности, над которой перемещается мышь. «Разрешение» оптического сенсора по-прежнему может составлять 400 или 800 cpi.
- Общие принципы работы чипов оптических сенсоров
Общая схема анализа перемещений мыши не изменилась по сравнению с более ранними моделями — полученные блоком IAS сенсора микроснимки поверхности под мышью обрабатываются затем интегрированным в этой же микросхеме DSP (процессором), который определяет направление и дистанцию перемещения манипулятора. DSP вычисляет относительные величины смещения по координатам Х и Y, относительно исходной позиции мыши. Затем внешняя микросхема контролера мыши (для чего он нужен, мы говорили ранее) считывает информацию о перемещении манипулятора с последовательного порта микросхемы оптического сенсора. Затем уже этот внешний контроллер транслирует полученные данные о направлении и скорости перемещения мыши в передаваемые по стандартным интерфейсам PS/2 или USB сигналы, которые уже от него поступают к компьютеру.
Но вникнем чуть глубже в особенности работы сенсора. Блок-схема чипа ADNS-3060 представлена выше. Как видим, принципиально его структура не изменилась, по сравнению с далекими «предками». 3.3 В питание к сенсору поступает через блок Voltage Regulator And Power Control, на этот же блок возложена функции фильтрации напряжения, для чего используется подключение к внешнему конденсатору. Поступающий с внешнего кварцевого резонатора в блок Oscillator сигнал(номинальная частота которого 24 МГц, для предыдущих моделей микросхем использовались более низкочастотные задающие генераторы) служит для синхронизации всех вычислительных процессов, протекающих внутри микросхемы оптического сенсора. Например, частота снимков оптического сенсора привязана к частоте этого внешнего генератора (кстати, на последний наложены не весьма жесткие ограничения по допустимым отклонениям от номинальной частоты — до +/- 1 МГц).
Осуществляемые сенсором ADNS-3060 снимки поверхности (кадры) имеют разрешение 30х30 и представляют собой все ту же матрицу пикселей, цвет каждого из которых закодирован 8-ю битами, т.е. одним байтом (соответствует 256 градациям серого для каждого пикселя). Таким образом, каждый поступающий в DSP процессор кадр (фрейм) представляет собой последовательность из 900 байт данных. Но «хитрый» процессор не обрабатывает эти 900 байт кадра сразу по поступлении, он ждет, пока в соответствующем буфере (памяти) накопится 1536 байт сведений о пикселях (то есть добавится информация еще о 2/3 последующего кадра). И только после этого чип приступает к анализу информации о перемещении манипулятора, путем сравнения изменений в последовательных снимках поверхности.
После того как интегрированный DSP процессор обработает данные снимков, он вычисляет относительные значения смещения манипулятора вдоль осей X и Y, занося конкретные данные об этом в память микросхемы ADNS-3060. В свою очередь микросхема внешнего контроллера (мыши) через Serial Port может «черпать» эти сведения из памяти оптического сенсора с частой примерно раз в миллисекунду. Заметьте, только внешний микроконтроллер может инициализировать передачу таких данных, сам оптический сенсор никогда не инициирует такую передачу. Поэтому вопрос оперативности (частоты) слежения за перемещением мыши во многом лежит на «плечах» микросхемы внешнего контроллера. Данные от оптического сенсора передаются пакетами по 56 бит.
Ну а блок Led Cотtrоl, которым оборудован сенсор, ответственен за управление диодом подсветки — путем изменения значения бита 6 (LED_MODE) по адресу 0x0a микропроцессор оптосенсора может переводить светодиод в два режима работы: логический «0» соответствует состоянию «диод всегда включен», логическая «1» переводит диод в режим «включен только при необходимости». Это важно, скажем, при работе беспроводных мышей, так как позволяет экономить заряд их автономных источников питания. Кроме того, сам диод может иметь несколько режимов яркости свечения.
На этом, собственно, все с базовыми принципами работы оптического сенсора. Что еще можно добавить? Рекомендуемая рабочая температура микросхемы ADNS-3060, впрочем как и всех остальных чипов этого рода, — от 0 0С до +40 0С. Хотя сохранение рабочих свойств своих чипов Agilent Technologies гарантирует в диапазоне температур от -40 0С до +85 0С.
- ДИГИТАЙЗЕР (ПЛАНШЕТ)
Современный пользователь ПК, как правило, естественно и легко привыкает к самому распространенному из компьютерных манипуляторов — мыши. И все же для выполнения многих операций, в первую очередь связанных с рисованием, естественнее и удобнее использовать инструмент, который в результате многотысячелетней истории развития человечества приобрел форму пера, карандаша, ручки и т.п. Графические планшеты, или дигитайзеры, реализующие идею ручки на базе электронных технологий, пока еще нечасто проникают в пользовательский быт, прежде всего вследствие традиционно более высокой — по сравнению с мышами — цены. Тем не менее, на рынке все чаще появляются достаточно недорогие и при этом вполне достойные устройства такого рода.
Дигитайзер (или планшет) – это устройство, предназначенное для оцифровки изображений. Дигитайзер состоит из двух основных элементов: основания и курсора, двигающегося по его поверхности. При нажатии на кнопку курсора его местоположение на поверхности планшета фиксируется, а координаты передаются в компьютер. Эти устройства могут использоваться для различных целей.
Дигитайзеры применяются для создания на компьютере рисунков и набросков: пользователь создает изображение на экране, но его рука водит пером по планшету.
Дигитайзер можно использовать как аналог манипулятора “мышь”. Кроме того, дигитайзер используют для управления командами в системе AutoCAD и аналогичных САПР (системах автоматизированного проектирования) при помощи накладных меню. Команды в меню расположены на разных местах на поверхности дигитайзера. При выборе курсором одной из команд специальный программный драйвер интерпретирует координаты указанного места, посылая соответствующую команду на выполнение.
Рассмотрим принцип действия дигитайзера. Местоположение курсора фиксируется с помощью встроенной в планшет сетки. Сетка состоит из проволочных или печатных проводников с относительно большим расстоянием между соседними проводниками (от 3 до 6 мм). Механизм регистрации позволяет получить шаг считывания информации намного меньше шага сетки (до 100 линий на мм).
По технологии изготовления дигитайзеры делятся на два типа: электростатические и электромагнитные. В электростатических дигитайзерах регистрируется локальное изменение электрического потенциала сетки под курсором. В электромагнитных дигитайзерах курсор излучает электромагнитные волны, а сетка служит приемником. Фирмой Wacom разработана технология на основе электромагнитного резонанса, когда сетка излучает, а курсор отражает сигнал. Но в обоих случаях приемником является сетка. Следует отметить, что в работе электромагнитных планшетов возможны помехи со стороны излучающих устройств, в частности, мониторов.
Рассмотрим характеристики дигитайзеров.
Шаг считывания информации называется разрешением (resolution) дигитайзера. Физический предел разрешения дигитайзера определяется шагом считывания регистрирующей сетки. Понятие о пределе разрешения имеет место, поскольку следует различать разрешение как характеристику прибора и программно задаваемое разрешение, которое является переменной величиной в настройке дигитайзера.
Разрешающая способность выбирается в зависимости от решаемой задачи. Если требуется высокая скорость рисования и не требуется высокое качество линии, то выбирается малое разрешение. Графические файлы при этом занимают малое место на дисковом пространстве. При большом разрешении планшета точность рисования повышается, но падает скорость ввода линий в компьютер, и графические файлы имеют большие размеры.
Независимо от принципа регистрации существует погрешность в определении координат курсора, именуемая точностью (accuracy) дигитайзера. Эта величина зависит от типа дигитайзера и от конструкции его составляющих. На нее влияет неидеальность регистрирующей сетки планшета, способность воспроизводить координаты неподвижного курсора (повторяемость), устойчивость к разным температурным условиям (стабильность), качество курсора, помехозащищенность и т. д. Точность существующих планшетов колеблется в пределах от 0.005 дюйма до 0.03 дюйма. В среднем точность электромагнитных дигитайзеров выше по сравнению с электростатическими.
На результат работы также влияет точность действий оператора. В среднем хороший оператор вносит погрешность не более 0.004 дюйма.
Важными параметрами дигитайзера являются размер рабочей области и скорость обмена. Размер рабочей области (Surface Sizes) устанавливает размеры чувствительной части поверхности дигитайзера. Скорость обмена (Output Rate) указывает на реальную скорость передачи координат дигитайзером.
Конструктивно дигитайзеры бывают жесткие и гибкие. Гибкий графический планшет обладает такими же возможностями, что и обычный жесткий дигитайзер, но он дешевле и намного легче, и его рабочее поле выполнено из гибкого материала, похожего на прямоугольный кусок линолеума. Его можно свернуть в трубочку, что очень удобно в случае переноса и хранения.
Существуют два типа указующих устройств дигитайзера: курсор и перо (стило).
Курсоры бывают четырех-, восьми-, двенадцати- и шестнадцатикнопочные.
Кроме того, существуют простые перья и перья, чувствительные к нажиму. Последние особый интерес представляют для художников. Перо может иметь до 256 градаций нажима. Степени нажима соответствует или толщина линии, или цвет в палитре, или оттенок цвета. В результате можно эмулировать на компьютере процесс рисования масляными красками, темперой или акварелью на специально подобранной “фактуре”. Для реализации этих возможностей необходимо иметь специальное программное обеспечение. Среди подобных программ для ПК можно назвать следующие: Adobe PhotoShop, Aldus PhotoStyler, Fauve Matisse, Fractal Design Painter, Autodesk Animator Pro, CorelDraw. Чувствительные к нажиму перья могут пригодиться и пользователям системы AutoCAD для последующей трехмерной визуализации спроектированных объектов. Данный вид указывающих устройств можно применять только с электромагнитными дигитайзерами.
И курсоры, и перья бывают как с проводом, так и без него. Беспроводной указатель удобнее, но он должен иметь батарейку. Исключение составляют пассивные неизлучающие перья фирмы Wacom.
Самыми дорогими устройствами ручного ввода информации, несомненно, являются графические планшеты, совмещенные с жидкокристаллическими экранами. Они используют активно-матричный плоский дисплей на пленочных транзисторах и еще более утонченную технологию электромагнитной передачи и приема.
- ТАЧПАД (TOUCHPAD)
TouchPad™ это сенсорная панель прямоугольной формы. Прикасаясь к ней пальцем и передвигая его по поверхности, можно маневрировать курсором так же, как и при использовании мышки. К тому же, TouchPad обладает расширенными функциональными возможностями, например, нажатие на левую кнопку (как у мыши) можно заменить легким постукиванием, а для прокрутки страницы достаточно провести пальцем по правому краю сенсорной панели.
Ведущим производителем TouchPad остается Synaptics. Начиная с 1999г. "тачпады" от этой компании стали совершенно "безглючными", точными, чувствительными и надежными.
Физически TouchPad представляет собой сетку из металлических проводников, разделенных тонкой изолирующей прокладкой из лавсановой пленки, т. е. получается набор большого количества маленьких конденсаторов. Так как палец является проводником, то при приближении руки к поверхности панели происходит изменение электрического поля, а, следовательно, емкости этих конденсаторов. Измеряя изменение емкости каждого конденсатора в сетке можно точно определить координаты пальца на поверхности панели. Более того, измеряя величину емкости можно также приблизительно определить давление, оказываемое на панель (чем большее давление прилагается к поверхности, тем больше полная емкость).
Ёмкостный TouchPad не имеет никаких изнашиваемых частей
- Устойчив к влажности, грязи, затираниям на поверхности
- Synaptics™ TouchPad имеет разрешение > 1000 dpi
- Обладает высокой чувствительностью к касанию пальцем
Поскольку работа устройства основана на измерении ёмкости, тачпад не будет работать, если водить по нему каким-либо непроводящим предметом, например, основанием карандаша. В случае использования проводящих предметов тачпад будет работать только при достаточной площади соприкосновения. (Попробуйте касаться тачпада пальцем лишь чуть-чуть). Влажные пальцы затрудняют работу тачпада.
- ТРЭКБОЛ
Трэкбол — это как бы перевернутая «мышь», корпус которой вмонтирован в корпус самого компьютера или у которой шарик вынесен наверх, а несколько увеличенный шарик вращается на месте. Трэкбол имеет такие же кнопки, что и «мышь».
- СПИСОК ЛИТЕРАТУРЫ
«С точки зрения оптических мышей...» com/peripheral/mice-sensor.shtml
- «Манипуляторы» su.ru/glax/mouse/manipulators.htm
- «Возвращение к перу» .ru/?ID=287214&4Print=1
- «Сенсорные устройства ввода» ru/archive/group16/c4wu11/str4.htm
- «Принцип действия дигитайзера» om.net/NEWS/prozelit/CALCOMP/Hardware/Digit/DIG_TECH.htm
- «Технологии чувствительных к нажиму дигитайзеров» om.net/NEWS/prozelit/CALCOMP/Hardware/Digit/DIG_PRS_T.htm
- «Дигитайзеры» t.spb.ru/library/informatica/compmarket/discript/digit.htm
- «Synaptics TouchPad - обойдемся без мышки» nsk.ru/articles/detail.phtml?id=77
- «Тачпад» dia.org/wiki/%D0%A2%D0%B0%D1%87%D0%BF%D0%B0%D0%B4
- «Устройства ввода информации ПК, их функциональное назначение и принцип работы» .pochta.ru/ref/inputdevices.htm
МЫШИ
Программирование работы компьютерных манипуляторов
Выполнил студент группы 4373: Гостев Андрей Сергеевич
Санкт-Петербург
2006 год
Компьютерные манипуляторы (мыши).
Рис. 1 Блок – схема «мышки».
Под мышью будет подразумеваться двухмерный аналоговый манипулятор, подключаемый к персональному компьютеру через последовательный порт, соответствующий стандарту RS-232 и снабженный парой- тройкой кнопок на верхней крышке.
Как было указано выше, мышь подключается к стандартному порту RS-232. Таким образом, для передачи данных в компьютер используются стандартные протоколы. Но есть еще проблема питания мыши. Эту проблему решили, запитав мышь от неиспользуемых сигнальных цепей. А постольку допустимый ток для этих цепей небольшой, мышь должна быть экономичным устройством.
Сигнал Аббpевиатуpа Штыpь pазъема ------ ------------ --------------
Запpос на посылку данных RTS 4
Очистка для посылки CTS 5
Набоp данных готов DSR 6
Набоp данных завеpшен DTR 20
Пеpедача данных TxD 2
Пpием данных RxD 3
Земля GRD 7
Единственное, что еще нужно мыши, так это прерывание, для того чтобы сигнализировать о ее движениях. Информация о событиях мыши – перемещение, нажатие кнопок - кодируется и пересылается по интерфейсу. Мышью используются следующие контакты разъема:
- RD (2) – для передачи данных;
- SG (5) – земля;
- DTR, RTS (4, 7) – положительное питание;
- TD (3) – отрицательное питание.
Существует две разновидности мышей, подключаемых к COM-порту – MS Mouse и PC Mouse. Каждая из этих мышей должна использовать свой драйвер, поскольку они, хотя и работают на одной скорости – 1200 бит/сек, используют один стоповый бит и не используют контроль четности, но имеют различный формат передаваемых данных. MS Mouse передает с каждым пакетом по 7 бит информации, а PC Mouse – 8. Кроме того, состояние MS Mouse описывается тремя байтами, а PC Mouse – пятью.
Программирование COM-порта
Каждый COM-порт однозначно ассоциируется с двумя параметрами – базовым адресом порта и номером прерывания. В BIOS’е ты можешь выбрать, какие именно значения соответствуют каждому порту. По умолчанию там указаны следующие значения для портов: COM1 - 3F8-IRQ4, COM2 - 2F8-IRQ3. Управляется порт семью регистрами, с адресами ввода/вывода начиная с 3F8 по 3FE (для COM1) или с 2F8 по 2FE (для СОМ2) – это в том случае, если используется базовый адрес порта по умолчанию. Для программирования COM-порта нужно записывать или считывать значения в порты по этим адресам.
Описание протокола посылок мыши.
Для активизации мыши необходимо повесить обработчик на соответствующее аппаратное прерывание, размаскировать это прерывание и установить в порту биты питания мыши. Обработчик аппаратного прерывания обязан, помимо обработки приходящих от мыши данных, также восстанавливать в порту биты питания. Эти биты устанавливаются в порту базовый_адрес+4, который называется Modem Control Register. Обычно для включения питания нужно выдавать в этот порт число 8 или число 0Bh.
Скорость обмена данными с мышью.
На USB мышь опрашивается 125 раз в секунду, а на PS/2-порту — от 10 до 200 раз за тот же период времени. Без сомнения, высокоточные мыши с повышенной частотой опроса очень важны и для профессионального применения. Например, думается, чертежникам, дизайнерам, художникам и верстальщикам они будут весьма кстати— ведь точность позиционирования курсора при их повседневной работе очень важна.
Есть два распространенных протокола обмена.
- Microsoft Mouse. Протокол обмена следующий: 1200,N71. Обеспечивает информацию о 2 клавишах. По каждому событию выдается пачка из 3 байт:
- =T=======================
1¦ - 1 LB RB Y7 Y6 X7 X6
2¦ - 0 X5 X4 X3 X2 X1 X0
3¦ - 0 Y5 Y4 Y3 Y2 Y1 Y0
LB, RB - состояние клавиш, нажатая клавиша = 1. Остальные значащие биты- относительное пеpемещение в дополнительном коде со времени последней посылки. Определить наличие мыши можно следующим образом: в порт xFC записать число 8, подождать, а потом опять 0Bh. На запись числа 0Bh мышь реагирует посылкой одного или нескольких байтов, среди которых обязательно должен быть байт 4Dh (буква 'M' в таблице ASCII).
- PC Mouse System Протокол обмена следующий: 1200,N81 Обеспечивает информацию о 3 клавишах. По каждому событию выдается пачка из 5 байт:
- =T=======================
1¦ 1 0 0 0 0 LB MB RB
2¦X7 X6 X5 X4 X3 X2 X1 X0
3¦Y7 Y6 Y5 Y4 Y3 Y2 Y1 Y0
4¦X7 X6 X5 X4 X3 X2 X1 X0
5¦Y7 Y6 Y5 Y4 Y3 Y2 Y1 Y0
LB, MB, RB - состояние клавиш, нажатая клавиша = 0. Остальные значащие биты- относительное пеpемещение со времени последней посылки в дополнительном коде в друх частях, которые надо суммировать. Видимо, это связано с тем, чтобы не использовать X7 и Y7, чтобы не пересекаться с первым ключевым байтом. Способ определения наличия мыши в этом режиме мне неизвестен.
Современные мыши могут переключаться между этими двумя протоколами. Это может делаться тремя способами:
1. По нажатой средней кнопке в момент инициализации мыши.
2. Переключателем MS-PC.
3. Комбинацией напряжений на питающих пинах COM-порта.
Для работы по управлению манипулятором и организации ввода информации прикладная программа выполняет различные функции прерывания 33h.
Если функция загружает номер 0 функции инициализации драйвера мыши, int 33h вызывает обработчик интерфейса мыши (драйвер), который, как правило, позиционируется на программном прерывании 33h. При этом драйвер не только откликается и возвращает результат в регистре AX (AX = 0 — драйвера нет, или AX = $0FFFF — драйвер есть), но в регистре BX он может вернуть значение $0FFFF — стандартная мышь Microsoft с двумя клавишами, любое другое значение — мышь нестандартная.
Кроме того, драйвер осуществляет сброс аппаратного и программного обеспечения мыши. Т.е. все установки чувствительности и диапазона координат устанавливаются по умолчанию, курсор в центре экрана и невидим, видеостраница 0, работа пользовательского обработчика сообщений мыши заблокирована, чувствительность по горизонтали 8:8 микки/pixel, по вертикали — 16:8 микки/pixel, порог удвоения скорости равен 64 микки/сек.
Первый и второй номера функций прерывания 33h включают и отключают отображение курсора на экране соответственно.
Когда вызывается функция 3 драйвера мыши, возвращается информация о положении курсора в регистрах CX — X, DX — Y и состоянии клавиш в регистре BX. Биты 0, 1 и 2 отвечают за левую (Left), правую (Right) и среднюю (Middle) клавиши соответственно, нулевое значение бита означает, что клавиша отпущена, а 1 — клавиша нажата.
Если возникнет желание установить курсор где-то в другом месте экрана, то в этом сможет помочь процедура функция 4 драйвера, которая позиционирует курсор мыши с новыми координатами X и Y, даже если он невидим. В регистр CX должно быть загружено значением параметра X, а в регистр DX — значение параметра Y.
Обычно чувствительность мыши по умолчанию вполне приемлема, но все же может возникнуть необходимость регулировать чувствительность мыши к перемещению. Для этого пригодится функция 0f драйвера. Надо лишь задать в регистры CX и DX величину, на сколько микки нужно передвинуть корпус мышки, чтобы переместиться на 8 точек по экрану по горизонтали и вертикали соответственно.
Использованный материал.
- Касаткин «Системное программирование. Профессиональное программирование на Си»
- Герб Шилдт «C для профессиональных программистов».
- Alexey Kulentsov «МЫШЬ И КАК С НЕЮ БОРОТЬСЯ» ссылка скрыта
- Владислав ДЕМЬЯНИШИН «Мысли о паскале» ссылка скрыта
- Антон Палагин «Анатомия COM-порта» cha.org/