Описание SPI протокола и интерфейса передача данных

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

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

В SPI используются четыре цифровых сигнала:

MOSI — выход ведущего, вход ведомого (англ. Master Out Slave In). Служит для передачи данных от ведущего устройства ведомому.

MISO — вход ведущего, выход ведомого (англ. Master In Slave Out). Служит для передачи данных от ведомого устройства ведущему.

SCLK — последовательный тактовый сигнал (англ. Serial Clock). Служит для передачи тактового сигнала для ведомых устройств.

CS или SS — выбор микросхемы, выбор ведомого (англ. Chip Select, Slave Select).

Преимущества:

Полнодуплексная передача данных по умолчанию.

Более высокая пропускная способность по сравнению с I²C.

Возможность произвольного выбора длины пакета, длина пакета не ограничена восемью битами.

Простота аппаратной реализации.

Форматы шестнадцатеричных файлов.

Intel HEX — формат файла, предназначенного для представления произвольных двоичных данных в текстовом виде. Большинство инструментов подготовки образов прошивки (компиляторы, редакторы, просмотрщики и т. п.) умеют работать с этим форматом.

Файл обычно имеет расширение.hex. Названия I8HEX, I16HEX и I32HEX иногда используются для определения набора записей, используемых в файле.

Достоинством формата (в отличие от простого двоичного) является возможность указывать только определенные области адресов (с точностью до байта). Многие микроконтроллерные архитектуры имеют несколько областей программирования с обширными пустотами в адресации между ними.

Файл состоит из текстовых ASCII строк. Каждая строка представляет собой одну запись. Каждая запись начинается с двоеточия (:), после которого идет набор шестнадцатеричных цифр кратных байту:

Начало записи (:).

Количество байт данных, содержащихся в этой записи. Занимает один байт (две шестнадцатеричных цифры), что соответствует 0…255 в десятичной системе.

Начальный адрес блока записываемых данных — 2 байта. Этот адрес определяет абсолютное местоположение данных этой записи в двоичном файле.

Один байт, обозначающий тип записи. Определены следующие типы записей:

0 — запись содержит данные двоичного файла.

1 — запись обозначает конец файла, данных не содержит. Имеет характерный вид «:00000001FF».

2 — запись адреса сегмента.

4 — запись расширенного адреса.

Последний байт в записи является контрольной суммой. Рассчитывается так чтобы сумма всех байтов в записи была равна 0.

Строка заканчивается стандартной парой CR/LF (0Dh 0Ah).


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: