Использование двух процессоров
В системах, основанных на распределенной обработке информации, два или большее число микроконтроллеров совместно решают вычислительные задачи. Одно из преимуществ такой организации заключается в повышении вычислительной мощности и быстродействия. [acenter][/center]
Это может также увеличивает количество входов и выходов системы, что позволяет ей обслуживать, например, большее число двигателей и датчиков. Программирование системы такого типа — сложная задача, поскольку микроконтроллеры работают одновременно и их необходимо синхронизовать друг с другом через набор сигналов квитирования. Достаточно простую систему.
Эта система основана на использовании двух физически независимых микроконтроллеров PIC, связанных проводами или по радиоканалу, которые работают попеременно. Один из них ожидает или выполняет мелкие задачи, в то время как другой занят выполнением более сложной задачи. По ее завершении, ранее занятый PIC сигнализирует ожидающему PIC, который переходит в состояние занятости, пока другой «отдыхает». Системы подобного типа легче программировать, поскольку в любой момент времени активен только один процессор.
Микроконтроллер посылает импульс через канал RC0, а принимает- через канал RC1. Этот стиль программирования легко поддается планированию, однако он основан на таком программировании обоих контроллеров, при котором они придерживаются предсказуемой последовательности действий.
Один импульс ограничен по своему смыслу. Чаще всего он означает «Моя работа завершена, теперь твоя очередь».
Передача кодированного байта дает принимающему микроконтроллеру гораздо больше информации.
Один байт может принимать любые значения из диапазона 0 до 255, т.е. может иметь до 256 различных смыслов. Например, если робот «Андроид» получил дополнительный двигатель для перемещения левого манипулятора, то управление этим двигателем может быть передано ведомому микроконтроллеру PIC, а остальная часть обработки информации возложена на ведущий. Ведущий PIC посылает ведомому сигналы, сообщая, какой двигатель следует включить, в каком направлении должен вращаться его вал и, возможно, — с какой скоростью.
Ведущий PIC посылает один из предварительно заданных наборов кодовых байтов, а ведомый выполняет требуемые действия.
Для последовательной передачи байтов от ведущего микроконтроллера PIC к ведомому используется приемопередатчик USART.
Канал RB7 (вывод 10) ведущего PIC соединен с каналом RB5 (вывод 12) ведомого. Обычное проводное соединение вполне приемлемо при условии, что оно не слишком длинное, а два микроконтроллера запитаны от одного и того же источника питания. Можно посоветовать в этом случае использовать легкий экранированный кабель, если расстояние превосходит несколько сантиметров. На одном из концов экран кабеля следует подсоединить к шине 0 В.
Листинг программы для ведущего микроконтроллера PIC включает в себя сегменты конфигурирования USART для его активизации и передачи байта данных. Байт должен находиться в рабочем регистре перед вызовом подпрограммы transmit.
Листинг программы для ведомого микроконтроллера PIC включает в себя сегменты конфигурирования USART для его активизации и приема байта данных. Если был принят новый байт, то он находится в регистре RCREG, а флаг нулевого результата регистра STATUS установлен.
Источник: qwedr.com