0: Здравствуйте, тема сегодняшней лекции интерфейс spi, сериал, периферия, интерфейс это очень простой способ передачи данных из 1 устройства, скажем, микроконтроллера к другому.
1: Скажем, датчику или к исполнительному механизму, и для его пояснения мы начнём с простого рассмотрим обычный сдвиговый регистр.
2: Пусть у нас имеется некоторый регистр из нескольких бит для того, чтобы он был сдвиговым, мы должны подать к нему некоторую тактовую последовательность с тактовой.
3: Генератора, который будет будет управлять сдвигом данных в этом регистре. Если мы закольцуем его вход и выход, то такой регистр называется кольцевым регистром. И мы рассматривали
4: Несколько видов таких регистров в разных лекциях предыдущих, что теперь сделаем? Теперь возьмём и половинку этого регистра отнесём на некоторое расстояние, то есть не меняя идеи.
5: Пусть у нас здесь останется половина, половинка у нас будет вот тут.
6: Так вышло, что мы ограничились 3 битным регистром в практике. Обычно такие регистры бывают восьмибитные, но никто не говорит, не ограничивает их количество битов. То есть есть
7: Мы разнесём 2 части регистра друг от друга равные то ничего не изменится это обычный кольцевой регистр, а теперь предположим, что у нас эти части, эти регистры, да и, конечно, нужно заносить сюда и flock в эту часть нужно.
8: Занести ещё сигналы Клок для того, чтобы они выполняли сдвижку. Теперь предположим, что у нас эти 2 половинки сдвигового регистра лежат в разных устройствах. Пусть вот это устройство 1 у нас.
9: Назовём его мастер.
10: Как правило, мастером служат устройства, в которых имеется микроконтроллер и имеется тактовый генератор. Имеется определённая программа, которая выполняет
11: Управляет генератором, управляет, заполняет регистр и 2 устройство. Назовём слейв в качестве слейва могут слейв, скажем, слейв 1. Пусть это будет
12: У нас с вами, забегая наперёд, мы сделаем несколько слайдов. Ну и вот для того, чтобы выполнять передачу по протоколу эспиай используется вот такая система, направление переда
13: Сигналов от слейва к мастеру и от мастера к слейву. Соответственно, инпут. Аутпут используется для этих слов. Ну и сигналы шины образуются исходя из первых букв этих
14: Направление, например, верхний провод это сигнал, приходящий к мастеру. Мастер. Он является для мастера входным, инпут. Для слейва он является выходным. А вот это сигнал Нисо.
15: 1 из сигналов шины spi сигнал, который приходит от мастера к слейву, носит название master output слейв инпут это мосси, ну и сигнал, который тактовый сигнал носит название.
16: С в некоторых реализациях названия другие. Но идея очень простая. Он идёт также от мастера к слейву, если мы работаем с несколькими слейвами, в общем случае, например, с несколькими, да.
17: У нас работает.
18: То нам понадобится ещё 1 сигнал, если это будет slave 2.
19: Нам понадобится как-то разделять эти сигналы, нам понадобится иногда контроллер захочет работать со slave 1, иногда со slave 2 и в связи с этим от контроллера появляется ещё сигнал выборки.
20: С с slave select здесь будет slave select 1 а здесь будет slave select 2 если у нас датчиков будет н слейв селект 2 то фактически мы просто увеличиваем количество.
21: Элементов, которые количество выводов, которые отвечают за выборку каждого из слейвов. Ну а сигналы, которые поступают на них, параллелятся.
22: Просто напросто передаются в параллель ещё раз. Самым важным сигналом является сигнал Клок, который обеспечивает продвижка битов из этой части регистра в этот и из этой, в этот, то есть одновремен.
23: Образуется дуплексная передача. Далее сигнал мисо является входным для мастера и для того, чтобы у нас не было проблем с тем,
24: Что несколько слейвов у нас начнут передавать одновременно разные сигналы на вход мастера имеется схема сигнал выборки, который стробирует у нас с вами. Он стробирует у нас с вами
25: Мисо это, как правило, здесь на выходе стоит и с 3 состоянием высокоимпедансное, и этот сигнал сс разрешает её работу.
26: Разрешает её работу. Если он поступил, если его нет, то это блокируется на выходе. Высокое импедансное состояние. Оно не мешает работать всем остальным. Ну и этот же сигнал с с 1 разрешает работу прохождение сигнала моси.
27: Сюда тоже, скажем так, паи при его отсутствии нет. Регистр не чувствует сигнал ношения моси, потому что если сигнал
28: 1 отсутствует, то этот моси предназначен для других схем. Это понятно и также точно стробируется сигнал и сигнал Клок. Сигнал тактовый с помощью этого нашего сигнала. Вот в принципе
29: Вся схема, то есть схема очень простая схема допускает схема является четырехпроводной фактически от мастера выходит 3 основных провода, 1 провод выборки, который либо разрешает, либо запрещает работу.
30: Слейва конкретного количество сигналов выборки соответствует количеству слейвов, которые имеются.
31: Принцип работы очень простой при отсутствии сигнала выборки когда мастер является императором в этой схеме мастер является самым главным командиром, потому он носит название master slave ведомый, он только слушает испол.
32: Команды. Если мастер снял все сигналы выборки, то slave не чувствует входных сигналов и блокирует свой выход в это время в регистр слейва могут записываться какие-то данные, например если
33: Это датчик температуры, то сюда могут записываться в параллельном коде данные температуры, в регистр мастера может записываться все что угодно, все, что считает мастер нужным.
34: А может не записываться ничего, если ему не нужно, если ему нужно только прочитать, то он может в принципе сюда и нули записать, и может ничего не записывать, хлам какой-то записать и все, как только мастер решил начать.
35: Передачу, он выставляет соответствующий сигнал выборки сс. Открываются входные схемы. На слейве открывается выходная схема. На этом конкретном слейве все остальные слейвы не чувствуют шины и молчат на выход и
36: По каждому тактовому импульсу происходит сдвиг информации от мастера в слейв и, соответственно, из слейва в мастер на 1 бит и происходит запись нового бита. То есть если мы рассмотрим тактовые импульсы,
37: Скажем, они так идут у нас как-то.
38: Во время каждого 1 такта нам нужно выполнить сдвиг, так называемый шифт.
39: Shift сдвиг, освобождение места для нового бита и запись так называемый летч как правило, это привязывается к фронтам, скажем, поверх по переднему фронту тактового импульса.
40: Может выполняться сдвиг освобождения бита, и по заднему фронту может выполняться запись нового значения точно такие же.
41: Части тактового импульса используются для операций с регистром мастера.
42: Если нам не нужно от какого-либо датчика, если нам не нужно передавать данные датчику, то шина моси может быть отключена от него, поскольку мы можем туда ничего не передавать, тогда он будет принимать висячую единицу и, соответственно, заполнять.
43: Свой регистр единицами. Если тогда важным является канал мисо, мы можем считывать датчик просто. То есть нам не нужен 1 провод. Если мы хотим только передавать команды, мы можем выключить сигнал мисо, отрезать и
44: Тогда у нас по тактовым импульсам будут передаваться сигналы. Регистр мастера будет перезаписываться в регистр команд слейва. То есть.
45: Шина эспиай не обязательно должна содержать 4 провода. Более того, если мы работаем с 1 слейвом и у нас с вами мы работаем в 1 направлении, то у нас может отсутствовать 2 провода. Если мы, например,
46: Снимаем показания датчика. У нас других слейвов нет. Мы можем вход слейв здесь. Ну тут вот это не совсем корректно, потому что тут нужно дать время, чтобы он записал изнутри. Пусть остановимся на варианте 3 4 провода в шине.
47: Pi вот ещё раз для каждого нового слейва в принципе нужен ещё 1 сигнал выбора, поэтому 4 провода это в случае, когда у нас всего 1 подчинённый.
48: Ну какие преимущества и недостатки этого протокола? Во первых, мы видим, что он очень прост. 1 простая реализация, всего 4 провода, тривиальная схема, тривиальная схема передачи.
49: Проблем, поэтому это является безусловно, плюсом. 2 плюс это полный дуплекс. В принципе, когда есть наличие обоих проводов, это полный дуплекс. Мы одновременно за 8 тактов передаём данные и сюда, и сюда.
50: Это замечательно. 3 плюс, который я считаю важным, это
51: Низкие требования к стабильности тактовых импульсов. Действительно, предположим, что у нас с вами по какой-то причине вот этот тактовый импульс, скажем, начался позже.
52: И кончился совершенно позже. Ну, бывает такое. Тактовые импульсы не всегда абсолютно стабильны. Мы не в математике, что при этом происходит, а ничего.
53: Действующими являются фронты в тактовом импульсе, и эти фронты одновременно поступают и сюда, и сюда. Поэтому, если есть небольшая разница в длительности, ничего страшного нет, потому что
54: Сдвиг, то есть подготовка места в регистре слейва, совпадает со сдвигом в мастере, и, соответственно, запись также совпадает по времени, то есть не принципиально небольшие вариации, поэтому достиже
55: Очень высокая скорость, скорость фактически ограничивается временем срабатывания микросхемы можем последовательно передавать довольно с довольно низкой стабильностью тактовых импульсов оо недостат.
56: Ну, основной недостаток. Мы не имеем контроля в этой линии. То есть, предположим, у нас шина моси оторвалась.
57: Мы не можем контролировать повреждение, потому что мы 8 раз попытались передать в slave какую-то команду, пришла висячая единица, сюда контроля нет, контроль нужно возлагать на программные средства точно также и обратно у нас мы можем, можем
58: Например, быть обратно обрыв в линии мисо, и мы можем думать, что мы приняли все единицы из регистра, а на самом деле регистр просто не дошёл. То есть сам интерфейс не накладывается никаких ограни.
59: По точности эти ограничения должны быть реализованы с помощью программных средств, ну, например, тривиальной би отчётности, да, если мы хотим, вот
60: Ну, в силу простоты такого устройства он реализован в большинстве микроконтроллеров. Возможно, мы вернёмся к этой теме в дальнейшем при рассмотрении микроконтроллеров, но идея его ещё раз очень проста. Это просто 2
61: Сдвиговых регистра, которые фактически это 1 регистр, разрезанный на части. И ничего, кроме кольцевого регистра, здесь нет. Очень простая, очень красивая схема. Иногда применяют
62: Схему закольцовывания когда мисо и моси, когда происходит закольцовывание следующим образом сигналы из слейва 1 поступают в слейв 2 из slave 2 поступают в slave 3.
63: 3 поступает уже сюда. То есть получается такой регистр сдвига, который состоит из нескольких частей. Это позволяет нам с вами принимать по очереди проталкивать сигнал через 3 сдвиговых регистра. Ну, как правило,
64: В основном применяют вот такую схему, схему параллельную, поскольку она, да, и в случае, когда идёт последовательное включение, можно использовать 1 сигнал выбора, 1 сигнал выбора открывает все, ну, как правило, применяют все.
65: Таки параллельную схему включения не жалко 1 бита для каждого следующего слейва это легко управляемая величина. Однобитные величины легко управляются контроллером мастера, поэтому тут проблем нет.
66: Как правило, регистры вот эти, как я уже говорил, байтовые, мы привыкли работать с байтом, ну, тут как бы ограничений нет, схема не предполагает, интерфейс spi не предполагает какую-либо конкретную длину, как правило, может быть.
67: Длина, байт или другая. Вот. Но следует отметить, что в зависимости от состояния тактовых импульсов в момент, когда мы начинаем передачу
68: И в зависимости от того, по какому фронту мы сдвигаем, а по какому фронту записываем бит в регистр сдвига немножко различают режимы, они не принципиальны для рабо.
69: Устройства, то есть, ну, например, меняется последовательность. Сначала выполняется запись, потом сдвиг это Роли не играет. Таких режимов. 4. Мы рассмотрели 1 из них, который в принципе повторяется в остальных режимах с точностью до
70: Сдвига вот этого и начального состояния тактовых импульсов при работе