|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
МОДУЛЬ ПОСЛЕДОВАТЕЛЬНОГО СИНХРОННОГО ИНТЕРФЕЙСА SPI08
Модуль последовательного периферийного интерфейса 8P108 предназначен для вы- сокоскоростного обмена между МК и периферийными микросхемами, такими как АЦП и ЦАП, FLASH-пaмять большой информационной емкости, часы реального времени. Модуль SP108 обладает следующими характеристиками: · поддерживает два режима работы: ведущего (master) и ведомого (slave) приемо передатчиков; · позволяет программно настраивать частоту обмена, причем в формировании сетки частот модули таймеров Т1М08 и Р1Т08 не задействованы: где = 2, 8, 32, 128; максимальная частота обмена в режиме ведущего составляет 4,0 МГц, в режиме ведомого – 8,0 МГц; · генерирует запросы на прерывание c раздельными векторами по завершению приема очередного байта или по окончании передачи байта; · генерирует два флага нарушения режима работы: при переполнении приемника и при принудительной смене режима работы (ведущей/ведомый) в процессе незавершенного обмена; · позволяет программно конфигурировать линии приема и передачи данных (Mi50 и MOS1) как линии с открытым коллекторным выходом; объединение М1S0 и M031 по схеме «монтажное ИЛИ» делает модуль совместимым с протоколом интерфейса 120. Контроллер 5Р108 обслуживает стандартную шину S[01, для чего имеет четыре линии: MOS1 – линия передачи данных от ведущего к ведомому (Master Output Slave Input); Mi80 –линия передачи данных от ведомого к ведущему (Master Input Slave Output); SPSCK – линия сигнала синхронизации данных; SS – линия выбора ведомого. Направление передачи каждой линии определяется выбором режима работы контроллера SP108. Если назначен режим ведущего (бит MSTR регистра управления SPCR равен 1), то линии МОS1 и SCK работают в режиме вывода, а линия MISO в режиме ввода. Если назначен режим ведомого (MSTR = 0), то линии M0S1, SCK и SS работают в режиме ввода, а MIS0 – в режиме вывода. В режиме ведущего линия SS может быть использована, как обычная линия ввода/вывода. Обслуживание модуля SP108 является альтернативной функцией для линий РТО. Если бит разрешения работы контроллера модуля установлен SРЕ = 1, то независимо от значения соответствующих битоd регистра направления передачи порта ввода/вывода его линии назначаются для работы в составе контроллера SP108. Функциональная схема контроллера 51'108 приведена на рис. 4.1. Основные элементы контроллера – 8-разрядный сдвиговый регистр (Shift Register) и два буферных регистра данных, программно доступных по одному и тому же адресу. При выполнении операции записи в регистр данных SPDR данные будут запомнены в буферном регистре передатчика. Буфер данных передатчика недоступен для чтения. Операция чтения регистра SPDR возвращает данные из буферного регистра приемника. Буфер данных приемника недоступен для записи. Если контроллер настроен для работы в режиме ведущего, то обмен данными в любом из направлений (прием или передача) инициируется операцией записи байта в регистр данных. Этот байт сначала автоматически копируется в сдвиговый регистр, а затем сдвигается в течение 8 тактов генератора синхронизации обмена на линию M0SI. Одновременно на линию SCK выдаются импульсы синхронизации. Каждый из импульсов синхронизации SCK, поступающих от ведущего на одноименный вход ведомого, вызывает операцию сдвига данных на один разряд в сдвиговом регистре принимающего устройства. В результате очередной бит, переданный ведущим по линии MOSI, запоминается в регистре-приемнике, но одновременно на линию M1S0 выдвигается очередной старший бит этого регистра. Бит с линии MIS0 фиксируется в сдвиговом регистре ведущего. При завершении передачи 8 бит данных от ведущего к ведомому в сдвиговом регистре ведущего окажется принятый байт данных от ведомого. Если пользователь желает реализовать передачу байта данных от ведущего к ведомому, то для осуществления обмена в программе ведущего в регистр данных контроллера SP108 записывается передаваемый байт, а при завершении передачи бесполезные данные из регистра данных порта SP108 просто не считываются. Если же пользователь желает реализовать прием байта данных, то для осуществления обмена в программе ведущего в регистр данных контроллера SP108 записывается любой «ненужный» байт, а при завершении передачи принятый полезный байт данных считывается из регистра данных порта SР108. Завершение передачи каждого байта данных отмечается установкой в «1» бита SPIF регистра состояния SPSR. Этот бит генерирует запрос на прерывание, если прерывания от модуля SPI разрешены (бит SPIЕ = 1). При обмене с высокими скоростями в режиме ведущего бит завершения передачи байта SPIF следует контролировать программно. Для этого после записи очередного байта в регистр данных следует прочитать регистр состояния SPSR, дождаться, пока бит ВР1Р не установится, а затем произвести считывание принятых данных или запись следующего передаваемого байта в регистр данных (в зависимости от направления передачи). Рис. 4.1. Функциональная схема контроллера SР108 Бит SPIF сбрасывается в «0» автоматически при выполнении последовательности из двух операций: · чтение регистра состояния SPSR при установленном бите SPIF; · чтение или запись в регистр данных SCDR. Если контроллер SP108 работает в режиме ведомого, то момент начала передачи определяет ведущий. Поэтому следует организовать прерывания по запросу от триггера SPIF, в подпрограмме обработки которого принятый байт будет прочитан из регистра данных и проанализирован, а при необходимости предоставления ведущему каких-либо данных очередной байт будет записан в регистр данных для последующей передачи при поступлении импульсов синхронизации SCK от ведущего. Контроллер SP108 поддерживает 4 возможных режима SPI. Для задания детализированной временной диаграммы обмена следует использовать биты СРНА и CPOL регистра управления SPCR. Скорость обмена в режиме ведущего определяется программно настраиваемым коэффициентом делителя (биты SPR1:SPRO регистра управления). Максимальная скорость обмена составляет /2, минимальная - /128. В режиме ведомого биты SPR1:SPR0 не оказывают влияния на работу контроллера. Скорость обмена определяется ведущим, она может достигать Программно-логическая модель модуля 81'108 включает три регистра специальных функций: 1) SPCR - регистр управления модуля SP108; 2) SPSCR - регистр состояния модуля SP108; 3) SPDR - регистр данных модуля SP108. Форматы регистров SPCR и SPSCR приведены в табл. 4.1 и 4.2. Регистр данных SPDR доступен по адресу 0012h.
Таблица 4.1 Формат регистра SPCR
Тaблица 4.41 Формат регистра SPSCR
Поиск по сайту: |
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.004 сек.) |