Организация связи микроконтроллера с внешней средой и временем
Структура и организация портов ввода-вывода информации микроконтроллеров, режимы работы таймеров и процессоров событий, организация обработки прерываний. Структура модуля таймера счетчика. Организация связи микроконтроллера с внешней средой и временем.
Рубрика | Коммуникации, связь, цифровые приборы и радиоэлектроника |
Вид | лекция |
Язык | русский |
Дата добавления | 25.06.2013 |
Размер файла | 599,6 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
10
Размещено на http://www.allbest.ru/
Лекция
Организация связи микроконтроллера с внешней средой и временем
Введение
В этой лекции рассказывается о структуре и организации портов ввода/вывода информации микроконтроллеров, режимах работы таймеров и процессоров событий, а также об организации обработки прерываний
Ключевые слова: порт, ввод, вывод, таймер, счетчик, процессор событий, прерывания.
1. Порты ввода/вывода
Каждый МК имеет некоторое количество линий ввода/вывода, которые объединены в многоразрядные (чаще 8-разрядные) параллельные порты ввода/вывода. В памяти МК каждому порту ввода/вывода соответствует свой адрес регистра данных. Обращение к регистру данных порта ввода/ вывода производится теми же командами, что и обращение к памяти данных. Кроме того, во многих МК отдельные разряды портов могут быть опрошены или установлены командами битового процессора.
В зависимости от реализуемых функций различают следующие типы параллельных портов:
* однонаправленные порты, предназначенные только для ввода или только для вывода информации;
* двунаправленные порты, направление передачи которых (ввод или вывод) определяется в процессе инициализации МК;
* порты с альтернативной функцией (мультиплексированные порты). Отдельные линии этих портов используются совместно со встроенными периферийными устройствами МК, такими как таймеры, АЦП, контроллеры последовательных интерфейсов;
* порты с программно-управляемой схемотехникой входного/выходного буфера.
Порты выполняют роль устройств временного согласования функционирования МК и объекта управления, которые в общем случае работают асинхронно. Различают три типа алгоритмов обмена информацией между МК и внешним устройством через параллельные порты ввода/вывода:
* режим простого программного ввода/вывода;
* режим ввода/вывода со стробированием;
* режим ввода/вывода с полным набором сигналов подтверждения обмена.
Типичная схема двунаправленного порта ввода/вывода МК приведена на рис. 1.
Триггер управления разрешает вывод данных на внешний вывод. В современных МК, как правило, обеспечивается индивидуальный доступ к триггерам данных и управления, что позволяет использовать каждую линию независимо в режиме ввода или вывода.
Рис. 1. Типовая схема двунаправленного порта ввода/вывода МК
Необходимо обратить особое внимание на то, что при вводе данных считывается значение сигнала, поступающее на внешний вывод, а не содержимое триггера данных. Если к внешнему выводу МК подключены выходы других устройств, то они могут установить свой уровень выходного сигнала, который и будет считан вместо ожидаемого значения триггера данных.
Другим распространенным вариантом схемотехнической организации порта ввода/вывода является вывод с «открытым истоком», называемый еще «квазидвунаправленным». Такая организация вывода позволяет создавать шины с объединением устройств по схеме «монтажное И».
2. Таймеры и процессоры событий
Большинство задач управления, которые реализуются с помощью МК, требуют исполнения их в реальном времени. Под этим понимается способность системы получить информацию о состоянии управляемого объекта, выполнить необходимые расчетные процедуры и выдать управляющие воздействия в течение интервала времени, достаточного для желаемого изменения состояния объекта.
Возлагать функции формирования управления в реальном масштабе времени только на центральный процессор неэффективно, так как это занимает ресурсы, необходимые для расчетных процедур. Поэтому в большинстве современных МК используется аппаратная поддержка работы в реальном времени с использованием таймера (таймеров).
Модули таймеров служат для приема информации о времени наступления тех или иных событий от внешних датчиков событий, а также для формирования управляющих воздействий во времени.
Модуль таймера 8-разрядного МК представляет собой 8-ми или 16-разрядный счетчик со схемой управления. Схемотехникой МК обычно предусматривается возможность использования таймера в режиме счетчика внешних событий, поэтому его часто называют таймером/счетчиком. Структура типичного 16-разрядного таймера/счетчика в составе МК приведена на рис. 2.
Рис. 2. Структура модуля таймера/счетчика
В памяти МК 16-разрядный счетчик отображается двумя регистрами: ТН -- старший байт счетчика, TL -- младший байт. Регистры доступны для чтения и для записи. Направление счета -- только прямое, то есть при поступлении входных импульсов содержимое счетчика инкрементируется. В зависимости от настройки счетчик может использовать один из источников входных сигналов:
* импульсную последовательность с выхода управляемого делителя частоты fBUS;
* сигналы внешних событий, поступающие на вход TOCKI контроллера.
В первом случае говорят, что счетчик работает в режиме таймера, во втором -- в режиме счетчика событий. При переполнении счетчика устанавливается в «единицу» триггер переполнения TF, который генерирует запрос на прерывание, если прерывания от таймера разрешены. Пуск и останов таймера могут осуществляться только под управлением программы. Программным способом можно также установить старший и младший биты счетчика в произвольное состояние или прочитать текущий код счетчика.
Рассмотренный «классический» модуль таймера/счетчика широко применяется в различных моделях относительно простых МК. Он может использоваться для измерения временных интервалов и формирования последовательности импульсов. Основными недостатками «классического» таймера/счетчика являются:
* потери времени на выполнение команд пуска и останова таймера, приводящие к появлению ошибки при измерении временных интервалов и ограничивающие минимальную длительность измеряемых интервалов времени единицами мс;
* сложности при формировании временных интервалов (меток времени), отличных от периода полного коэффициента счета, равного (Kдел/fBUS) 216;
* невозможность одновременного обслуживания (измерения или формирования импульсного сигнала) сразу нескольких каналов.
Первые их двух перечисленных недостатков были устранены в усовершенствованном модуле таймера/счетчика, используемом в МК семейства MCS-51 (Intel). Дополнительная логика счетного входа позволяет тактовым импульсам поступать на вход счетчика, если уровень сигнала на одной из линий ввода равен «1». Такое решение повышает точность измерения временных интервалов, так как пуск и останов таймера производится аппаратно. Также в усовершенствованном таймере реализован режим перезагрузки счетчика произвольным кодом в момент переполнения. Это позволяет формировать временные последовательности с периодом, отличным от периода полного коэффициента счета.
Однако эти усовершенствования не устраняют главного недостатка модуля «классического» таймера -- одноканального режима работы. Совершенствование подсистемы реального времени МК ведется по следующим направлениям:
* увеличение числа модулей таймеров/счетчиков. Этот путь характерен для фирм, выпускающих МК со структурой MCS-51, а также для МК компаний Mitsubishi и Hitachi;
* модификация структуры модуля таймера/счетчика, при которой увеличение числа каналов достигается не за счет увеличения числа счетчиков, а за счет введения дополнительных аппаратных средств входного захвата (input capture -- IC) и выходного сравнения (output compare -- ОС). Такой подход используется, в частности, в МК компании Motorola.
Принцип действия канала входного захвата таймера/счетчика иллюстрирует рис. 3.
Рис. 3. Структурная схема канала входного захвата таймера
Схема детектора события «наблюдает» за уровнем напряжения на одном из входов МК. Чаще всего это одна из линий порта ввода/вывода. При изменении уровня логического сигнала с «0» на «1» и наоборот вырабатывается строб записи, и текущее состояние счетчика таймера записывается в 16-разрядный регистр входного захвата. Описанное действие в микропроцессорной технике называют событием захвата. Предусмотрена возможность выбора типа сигнала на входе, и это воспринимается как событие: микроконтроллер порт таймер счетчик
* положительный (передний) фронт сигнала;
* отрицательный (задний) фронт сигнала;
* любое изменение логического уровня сигнала.
Выбор типа события захвата устанавливается в процессе инициализации таймера и может неоднократно изменяться в ходе выполнения программы. Каждое событие захвата приводит к установке в «1» триггера входного захвата и появлению на его выходе флага (признака) входного захвата ICF. Состояние триггера входного захвата может быть считано программно, а если прерывания по событию захвата разрешены -- формируется запрос на прерывание INT IC.
Использование режима входного захвата позволяет исключить ошибки измерения входного интервала времени, связанные со временем перехода к подпрограмме обработки прерывания, так как копирование текущего состояния счетчика осуществляется аппаратными, а не программными средствами. Однако время перехода на подпрограмму обработки прерывания накладывает ограничение на длительность измеряемого интервала времени, так как предполагается, что второе событие захвата произойдет позже, чем код первого события будет считан МК.
Структура аппаратных средств канала выходного сравнения представлена на рис. 4.
Цифровой компаратор непрерывно сравнивает текущий код счетчика таймера с кодом, который записан в 16-разрядном регистре выходного сравнения. В момент равенства кодов на одном из выходов МК (Pxj на рис. 4) устанавливается заданный уровень логического сигнала. Обычно предусмотрено три типа изменения сигнала на выходе Pxj в момент события выходного сравнения:
* установка высокого логического уровня;
* установка низкого логического уровня;
* инвертирование сигнала на выходе.
При наступлении события сравнения устанавливаются в «1» триггер выходного сравнения и соответствующий ему признак выходного сравнения ОСF. Аналогично режиму входного захвата состояние триггера выходного сравнения может быть считано программно, а если прерывания по событию сравнения разрешены -- формируется запрос на прерывание INT ОС.
Режим выходного сравнения предназначен, прежде всего, для формирования временных интервалов заданной длительности. Длительность сформированного временного интервала определяется только разностью кодов, последовательно загружаемых в регистр выходного сравнения, и не зависит от программного обеспечения МК. Время, необходимое для записи нового значения кода в регистр канала сравнения, ограничивает минимальную длительность формируемого временного интервала.
Рис. 4. Структурная схема канала выходного сравнения таймера
Модули усовершенствованного таймера используются в составе МК в различных модификациях. При этом число каналов входного захвата и выходного сравнения в модуле может быть различным. Так, в МК семейства НС05 фирмы Motorola типовыми решениями являются модули IIC+1OC или 2IC+2OC, а модуль таймера в составе МК только один. В ряде модулей каналы могут быть произвольно настроены на функцию входного захвата или выходного сравнения посредством инициализации. Счетчик модуля усовершенствованного таймера может не иметь функции программного останова. В этом случае состояние счетчика нельзя синхронизировать с каким-либо моментом работы МК, и такой счетчик характеризуется как свободно считающий (free counter).
Аппаратные средства усовершенствованного таймера позволяют решить многие задачи управления в реальном времени. Однако по мере роста сложности алгоритмов управления отчетливо проявляются ограничения модулей усовершенствованного таймера, а именно:
* недостаточное число каналов захвата и сравнения, принадлежащих одному счетчику временной базы. Это не позволяет сформировать синхронизированные между собой многоканальные импульсные последовательности;
* однозначно определенная конфигурация канала (или захват или сравнение) часто не удовлетворяет потребностям решаемой задачи;
* формирование сигналов по методу широтно-импульсной модуляции (ШИМ) требует программной поддержки, что снижает максимально достижимую частоту выходного сигнала.
Поэтому следующим этапом развития модулей подсистемы реального времени МК стали модули процессоров событий. Впервые модули процессоров событий были использованы компанией Intel в МК семейства 8хС51 Fx. Этот модуль получил название программируемого счетного массива (Programmable Counter Array -- РСА).
РСА обеспечивает более широкие возможности работы в реальном масштабе времени и в меньшей степени расходует ресурсы центрального процессора, чем стандартный и усовершенствованный таймеры/счетчики. К преимуществам РСА также можно отнести более простое программирование и более высокую точность. К примеру, РСА может обеспечить лучшее временное разрешение, чем таймеры 0, 1 и 2 МК семейства MCS-51, так как счетчик РСА способен работать с тактовой частотой, втрое большей, чем у этих таймеров. РСА также может решать многие задачи, выполнение которых с использованием таймеров требует дополнительных аппаратных затрат (например, определение фазового сдвига между импульсами или генерация ШИМ-сигнала). РСА состоит из 16-битного таймера-счетчика и пяти 16-битных модулей сравнения-защелки, как показано на рис. 5.
Таймер-счетчик РСА используется в качестве базового таймера для функционирования всех пяти модулей сравнения-защелки. Вход таймера-счетчика РСА может быть запрограммирован на счет сигналов от следующих источников:
* выход делителя на 12 тактового генератора МК;
* выход делителя на 4 тактового генератора МК;
* сигнал переполнения таймера 0;
* внешний входной сигнал на выводе ECI (P1.2).
Рис. 5. Структура процессора событий МК семейства Intel 8xC51Fx
Любой из модулей сравнения-защелки может быть запрограммирован для работы в следующих режимах:
* защелкивания по фронту и/или спаду импульса на входе CEXi;
* программируемого таймера;
* высокоскоростного выхода;
* широтно-импульсного модулятора.
Модуль 4 может быть также запрограммирован как сторожевой таймер (Watchdog Timer - WDT).
Режим защелкивания по импульсу на входе МК эквивалентен режиму входного захвата (IC) усовершенствованного таймера. Режимы программируемого таймера и высокоскоростного выхода близки по своим функциональным возможностям к режиму выходного сравнения (ОС).
В режиме ШИМ на соответствующем выводе МК формируется последовательность импульсов с периодом, равным периоду базового таймера/ счетчика РСА. Значение 8-разрядного кода, записанное в младший байт регистра-защелки соответствующего модуля задает скважность формируемого сигнала. При изменении кода от 0 до 255 скважность меняется от 100% до 0,4%.
Режим ШИМ очень прост с точки зрения программного обслуживания. Если изменения скважности не предполагается, то достаточно один раз занести соответствующий код в регистр данных модуля, проинициализировать режим ШИМ, и импульсная последовательность будет воспроизводиться с заданными параметрами без вмешательства программы.
Назначение и особенности работы сторожевого таймера будут рассмотрены далее отдельно.
При работе модуля сравнения-защелки в режиме защелки, программируемого таймера или высокоскоростного выхода модуль может сформировать сигнал прерывания. Сигналы от всех пяти модулей сравнения-защелки и сигнал переполнения таймера РСА разделяют один вектор прерывания. Иными словами, если прерывания разрешены, то и сигнал переполнения таймера РСА и сигнал от любого из модулей вызывают одну и ту же подпрограмму прерываний, которая должна сама идентифицировать источник, вызвавший ее.
Для работы с внешними устройствами таймер-счетчик РСА и модули сравнения-защелки используют выводы Р1 порта МК. Если какой-либо вывод порта не используется при работе РСА, или РСА не задействован, порт может применяться стандартным образом.
Реализованный в 8xC51FX РСА оказался настолько удачным, что архитектура данных МК стала промышленным стандартом де-факто, а сам РСА многократно воспроизводился в различных модификациях микроконтроллеров разных фирм.
Тенденция развития подсистемы реального времени современных МК находит свое отражение в увеличении числа каналов процессоров событий и расширении их функциональных возможностей.
4.6 Модуль прерываний МК
Обработка прерываний в МК происходит в соответствии с общими принципами обработки прерываний в МПС. Модуль прерываний принимает запросы прерывания и организует переход к выполнению определенной прерывающей программы. Запросы прерывания могут поступать как от внешних источников, так и от источников, расположенных в различных внутренних модулях МК.
В качестве входов для приема запросов от внешних источников чаше всего используются выводы параллельных портов ввода/вывода, для которых эта функция является альтернативной. Источниками запросов внешних прерываний также могут быть любые изменения внешних сигналов на некоторых специально выделенных линиях портов ввода/вывода.
Источниками внутренних запросов прерываний могут служить следующие события:
* переполнение таймеров/счетчиков;
* сигналы от каналов входного захвата и выходного сравнения таймеров/счетчиков или от процессора событий;
* готовность памяти EEPROM;
* сигналы прерывания от дополнительных модулей МК, включая завершение передачи или приема информации по одному из последовательных портов и другие.
Любой запрос прерывания поступает на обработку, если прерывания в МК разрешены и разрешено прерывание по данному запросу. Адрес, который загружается в программный счетчик при переходе к обработке прерывания, называется «вектор прерывания». В зависимости от организации модуля прерываний конкретного МК различные источники прерываний могут иметь разные векторы или использовать некоторые из них совместно. Использование различными прерываниями одного вектора обычно не вызывает проблем при разработке программного обеспечения, так как аппаратная часть МК фиксирована, а контроллер чаще всего выполняет одну-единственную программу.
Вопрос о приоритетах при одновременном поступлении нескольких запросов на прерывание решается в различных МК по-разному. Есть МК с одноуровневой системой приоритетов (все запросы равноценны), многоуровневой системой с фиксированными приоритетами и многоуровневой программируемой системой приоритетов.
Отдельно необходимо описать аппаратные прерывания, связанные с включением питания, подачей сигнала «сброс» и переполнением сторожевого таймера. Они имеют немаскируемый характер и чаще всего разделяют один общий вектор прерывания. Это вполне логично, поскольку результатом каждого из событий является начальный сброс МК.
Размещено на Allbest.ru
...Подобные документы
Выбор структуры одноплатного микроконтроллера. Модули памяти микроконтроллера. Селектор адреса портов ввода/вывода и возможность изменения селектируемых адресов. Деление адресного пространства на окна. Нумерация точек в схеме цифрового фильтра.
курсовая работа [204,3 K], добавлен 10.11.2013Схема линии связи и подключения абонентов. Ведение передачи информации в последовательном коде. Использование интерфейсного модуля-контроллера связи для ее реализации. Схема микроконтроллера, описание работы портов. Создание проекта в AVR Studio.
контрольная работа [82,6 K], добавлен 24.02.2014Понятие о микропроцессорах и микроконтроллерах. Блок управления и его функции. Структура разряда порта микроконтроллера. Структура внутренней памяти данных. Работа с внешней памятью данных и подключение внешней памяти. Принцип работы и настройка таймера.
презентация [665,8 K], добавлен 06.02.2012Формирование кодовой таблицы аналогового сигнала. Общая характеристика микроконтроллера P83C51RB+. Дискретизация заданного сигнала генератора. Организация памяти и программная модель, регистры SFR микроконтроллера. Параллельные порты ввода/вывода.
курсовая работа [1005,6 K], добавлен 07.08.2013Разработка расширителя портов ввода-вывода и особенности его применения. Программируемая логическая интегральная схема CPLD. Плис CoolRunner-II, главные функции. Листинг модулей на языке Verilog. Временная диаграмма, внутреннее содержание модуля.
курсовая работа [1,9 M], добавлен 26.01.2013Описание интегратора первого порядка. Обзор микроконтроллера AТmega16. Доопределение набора аппаратных средств. Схема включения микроконтроллера. Формирование тактовых импульсов. Организация сброса. Алгоритм работы и проектирование модулей устройства.
курсовая работа [1,1 M], добавлен 19.12.2010Порядок размещения и принцип развития сети отделений почтовой связи и почтовых ящиков в городе. Системы обработки и продвижения почты в городе. Организация перевозки почты в городе. Организация доставки почты в городе. Организация городской служебной почт
курсовая работа [22,5 K], добавлен 15.02.2005Тенденция развития оптических сетей связи. Анализ состояния внутризоновой связи Республики Башкортостан. Принципы передачи информации по волоконно-оптическим линиям связи. Выбор оборудования, оптического кабеля, организация работ по строительству.
дипломная работа [3,1 M], добавлен 20.10.2011Использование аппаратных и программных средств в устройствах обработки информации. Организация взаимодействия устройств, входящих в систему, при помощи микропроцессора. Описание микроконтроллера, процессорного блока, адаптера параллельного интерфейса.
курсовая работа [515,2 K], добавлен 18.09.2010Использование помехоустойчивого кодирования в системах передачи информации. Построение структурной схемы восьмиразрядного микроконтроллера M68HC11. Разработка алгоритма кодирования и декодирования информации. Подключение внешних портов ввода/вывода.
курсовая работа [1,7 M], добавлен 05.09.2014Организация поездной радиосвязи. Расчет дальности действия радиосвязи на перегоне и на станции. Радиоаппаратура и диапазон частот. Выбор и анализ направляющих линий. Организация станционной радиосвязи. Организация громкоговорящей связи на станции.
курсовая работа [484,8 K], добавлен 28.01.2013Особенности микроконтроллера ATTINY семейства AVR. Описание ресурсов микроконтроллера ATTINY12: описание процессора, порты ввода/вывода, периферийные устройства, архитектура ядра. Разработка устройства со световыми эффектами на базе микроконтроллера.
курсовая работа [2,1 M], добавлен 24.06.2013Микроконтроллер ATtiny2313/V фирмы Atmel: структура, основные характеристики, возможности. Центральное ядро процессора. Системная перепрограммируемая Flash-память программ. Порты ввода-вывода микроконтроллера. Блок-схема восьмиразрядного таймера/счётчика.
курсовая работа [2,2 M], добавлен 11.01.2011Понятие и функциональные особенности микроконтроллера, его структура и взаимодействие основных элементов, архитектура. Принципы работы светодиодного табло и порядок программирования микроконтроллера. Основные понятия и измерение надежности системы.
курсовая работа [108,1 K], добавлен 29.03.2014Порядок размещения и принцип развития сети отделений почтовой связи и почтовых ящиков в городе. Расчет количества отделений почтовой связи открытого типа. Организация обслуживания клиентов услугами почтовой связи и проектирование перевозок почты.
курсовая работа [94,0 K], добавлен 07.02.2011Организация работы и автоматизация почтовых операций при помощи программных продуктов: "Система слежения", "Газеты-розница", "Подписка". Организация доставки почты на узлах связи. Порядок высылки сверхлимитных остатков кассы в отделения почтовой связи.
курсовая работа [2,3 M], добавлен 28.03.2013Структура стандарта GSM-800: организация покрытия современной мобильной станции, способ модуляции, организация приема и передачи информации. Выбор, создание и расчет структурных схем РПУ и РПрУ мобильной станции. Принцип работы микросхем ИС-синтезаторов.
курсовая работа [4,7 M], добавлен 06.02.2012Структура аппаратного обеспечения. Перечень процессоров системы 212. Оборудование доступа, используемое в коммутационной системе AXE-10. Организация многопроцессорной системы. Абонентская ступень, система ввода-вывода, автоинформатор и оборудование.
курсовая работа [28,9 K], добавлен 01.06.2009Классификация и структура микроконтроллеров. Структура процессорного ядра микроконтроллера, основные характеристики его производительности. Архитектура процессорного модуля, размер и тип встроенной памяти, набор периферийных устройств, тип корпуса.
курсовая работа [41,7 K], добавлен 28.08.2010Функциональная спецификация, описание объекта, структура системы и ресурсов микроконтроллера. Ассемблирование, программирование микроконтроллера и разработка алгоритма работы устройства, описание выбора элементной базы и работы принципиальной схемы.
курсовая работа [2,2 M], добавлен 02.01.2010