зачем в клавиатуре установлен микроконтроллер

Зачем в клавиатуре установлен микроконтроллер

Клавиатура компьютера — устройство для ввода информации в компьютер и подачи управляющих сигналов. Содержит стандартный набор клавиш печатной машинки и некоторые дополнительные клавиши — управляющие и функциональные клавиши, клавиши управления курсором и малую цифровую клавиатуру.

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

Наиболее распространена сегодня клавиатура c раскладкой клавиш QWERTY (читается » кверти «), названная так по клавишам, расположенным в верхнем левом ряду алфавитно-цифровой части клавиатуры:

зачем в клавиатуре установлен микроконтроллер. Смотреть фото зачем в клавиатуре установлен микроконтроллер. Смотреть картинку зачем в клавиатуре установлен микроконтроллер. Картинка про зачем в клавиатуре установлен микроконтроллер. Фото зачем в клавиатуре установлен микроконтроллер
Клавиатура компьютера

Такая клавиатура имеет 12 функциональных клавиш, расположенных вдоль верхнего края. Нажатие функциональной клавиши приводит к посылке в компьютер не одного символа, а целой совокупности символов. Функциональные клавиши могут программироваться пользователем. Например, во многих программах для получения помощи (подсказки) задействована клавиша F1, а для выхода из программы — клавиша F10.

Управляющие клавиши имеют следующее назначение:

· Esc ( Escape — выход) клавиша для отмены каких-либо действий, выхода из программы, из меню и т.п.;

· Ctrl и Alt — эти клавиши самостоятельного значения не имеют, но при нажатии совместно с другими управляющими клавишами изменяют их действие;

· Shift (регистр) — обеспечивает смену регистра клавиш (верхнего на нижний и наоборот);

· Insert (вставлять) — переключает режимы вставки (новые c имволы вводятся посреди уже набранных, раздвигая их) и замены (старые символы замещаются новыми);

· Delete (удалять) — удаляет символ с позиции курсора;

· Back Space или зачем в клавиатуре установлен микроконтроллер. Смотреть фото зачем в клавиатуре установлен микроконтроллер. Смотреть картинку зачем в клавиатуре установлен микроконтроллер. Картинка про зачем в клавиатуре установлен микроконтроллер. Фото зачем в клавиатуре установлен микроконтроллер— удаляет символ перед курсором;

· Home и End — обеспечивают перемещение курсора в первую и последнюю позицию строки, соответственно;

· Page Up и Page Down — обеспечивают перемещение по тексту на одну страницу (один экран) назад и вперед, соответственно;

· Tabклавиша табуляции, обеспечивает перемещение курсора вправо сразу на несколько позиций до очередной позиции табуляции;

· Caps Lock — фиксирует верхний регистр, обеспечивает ввод прописных букв вместо строчных;

· Print Screen — обеспечивает печать информации, видимой в текущий момент на экране.

· Длинная нижняя клавиша без названия — предназначена для ввода пробелов.

· Клавиши зачем в клавиатуре установлен микроконтроллер. Смотреть фото зачем в клавиатуре установлен микроконтроллер. Смотреть картинку зачем в клавиатуре установлен микроконтроллер. Картинка про зачем в клавиатуре установлен микроконтроллер. Фото зачем в клавиатуре установлен микроконтроллер, зачем в клавиатуре установлен микроконтроллер. Смотреть фото зачем в клавиатуре установлен микроконтроллер. Смотреть картинку зачем в клавиатуре установлен микроконтроллер. Картинка про зачем в клавиатуре установлен микроконтроллер. Фото зачем в клавиатуре установлен микроконтроллер, зачем в клавиатуре установлен микроконтроллер. Смотреть фото зачем в клавиатуре установлен микроконтроллер. Смотреть картинку зачем в клавиатуре установлен микроконтроллер. Картинка про зачем в клавиатуре установлен микроконтроллер. Фото зачем в клавиатуре установлен микроконтроллери зачем в клавиатуре установлен микроконтроллер. Смотреть фото зачем в клавиатуре установлен микроконтроллер. Смотреть картинку зачем в клавиатуре установлен микроконтроллер. Картинка про зачем в клавиатуре установлен микроконтроллер. Фото зачем в клавиатуре установлен микроконтроллерслужат для перемещения курсора вверх, вниз, влево и вправо на одну позицию или строку.

Клавиатура содержит встроенный микроконтроллер (местное устройство управления), который выполняет следующие функции:

· последовательно опрашивает клавиши, считывая введенный сигнал и вырабатывая двоичный скан-код клавиши;

· управляет световыми индикаторами клавиатуры;

· проводит внутреннюю диагностику неисправностей;

· осуществляет взаимодействие с центральным процессором через порт ввода-вывода клавиатуры.

Клавиатура имеет встроенный буфер — промежуточную память малого размера, куда помещаются введённые символы. В случае переполнения буфера нажатие клавиши будет сопровождаться звуковым сигналом — это означает, что символ не введён (отвергнут). Работу клавиатуры поддерживают специальные программы, «зашитые» в BIOS, а также драйвер клавиатуры, который обеспечивает возможность ввода русских букв, управление скоростью работы клавиатуры и др.

Источник

Микроконтроллер: определение, задачи, разновидности, применение

зачем в клавиатуре установлен микроконтроллер. Смотреть фото зачем в клавиатуре установлен микроконтроллер. Смотреть картинку зачем в клавиатуре установлен микроконтроллер. Картинка про зачем в клавиатуре установлен микроконтроллер. Фото зачем в клавиатуре установлен микроконтроллер

Область применения микроконтроллеров безгранична. Их используют в любых электронных устройствах для осуществления контроля. Кроме того, они находятся во всех бытовых приборах – микроволновках, электрочайниках, утюгах, стиральных машинах — микроконтроллер можно запрограммировать под любую функцию.

История появления

Работы над изобретением микропроцессора велись с начала 1970-х годов. Первой компанией, разработавшей его, была компания Intel. Уже в 1971 году ее был выпущен первый микроконтроллер 4004, который состоял из 2300 полупроводниковых транзисторов, а по размеру был не больше ладони. Это стало возможным, после того как для микросхемы был специально разработан кристалл процессора.

зачем в клавиатуре установлен микроконтроллер. Смотреть фото зачем в клавиатуре установлен микроконтроллер. Смотреть картинку зачем в клавиатуре установлен микроконтроллер. Картинка про зачем в клавиатуре установлен микроконтроллер. Фото зачем в клавиатуре установлен микроконтроллер

В ближайшие полгода еще несколько компаний заявили о создании аналогичных изделий.

К концу 1973 года Intel выпускает 8-зарядный микропроцессор. Он был настолько удачно разработан, что и сегодня считается классикой.

Через несколько месяцев фирма Motorola выпускает свой 8-битовый микропроцессор 6800. Он стал сильным конкурентом интеловской микросхеме, т. к. имел более значительную систему прерываний и одно напряжение электропитания. В 8080 их было три.

Внутренняя архитектура 6800 тоже отличалась. В ней не было регистров общего назначения, в которых могли сохраняться как адресная информация, так и числовые показатели. Вместо них, в процессоре появился еще один полноценный аккумулятор для обработки данных и 16-разрядные регистры для хранения адресов. Работа с памятью у 6800 выполнялась быстрее и была проще, но 8080 тратил меньше времени на обмен внутренней информацией между регистрами.

Оба эти изделия имели как положительные стороны, так и недоработки. Они стали родоначальниками двух больших семейств микропроцессоров – Интел и Моторола, которые конкурируют между собой до сих пор.

В 1978 году Интел выпустила 16-разрядный микропроцессор, который IBM использовала для разработки персональных компьютеров. Моторола не отстала от своего конкурента и тоже выпустила 16-разрядный микропроцессор, который использовали Atari и Apple.

В России пользуются популярностью микроконтроллеры Renesas Electronics, Freescale, Samsung.

Что такое микроконтроллер

Зачастую микроконтроллер называют микропроцессором. Но это не совсем так. Последний осуществляет только определенные математические и логические операции. А в состав микроконтроллера входит и микропроцессор с другими элементами, являясь лишь частью МК.

Принцип работы микроконтроллера

Несмотря на сложное устройство принцип работы микроконтроллера очень прост. Он основан на аналоговом принципе действия. Система понимает лишь две команды («есть сигнал», «нет сигнала»). Из этих сигналов в его память вписывается код определенной команды. Когда МК считывает команду, он ее выполняет.

В каждом из МК прописаны свои базовые наборы команд. И только их он способен принимать и выполнять. Сочетая отдельные команды между собой, можно написать уникальную программу, по которой будет работать любое электронное устройство именно так, как требуется.

зачем в клавиатуре установлен микроконтроллер. Смотреть фото зачем в клавиатуре установлен микроконтроллер. Смотреть картинку зачем в клавиатуре установлен микроконтроллер. Картинка про зачем в клавиатуре установлен микроконтроллер. Фото зачем в клавиатуре установлен микроконтроллер

В зависимости от содержащихся в МК набора программ, они делятся на:

CISC – комплекс большого числа базовых команд;

RISC – только необходимые команды.

Большинство контроллеров содержит RISC набор. Объясняется это тем, что такой МК проще изготовить, он дешевле и больше пользуется спросом у разработчиков электронной техники.

Назначение и область применения микроконтроллера

Это не полный перечень областей применения МК.

Основное назначение МК – контролировать все процессы, которые происходят на его платформе. От включения или выключения света по хлопку до поднятия штор при изменении освещенности на улице. По сути, МК осуществляет контроль за состоянием неких переменных и изменение системы в динамических условиях.

Питание микроконтроллера

Для работы микроконтроллеру, как и любому электронному устройству, необходима энергия. Напряжение МК Atmel AVR находится в диапазоне 1.8–5.5 Вольт и зависит от модели и серии. Большинство приборов работает от 5 Вольт. Но встречаются и низкочастотные модели (Attiny 2313), нижняя граница у которых от 1,8 В.

Кроме того, на работу МК влияет и частота поступающего тока. Низкое напряжение требует и низких пределов частот. Чем выше частота, тем быстрее работают определенные модели.

Так, чтобы обеспечить работу контроллеров серии AVR, на все плюсовые входы нужно подавать 5 В, а нулевой заземляют.

Если у модели несколько вводов и выводов питания, то подключать их нужно все.

На аналогово-цифровой преобразователь питание подают через дополнительные фильтры. Это поможет избавиться от помех, которые могут изменять показания напряжения. При этом на плюсовой ввод подается напряжение через фильтрующий дроссель. А нулевые выводы разделяют на цифровые и аналоговые. Причем соединяться они могут только в одной точке.

Кроме того, необходимо установить и конденсаторы, лучше керамические, из расчета 1 на 100 нанофарад.

Подключение

Через микроконтроллер можно подключить к локальной сети любой девайс. В качестве таковой можно рассмотреть Ethernet. Прежде всего, определимся с понятиями.

Ethernet – это набор стандартов IEEE 802.3, которые описывают разнообразные технологии локальных сетей: общий канальный уровень и набор технологий физического уровня, включающий в себя для передачи информации оптоволокно, витую пару, коаксиал с различными скоростями.

зачем в клавиатуре установлен микроконтроллер. Смотреть фото зачем в клавиатуре установлен микроконтроллер. Смотреть картинку зачем в клавиатуре установлен микроконтроллер. Картинка про зачем в клавиатуре установлен микроконтроллер. Фото зачем в клавиатуре установлен микроконтроллер

Каждый из последующих уровней обслуживается предыдущим или нижележащим. Так образуются вертикальные межуровневые связи. Особенности обслуживания каждого уровня скрыты от остальных.

При взаимодействии двух сетей каждый из уровней одной сети контактирует с аналогичным уровнем другой. Так образуются горизонтальные связи.

Управление микроконтроллером

Развитие современных средств связи позволяет управлять контроллерами как через ПДУ, находясь в непосредственной близости к прибору, так и по интернету из любой точки мира через локальную сеть.

Обеспечивает поддержку cети Wi-Fi МК ESP 8266. В продаже он может быть в виде микросхемы или распаян, как arduino. У него 32-битное ядро, программировать его нужно через последовательный порт UART. Бывают более продвинутые платы с возможностью прошивки по USB – это NodeMCU. Они могут хранить информацию, записанную, например, с датчиков. Такие платы работают с различными интерфейсами, в т. ч. SPI, I2S.

Плата может быть использована как самостоятельное устройство и как модуль для беспроводной связи с Ардуино.

Тактирование микроконтроллеров

Тактовая частота МК – это количество тактов за секунду, выполняемых контроллером. Чем она выше, тем большее количество операций он может выполнить.

зачем в клавиатуре установлен микроконтроллер. Смотреть фото зачем в клавиатуре установлен микроконтроллер. Смотреть картинку зачем в клавиатуре установлен микроконтроллер. Картинка про зачем в клавиатуре установлен микроконтроллер. Фото зачем в клавиатуре установлен микроконтроллер

Для простейших микроконтроллеров подойдут внутренний или внешний генератор и RC-цепочки. Для проектирования более точных МК потребуются стабильные источники тактирования.

Семейства микроконтроллеров

Все МК объединяются в семейства. Основная характеристика, по которой происходит это деление, — структура ядра.

Под ядром МК подразумевают набор определенных команд, цикличность работы процессора, организацию как памяти программ, так и баз данных, систему прерываний и базовый набор периферийных устройств (ПУ).

Различаются представители одного семейства между собой объемом памяти программ и баз данных, а также разнообразием ПУ.

Объединяют все МК в семейства одинаковость двоичного кода программирования.

Это не все семейства микроконтроллеров. Здесь мы привели только основные.

Типы корпусов микроконтроллеров

зачем в клавиатуре установлен микроконтроллер. Смотреть фото зачем в клавиатуре установлен микроконтроллер. Смотреть картинку зачем в клавиатуре установлен микроконтроллер. Картинка про зачем в клавиатуре установлен микроконтроллер. Фото зачем в клавиатуре установлен микроконтроллер

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

В чем отличие микроконтроллера от микропроцессора?

Весь компьютерный функционал микропроцессора (Micro Processor Unit — MPU) содержится на одном полупроводниковом кристалле. По характеристикам он соответствует центральному процессору компьютера ЦП (Central Processing Unit — CPU). Область его применения – хранение данных, выполнение арифметико-логических операций, управление системами.

МП получает данные с входных периферийных устройств, обрабатывает их и передает выходным периферийным устройствам.

Микроконтроллер совмещает в себе микропроцессор и необходимые опорные устройства, объединенные в одном чипе. Если нужно создать устройство, коммуницирующее с внешней памятью или блоком ЦАП/АЦП, то понадобится только подключить источник питания с постоянным напряжением, цепь сброса и источник тактовой частоты.

Устройства на микроконтроллерах

Каждый из видов контроллеров имеет свои периферические устройства, которые работают автономно, т. е. независимо от центрального ядра. После того как периферийное устройство выполнит свою задачу, оно может сообщить об этом ЦП, а может и не сообщать. Это зависит от того, как оно запрограммировано.

Не все из этих периферийных устройств обязательно есть в каждом МК. Существуют и другие, менее распространенные устройства.

Что нужно для программирования микроконтроллера

Чтобы микроконтроллер мог выполнять необходимые функции и решать определенные задачи, его необходимо запрограммировать.

зачем в клавиатуре установлен микроконтроллер. Смотреть фото зачем в клавиатуре установлен микроконтроллер. Смотреть картинку зачем в клавиатуре установлен микроконтроллер. Картинка про зачем в клавиатуре установлен микроконтроллер. Фото зачем в клавиатуре установлен микроконтроллер

Радиолюбители иногда обходятся без прописывания алгоритма работы программы на бумаги. Они держат его в голове.

Языки программирования

Среда разработки

На сегодня нельзя найти универсальной среды для программирования МК. Это связано с его внутренней структурой и наличием технического обеспечения записи кода в память контроллера.

Среды бывают платные и бесплатные. Выбирая конкретную среду, нужно исходить из ее функционала, языка программирования, поддерживаемых интерфейсов и портов.

Основы программирования

Прежде чем приступать к программированию МК, нужно выбрать язык. Начинать лучше с Ассемблера. Хотя для понимания он достаточно сложен, но если приложить силы и все-таки понять его логику, то тогда станет ясно, что именно происходит в контроллере.

зачем в клавиатуре установлен микроконтроллер. Смотреть фото зачем в клавиатуре установлен микроконтроллер. Смотреть картинку зачем в клавиатуре установлен микроконтроллер. Картинка про зачем в клавиатуре установлен микроконтроллер. Фото зачем в клавиатуре установлен микроконтроллер

Если Ассемблер окажется сложен, то можно начинать с Си. Одной из сильных его сторон является то, что он хорошо переносит коды с одного вида МК на другой. Но для этого надо правильно все прописать, разделив рабочие алгоритмы и их реализации в машине по разным частям проекта. Это позволит переносить алгоритм в другой контроллер, переделав всего лишь интерфейсный слой, в котором прописано обращение к «железу», оставив рабочий код без изменений.

После того как прописали программу на языке Си, можно понаблюдать, как и что происходит в МК. Это поможет выстроить аналогию с программированием на Ассемблере.

Советы начинающим программистам микроконтроллеров

Никогда не поздно стать радиолюбителем, будь вам 30 лет или 50. И необязательно иметь профильное высшее образование. Сейчас на просторах интернета много доступной информации, изучая которую можно разобраться в устройстве микроконтроллеров и научиться их программировать.

Источник

Микроконтроллеры. Связь с внешним миром. Часть 1. Клавиатура

Очень давно обещал продолжить цикл статей по работе с микроконтроллерами, но не было физической возможности это сделать, за что и прошу прощения у тех, кто этого так долго ждал.

Эта статья будет вводной в тему связи МК с периферийными устройствами в их стандартной, и не очень, конфигурации.

зачем в клавиатуре установлен микроконтроллер. Смотреть фото зачем в клавиатуре установлен микроконтроллер. Смотреть картинку зачем в клавиатуре установлен микроконтроллер. Картинка про зачем в клавиатуре установлен микроконтроллер. Фото зачем в клавиатуре установлен микроконтроллер

Самой первой и неотъемлемой частью любого устройства являются органы управления.

Самый простейший способ взаимодействия МК с окружающим миром – кнопка. Но в зависимости от конструктивных особенностей устройства, она может быть подключена весьма разнообразными способами.

На этой схеме приведены простейшие варианты подключения кнопок.
Верхняя – при нажатии на кнопку на вход МК подается «низкий» логический уровень, т.е. логический «0». А резистор PULLUP предназначен для обеспечения «высокого» уровня при отпущенной кнопке. В этом варианте включения его можно не ставить, т.к. при программировании МК можно включить внутреннюю подтяжку любого вывода порта МК к логической «1». То есть, эти резисторы уже встроены в каждый вход МК и их можно по желанию включить и отключить.
Второй вариант – при нажатии на кнопку на вход МК подается логический «0». В этом варианте резистор PULLDOWN уже обязателен, т.к. в МК нет возможности «подтянуть» вывод к низкому логическому уровню. Так же, при этом желательно отключить внутреннюю «подтяжку», чтобы она не влияла на состояние этого вывода.

Из этих двух вариантов я бы советовал использовать первый, т.к. для него не нужно дополнительных элементов в обвязке МК, а так же необходимость согласования уровней, если кнопка расположена в другом модуле, напряжение питания которого отличается от напряжения питания МК, но об этом позже :laughing:

зачем в клавиатуре установлен микроконтроллер. Смотреть фото зачем в клавиатуре установлен микроконтроллер. Смотреть картинку зачем в клавиатуре установлен микроконтроллер. Картинка про зачем в клавиатуре установлен микроконтроллер. Фото зачем в клавиатуре установлен микроконтроллер

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

А как же заставить МК определить, в какую сторону мы крутим ручку? Да очень просто: В момент замыкания среднего кольца с общим, проверяем, соединено ли с ним внешнее. Если да – значит крутим влево, а если нет – вправо.

Из схемы вы видите, что кнопки подключены к входу аналого-цифрового преобразователя МК (ADC или АЦП) и создают делитель напряжения. При нажатии на одну из кнопок, на входе АЦП будет появляться определенное напряжение (от 0 но 2,5 Вольт ). А зная это напряжение, несложно определить, какая именно кнопка была нажата. Увы, но при этом невозможно реализовать обработку одновременно нажатых клавиш. Тут каждая клавиша имеет свой «приоритет», и чем она выше (по схеме), тем выше и приоритет.

зачем в клавиатуре установлен микроконтроллер. Смотреть фото зачем в клавиатуре установлен микроконтроллер. Смотреть картинку зачем в клавиатуре установлен микроконтроллер. Картинка про зачем в клавиатуре установлен микроконтроллер. Фото зачем в клавиатуре установлен микроконтроллер

Еще один очень интересный способ работы с кнопками – матричная клавиатура. В ней кнопки располагаются на пересечении «строк» и «столбцов». То есть, при нажатии на кнопку «=», строка «D» соединяется со столбцом «3». Таким образом, при использовании 8 выводов МК (4 строки и 4 столбца), можно реализовать клавиатуру с 16-ю кнопками, причем можно без проблем определять одновременное нажатие любого количества кнопок.

Определение нажатой кнопки называют «опросом» клавиатуру. Происходит он следующим образом: строки (а можно и столбцы, это кому как удобно) подключаем к выходам МК, по умолчанию на которых логическая «1», а столбцы – к входам с подтяжкой (чтобы не колхозить лишних резисторов). Теперь, при опросе, поочередно устанавливаем каждую строку в логический «0». Если на этой строке нет ни одной нажатой кнопки, то во всех столбцах (на всех входах МК) будет логическая «1» (ее обеспечивают подтягивающие резисторы внутри МК), а если какие-либо кнопки нажаты, то на соответствующих входах МК будет логический «0», что и позволяет определить МК все нажатые кнопки.

Так же есть множество других вариантов, например, с использованием параллельных и последовательных регистров, драйверов клавиатуры и их комбинаций. Но на них, как и на программной реализации выше описанных методов работы с клавиатурой, мы остановимся в следующей статье.

Камрад, рассмотри датагорские рекомендации

🌼 Полезные и проверенные железяки, можно брать

Опробовано в лаборатории редакции или читателями.

Источник

О работе ПК на примере Windows 10 и клавиатуры ч.2

В этой части мы рассмотрим какой путь проходит информация о нажатой клавише от клавиатуры до CPU, будет очень много картинок и это не последняя часть. Я буду рассказывать об этом с точки зрения программиста который пишет в режиме пользователя — пользовательские програмы, web, мобильные приложения — поэтому здесь могут быть неточности. Люди занимающиеся электроникой навряд ли найдут для себя что-то полезное. Первая часть находится здесь.

зачем в клавиатуре установлен микроконтроллер. Смотреть фото зачем в клавиатуре установлен микроконтроллер. Смотреть картинку зачем в клавиатуре установлен микроконтроллер. Картинка про зачем в клавиатуре установлен микроконтроллер. Фото зачем в клавиатуре установлен микроконтроллер

Под катом трафик.

Клавиша клавиатуры представляет из себя кнопку, которая замыкает контакты и через них проходит электрический ток. Механизм замыкания/размыкания сделан таким образом чтобы кнопку не приходилось вдавливать до конца, потому как иначе пальцы будут быстро уставать и клавиатура будет неэргономичной. В разрезе клавиша выглядит так. В правой части находится контакт на который подаётся напряжение.

зачем в клавиатуре установлен микроконтроллер. Смотреть фото зачем в клавиатуре установлен микроконтроллер. Смотреть картинку зачем в клавиатуре установлен микроконтроллер. Картинка про зачем в клавиатуре установлен микроконтроллер. Фото зачем в клавиатуре установлен микроконтроллер

зачем в клавиатуре установлен микроконтроллер. Смотреть фото зачем в клавиатуре установлен микроконтроллер. Смотреть картинку зачем в клавиатуре установлен микроконтроллер. Картинка про зачем в клавиатуре установлен микроконтроллер. Фото зачем в клавиатуре установлен микроконтроллерзачем в клавиатуре установлен микроконтроллер. Смотреть фото зачем в клавиатуре установлен микроконтроллер. Смотреть картинку зачем в клавиатуре установлен микроконтроллер. Картинка про зачем в клавиатуре установлен микроконтроллер. Фото зачем в клавиатуре установлен микроконтроллер
зачем в клавиатуре установлен микроконтроллер. Смотреть фото зачем в клавиатуре установлен микроконтроллер. Смотреть картинку зачем в клавиатуре установлен микроконтроллер. Картинка про зачем в клавиатуре установлен микроконтроллер. Фото зачем в клавиатуре установлен микроконтроллерзачем в клавиатуре установлен микроконтроллер. Смотреть фото зачем в клавиатуре установлен микроконтроллер. Смотреть картинку зачем в клавиатуре установлен микроконтроллер. Картинка про зачем в клавиатуре установлен микроконтроллер. Фото зачем в клавиатуре установлен микроконтроллер

Через программу на каждую ножку можно установить либо замерить напряжение. Алгоритм нахождения нажатой клавиши заключается в том чтобы подавать напряжение на одну ножку и замерять его на другой и если клавиша была нажата, то на второй ножке будет примерно столько же вольт сколько на входной. Так в бесконечном цикле проверяются все клавиши. Как правило клавиатура имеет 80-110 кнопок, а у контроллера контактов (пинов) гораздо меньше. Поэтому используют такой подход как “клавиатурная матрица” — все клавиши распределяют по столбцам и строкам и алгоритм сводится к нахождению столбца который пересекается со строкой на которую программа подала напряжение. Здесь отмечено цветом соответствие столбцов/строк контактам.

зачем в клавиатуре установлен микроконтроллер. Смотреть фото зачем в клавиатуре установлен микроконтроллер. Смотреть картинку зачем в клавиатуре установлен микроконтроллер. Картинка про зачем в клавиатуре установлен микроконтроллер. Фото зачем в клавиатуре установлен микроконтроллер

В реальности матрица может выглядеть так. Слева промышленная и справа самодельная.

зачем в клавиатуре установлен микроконтроллер. Смотреть фото зачем в клавиатуре установлен микроконтроллер. Смотреть картинку зачем в клавиатуре установлен микроконтроллер. Картинка про зачем в клавиатуре установлен микроконтроллер. Фото зачем в клавиатуре установлен микроконтроллер

На псевдокоде часть программы прошивки определяющая нажатые клавиши может выглядеть следующим образом.

Каждой клавише соответствует скан код, он стандартизирован и представляет из себя 8ми битное число, т.е. один байт. Поэтому когда нажата клавиша Y контроллер клавиатуры должен будет отправить число 21 (0x15), а когда отпущена — 149 (0x95). Каким образом происходит отправка? Наверняка вы работали с JSON, веб-сервисами или отправляли данные между процессами и знаете что для отправки данные надо сериализовать, т.е. превратить в массив байт или отформатированный текст, которые получатель может десериализовать, т.е. воссоздать объект в своём адресном пространстве. А во что можно сериализовать данные на таком низком уровне? Нам нужно передать всего лишь 1 байт (8 бит). Забегая вперёд скажу, что данные мы будем передавать побитно.

В математике есть формула которая может преобразовать любое привычное нам десятичное число в последовательность нулей и единиц и обратно. Этой формуле нашлось применение в вычислительной технике. В первой части я вскользь упомянул, что аналоговая техника эксплуатирует законы физики, в то время как цифровая работает на уровне нулей и единиц. Это означает, что аналоговый телефон кодирует весь спектр человеческого голоса в последовательность электромагнитных волн, а цифровой телефон использует микросхему которая преобразовывает человеческий голос в цифровые данные, к примеру в файлы в формате WAV, а потом передаёт их последовательностью нулей и единиц в виде электромагнитных волн. Только в данном случае вместо всего спектра голоса надо представлять только два значения — 0 и 1. Представлять их можно волнами разной длины, разным напряжением, световыми импульсами через оптоволокно, черными и белыми полосками на бумаге, дырками на перфокарте.

Скан код нажатой клавиши Y в двоичном виде выглядит как 0001 0101. Передавать мы их будем по ножке микроконтроллера которая отвечает за данные (DATA). Логическая единица — это напряжение 3.3В и выше, логический ноль — напряжение около 0В. Здесь возникает загвоздка — как передать три нуля подряд? Для этого нам нужна вторая ножка которую назовём CLOCK, когда на ней единичка это значит что сеанс передачи одного бита начался, а ноль — закончился. Такая перемена значений (напряжений) будет происходить с определённым интервалом времени, скажем 50 наносекунд, потому что на другом конце находится второй микроконтроллер который работает со своей скоростью и в бесконечном цикле слушает ножки к которым подключены CLOCK и DATA. В данном примере я буду исходить из того что клавиатура подключается через разъём PS2, который показан ниже. Через USB порт алгоритм передачи будет другим. Как видите у порта PS2 есть пины которые называются Data, Clock. Помимо них есть ещё контакт по которому контроллер порта PS2 раздаёт клавиатуре напряжение 5В необходимое для работы и контакт заземления, который просто выводится на корпус клавиатуры. Остальные контакты не используются.

зачем в клавиатуре установлен микроконтроллер. Смотреть фото зачем в клавиатуре установлен микроконтроллер. Смотреть картинку зачем в клавиатуре установлен микроконтроллер. Картинка про зачем в клавиатуре установлен микроконтроллер. Фото зачем в клавиатуре установлен микроконтроллерзачем в клавиатуре установлен микроконтроллер. Смотреть фото зачем в клавиатуре установлен микроконтроллер. Смотреть картинку зачем в клавиатуре установлен микроконтроллер. Картинка про зачем в клавиатуре установлен микроконтроллер. Фото зачем в клавиатуре установлен микроконтроллер

Порт PS/2 называется последовательным портом (serial bus), потому как передаёт биты один за другим (последовательность битов). Паралельный порт передаёт данные сразу по нескольким контактам и может за один сеанс передачи данных передать к примеру сразу один байт (8 бит).

В чём разница между портом, шиной (bus) и протоколом? Шина как и порт это набор контактов (проводков) и соглашение как их использовать, только порт имеет соединение для подключения внешних устройств, а шина используется для общения компонентов на материнской плате. Порт это по сути шина с разъёмом по середине. Протокол — это порядок взаимодействия через контакты. В примере с PS/2 это был порядок передачи данных через контакты Clock и Data.

Раньше микроконтроллер Intel 8042 был очень распространённым и использовался как в клавиатуре, так и в качестве контроллера порта PS2, т.е. данными обменивались два одинаковых чипа. Драйвер порта PS2 в Windows называется 8042prt.sys.

На самом деле мы передаём не 8 бит, а 11, потому что данные передаются в виде пакета данных или же сообщения. Дополнительные 3 бита обозначают начало и конец данных — один нолик в начале и 0 1 в конце, такой протокол передачи данных от устройства хосту в PS2. Так может выглядеть функция SendKey в псевдокоде, если вам удобнее понимать код. Она отправляет данные о нажатой клавише через шину PS2.

Не всегда для передачи данных нужно вручную устанавливать напряжение на каждой ножке индивидуально. В некоторых случаях значение сохранённое в регистре автоматически отображается на контакты.

На графике такая передача данных будет визуализирована следующим образом. По оси X время, по Y — напряжение.

зачем в клавиатуре установлен микроконтроллер. Смотреть фото зачем в клавиатуре установлен микроконтроллер. Смотреть картинку зачем в клавиатуре установлен микроконтроллер. Картинка про зачем в клавиатуре установлен микроконтроллер. Фото зачем в клавиатуре установлен микроконтроллер

В аналоговой технике сигнал может искажаться, т.е. лежит провод ни к чему не подключённый, но вольтметр показывает на нём 0.5В из-за того что рядом есть электромагнитное поле. Поэтому используется понятие порогового напряжения. Если напряжение меньше порогового, то считаем что получили логический ноль, иначе единичка. С учётом возможных искажений скан-код нажатой клавиши Y может прийти вот таким:

зачем в клавиатуре установлен микроконтроллер. Смотреть фото зачем в клавиатуре установлен микроконтроллер. Смотреть картинку зачем в клавиатуре установлен микроконтроллер. Картинка про зачем в клавиатуре установлен микроконтроллер. Фото зачем в клавиатуре установлен микроконтроллер

Прежде чем мы подробно рассмотрим как данные от клавиатуры добираются до CPU давайте поговорим о микросхемах, шинах и материнских платах.

Микроконтроллеры и микросхемы

Микроконтроллер может выполнять вшитую в него программу, имеет некоторый объём RAM памяти и место для хранения данных и кода программы. В микросхему программу можно задать ещё на этапе проектирования. Вручную создавать электрическую схему реализующую алгоритм очень трудоёмко и поэтому для проектирования микросхем может использоваться специальный язык программирования который называется VHDL (Hardware Description Language). Это высокоуровневый язык программирования который транслируется в план электрической схемы, она прогоняется через программу находящую оптимальное расположение радиоэлементов на плате и в конечном счёте производится в физическом виде. Изображения носят иллюстративный характер.

зачем в клавиатуре установлен микроконтроллер. Смотреть фото зачем в клавиатуре установлен микроконтроллер. Смотреть картинку зачем в клавиатуре установлен микроконтроллер. Картинка про зачем в клавиатуре установлен микроконтроллер. Фото зачем в клавиатуре установлен микроконтроллер

зачем в клавиатуре установлен микроконтроллер. Смотреть фото зачем в клавиатуре установлен микроконтроллер. Смотреть картинку зачем в клавиатуре установлен микроконтроллер. Картинка про зачем в клавиатуре установлен микроконтроллер. Фото зачем в клавиатуре установлен микроконтроллер

Каким же образом данные и команды представлены в микросхемах и микроконтроллерах? Основой вычислительной техники является транзистор, который человечество научилось делать в микроскопических размерах. Транзистор это такой радиоэлемент у которого есть три ножки: вход, выход и между ними управляющая, которая открывает или закрывает ток между двумя ножками. Рисунок ниже иллюстрирует работу транзистора, вода иллюстрирует ток.

зачем в клавиатуре установлен микроконтроллер. Смотреть фото зачем в клавиатуре установлен микроконтроллер. Смотреть картинку зачем в клавиатуре установлен микроконтроллер. Картинка про зачем в клавиатуре установлен микроконтроллер. Фото зачем в клавиатуре установлен микроконтроллер

зачем в клавиатуре установлен микроконтроллер. Смотреть фото зачем в клавиатуре установлен микроконтроллер. Смотреть картинку зачем в клавиатуре установлен микроконтроллер. Картинка про зачем в клавиатуре установлен микроконтроллер. Фото зачем в клавиатуре установлен микроконтроллерзачем в клавиатуре установлен микроконтроллер. Смотреть фото зачем в клавиатуре установлен микроконтроллер. Смотреть картинку зачем в клавиатуре установлен микроконтроллер. Картинка про зачем в клавиатуре установлен микроконтроллер. Фото зачем в клавиатуре установлен микроконтроллер

Т.е. одна лампочка представляет один бит информации (0 или 1), а восемь таких лампочек соответствуют одному байту. На транзисторах можно строить и логические операторы И, ИЛИ, НЕ, XOR.

зачем в клавиатуре установлен микроконтроллер. Смотреть фото зачем в клавиатуре установлен микроконтроллер. Смотреть картинку зачем в клавиатуре установлен микроконтроллер. Картинка про зачем в клавиатуре установлен микроконтроллер. Фото зачем в клавиатуре установлен микроконтроллер

К примеру в схеме оператора AND (слева на картинке выше) на выходе будет напряжение только если оба входных напряжения ненулевые. Есть уже кем-то придуманные алгоритмы сложения, умножения, деления, вычитания основанные на побитовых логических операциях и битовых сдвигах. Производителям микросхем надо их просто реализовать. Ниже проиллюстрирована работа алгоритма побитового сложения, разбирать мы его не будем:

зачем в клавиатуре установлен микроконтроллер. Смотреть фото зачем в клавиатуре установлен микроконтроллер. Смотреть картинку зачем в клавиатуре установлен микроконтроллер. Картинка про зачем в клавиатуре установлен микроконтроллер. Фото зачем в клавиатуре установлен микроконтроллер

Нанотранзисторы микроскопические и их можно размещать на плате миллионами. Ниже изображён процессор Intel и как примерно может выглядеть одно из его ядер. Картинка носит иллюстративный характер.

зачем в клавиатуре установлен микроконтроллер. Смотреть фото зачем в клавиатуре установлен микроконтроллер. Смотреть картинку зачем в клавиатуре установлен микроконтроллер. Картинка про зачем в клавиатуре установлен микроконтроллер. Фото зачем в клавиатуре установлен микроконтроллер

Микросхемы могут содержать на той же плате и в том же корпусе и микроконтроллер.

Обычно в учебниках шины показывают в виде жирных стрелок, как на картинке ниже. Это делается чтобы не рисовать все соединения контактов, которых может быть много. Работа шины PS2 очень простая, там всего нужно три контакта. Но есть шины у которых к примеру 124 контакта для передачи данных.

зачем в клавиатуре установлен микроконтроллер. Смотреть фото зачем в клавиатуре установлен микроконтроллер. Смотреть картинку зачем в клавиатуре установлен микроконтроллер. Картинка про зачем в клавиатуре установлен микроконтроллер. Фото зачем в клавиатуре установлен микроконтроллер

зачем в клавиатуре установлен микроконтроллер. Смотреть фото зачем в клавиатуре установлен микроконтроллер. Смотреть картинку зачем в клавиатуре установлен микроконтроллер. Картинка про зачем в клавиатуре установлен микроконтроллер. Фото зачем в клавиатуре установлен микроконтроллер

Шина может состоять из подшин, т.е. одни контакты используются для данных, другие для адресов, третьи для управления и контакты по которым передаётся питание. Подход когда одни и те же контакты используются попеременно для передачи и данных и адресов называется мультиплексированием. К примеру процессор Intel 8086 имеет шину данных и адресов 20 бит, на диаграмме пинов её контакты обозначены AD0-AD19 (ножки 16-2 и 39-35).

зачем в клавиатуре установлен микроконтроллер. Смотреть фото зачем в клавиатуре установлен микроконтроллер. Смотреть картинку зачем в клавиатуре установлен микроконтроллер. Картинка про зачем в клавиатуре установлен микроконтроллер. Фото зачем в клавиатуре установлен микроконтроллер

В более сложном случае у нас могут быть несколько микросхем подключенных к тем же контактам. Для нормального общения им нужен дополнительный чип, который будет определять кто в какой момент времени может их использовать, он называется контроллер шины. На рисунке ниже сферическая шина в вакууме: четыре одинаковых микроконтроллера передают данные микроконтроллеру-потребителю через контроллер шины. Красный провод — напряжение, которое контроллер шины раздаёт всем подключенным к нему чипам. По зелёным проводам передаются данные и производится “договаривание” с контроллером шины и синий провод это Clock, по которому контроллер шины синхронизирует общение контроллеров, потому как они могут работать с разной скоростью. Если на синем проводе логическая единица, то чип имеющий право на пользование шиной может выполнить один акт взаимодействия со внешним миром — прочитать бит например.

зачем в клавиатуре установлен микроконтроллер. Смотреть фото зачем в клавиатуре установлен микроконтроллер. Смотреть картинку зачем в клавиатуре установлен микроконтроллер. Картинка про зачем в клавиатуре установлен микроконтроллер. Фото зачем в клавиатуре установлен микроконтроллер

Чипсет — это набор микросхем, которые все были созданы для работы друг с другом. Они обеспечивают коммуникацию компонентов на материнской плате и предоставляют функциональность, например таймеры. Чип-сет работает только с одной маркой процессоров, AMD нельзя вставить в материнку с чипсетом Intel, у них даже контакты разные. Схема материнской платы представлена ниже:

зачем в клавиатуре установлен микроконтроллер. Смотреть фото зачем в клавиатуре установлен микроконтроллер. Смотреть картинку зачем в клавиатуре установлен микроконтроллер. Картинка про зачем в клавиатуре установлен микроконтроллер. Фото зачем в клавиатуре установлен микроконтроллерзачем в клавиатуре установлен микроконтроллер. Смотреть фото зачем в клавиатуре установлен микроконтроллер. Смотреть картинку зачем в клавиатуре установлен микроконтроллер. Картинка про зачем в клавиатуре установлен микроконтроллер. Фото зачем в клавиатуре установлен микроконтроллер

Хотите пример хардверной инкапсуляции? В чипсетах фирмы Intel имеется чип под названием Super IO, он представлен на картинке ниже и через шину LPC подключен к Южному мосту. LPC — умное название проводков CLOCK, DATA, VCC (POWER). Этот чип содержит в себе эмуляцию всех старых чипов которые когда-либо использовались для периферийных устройств, в том числе и чип 8042 который использовался для PS2 порта. Там же находится и эмулятор контроллера порта для Floppy и прочие реликты которые мешают прогрессу. На общей схеме материнской платы выше указаны и Super IO и шина LPC.

зачем в клавиатуре установлен микроконтроллер. Смотреть фото зачем в клавиатуре установлен микроконтроллер. Смотреть картинку зачем в клавиатуре установлен микроконтроллер. Картинка про зачем в клавиатуре установлен микроконтроллер. Фото зачем в клавиатуре установлен микроконтроллер

Современный порт PS2 напрямую подключается к чипу Super I/O. Зелёное — клавиатура, фиолетовый — мышка. Раньше он подключался к микроконтроллеру Intel 8042.

зачем в клавиатуре установлен микроконтроллер. Смотреть фото зачем в клавиатуре установлен микроконтроллер. Смотреть картинку зачем в клавиатуре установлен микроконтроллер. Картинка про зачем в клавиатуре установлен микроконтроллер. Фото зачем в клавиатуре установлен микроконтроллер

Материнская плата выполнена из диэлектрика, т.е. материала который не проводит ток. Ток может проходить только про пропечатанным на плате магистралям. Материнская плата имеет множество слоёв, на каждом из которых пропечатаны свои контакты и поэтому если просверлить материнку там где магистралей не видно её можно испортить повредив невидимые контакты внутри платы. Теперь можно детально рассмотреть процесс распространения данных от PS2 к CPU.

Дорога от PS2 к процессору

Как правило архитектуру компьютера рассматривают на процессоре 8086. С одной стороны это правильно, потому как он достаточно простой по сравнению с современными CPU, с другой стороны неправильно, потому что он старый и не отражает архитектуру современной машины. Intel 8086 не нужны были никакие мосты, потому что он был настолько медленный что мог работать с периферией на одной шине, т.е. на одной частоте. Я плохо знаю современные CPU и чип сеты, поэтому буду объяснять на выдуманных, которые напоминают реальные. В моём примере будет вымышленный CPU сильно похожий на Intel 8086. У Super IO чипа больше ста контактов и по ним есть документация в Интернете, но я не вижу смысла разбирать какие пины используются клавиатурой и LPC-шиной для общения с South Bridge на самом деле. Главное это принцип, который может быть реализован по-разному.

Давайте быстренько посмотрим на картинку чтобы вспомнить что мы уже прошли. Зелёные стрелки показывают путь который мы рассмотрим.

зачем в клавиатуре установлен микроконтроллер. Смотреть фото зачем в клавиатуре установлен микроконтроллер. Смотреть картинку зачем в клавиатуре установлен микроконтроллер. Картинка про зачем в клавиатуре установлен микроконтроллер. Фото зачем в клавиатуре установлен микроконтроллер

Итак данные от клавиатуры уже пришли в контроллер порта PS2, который когда-то был чипом Intel 8042, а теперь эмулируется чипом Super IO. А теперь давайте разбирать дальнейший ход действий на моей выдуманной материнке с выдуманным CPU. Контроллер PS2 получил скан код нажатой клавишы Y и теперь подаёт напряжение на контакт сигнал (фиолетовая линия, см картинку ниже) на котором должен уведомить программируемый контроллер прерываний о данных с клавиатуры. Этот сигнал передаётся от одного чипа к другому пока Северный мост не передаст его чипу управляющему прерываниями.

зачем в клавиатуре установлен микроконтроллер. Смотреть фото зачем в клавиатуре установлен микроконтроллер. Смотреть картинку зачем в клавиатуре установлен микроконтроллер. Картинка про зачем в клавиатуре установлен микроконтроллер. Фото зачем в клавиатуре установлен микроконтроллер

Programmable Interrupt Controller представляет из себя чип Intel 8259 у которого 8 ножек (их имена IRQ0-IRQ7) зарезервированы для получения уведомлений от определённых портов (Interrupt ReQuest). На пин IRQ1 подвязана клавиатура, IRQ7 — принтер, на какой-то пин Floppy диск, звуковая карта, параллельные порты и другие. Конечно устройств может гораздо больше восьми, поэтому применялся такой приём как каскадирование, когда к ножке с именем IRQ2 подключался другой такой же PIC, у которого отсчёт начинался не с 0, а 7. Мышка привязана к IRQ12, т.е. ножка IRQ5 на втором PIC.

На самом деле таблица векторов прерываний содержит больше данных чем просто указатель на функцию. В этом массиве хранятся данные такого типа. Для простоты будем думать, что в IDT хранятся указатели на функцию или в терминах C# делегаты.

Более подробно ознакомится с тем как настраивается таблица векторов прерываний можно на osdev.

Теперь мы знаем о том как произошло прерывание, но не знаем как обработчик прерываний считывает информацию о нажатой клавише. С программной точки зрения порт PS2 представляет собой два регистра, только обращение к ним происходит не по именам или адресам в памяти о по номеру порта ввода/вывода. Эти два однобайтовых регистра закреплены за портами 0x60 и 0x64, в первом (0x60) будет лежать скан-код клавиши. Второй порт используется для передачи статуса и комманд порту PS2 (не клавиатуре!). В наборе инструкций архитектуры x86 есть команда IN storeTo, fromPortNum, которая считывает значение из указанного I/O port в указанный регистр. Например IN AL, 0x60 сохранит данные с клавиатуры в регистр AL. Она может работать примерно так:

Как вы теперь понимаете чтение с внешних устройств, даже таких как память RAM с т.зр. CPU достаточно медленное. Эту медлительность можно заметить написав программу которая печатает 10 000 строчек в файл построчно, вместо того чтобы скопить их в буфере и сохранить сразу. Жёсткий диск подключен к Южному мосту и внутри него так же есть контроллер управляющим непосредственным размещением данных.

Оперативная память подключается к CPU через шину и чтение с неё занимает некоторое время. Для ускорения работы CPU у него имеется кэш, т.е. область в которой расположены транзисторы представляющие данные которые скоро понадобятся или часто используются, их чтение происходит гораздо быстрее чем из платы RAM, которая общается с CPU через Северный мост. Оперативная память называется Dynamic Random Access Memory, потому как для представления данных в ней используются конденсаторы. Конденсатор это радиоэлемент который как аккумулятор держит некоторое время заряд пока полностью не разрядится. Только здесь разрядка происходит очень быстро. Поэтому конденсаторы надо перезаряжать, это происходит моментально, достаточно подать напряжение. Заряженный конденсатор — логическая 1, иначе 0. Для памяти кэша используется Static RAM, т.е. её не надо перезаряжать и поэтому она работает быстрее, но стоит дороже. Кэш делится на 3 уровня, которые последовательно проверяются в процессе поиска запрошенных данных, прежде чем процессор обратиться к RAM. На старых процессорах кэш первого уровня (L1) был частью CPU и работал с ним на одной частоте, когда как L2 и L3 кэши были внешними чипами. Сейчас они все находятся на одной микросхеме с процессором. Кэш L1 самый быстрый и самый маленький по объёму памяти, L2 имеет больше памяти но медленнее. L3 самый большой кэш и самый медленный, часто его называют shared cache, потому что он хранит данные для всех ядер CPU, в то время как L1 и L2 созданы для каждого отдельного ядра.

В следующей части поговорим как Windows принимает и обрабатывает полученные данные.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *