Научная литература
booksshare.net -> Добавить материал -> Физика -> Александров Е.К. -> "Микропроцессорные системы" -> 226

Микропроцессорные системы - Александров Е.К.

Александров Е.К., Грушвицкий Р.И., Купрянов М.С., Мартынов О.Е. Микропроцессорные системы — Спб.: Политехника, 2002. — 935 c.
ISBN 5-7325-0516-4
Скачать (прямая ссылка): mikroprocessorniesistemi2002.djvu
Предыдущая << 1 .. 220 221 222 223 224 225 < 226 > 227 228 229 230 231 232 .. 528 >> Следующая

два буферных регистра данных, программно доступных по одному и тому же
адресу. При выполнении операции записи в регистр данных SPDR данные будут
запомнены в буферном регистре передатчика. Буфер данных передатчика
недоступен для чтения. Операция чтения регистра SPDR возвращает данные из
буферного регистра приемника. Буфер данных приемника недоступен для
записи.
Если контроллер настроен для работы в режиме ведущего, то обмен данными в
любом из направлений (прием или передача) инициируется операцией записи
байта в регистр данных. Этот байт сначала автоматически копируется в
сдвиговый регистр, а затем
40 ?
8-РАЗРЯДНЫЕ МИКРОКОНТРОЛЛЕРЫ
Рис. 4.53. Функциональная схема контроллера SPI08
сдвигается в течение 8 тактов генератора синхронизации обмена на линию
MOSI. Одновременно на линию SCK выдаются импульсы синхронизации. Каждый
из импульсов синхронизации SCK, поступающих от ведущего на одноименный
вход ведомого, вызывает операцию сдвига данных на один разряд в сдвиговом
регистре принимающего устройства. В результате очередной бит, переданный
ведущим по линии MOSI, запоминается в регистре-приемнике, но одновременно
на линию MISO выдвигается очередной старший бит этого регистра. Бит с
линии MISO фиксируется в сдвиговом регистре ведущего. При завершении
передачи 8 бит данных от ведущего к ведомому в сдвиговом регистре
ведущего окажется принятый байт данных от ведомого. Если пользователь
желает реализовать передачу байта данных от ведущего к ведомому, то для
осуществления обмена в программе ведущего в регистр данных контроллера
SPI08 записывается передаваемый байт, а при завершении передачи
бесполезные данные из регистра данных порта SPI08 просто не считываются.
Если же пользователь желает реализовать прием байта данных, то для
осуществления обмена в программе ведущего в регистр данных контроллера
SPI08 записывается любой "ненужный" байт, а при завершении передачи
принятый полезный байт данных считывается из регистра данных порта SPI08.
Завершение передачи каждого байта данных отмечается установкой в "1" бита
SPIF регистра состояния SPSR. Этот бит генерирует запрос на прерывание,
если прерывания от модуля SPI
406
СЕМЕЙСТВО МК НС08 ФИРМЫ "MOTOROLA"
разрешены (бит SPIE = 1). При обмене с высокими скоростями в режиме
ведущего бит завершения передачи байта SPIF следует контролировать
программно. Для этого после записи очередного байта в регистр данных
следует прочитать регистр состояния SPSR, дождаться, пока бит SPIF не
установится, а затем произвести считывание принятых данных или запись
следующего передаваемого байта в регистр данных (в зависимости от
направления передачи). Бит SPIF сбрасывается в "О" автоматически при
выполнении последовательности из двух операций:
. чтение регистра состояния SPSR при установленном бите SPIF;
. чтение или запись в регистр данных SCDR.
Если контроллер SPI08 работает в режиме ведомого, то момент начала
передачи определяет ведущий. Поэтому следует организовать прерывания по
запросу от триггера SPIF, в подпрограмме обработки которого принятый байт
будет прочитан из регистра данных и проанализирован, а при необходимости
предоставления ведущему каких-либо данных очередной байт будет записан в
регистр данных для последующей передачи при поступлении импульсов
синхронизации SCK от ведущего.
Контроллер SPI08 поддерживает 4 возможных режима SPI. Для задания
детализированной временной диаграммы обмена следует использовать биты
СРНА и CPOL регистра управления SPCR. Скорость обмена в режиме ведущего
определяется программно настраиваемым коэффициентом делителя fBUS (биты
SPR1 :SPR0 регистра управления). Максимальная скорость обмена составляет
fBUSl2, минимальная - fBUSl 128. В режиме ведомого биты SPR1 :SPR0 не
оказывают влияния на работу контроллера. Скорость обмена определяется
ведущим, она может достигать fBUS.
Программно-логическая модель модуля SPI08 включает три регистра
специальных функций:
1) SPCR - регистр управления модуля SPI08; >
2) SPSCR - регистр состояния модуля SPI08;
3) SPDR - регистр данных модуля SPI08.
Форматы регистров SPCR и SPSCR приведены в табл. 4.40 и 4.41. Регистр
данных SPDR доступен по адресу 0012h.
Таблица 4.40
Формат регистра SPCR
SPCR I Регистр управления модуля SPI08
7 6 5 4 3 2 1 0
SPRIE | х | SPMSTR | CPOL | СРНА | SPWOM | SPE I SPTIE
Состояние при сбросе: 28h Адрес 001 Oh
Имя бита Назначение бита
SPRIE Бит разрешения прерывания по запросу приемника модуля SPI Бит
разрешает генерацию запроса на прерывание при установленном бите SPRF: 1
-прерывания по запросу приемника разрешены; 0 - прерывания по запросу
приемника запрещены. Биты доступен для чтения и для записи. При сбросе
прерывания от приемника запрещаются.
SPMSTR Бит режима работы контроллера SPI 1 - контроллер SPI работает
в режиме ведущего (Master); 0 - контроллер SPI работает в режиме ведомого
(Slave). Бит доступен для чтения и для записи. При сбросе назначается
режим ведомого.
Предыдущая << 1 .. 220 221 222 223 224 225 < 226 > 227 228 229 230 231 232 .. 528 >> Следующая

Реклама

c1c0fc952cf0704ad12d6af2ad3bf47e03017fed

Есть, чем поделиться? Отправьте
материал
нам
Авторские права © 2009 BooksShare.
Все права защищены.
Rambler's Top100

c1c0fc952cf0704ad12d6af2ad3bf47e03017fed