Главная » Ассемблер, Железо » Форматы передачи данных Serial Mouse

0

Внутренняя структура драйвера мыши определяется в первую очередь используемым мышью форматом передачи данных. Для устройств, подключаемых через последовательный порт, применяется ряд различных форматов: группа форматов, базирующихся на протоколе MS Mouse, и формат PC Mouse [35, 55, 58]. Группа форматов Microsoft Mouse в настоящее время стала основной для координатных устройств, подключаемых к последовательному порту, вытеснив из этой области другие виды протоколов. Все

форматы этой группы являются расширениями 7-битного формата данных фирмы Microsoft, приведенного в табл. 5.1. Обозначения в таблице расшифровываются следующим образом:

•      Х0-Х7 — перемещение по оси X (целое число со знаком);

•      Y0-Y7 — перемещение по оси Y (целое число со знаком);

•      L — состояние левой кнопки (0 — отпущена, 1 — нажата);

•      R — состояние правой кнопки (0 — отпущена, 1 — нажата).

Таблица 5.1. Стандартный формат Microsoft (MS Mouse)

Номер байта

 

 

 

Номер бита

 

 

в посылке

 

 

 

 

 

 

 

 

6

5

4

3

2

1

0

1

1

L

R

Y7

Y6

Х7

Х6

2

0

Х5

Х4

ХЗ

Х2

Х1

ХО

3

0

Y5

Y4

Y3

Y2

Y1

Y0

Данный формат был введен для двухкнопочной мыши. Средняя кнопка трехкнопочной мыши, поддерживающей работу с несколькими протоколами, при работе в режиме MS Mouse эквивалентна правой.

Старший бит посылки (бит 6) используется для самоконтроля и синхронизации: признаком начала передачи очередного пакета из трех байт служит единица в этом бите. Программа — обработчик прерывания мыши должна удостовериться, что следующие два байта данных имеют в шестом разряде нулевое значение. В противном случае произошел сбой в процессе передачи и следует проигнорировать принятый пакет.

Скорость приема-передачи данных принята равной 1200 бод, длина передаваемого слова — 7 бит, контроль по четности не используется, число стоповых битов равно 1 (прежде чем начинать работу с мышью, нужно загрузить эти значения в регистры последовательного порта, к которому она подключена). Передача данных производится только в том случае, если изменяется состояние кнопок мыши или координат X и Y. Ось Y в режиме MS Mouse направлена сверху вниз, как у дисплея.

Для обеспечения нормальной работы с трехкнопочными устройствами протокол Microsoft пришлось дополнить четвертым байтом, который служит одной-единственной цели — обеспечивает передачу состояния средней кнопки мыши (в пятом разряде, обозначенном символом М). Обязательно нужно учитывать, что передача пакета из четырех слов выполняется только в случае изменения состояния средней кнопки, а в остальных случаях передаются первые три слова. Данный протокол, получивший название Microsoft Plus, показан в табл. 5.2.

Таблица 5.2. Формат Microsoft Plus (М+) для трехкнопочной мыши

Номер байта

 

 

 

Номер

бита

 

 

в посылке

 

 

 

 

 

 

 

 

6

5

4

3

2

1

0

1

1

L

R

Y7

Y6

Х7

Х6

2

0

Х5

Х4

ХЗ

Х2

Х1

хо

3

0

Y5

Y4

Y3

Y2

Y1

Y0

4<

0

М

0

0

0

0

0

‘ Передача четвертого байта производится только в случае изменения состояния средней кнопки мыши.

Конкуренция между изготовителями компьютерного оборудования приводит к тому, что на рынке появляется все больше «навороченных» устройств, снабженных рядом дополнительных функций. Дополнительные возможности требуют, естественно, передачи дополг нительной информации от устройства к компьютеру. Например, формат данных трехкоординатной (3D) мыши, показанный в табл. 5.3, включает координату Z (Z0-Z3, целое число со знаком) и состояние специальной кнопки R0.

Таблица 5.3. Формат 3D Serial mouse

Номер байта

 

 

 

Номер бита

 

 

в посылке

 

 

 

 

 

 

 

 

6

5

4

3

2

1

0

1

1

L

R

Y7

Y6

Х7

Х6

2

0

Х5

Х4

ХЗ

Х2

Х1

хо

3

0

Y5

Y4

Y3

Y2

Y1

Y0

4

0

0

R0

Z3

Z2

Z1

Z0

Существует группа универсальных устройств, которые поддерживают два типа протоколов — PC Mouse и MS Mouse. Переключение между протоколами осуществляется аппаратно (переключателем на корпусе мыши) или программно (путем подачи специального сигнала со стороны драйвера мыши). Особенностью устройств данного типа является 8-битная длина слова данных во всех режимах работы (при этом в режиме MS Mouse шестой разряд в каждом слове данных просто дублируется в седьмой, как показано в табл. 5.4). Соответственно при использовании подобных устройств для последовательного порта необходимо установить следующие параметры работы: скорость приема-передачи данных 1200 бод, длина передаваемого слова — 8 бит, контроль по четности не используется, число стоповых бит равно 1. Однако даже если задана длина передаваемого слова 7 бит, в режиме MS Mouse седьмой разряд игнорируется, и нарушения процесса передачи не происходит. Таким образом, устройства данного типа могут успешно взаимодействовать с любым драйвером, поддерживающим стандартный протокол Microsoft.

Таблица 5.4. Нестандартный 8-битный типа MS Mouse для мыши с двумя альтернативными протоколами передачи данных

Номер байта

 

 

 

Номер бита

 

 

 

в посылке

 

 

 

 

 

 

 

 

 

7

6

5

4

3

2

1

0

1

1

1

L

R

Y7

Y6

Х7

Х6

2

0

0

Х5

Х4

ХЗ

Х2

Х1

хо

3

0

0

Y5

Y4

Y3

Y2

Y1

Y0

Предложенный фирмой IBM формат Mouse System (PC Mouse), который показан в табл. 5.5, в настоящее время почти не применяется, однако до сих пор поддерживается некоторыми универсальными устройствами. Обозначения в таблице расшифровываются следующим образом:

•      Х0-Х7 — перемещение по оси X;

•      Y0-Y7 — перемещение по оси Y;

•      L — состояние левой кнопки (0 — нажата, 1 — отпущена);

•      М — состояние средней кнопки (0 — нажата, 1 — отпущена);

•      R — состояние правой кнопки (0 — нажата, 1 — отпущена). Особенность данного формата состоит в том, что для определения перемещения по оси X нужно сложить значения X’ и X" (байты 2 и 4), а для определения перемещения по оси Y — значения Y’ и Y" (байты 3 и 5). Столь хитрый способ передачи координаты предназначен для обеспечения уникальности признака начала кадра

(единица в бите 7 и нули в битах 3-6 первого байта посылки). Ось Y мыши в данном формате направлена вверх, то есть противоположно оси Y дисплея.

Таблица 5.5. Формат Mouse System (PC Mouse)

Номер байта в посылке

 

 

Номер бита

 

 

 

 

7

6

5

4

3

2

1

0

1

1

0

0

0

0

L

М

R

2

Х7′

Х6′

Х5′

Х4′

ХЗ’

Х2′

Х1′

ХО’

3

Y7′

Y6′

Y5"

Y4′

Y3"

Y2′

Y1′

Y0′

4

Х7"

Х6"

Х5"

Х4"

ХЗ"

Х2"

Х1"

ХО"

5

Y7"

Y6"

Y5"

Y4"

Y3"

Y2"

Y1"

Y0"

Для работы с устройством типа PC Mouse необходимо установить следующие параметры последовательного порта: скорость приема- передачи 1200 бод, длина передаваемого слова 8 бит, контроль по четности не используется, число стоповых бит равно 1. Передача данных производится только в том случае, если изменяется состояние кнопок или координат X и Y.

Источник: Кулаков В. К90 Программирование на аппаратном уровне: специальный справочник (+дискета). 2-е издание. — СПб.: Питер, 2003. — 847 е.: ил.

По теме:

  • Комментарии