Общие сведения о микроконтроллерах
ОБЩИЕ С ВЕДЕНИЯ О МИКРОКОНТРОЛЛЕРАХ
Микроконтроллер - микропроцессорное ядро, память и интерфейсные модули, выполненные в одном кристалле.
Обобщенная структурная схема микроконтроллера
Объем адресуемой памяти определяется разрядностью шины адреса.
Разрядность шины данных памяти программ совпадает с разрядностью команды CPU. Разрядность шины данных памяти данных совпадает с разрядностью данных CPU.
Система прерываний
Служит для прерывания выполнения основной программы при появлении определенного события, связанного с работой периферийных устройств.
Рекомендуемые материалы
События (источники прерываний):
- таймера (переполнение или антипереполнение, момент равенства содержимого таймера/счетчика и регистра сравнения, момент захвата внешнего импульса);
- последовательных портов (окончание приема или записи байта, неправильный формат кадра, переполнение буфера приемника или передатчика);
- АЦП (готовности данных);
- ЕЕРRОМ (момент окончания операции);
- параллельных портов (по фронту, по спаду, по уровню импульса на выводе);
- компаратора (момент равенства напряжений, переход от отрицательной разности к положительной и наоборот);
- при сбросе микроконтроллера, при обнаружении падения напряжения питания.
Для каждого прерывания может быть собственная подпрограмма - обработчик прерывания. Каждому источнику прерывания соответствует адрес в памяти программ - вектор прерывания. Вектора расположены в определенном порядке и образуют таблицу прерываний.
Порядок следования векторов прерываний задает порядок их выполнения (приоритет) при одновременном появлении нескольких событий. Этот порядок соответствует приоритетам источников прерываний по умолчанию.
Существуют двухуровневая (высший и низший) и многоуровневая системы приоритетов. Приоритет по умолчанию может быть изменен установкой соответствующих битов в SFR – регистре приоритетов.
Прерывания программы от источников прерываний могут быть разрешены или запрещены установкой или сбросом соответствующих битов в SFR - регистре разрешения прерываний. Запрещение прерываний называется маскированием.
Работа системы прерываний
1. Событие от источника прерывания сопровождается установкой определенного бита в SFR - регистре флагов прерываний. Этот факт называется запросом прерывания.
2. Если запрашиваемое прерывание запрошено (замаскировало), то никаких изменений в работе программы не происходит.
3. Если разрешено, то выполнение основной программы приостанавливается адрес следующей команды (содержимое счетчика команд+1) сохраняется в стеке, в счетчик команд загружается требуемый вектор прерывания (происходит переход на адрес = вектору прерывания). По адресу = вектору прерывания может быть расположена начальный адрес обработчика прерывании (1-2 команды) или команда перехода на него (много команд).
4. Выполняется подпрограмма обработчика прерываний.
5. Последняя команда обработчика прерывания: возврат из прерывания.
6. По команде «возврат их прерывания» происходит загрузка из стека адреса сохраненной перед прерыванием основной программы команды. Продолжается выполнение основной программы.
7. Если в процессе выполнения обработчика прерываний появляется запрос от источника прерывания с более высоким приоритетом текущий обработчик прерывается описанным выше способом на выполнение высокоприоритетного обработчика прерываний. Запрос от низкоприоритетного источника откладывается до завершения обработчика текущего (высокоприоритетного) прерывания.
Схема обработки прерывания
Стек данных
При выполнении команд основной программы и подпрограмм обработчиков прерываний для хранения временных данных (операндов, результата, слова состояния и т.п.) используется один и тот же набор рабочих регистров. Из-за случайности момента появления запроса прерывания переход на обработчик прерывания сразу после его появления может привести к нарушению нормального хода выполнения программы из-за разрушения данных основной программы. Поэтому, перед переходом на обработчик прерывания следует сохранить содержимое рабочих регистров (сохранение контекста), а после завершения обработчика восстановить их содержимое.
Для сохранения содержимого рабочих регистров выделяется специальная область в памяти данных - стек данных. Для загрузки данных в стек и выгрузки их из стека в системе команд микроконтроллера имеются специальные команды.
При загрузке данных в стек его размер увеличивается, при выгрузке - уменьшается. Если имеется много вложенных прерываний, то область стека может перекрываться с областью других данных программы и нарушить ее нормальную работу.
Максимальный уровень вложенности прерываний должен регулироваться программистом установкой необходимых приоритетов прерываний, а также размерами резервируемой под стек области памяти данных.
Стек данных строится по типу LIFO (последним зашел - первым вышел).
Микроконтроллеры Intel, Motorola и Microchip
На сегодняшний день основными производителями микропроцессоров являются: Intel, Motorola и Microchip.
Сравнение микроконтроллеров данных производителей.
Intel:
Микроконтроллеры ориентированы на математику, имеют небольшой объем своей памяти.
"+" имеются интерфейсы внешней памяти
"+" совместимость выходных сигналов с TTL, CMOS
"+" максимальная совместимость
"+" универсальность
"+" большая вычислительная мощность
"-" большая потребляемая мощность
MitelMotorola:
"+" обилие и разнообразие интерфейсов
"+" "оконечное устройство в одной микросхеме"
"+" SMART интерфейсы
"-" одна микросхема - одно устройство
"-" минимальная совместимость
"-" минимальная программируемость
Microchip:
"+" большое количество встроенных модулей, в комплекте со схемным решением очень универсальны
"+" максимальная универсальность
Вам также может быть полезна лекция "Введение".
"+" энергосберегающий режим (самый лучший)
"+" внутрисхемное программирование и отладка
"+" мультиплексируемость выводов микросхем
"+" RISC – архитектура, оптимизированная под производительность
"+" функциональная законченность
"+" защита программного кода