Протокол обміну «Пристрій – Хост» 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Протокол обміну «Пристрій – Хост»



Як було сказано раніше, сигнали ліній Data і Clock є виходами відкритого колектора і в нормальному стані є лог.1. Коли клавіатура має намір передати інформацію, то насамперед вона перевіряє стан лінії Clock, щоб переконатися в тому, що лінія має рівень лог.1. Якщо ж це не так, то шиною керує хост, і пере дача даних від клавіатури повинна бути блокована. Якщо лінія має рівень лог. 1, то пристрій починає передачу даних у хост.

Час від переднього фронту тактового сигналу до моменту зміни шини даних повинен бути не менше 5 мкс. Час від зміни даних до заднього фронту тактового сигналу має бути не менше 5 і не більше 25 мкс.

 

Протокол обміну «Хост - Пристрій»

У порівнянні з протоколом «пристрій-хост», цей протокол має деякі відмінності. Слід пам'ятати, що джерелом тактового сигналу завжди є пристрій (клавіатура або миша). Щоб передати дані, хост повинен попередити про це пристрій для того, щоб він почв формувати тактові сигнали. Тому хост повинен перевести й утримувати шину Clock в стані лог.0 Протягом не менше 60 мкс. Потім лінія Data переводиться ним в стан лог.0 (сигнал «старт»), і хост повинен звільнити лінію Clock, для того щоб пристрій міг формувати на ній сигнал для тактування переданих ним даних. Пристрій формує 10 імпульсів сигналу Clock для тактування 8 біт даних, сигналу паритету і стоп-біта. Зміну даних хост виробляє при низькому рівні сигналу Clock. Фіксація даних у хості проводиться по передньому фронту тактового сигналу. Після тактування сигналу стоп пристрій повинен сформувати сигнал квитирования. Для цього лінія даних переводить ся в стан лог.1, і формується додатковий тактовий Clock імпульс. Ну, а якщо трапилось так, що хост продовжує утримувати лінію Data в стані лог.0, то пристрій повинен продовжувати формувати тактові сигнали до тих пір, поки хост не відпустить лінію даних в стан лог.1. В цій ситуації пристрій формує і передає в хост команду «Помилка прийому».

В протоколі «хост-клавиатура» передбачено два тайм-аути для фіксації помилок передачі. Перший тайм-аут — часовий інтервал «а» від моменту, коли хост видав запит на передачу (сигнал Clock с нульовим рівнем) і часом початку передачі тактового сигналу пристроєм. Цей період часу повинен бути не більше 15 мс. Час передачі пакету «b» не повиннен бути більше 2 мс. Якщо хоча б одна з цих часівих характеристик буде порушена, хост зафіксує помилку передачі. Якщо команда, передана хостом, вимагає передачі підтвердження прийому, то команда-квитанція від пристрою повинна бути передана не пізніше 20 мс після прийому посилки від хоста. Якщо хост не отримує квитанцію, то також фіксується помилка передачі.

 

Рисунок 10. Схема ввімкнення контролера клавіатури фірми USAR

Команди інтерфейсу з клавіатурою

Контролер клавіатури посилає хосту скан-коди натиснутих і віджатих клавіш, а також певні коди команд, в зокрема код підтвердження прийому команди від хоста. Хост посилає клавіатурі команди, які змінюють стан клавіатури. За командам хоста вмикаються і вимикаються світлодіоди на клавіатурі, змінюється швидкість автоповтору натиснутої і утримуваної клавіші, проводиться заборона і дозвіл сканування і т.д.

Всі клавіші клавіатури, що використовують кодову таблицю № 2, крім Pause / Break працюють у режимі Typematic / Break / Маkе. Це означає те, що при натисканні будь-якої клавіші обов’язково передається код натиску, а при віджатою, відповідно, код не натиснутого стану. При натисненні і довгому утриманню здійснюється режим Typematic - автоповтор коду натисненої клавіші з періодом, заданим передачою спеціальної команди із хоста. По заммовчуванню пауза перед автоповтором встановлюється 500мс, а період автоповтору – 10симв./с. Не всі коди команд реально використовуються. Як правило, в процесі роботи ніколи не змінюється призначення режиму клавіш. Вибір таблиці скан-кодів використовується в клавіатурах деяких країн.

 

Таблиця 2. Стартовий протокол обміну Хост - Клавіатура при ввімкненні напруги

№ п/п Джерело команди Код команди Коментар
1) Клавіатура AA Самотестування завершилось успішно
2) Хост FF Команда – «СКИДАННЯ»
3) Клавіатура FA АСК – підтвердження прийому команди
4) Клавіатура AA Самотестування завершилось успішно
5) Хост F2 Запит ID пристрою (перший раз від BIOS)
6) Клавіатура AB Перший байт ID клавіатури
7) Клавіатура   Другий байт ID клавіатури
8) Хост ED Управління світло діодом (вмикаємо)
9) Клавіатура FA АСК – підтвердження прийому команди
10) Хост   Код команди управління станом світло діодів (ввімкнути всі три)
11) Клавіатура FA АСК – підтвердження прийому команди
12) Хост ED Управління світло діодом (Вимикаємо)
13) Клавіатура FA АСК – підтвердження прийому команди
14) Хост   Код команди управління станом світло діодів (горить NumLock, інші вимкнені)
15) Клавіатура FA АСК – підтвердження прийому команди
16) Хост F2 Запит ID пристрою (другий раз від Windovs)
17) Клавіатура AB Перший байт ID клавіатури
18) Клавіатура   Другий байт ID клавіатури
19) Хост F2 Запит ID пристрою (третій раз знову від Windovs)
20) Клавіатура AB Перший байт ID клавіатури
21) Клавіатура   Другий байт ID клавіатури
22) Хост F3 Команди установки періоду автопідбору клавіш
23) Клавіатура АСК – підтвердження прийому команди
24) Хост   Код автопідбору
25) Клавіатура FA АСК – підтвердження прийому команди

ЧАСОВІ ДІАГРАМИ

Пристрій до host

Host до пристроя

Рівні напруг

  Min Max
Низький (0) 0.0 В 0.7 В
Високий (1) 2.4 В 5.25 В

Команди Host до клавіатури

Байт Команда Додаткові дані
0xED Встановити індикатори статусу LED бітова маска
0xEE Ехо  
0xEF Невірна команда  
0xF0 Вибрати альтернативні скан коди Набір скан кодів
0xF1 Невірна команда  
0xF2 Прочитати ID  
0xF3 Встановити частоту повторення/затримку Кодована частота/затримка
0xF4 Розблокувати  
0xF5 Блокування по замовчуванню  
0xF6 Встановити параметри по замовчуванню  
0xF7 Встановити всі клавіші - Typematic  
0xF8 Встановити всі клавіші - Make/Break  
0xF8 Встановити всі клавіші - Make  
0xFA Встановити всі клавіші - Typematic/Make/Break  
0xFB Встановити всі типи клавіші - Typematic Scan code
0xFC Встановити всі типи клавіші - Make/Break Scan code
0xFD Встановити всі типи клавіші - Make Scan code
0xFE Переслати  
0xFF Скинути  

 

Біт Швидкість введення символів за секунду ±20% Біт Швидкість введення символів за секунду ±20%
  30.0   7.5
  26.7   6.7
  24.0   6.0
  21.8   5.5
  20.0   5.0
  18.5   4.6
  17.1   4.3
  16.0   4.0
  15.0   3.7
  13.3   3.3
  12.0   3.0
  10.9   2.7
  10.0   2.5
  9.2   2.3
  8.0   2.1
  8.0   2.0

Частота: 10.9 символів за секунду (±20%)

Затримка: 500 мс (±20%)

Команди клавіатури до Host

Байт Команда
0x00 Помилка виявлення клавіші/перегрузка (Набори кодів 2 та3)
0x83 0xAB ID клавіатури
0xAA Код завершення BAT
0xFC Код помилки BAT
0xEE Ехо
0xF0 Пауза (підняття клавіші)
0xFA Повідомлення (ACK)
0xFE Пересилання
0xFF Помилка виявлення клавіші/перегрузка (Набір кодів 1)

 



Поделиться:


Последнее изменение этой страницы: 2016-09-05; просмотров: 200; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.21.97.61 (0.006 с.)