Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка пргр МП.docx
Скачиваний:
11
Добавлен:
01.07.2025
Размер:
16 Мб
Скачать
☆

1.2.5.2 Организация конфигурируемых параллельных портов вводавывода

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

Рис. 5. Пример реализации одного из портов ввода-вывода в Microchip PIC 18

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

Часть выводов микроконтроллера может работать не только как простые битовые порты ввода-вывода, но и как выходы и входы различных контроллеров (АЦП, ЦАП, UART, I2C, CAN, SPI и т.д), т.е. такие порты ввода-вывода обладают альтернативной функцией.

    1. Принципы организации систем ввода-вывода

В основе организации систем ввода-вывода лежат следующие принципы: 1. Принцип программного управления элементами СВВ.

  1. Адресуемость элементов СВВ (прозрачность доступа для программиста).

  2. Многоуровневая организация СВВ.

  3. Параллельность работы элементов СВВ.

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

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

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

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