Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
LAB6_W95.DOC
Скачиваний:
17
Добавлен:
16.04.2013
Размер:
167.42 Кб
Скачать

6.2.2. Организация локальной сети на основе

интерфейса SPI.

Последовательный периферийный интерфейс предназначен для соединения микроконтроллеров друг с другом или с периферийными устройствами. Использование двух линий данных (MISO и MOSI) позволяет реализовать дуплексную связь, а поддержка статуса ОЭВМ в сети (Master/Slave) дает возможность вести корректный арбитраж при пользовании сетью.

Схема соединения отладочных модулей посредством SPI приведена на рис.6.7. Сигналы MISO, MOSI, SCK, SS и C0 ведущего ОМ, буферизированы, а на ведомых ОМ кроме этого сигналы SS и С0 проходят через логический блок, который формирует активный (низкий) уровень на входе выбора нужного ведомого устройства SS (в зависимости от сигнала C0, поступающего от ведущего ОМ).

Рис.6.7. Схема соединения отладочных модулей посредством SPI.

В данной лабораторной работе используется подключение ОМ по три (см. рис.6.7.). При этом один из них жестко сконфигурирован как ведущий (Master) и два как ведомые (Slave). Указанная конфигурация осуществляется с помощью установленных на плате соответствующих перемычек и модули соединяются между собой через разъемы SPI посредством специального кабеля SPI. Выбор одной или другой ведомой платы для организации связи осуществляется младшим битом параллельного порта C (0 - ведомый ОМ1, 1 - ведомый ОМ2).

Рассмотрим работу SPI на примере, в котором демонстрируется обмен данными между ведущим и ведомым устройствами. Программы примера функционируют следующим образом. Командой с адресом $212 в программе 1 посылаются данные по сети. Затем программа дожидается окончания передачи (команда с адресом $214). Как только передача завершена (это значит, что завершен и прием данных, так как он протекает параллельно передаче), программа загружает полученное значение в регистр X и завершается. Программа 1 должна запускаться на ведущем ОМ, программа 2 - на ведомом, причем программа 2 должна быть запущена на выполнение первой. Программа 2 дожидается окончания обмена и увеличивает полученное число на 1, чтобы в следующий раз переслать его обратно. Заметим, что командами $20C..$20F одновременно сбрасывается флаг окончания приема данных (RDRF).

Программа 1:

200 LDA #$FF Конфигурируем порт C

STA $6 на запись.

LDA #$1 Выбираем ведомый

STA $2 микроконтроллер 2.

LDA #$18 Конфигурируем порт D

STA $7 (линии D3, D4 на вывод, остальные на ввод).

LDA #$54 Разрешаем передачу по SPI с выбранной

STA $A полярностью синхросигнала.

210 LDA $0 Посылаем код, набранный на переключателях

212 STA $C по сети.

214 BRCLR #7,*$B,$214 Ждем окончания передачи.

217 LDX $C Считываем полученное значение.

219 BRA $219 Организуем бесконечный цикл.

Программа 2:

200 LDA #$4 Конфигурируем порт D

STA $7 (линию D2 на вывод, остальные на ввод).

LDA #$44 Разрешаем прием по SPI с выбранной

STA $A полярностью синхросигнала.

LDX $B Сбрасываем

STA $C флаги.

20C BRCLR #7,*$B,$20C Ждем окончания приема.

20F INC $C Инкрементируем полученный байт.

213 BRA $20C Возвращаемся на прием данных.

Поставьте точку останова по адресу $219 в программе 1 и запустите сначала программу 2, затем программу 1. В результате в регистрах A и X ведущего микроконтроллера будут содержаться посланное и принятое значения соответсвенно (в регистре А - то, что установлено на переключателях платы имитатора, в регистре Х - число $44). Запуская программу 1 несколько раз с различным положением переключателей, убедитесь, что приходящее с ведомого ОМ число на 1 больше того, которое передавалось на него в предшествующий сеанс связи.

Аналогично последовательному интерфейсу связи, при выполнении заданий следует учитывать, что адрес подпрограммы обработки прерывания от SPI должен заноситься в ячейки $1FF4 (старший байт) и $1FF5 (младший байт).

Соседние файлы в предмете Отладка микроконтроллеров ЭВМ