Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ИПУ ответы.docx
Скачиваний:
104
Добавлен:
20.04.2019
Размер:
5.23 Mб
Скачать

3.9.1.5 Работа с последовательным каналом

Простым примером асинхронного обмена с программной проверкой готовности может служить работа с контроллером последовательного канала (UART) «по опросу»: перед тем, как прочитать данные из порта данных контроллера, необходимо проверить, являются ли эти данные результатом приема посылки и не забирались ли они программой ранее. Проще говоря, необходимо проверить данные на достоверность. Перед тем же, как записывать данные для передачи в буфер контроллера, необходимо убедиться, что в буфере

160

есть место, т.е. что запись новых данных в буфер не приведет к уничтожению ранее помещенных и еще не переданных данных.

При организации асинхронного обмена по прерыванию при приеме байта с линии происходит прерывание и передача управления соответствующей программе-обработчику, который читает принятый байт из порта данных контроллера UART и, к примеру, помещает его в специальный буфер-очередь принятых байт, доступный прерванной программе. По завершении процедуры обработки прерывания управление передается в прерванную программу, которая при желании (в любом удобном месте алгоритма) может забрать принятый байт. С другой стороны, при завершении отправки контроллером очередного байта также происходит прерывание, сигнализирующее о том, что байт послан и в буфер UART можно поместить новые данные. Обработчик прерывания при наличии данных в исходящей очереди записывает очередной байт в порт данных контроллера и запускает посылку. Основная же программа может, не заботясь о готовности или неготовности контроллера, принять очередной байт, может спокойно помещать данные в исходящий буфер, а всю работу с устройством выполнит обработчик прерываний, когда оно (устройство) будет готово.

3.9.2 Интерфейс spi

SPI (Serial Peripheral Interface) – последовательный синхронный стандарт передачи данных в режиме полного дуплекса, разработанный компанией Motorola для обеспечения простого и недорогого сопряжения микроконтроллеров и периферии. SPI также иногда называют четырѐхпроводным (four-wire) интерфейсом.

Интерфейс SPI, наряду с I2C, относится к самым широко используемым интерфейсам для соединения микросхем. Изначально он был придуман компанией Motorola, а в настоящее время используется в продукции многих производителей [71]. Шина SPI организована по принципу «ведущий- подчиненный». В качестве ведущего шины обычно выступает микроконтроллер, но им также может быть программируемая логика, DSP- контроллер или специализированная интегральная схема. В роли подчиненных устройств выступают различного рода микросхемы, в том числе запоминающие устройства (EEPROM, Flash-память, SRAM), часы реального времени (RTC), АЦП/ЦАП, температурные датчики, сенсорные экраны, цифровые потенциометры, коммуникационные контроллеры (Ethernet, USB, CAN, IEEE

802.15.4, IEEE 802.11), ЖКИ, мультимедийные карты (SD, MMC) и др.

Кроме того, интерфейс SPI является основой для построения ряда специализированных интерфейсов, в том числе, интерфейса JTAG и интерфейсов карт Flash-памяти (мультимедийные карты SD и MMC).

Главным составным блоком интерфейса SPI является обычный сдвиговый регистр, сигналы синхронизации и ввода-вывода битового потока, которые и образуют интерфейсные сигналы. Таким образом, протокол SPI правильнее

161

назвать не протоколом передачи данных, а протоколом обмена данными между двумя сдвиговыми регистрами, каждый из которых одновременно выполняет и функцию приемника, и функцию передатчика. Непременным условием передачи данных по шине SPI является генерация сигнала синхронизации шины. Этот сигнал имеет право генерировать только ведущий шины и от этого сигнала полностью зависит работа подчиненного шины. Принимающая периферия (ведомая) синхронизирует получение битовой последовательности с тактовым сигналом. К одному последовательному периферийному интерфейсу ведущего устройства-микросхемы может присоединяться несколько микросхем. Ведущее устройство выбирает ведомое для передачи, активируя сигнал «выбор кристалла» (chip select) на ведомой микросхеме. Периферия, не выбранная процессором, не принимает участие в передаче по SPI.

Частота работы интерфейса SPI составляет 1-70МГц.