Get In Touch

Что такое порты ввода-вывода

Что такое порты ввода-вывода

Если вы пропустили предыдущие статьи, то можете найти их здесь: 1) Что такое микропроцессор; 2) Что такое микропроцессорная система; 3) Что такое шина данных.

Как я уже говорил, микропроцессорная система “лежит на трёх китах”: процессор, память и устройства ввода-вывода. О процессоре я уже рассказал, сегодня очередь второго “кита” - портов ввода-вывода.

Любая микропроцессорная система сама по себе никакого смысла не имеет. Потому что создана она для взаимодействия с другими системами. И если она не умеет этого делать (взаимодействовать), то она никому не нужна. Напоминает мир людей, не так ли?

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

То есть через порты ввода в микропроцессорную систему поступают входные сигналы от датчиков, кнопок или других систем.

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

В порты ввода-вывода также можно записывать и считывать данные. Порты ввода процессор считывает как числа, и дальше уже происходит работа с этими числами. В порты вывода процессор записывает числа.

В случае с дискретными сигналами, в большинстве случаев один порт имеет размер один байт. Поскольку в байте 8 бит, а сигналы могут принимать только два значения - логический ноль или логическая единица, то каждый входной или выходной вывод микросхемы процессора связан с одним разрядом (битом) числа, которое хранится в порте.

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

На рисунке на входах микросхемы I0, I1, I3…I7 логический ноль (они соединены с общим проводом). А на вывод I2 подано напряжение питания - логическая единица. То есть в двоичном виде на порте входа у нас число:

00000100

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

Допустим, при сработке датчика открытия двери нам надо выдать тревожный сигнал и заблокировать электромагнитный замок. То есть нам надо установить в логическую единицу два выхода. Пусть на выходе 1 будет сигнал тревоги, а на выходе 2 замок. Тогда в порт вывода нам надо будет записать число 3:

00000011

В этом примере при записи числа 3 в порт вывода на выходах микросхемы O0 и O1 появляются логические единицы. Эти сигналы можно использовать, например, для управления реле, которые включают/отключают в нашем случае тревожную сигнализацию и электромагнитный замок.

Ну вот примерно так работают порты ввода-вывода в микропроцессорных системах. Остаётся только добавить, что в современных микроконтроллерах физические выводы микросхем (то есть “ножки”, к которым уже припаиваются какие-то элементы, с которыми работает микроконтроллер) очень часто могут работать как на вход, так и на выход.

То есть один и тот же вывод микросхемы может быть как входом, так и выходом. А вот чем он будет в конкретном устройстве - это зависит от задач и устанавливается программно.

На этом пока всё. Подписывайтесь на канал, чтобы ничего не пропустить…

Share: