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

Простой пример, демонстрирующий необходимость быстрой реакции на событие, показан на Рис. 7.1. В данном случае нам необходимо измерить время между точками R сигнала электрокардиограммы (ЭКГ), который, по определению, является внешним событием реального времени. Временное разрешение должно быть не менее 0.1 мс, а наибольший интервал между максимальными значениями сигнала скорее всего не превысит 1.5 с. Для измерения этого интервала с заданными параметрами можно было бы использовать независимый 16-битный счетчик, работающий на частоте 10 кГц. Как мы увидим в главе 13, все микроконтроллеры среднего уровня имеют 8-битный счетчик, счетный регистр которого расположен по адресу h’01’. На Рис. 7.1 показано, как можно с помощью регистра h’3F’ организовать 16-битный счетчик. Этой конфигурации соответствует Программа 13.2, приведенная на стр. 462. Пока же предположим, что состояние счетчика можно считать из двух указанных регистров в любой момент времени. Если состояние счетчика, соответствующее последней точке R, было сохранено в двух временных регистрах, то, вычитая состояние счетчика, соответствующее текущей точке R, получим требуемую длительность.

Рис. 7.1.Обнаружение и обработка внешнего события

Следующей задачей является обнаружение максимального уровня сигнала, поскольку сердце пациента, по определению, не синхронизировано с микроконтроллером! Один из возможных способов определения точки R заключается в непрерывном считывании этого сигнала и обработки его по алгоритму выделения максимума. В данном случае для обеспечения заданного временного разрешения применение метода последовательного опроса (polling) потребует проведения измерений 10 000 раз в секунду. Учитывая, что частота сердцебиения обычно составляет около 60 ударов в минуту, 99.99 % времени будет затрачено впустую. Более того, это означает, что бóльшая часть вычислительной мощности процессора будет затрачена на обнаружение одного события из 10 000.

В качестве альтернативы можно воспользоваться внешним устройством, задачей которого будет обнаружение максимального уровня сигнала. Это устройство может быть как полностью аналоговым, так и построенным на базе микроконтроллера с аналого-цифровым преобразователем (см. Пример 14.2 на стр. 529). Независимо от реализации, этот блок будет посылать сигнал основному процессору при обнаружении точки R. Этот сигнал используется для прерывания работы микроконтроллера, который должен приостановить выполнение текущей задачи и изменить состояние счетчика не позже чем через 100 мкс.

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

Обратной стороной мониторинга сигналов в реальном времени с использованием прерываний является усложнение аппаратных средств и аппаратно-программного интерфейса. Если вы совсем запутались, вообразите себе телефонную сеть. Можно построить такую сеть, при которой абонент снимал бы трубку, скажем, каждые 5 мин и спрашивал: «Эй! Есть тут кто-нибудь?» Не говоря уже о неудобствах (накладные расходы), связанных с выполнением этой операции[98], звонящему может просто надоесть ждать, и он повесит трубку. Разумеется, можно снизить вероятность такого события, увеличивая частоту опроса до, скажем, одного раза в минуту. Однако в этом случае вам придется проводить все свое время у телефона, принимая при этом всего несколько звонков в день. То есть 99 % ваших усилий будет затрачено впустую.

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

Перейти на страницу:

Все книги серии Программируемые системы

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

Данная книга представляет собой исчерпывающее руководство по микроконтроллерам семейства PIC компании Microchip, являющегося промышленным стандартом в области встраиваемых цифровых устройств. В книге подробно описывается архитектура и система команд 8-битных микроконтроллеров PIC, на конкретных примерах изучается работа их периферийных модулей.В первой части излагаются основы цифровой схемотехники, математической логики и архитектуры вычислительных систем. Вторая часть посвящена различным аспектам программирования PIC-микроконтроллеров среднего уровня: описывается набор команд, рассматривается написание программ на ассемблере и языке высокого уровня (Си), а также поддержка подпрограмм и прерываний. В третьей части изучаются аппаратные аспекты взаимодействия микроконтроллера с окружающим миром и обработки прерываний. Рассматриваются такие вопросы, как параллельный и последовательный ввод/вывод данных, временные соотношения, обработка аналоговых сигналов и использование EEPROM. В заключение приводится пример разработки реального устройства. На этом примере также демонстрируются простейшие методики отладки и тестирования, применяемые при разработке реальных устройств.Книга рассчитана на самый широкий круг читателей — от любителей до инженеров, при этом для понимания содержащегося в ней материала вовсе не требуется каких-то специальных знаний в области программирования, электроники или цифровой схемотехники. Эта книга будет также полезна студентам, обучающимся по специальностям «Радиоэлектроника» и «Вычислительная техника», которые смогут использовать ее в качестве учебного пособия при прослушивании соответствующих курсов или выполнении курсовых проектов.

Сид Катцен

Радиоэлектроника

Похожие книги

Электроника для начинающих (2-е издание)
Электроника для начинающих (2-е издание)

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

Чарльз Платт

Радиоэлектроника / Технические науки
Электроника для начинающих
Электроника для начинающих

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

Паоло Аливерти , Чарльз Платт

Радиоэлектроника / Технические науки
Искусство схемотехники. Том 3 (Изд.4-е)
Искусство схемотехники. Том 3 (Изд.4-е)

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

Пауль Хоровиц , Уинфилд Хилл

Техника / Радиоэлектроника