161
есть место, т.е. что запись новых данных в буфер не приведет к уничтожению
ранее помещенных и еще не переданных данных.
При организации асинхронного обмена по прерыванию при приеме байта с
линии происходит прерывание и передача управления соответствующей
программе-обработчику, который читает принятый байт из порта данных
контроллера UART и, к
примеру, помещает его в специальный буфер-очередь
принятых байт, доступный прерванной программе. По завершении процедуры
обработки прерывания управление передается в прерванную программу,
которая при желании (в любом удобном месте алгоритма) может забрать
принятый байт. С другой стороны, при завершении отправки контроллером
очередного байта также происходит прерывание, сигнализирующее о том, что
байт послан и в буфер UART можно поместить новые данные. Обработчик
прерывания при наличии данных в исходящей очереди записывает очередной
байт в порт данных контроллера и запускает посылку. Основная же программа
может, не заботясь о готовности или неготовности контроллера, принять
очередной байт, может спокойно помещать данные в исходящий буфер, а всю
работу
с устройством выполнит обработчик прерываний, когда оно (устройство)
будет готово.
3.9.2 Интерфейс SPI
SPI (Serial Peripheral Interface) – последовательный синхронный стандарт
передачи данных в режиме полного дуплекса, разработанный компанией
Motorola для обеспечения простого и недорогого сопряжения
микроконтроллеров и периферии. SPI также иногда называют
четырёхпроводным (four-wire) интерфейсом.
Интерфейс SPI, наряду с I
2
C, относится к самым широко используемым
интерфейсам для соединения микросхем. Изначально он был придуман
компанией 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 правильнее