System Event в Xmega

    В микроконтроллерах XMEGA существует много периферийных устройств, но процессорное ядро ​​- только одно. Может показаться, что ядро ​​не может не успевать обрабатывать данные, отправленные по периферии. Разработчики XMEGA предоставили инструменты, позволяющие периферийным устройствам обмениваться данными друг с другом полностью без посредничества ядра - такими как DMA и системой событий(System Event). В этой статье ​​мы рассмотрим систему событий, а DMA будет обсуждаться в последующих разделах.
    Нам необходимо понять точную разницу между прерыванием и событием. После сообщения о прерывании процессор прерывает ранее выполненные операции, переходит к процедуре обслуживания прерываний и затем возвращается к ранее выполняемой программе.
    Событие может быть выполнено без какой-либо реакции ядра процессора .  Примером события может быть переполнение таймера, которое инициирует измерение с помощью аналого-цифрового преобразователя. Другим событием может быть изменение состояния аналогового компаратора, которое записывается таймером.
    Событие может генерировать систему, называемую передатчиком. Вы также можете генерировать событие программно. Мы можем подключить один или несколько приемников к каждому передатчику. Большинство периферийных устройств могут быть как передатчиками, так и приемниками. Ничто не мешает приемнику одного события быть передатчиком следующего. Таким образом, вы можете комбинировать таймеры в цепочку, и вы можете создать 64-разрядный таймер или больше. Пример передатчика и приемника показан на рисунке ниже.
    Важным преимуществом события над прерыванием является высокая скорость реакции. Для генерации события для его реализации приемником достаточно всего двух тактовых циклов. В случае прерывания - просто ввод процедуры требует гораздо больше времени. События имеют 100% прогнозируемое время обработки и, как уже упоминалось, не связаны с процессором, поэтому он может решать другие задачи. Более того, ядро процессора можно даже отключить , поставив его в спящий режим! Таким образом, использование системы событий может значительно снизить потребление энергии .
    Передатчики и приемники подключены друг к другу с использованием сетевого соединения ( маршрутизирующей сети ). В случае микроконтроллера Atxmega128A3U он состоит из восьми каналов, которые подаются на все периферийные устройства, которые могут функционировать как приемники событий. В «начале» каждого канала есть мультиплексор, электронный переключатель, который может использоваться для установки, какая периферийная система должна быть передатчиком событий. Таким образом, мы можем построить сеть подключений в соответствии с вашими потребностями . Хотя это может показаться очень сложным, на практике использование системы событий тривиально просто.
    Система событий - это не только пассивный посредник и сеть соединений. Он также позволяет использовать некоторые интересные функции, такие как цифровой фильтр и квадратурный декодер . Фильтр позволяет устранить шум, который полезен, когда передатчик событий является контактным разъемом процессора, например, с помощью кнопки. Квадратурный декодер позволяет очень просто подключать поворотные датчики, например, в ручках осциллографа. Благодаря полностью аппаратной поддержке использование кодировщика в программе становится таким же простым, как подключение клавиатуры!
    Blogger Comment
    Facebook Comment

0 коммент.:

Отправить комментарий