Принцип однородности памяти 9 страница

Мультизадачность имеет несколько достоинств:

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

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

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

Рисунок 69 – Распределение памяти между задачами

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

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

Возможные состояния задачи можно разделить в на два типа: пассивное и активное. Активное состояние подразделяется на состояния выполнения, готовности и ожидания. Эти состояния характеризуются следующими свойствами:

  • пассивное состояние. Запуск еще не производился или работа уже завершена;
  • состояние выполнения (прогона). Выполняются команды программы;
  • состояние готовности. Возможно выполнение любой команды (в ходе выполнения процессором команд другой задачи);
  • состояние ожидания. Ожидается генерация некоторых условий, например возникновение прерывания. До генерации этого условия следующую команду выполнять нельзя.

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

Рисунок 70 – Диаграмма изменения состояний задачи

При запуске задачи с помощью системного вызова (СТАРТ) устанавливается состояние готовности. В большинстве задач в этом состоянии ожидается начало выполнения команд. Если в задаче, находящейся в состоянии выполнения, происходит обращение к команде, выполнение которой возможно после генерации некоторых условий, выполнение приостанавливается, и задача с помощью системного вызова (ОЖИДАНИЕ) переходит в состояние ожидания. Из состояния ожидания задача переходит в состояние готовности, если генерируется ожидаемое задачей условие. Когда выполнение команд полностью закончено, задача с помощью системного вызова (ОКОНЧАНИЕ) переходит в пассивное состояние. В обоих случаях, когда задача переходит из состояния выполнения в состояние ожидания или пассивное состяние, выбирается одна из задач, находящихся в состоянии готовности, и переводится в состояние выполнения.

Выбор задачи зависит от стратегии планирования выполнения задач, реализуемой программой управления задачей. Существуют различные стратегии планирования выполнения задач. Широко используется метод, по которому первой выбирается задача, находившаяся в состоянии выполнения непосредственно перед последней выполненной задачей. Замена задачи в состоянии выполнения называется переключением задач.

Имеются аппаратные и программные причины переключения задач. Необходимость переключения может возникнуть в результате внешнего сигнала прерывания или по требованию операционной системы, управляющей разделением времени МП. Задача, которая начинает выполняться в результате прерывания, называется планируемой аппаратно (или по прерыванию). Задача, которая начинает выполняться по требованию операционной системы, называется планируемой программно. В мультизадачной системе обычно имеется оба типа планирования задач. Например, пользовательские задачи, разделяющие МП, планируются программно операционной системой. Некоторые системные задачи, например ввод с клавиатуры или другой ввод/вывод, обычно планируется прерыванием, чтобы обслужить периферийные устройства в реальном времени (в пределах гарантированного времени реакции).

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

45. Структурная организация однокристальных микроконтроллеров (на примере 8-разрядных микроконтроллеров): модульный принцип построения, типы процессорных ядер.

Микроконтроллеры являются специализированными микропроцессорами, которые ориентированы на реализацию устройств управления, встраиваемых в разнообразную аппаратуру.

Характерной особенностью структуры микроконтроллеров является размещение на одном кристалле с центральным процессором внутренней памяти и большого набора периферийных устройств. В состав периферийных устройств обычно входят несколько параллельных портов ввода/вывода данных (от 1 до 8), один или два последовательных порта, таймерный блок, аналого-цифровой преобразователь. Кроме того, различные типы микроконтроллеров содержат дополнительные специализированные устройства, такие как блок формирования сигналов с широтно-импульсной модуляцией, контроллер жидкокристаллического дисплея и ряд других. Благодаря использованию внутренней памяти и периферийных устройств реализуемые на базе микроконтроллеров системы управления содержат минимальное количество дополнительных компонентов.

Для удовлетворения запросов потребителей выпускается большая номенклатура микроконтроллеров, которые принято подразделять на 8-, 16- и 32-разрядные.

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

Структурную организацию однокристальных микроконтроллеров рассмотрим на примере 8-разрядных МК.

Модульный принцип построения

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

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

Рисунок 71 – Модульная структура микроконтроллера

Базовый функциональный блок включает:

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

Базовый функциональный блок принято называть процессорным ядром МК. Процессорное ядро обозначают именем семейства МК, основой которого оно является. Например, ядро НС11 – процессорное ядро семейства Motorola МС68НС11, ядро MCS-51 – ядро семейства МК Intel 8хС51, ядро PIC16 – процессорное ядро Microchip PIC16.

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

  1. модули памяти;
  2. модули периферийных устройств;
  3. модули встроенных генераторов синхронизации;
  4. модули контроля за напряжением питания и ходом выполнения программы;
  5. модули внутрисхемной отладки и программирования.

Для 8-разрядных МК характерна, как правило, закрытая архитектура, при которой линии внутренних магистралей адреса и данных отсутствуют на выводах корпуса МК. Как следствие, не предоставляется возможность использования внешних по отношению к МК ИС запоминающих устройств.

Группа модулей периферийных устройств включает следующие основные типы:

  • параллельные порты ввода/вывода;
  • таймеры/счетчики событий, таймеры периодических прерываний, процессоры событий;
  • контроллеры последовательного интерфейса связи нескольких типов (UART, SCI, SPI, I2C, USB);
  • аналого-цифровые преобразователи (АЦП);
  • цифроаналоговые преобразователи (ЦАП);
  • контроллеры ЖК и светодиодных индикаторов.

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

Система синхронизации 8-разрядных МК функционально разделяется на собственно генератор синхронизации, который выделяется в отдельный модуль, и схему формирования многофазной последовательности импульсов для тактирования центрального процессора и межмодульных магистралей, которая является неотъемлемой частью процессорного ядра. Имеется возможность выбора внешнего времязадающего элемента: кварцевый или керамический резонатор, RC-цепь. Повышение производительности процессорного ядра МК связано с повышением частоты тактирования центрального процессора и межмодульных магистралей. Однако применение высокочастотных кварцевых резонаторов в качестве времязадающего элемента повышает уровень электромагнитного излучения, т.е. возрастает интенсивность генерации помех. Поэтому часто генераторы синхронизации имеют в своем составе умножитель частоты с программно настраиваемым коэффициентом умножения. Умножитель частоты выполняется по схеме синтезатора с контуром фазовой автоподстройки (PLL – Phase Loop Lock). Цепи синтезатора частоты и регистры специальных функций для управления режимами его работы включаются в один из модулей генератора синхронизации.

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

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

Типы процессорных ядер

Процессорное ядро представляет собой неразрывное единство трех составляющих его технических решений:

  1. архитектуры центрального процессора с присущими ей набором регистров для хранения промежуточных данных, организацией памяти и способами адресации операндов в пространстве памяти, системой команд, определяющей набор возможных действий над операндами, организацией процесса выборки и исполнения команд;
  2. схемотехники воплощения архитектуры, которая определяет последовательность перемещения данных по внутренним магистралям МК между регистрами, арифметическо-логическим устройством и ячейками памяти в процессе выполнения каждой команды;
  3. технологии производства полупроводниковой ИС МК, которая позволяет разместить схему той или иной сложности на полупроводниковом кристалле, определяет допустимую частоту переключений в схеме и энергию потребления.

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

46. Резидентная (внутренняя) память микроконтроллеров.

Типы резидентной памяти

Закрытая архитектура современных 8-разрядных МК стала реализуемой лишь при условии интеграции на кристалл МК модулей памяти двух типов: энергонезависимого запоминающего устройства для хранения кодов прикладных программ (ПЗУ) и оперативного запоминающего устройства для хранения промежуточных результатов вычислений (ОЗУ).

С точки зрения пользователей МК следует различать пять типов энергонезависимой резидентной памяти.

1. ПЗУ масочного типа – Mask-ROM. Содержимое ячеек ПЗУ этого типа записывается на заводе-изготовителе МК с помощью масок и не может быть заменено или изменено. Поэтому МК с таким типом памяти программ следует использовать в изделии только после достаточно длительной опытной эксплуатации этого изделия. ПЗУ масочного типа представляет собой самое дешевое и эффективное решение при больших объемах выпускаемой аппаратуры. Использование МК с масочным ПЗУ экономически становится рентабельным при партии в несколько десятков тысяч штук. Они обеспечивают высокую надежность хранения информации по причине программирования в заводских условиях с последующим контролем качества. Недостатки ПЗУ масочного типа: любое изменение прикладной программы потребует новой серии ИС МК, что может оказаться весьма дорогостоящим и времяемким решением.

2. ПЗУ, однократно программируемые пользователем – OTPROM (One-Time Programmable ROM). В незапрограммированном состоянии каждая ячейка памяти модуля однократно программируемого ПЗУ содержит код FF. Программированию подлежат только те разряды, которые после программирования должны содержать 0. Если в процессе программирования некоторые разряды какой-либо ячейки памяти были установлены в 0, то восстановить в этих разрядах единичное значение уже невозможно. Поэтому рассматриваемый тип памяти и носит название однократно программируемые ПЗУ. Однако те разряды, которые в процессе предшествующего сеанса программирования не изменялись, т.е. имеют единичные значения, могут быть подвергнуты программированию в последующем и установлены в 0. Число возможных сеансов программирования модуля однократно программируемого ПЗУ в составе МК не имеет ограничений. Технология программирования состоит в многократном приложении импульсов повышенного напряжения к элементарным ячейкам адресуемого байта памяти (т.е. к битам), подлежащим программированию. Уровень напряжения программирования, число импульсов и их временные параметры должны в точности соответствовать техническим условиям. В противном случае ячейки памяти могут восстановить единичное значение по прошествии некоторого времени (иногда нескольких лет) или при изменении условий работы. МК с однократно программируемым ПЗУ рекомендуется использовать в изделиях, выпускаемых небольшими партиями.

3. ПЗУ, программируемые пользователем с ультрафиолетовым стиранием – EPROM (Erasable Programmable ROM). ПЗУ данного типа допускают многократное программирование. Перед каждым сеансом программирования для восстановления единичного значения ранее запрограммированных ячеек памяти весь модуль ПЗУ должен быть подвергнут операции стирания при помощи ультрафиолетового облучения. Для этого корпус МК выполнен со специальным стеклянным окном, внутри которого расположена пластина ИС МК. Но если некоторые разряды ячеек памяти должны быть изменены с 1 на 0 при неизменном состоянии ранее запрограммированных разрядов, то операция стирания может быть пропущена. Число сеансов стирания/программирования ПЗУ данного типа ограничено и составляет 25-100 раз при условии соблюдения технологии программирования (напряжение, число и длительность импульсов программирования) и технологии стирания (волновой диапазон источника ультрафиолетового излучения). МК с ПЗУ данного типа имеют высокую стоимость, поэтому их рекомендуется использовать только в опытных образцах изделий.

4. ПЗУ, программируемые пользователем с электрическим стиранием – EEPROM (Electrically Erasable Programmable ROM). Электрически программируемые и электрически стираемые ПЗУ совмещают в себе положительные качества рассмотренных выше типов памяти. Во-первых, ПЗУ типа EEPROM программируются пользователем, во-вторых, эти ПЗУ могут быть многократно подвергнуты операции стирания, и, следовательно, многократно программируются пользователем, в-третьих, эти ПЗУ дешевле ПЗУ с ультрафиолетовым стиранием. Максимальное число циклов сти-рания/программирования ПЗУ типа EEPROM в составе МК обычно равно 10000. Технология программирования памяти типа EEPROM позволяет реализовать побайтное стирание и побайтное программирование, для чего к выбранной ячейке памяти должно быть приложено относительно высокое напряжение 10-20 В. Однако допускается также одновременное стирание некоторого количества ячеек памяти с последовательными адресами, т.е. стирание блока памяти. ПЗУ типа EEPROM редко используют для хранения программ. Во-первых, ПЗУ типа EEPROM имеют ограниченную небольшую емкость. Во-вторых, почти одновременно с EEPROM ПЗУ появились ПЗУ типа FLASH, которые обеспечивают близкие пользовательские характеристики, но при этом имеют более низкую стоимость.

5. ПЗУ с электрическим стиранием типа FLASH – FLASH ROM. В отличие от EEPROM ПЗУ типа FLASH стираются и программируются страницами или блоками. Страница, как правило, составляет 8, 16 или 32 байта памяти, блоки могут объединять некоторое число страниц, вплоть до полного объема резидентного ПЗУ МК.

Кроме ПЗУ в состав МК входит также и статическое ОЗУ. Современные 8-разрядные МК допускают снижение частоты тактирования до сколь угодно малых значений с целью снижения энергии потребления. Содержимое ячеек статического ОЗУ при этом сохраняется в отличие от динамической памяти. В качестве еще одной особенности следует отметить, что многие МК в техническом описании имеют параметр напряжение хранения информации. При снижении напряжения питания ниже минимально допустимого уровня, но выше напряжения хранения, программа управления микроконтроллером выполняться не будет, но информация в ОЗУ сохранится. Тогда при восстановлении напряжения питания можно будет выполнить сброс МК и продолжить выполнение программы без потери данных. Уровень напряжения хранения составляет порядка 1 В. Это позволяет в случае необходимости перевести МК на питание от автономного источника (батарейки или аккумулятора) и сохранить тем самым данные ОЗУ. Большого расхода энергии потребления в этом случае не будет, так как система тактирования МК может быть отключена. Существуют МК, которые в корпусе имеют автономный источник питания, гарантирующий сохранение данных в ОЗУ на протяжении 10 лет (например, МК DS5000 фирмы Dallas Semiconductor).

Особенности программирования микроконтроллеров

ПЗУ масочного типа предполагает программирование МК только в заводских условиях. ПЗУ типа OTPROM и EPROM могут программироваться непосредственно пользователем, но в режиме программирования требуют подключения источника повышенного напряжения к одному из выводов МК. Для их программирования используются специальные программаторы, в которых требуемая последовательность импульсов программирования с амплитудой 10-25 В создается внешними по отношению к МК средствами. Технология программирования памяти первых трех типов не предполагает изменения содержимого ячеек энергонезависимой памяти в процессе работы устройства под управлением прикладной программы.

Возможность осуществлять программирование в процессе управления объектом, без останова выполнения прикладной программы и перевода МК в режим программирования обеспечивают ПЗУ типа EEPROM и FLASH. EEPROM ПЗУ используется не для хранения программ, а для хранения изменяемых в процессе эксплуатации изделия настроек пользователя. Для хранения программ используются ПЗУ типа FLASH (или OTPROM). В современных 8-разрядных МК на кристалл МК интегрируются сразу два типа модулей энергонезависимой памяти: OTPROM или FLASH-для хранения программ и EEPROM – для хранения перепрограммируемых констант. При этом существуют определенные сложности с программированием FLASH ПЗУ под управлением прикладной программы. Проблема состоит в том, что попытка перевода модуля FLASH ПЗУ в режим программирования приведет к невозможности дальнейшего считывания прикладной программы, которая в это FLASH ПЗУ записана. Поэтому та часть программы, которая реализует программирование FLASH ПЗУ, должна быть обязательно расположена в памяти другого типа. Наиболее часто в качестве такой памяти выбирают ОЗУ МК. Если МК допускает возможность выполнения программы, расположенной в ОЗУ, то такой МК становится программируемым в системе (англоязычный термин ISP – In System Programmable). Для того чтобы возможность программирования в системе стала реализуемой, необходимо предусмотреть пути, по которым в ОЗУ МК будет передана программа программирования FLASH ПЗУ, а затем порциями будут передаваться коды прикладной программы, которая должна быть занесена во FLASH ПЗУ (объем кода для программирования значительно превышает объем резидентного ОЗУ МК). В качестве такого пути обычно используется один из последовательных портов МК. Обслуживание порта реализует специальная программа монитора связи, которая расположена в резидентном масочном ПЗУ МК. Эта программа активизируется посредством установки определенных линий ввода/вывода МК в указанное в спецификации состояние при сбросе МК или простым обращением к ней. Способ активизации указан в техническом описании МК. По последовательному интерфейсу в ОЗУ МК сначала загружаются коды программы программирования, а затем порциями коды прикладной программы для программирования. Возможно также решение, при котором программа программирования сразу записана в память масочного типа и не требует загрузки в ОЗУ МК.

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

47. Периферийные устройства микроконтроллеров: параллельные порты ввода/вывода, таймеры и процессоры событий, интерфейсы последовательного ввода/вывода.

Параллельные порты ввода/вывода

Каждый МК имеет некоторое количество линий ввода/вывода, которые объединены в 8-разрядные параллельные порты ввода/вывода РТх («х» – имя порта, используемое в техническом описании). Порты обозначают либо цифрами (РТ0, РТ1, РТ2 и т.д.), либо буквами латинского алфавита (РТА, РТВ, РТС и т.д.). В карте памяти МК каждый порт ввода/вывода представлен регистром данных порта DPTx. В режиме ввода логические уровни сигналов на линиях порта РТх отображаются нулями и единицами в соответствующих разрядах регистра DPTx. В режиме вывода данные, записанные под управлением программы в регистр DPTx, передаются на выводы МК, которые используются в качестве линий порта РТх. Обращение к регистру данных DPTx осуществляется теми же командами, что и обращение к ячейкам резидентной памяти. Кроме того, во многих МК отдельные разряды портов могут быть опрошены командами битовых операций.

С функциональной точки зрения различают следующие типы параллельных портов:

  • однонаправленные порты, предназначенные в соответствие со спецификацией МК только для ввода или только для вывода информации;
  • двунаправленные порты, направление передачи которых (ввод или вывод) определяется в процессе инициализации системы;
  • порты с альтернативной функцией. Отдельные линии этих портов связаны со встроенными в МК периферийными устройствами, такими как таймер, АЦП, контроллеры последовательных интерфейсов. Если соответствующий периферийный модуль МК не используется, то его выводы можно задействовать как обычные линии ввода/вывода. Если модуль активизирован, то принадлежащие ему линии ввода/вывода автоматически конфигурируются в соответствии с функциональным назначением в модуле и не могут быть использованы в качестве линий ввода/вывода. Как однонаправленные, так и двунаправленные линии портов могут иметь альтернативную функцию.

Выходные каскады линий ввода/вывода часто называют драйверами (не путать с аналогичным обозначением программных средств). Различают следующие типы драйверов ввода/вывода:

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

В драйверах первого типа каждой линии порта поставлен в соответствие одноименный разряд регистра направления передачи DDPTx. Нулевое значение разряда конфигурирует линию на ввод, единичное – на вывод. После сброса МК все линии настроены на ввод. В режиме ввода непосредственно в момент считывания логический уровень сигнала линии передается на внутреннюю магистраль данных, минуя регистр данных порта DPTx. В процессе чтения линии ее состояние не запоминается в регистре DPTx и, следовательно, каждое новое обращение к порту ввода может возвращать новое значение. В режиме ввода линия находится в высокоомном состоянии (Z-состояние). Значение, которое будет возвращать операция чтения неподключенного входа, в общем случае не определено.

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


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: