Multi-master система или «черная пятница»

Уже в четырех записях я упомянул чудесный параллельный интерфейс EBI. Он идентичен, что у STM32, что у ATSAM. Некоторые называют интерфейс асинхронным, но это не так: отсутствует лишь порт тактовой частоты, однако периферии на этот счет хватает.

 

 

Суть вопроса?

МК — управляющий, а все остальные — подчиненные.

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

Ashampoo_Snap_2015.04.20_15h58m46s_001_

 

Это будет долго, в любом случае. Почему бы не соорудить на ПЛИС внешний DMA контроллер? Ко всему прочему будет возможность развить его во что-то большее, чем простой пересыльщик. Здесь всплывают следующие проблемы:

  • У МК нету средства отсоединения от передающей шины, когда ее использует DMA. Произойдут короткие замыкания.
  • Кто и как будет решать, чью шина?
  • Как передавать данные «пересыльщику»?

Мы приходим к системе с двумя управляющими (Master) или ее называют Multi-master системой.

Ashampoo_Snap_2015.04.20_16h26m01s_002_

Микроконтроллер может также свободно работать с шиной, отдавать команды DMA для пересылок и автоматически отключаться от шины. Все конфликты урегулируются новым блоком — Арбитр.

Арбитр

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

  1. Не пускать DMA в шину, пока с ней работает МК.
  2. Не пускать МК в шину, пока с ней работает DMA.

У обоих есть для этого специальные сигналы типа WAIT (подожди!). Отдельная ситуации — это когда контроллер будет передавать данные контроллеру пересылок.

Ворота

Для того, чтобы переключать линии между устройствами необходимо что-то в роде мультиплексора. Да! Но в нашем случае необходим двунаправленный и четырехпортовый.

Ashampoo_Snap_2015.04.20_16h51m36s_003_

Необходима микросхема с параметром tpd < 7ns, иначе образуется слишком большая латентность.

Реализация 

Ниже представлены многоплатная система, состоящая из: ATSAM4C (МК), EP1C3 (ПЛИС), Арбитр (кучка логики и FET) и внешние модули: видеопроцессор и память.

DSCN612177777s

Демонстрация

Наглядное переключение шин, при захвате DMA. Прошу прощения за помехи.

Пример использования в качестве усовершенствованного DMA с некоторыми графическими функциями.

Все картинки (спрайты) хранятся в модуле внешней памяти, куда их загружает микроконтроллер при старте.

Почему «черная пятница»?

Из-за сбоя в питании, естественно по моей вине, вся система целиком и полностью сгорела. Резкий запах пластмассы дал понять, что это был последний эксперимент. В связи с этим, я не могу продолжать  цикл обучающих статей по ARM Cortex-M4, увы. Это также касается FPGA.

Вы можите оставить комментарий, или поставить трэкбек со своего сайта.

Есть 1 комментарий. к “Multi-master система или «черная пятница»”