Что определяет скорость SPI Полное руководство

Последовательный периферийный интерфейс (SPI) известен своей высокой скоростью передачи данных. Этот протокол синхронной связи позволяет

Что

ОПоследовательный периферийный интерфейс(SPI) СлавитсяВысокая скорость передачи данных. ЭтотПротокол синхронной связиОбеспечивает эффективное использование данныхПередачаМеждуУстройства, С некоторымиСкорость передачи данных Более 100 МГц. Итак, почему ваш проект неПроизводительностьВсегда попадал в этот топСкорость передачи данных? Твоя правдаСкорость spiИ в целомПропускная способностьОни ограничены тремя ключевыми областями.

💡ОкончательныйПроизводительностьЛюбогоSPIДанныеПередачаЭто баланс вашегоУстройства'Аппаратные ограничения, физическое качество соединения и конфигурация вашего программного обеспечения.

Ключевые выходы

  • Ваша скорость SPI зависит от трех основных вещей: аппаратных ограничений ваших устройств, качества ваших физических соединений и того, как вы настраиваете свое программное обеспечение.
  • Всегда проверяйте ограничения скорости в спецификациях данных как для основных, так и для подчиненных устройств. Самое медленное устройство устанавливает максимальную скорость для вашей шины SPI.
  • Хороший дизайн печатной платы важен. Держите провода короткими, сопоставьте длину трассы и используйте прочную плоскость заземления, чтобы предотвратить проблемы с сигналом на высоких скоростях.
  • Использовать напрямуюПамятьДоступ (DMA) в вашем программном обеспечении для лучшей производительности. DMA позволяет вашемуМикроконтроллерОтправляйте данные быстро, не замедляя работу основного процессора.

Роль оборудования в скорости SPI

Оборудование

Первым шагом к пониманию максимальной скорости SPI вашей системы является изучение самого оборудования. Прежде чем вы даже напишете строку кода или спроектировать печатную плату, спецификации данных для ваших основных и подчиненных устройств устанавливают жесткий верхний предел. Ваша конечная производительность в основном связана с возможностями этихИнтегральные схемы.

Пределы мастер часов

Ваше ведущее устройство, обычно микроконтроллер, генерирует часы SPI (SCK). Это устройство имеет максимальную частоту, на которой оно может работатьПоследовательный периферийный интерфейс. Вы можете найти этот предел вРаздел электрических характеристик его таблицы данных. В таблицах часто указывается максимальныйFSCK(Тактовая частота SPI) при разных рабочих напряжениях.

Например, техническое описание микроконтроллера может представлять свои характеристики SPI следующим образом:

СимволПараметрУсловияМинТипМаксЕдиница
FSCKТактовая частота spiРежим приемника контроллера 2,7 В <VDD <3,6 В--45МГц
Режим передатчика контроллера 2,7 В <VDD <3,6 В--45МГц

Примечание:Значения в таблице выше основаны наFPCLKx/3, ГдеFpclkxЭто периферийные часы. Фактическое максимальное значение зависит от конкретной архитектуры микроконтроллера.

Часы собственной системы мастера также играют роль. Периферийное устройство SPI часто работает на часах, полученных от основных системных часов.

  • Внутренняя тактовая архитектура микроконтроллера может ограничивать входные тактовые частоты модуля SPI. Например, модуль может принимать только максимальный ввод48 МГц.
  • Эти входные тактовые частоты затем делятся на более, чтобы генерировать окончательный сигнал SCK для передачи SPI.
  • Это означает, что даже если периферийное устройство SPI теоретически может работать быстрее, его производительность ограничен часами, которые вы его кормите.

Ограничения подчиненных часов

Теперь рассмотрим подчиненное устройство. Каждый раб SPI, будь тоДатчик, Микросхема памяти или другой микроконтроллер также имеет максимальную тактовую частоту, с которой он может работать. Это часто является наиболее значительным узким местом в конфигурации master/slave.Превышение этого предела приведет к неправильной интерпретации данных ведомым устройством, что приведет к повреждению данных во время передачи..

💡Ваша шина SPI только так быстро, как его медленное устройство. Конечная скорость связи должна быть установлена на нижний из двух максимумов (ведущий или ведомый).

Вы должны внимательно проверить техническое описание ведомого устройства. Вы можете найти разные максимальные скорости передачи данных в зависимости от операции. К примеру,Микроконтроллер STM32 в подчиненном режиме может поддерживать 40 МГц для приема данных, но более низкую скорость, например 24 МГц для полнодуплексной связи.. Эти различия могут возникнуть из-за внутренней логики, необходимой для выборки и отправки данных одновременно. Для большинства ведомых устройств SPI безопасное эмпирическое правило заключается в том, чтобы поддерживать тактовую частоту SPI ниже.Одна десятая тактовой частоты собственной системы ведомого устройстваДля обеспечения надежной передачи данных.

Задержки обработки ведомого устройства

Высокая тактовая частота не всегда равна высокой пропускной способности. Истинная мера производительности-это то, сколько данных вы можете передать с течением времени. Многие подчиненные устройства нуждаются в паузе между транзакциями для обработки информации. Это известно какВремя обработки ведомого устройстваИлиЗадержка между транзакциями.

Представьте, что вы посылаете команду на датчик. Датчику требуется время для выполнения измерения, прежде чем он будет готов к следующей передаче данных. Быстрые часы SPI бесполезны, если мастер должен долго ждать, пока раб будет готов. Эта задержка резко влияет на общую пропускную способность данных.

Некоторые распространенные сценарии, требующие этой задержки, включают:

СценарийПочему не нужна задержка
Раб имеет медленную внутреннюю логикуУстройство требует времени для обработки предыдущего байта данных.
Протоколы SPI Multi-рамкиСам протокол требует определенного временного разрыва между кадрами.
SPI Flash страница записиМикросхема памяти должна приостановить, чтобы зафиксировать адрес перед записью данных.
Избегание ошибок синхронизацииНебольшая задержка может помочь предотвратить ошибки при очень высоких тактовых частотах SPI.

Итак, как вы узнаете, когда раб готов к следующей передаче? Устройства используют несколько методов для сигнализации своего состояния:

  • Занят Пин:Некоторые устройства имеют специальный выходной контакт, который они утверждают, чтобы сигнализировать, что они заняты обработкой.
  • Регистр статуса:Вы можете опрашивать регистр статуса на рабе. Этот регистр часто содержит биты типаTrdy(Передача готова) илиRRDY(Получить готовый), чтобы указать его состояние.
  • Прерывает:Подведомый может использовать эти биты состояния для запуска прерывания на ведущем, активно сигнализируя о том, что он готов к следующей транзакции SPI.

Микроконтроллеры, эмулирующие подчиненные устройства, являются классическим примером, когда задержки обработки значительны. В отличие от выделенного оборудования, микроконтроллер должен выполнять прошивку для обработки запросов SPI. Это приводит к задержкам, что затрудняет поддержание высоких скоростей передачи данных, особенно при эмуляции устройств, таких как EEPROM, которые требуют случайного доступа к данным.

Физический уровень последовательного периферийного интерфейса

О

Как только вы поймете пределы своегоИнтегральные схемы, Вы должны посмотреть на физические связи между ними. Трассы и провода на печатной плате (PCB), которые образуют шину SPI, не являются идеальными проводниками. На высоких частотах эти физические пути создают свой собственный набор проблем, которые могут ухудшить качество сигнала и ограничить общую производительность.

Путь и расположение сигнала

Длинные провода и следы печатной платы могут действовать как крошечные антенны. Такое поведение вводит задержку распространения, которая является временем, которое требуется сигналу для прохождения от ведущего устройства к ведомым устройствам. На низких скоростях, эта задержка является незначительной. При высоких скоростях передачи данных это становится серьезной проблемой.

Несоответствие длины трассы между линиями часов (SCK) и данных (MOSI/MISO) приводит к ошибкам синхронизации. Сигнал синхронизации может поступать на приемник в другое время, чем данные. Это может привести к тому, что подчиненное устройство застегнет неправильный бит данных, что приведет к повреждению всей передачи. По мере увеличения частоты сигнала тактовый период становится короче, что делает вашу конструкцию намного более чувствительной даже к небольшим различиям в задержке распространения.

А

В таблице ниже показано, как быстро уменьшается допуск для несоответствия длины трассы при повышении тактовой частоты SPI.

Частота сигналаПериод часов (T)Максимальный допуск перекоса (20% т)Задержка размножения (FR4)Максимальное несоответствие длины трассы
100 МГц10 нс2 нс~ 150 пс/в~ 13 дюймов
200 МГц5 нс1 нс~ 150 пс/в~ 6,7 дюйма
500 МГц2 нс0,4 нс~ 150 пс/в~ 2,7 дюйма
1 ГГц1 нс0,2 нс~ 150 пс/в~ 1,3 дюйма
2 ГГц0,5 нс0,1 нс~ 150 пс/в~ 0,67 дюйма
5 ГГц0,2 нс0,04 нс~ 150 пс/в~ 0,27 дюйма

Про подсказка:Когда ваша шина SPI работает в диапазоне 50-100 МГц, вы должны рассматривать трассы как линии передачи. Чтобы предотвратить отражения сигнала и звон, вы можете добавить завершение небольшой серииРезисторы(Например, 22-33 Ом) рядом со штифтами драйвера. Поместите их на линии SCK, MOSI и CS на ведущем и на линию MISO на каждом подчиненном.

Емкость и целостность шины

Каждый элемент на вашей печатной плате, отКонтакты ИСК самим трассам добавляет небольшое количество нежелательной емкости. Это называетсяПаразитная емкость. Он существует между сигнальной трассой и ближайшей к ней опорной плоскостью, обычно плоскостью заземления. Хотя вы не можете устранить это, вы должны управлять этим.

Эта емкость напрямую влияет на время нарастания вашего сигнала. Время нарастания-это то, как быстро сигнал может перейти от низкого напряжения к высокому.Высокая емкость шины действует как препятствие, препятствуя способности сигнала расти.. Это замедляет время нарастания и округляет острые края вашего тактового сигнала. Если кромка тактовой частоты становится слишком медленной, подчиненное устройство может не зарегистрировать ее правильно, ограничивая максимальную тактовую частоту. Интересно,Емкость гораздо меньше влияет на время падения сигнала.

Добавление большего количества подчиненных устройств к шине SPI увеличивает общую емкость нагрузки, что может еще больше ухудшить целостность сигнала. Вы можете контролировать этот паразитный эффект с помощью тщательного проектирования печатной платы.

  • Используйте ламинат с более тонким поверхностным слоемУменьшить расстояние до соседней плоскости заземления.
  • Выберите материалы с низким Dk (диэлектрическая проницаемость)Для вашей печатной платы, чтобы снизить общую емкость.
  • Выберите компоненты с меньшими размерами свинцаМинимизировать свой вклад.

Перекрестные помехи и шум

Перекрестные помехи возникают, когда электромагнитная энергия от одного следа сигнала «просачивается» в соседний след.. На печатной плате это часто происходит между двумя следами SPI, идущими бок о бок. Эта энергия создает шум на следе «жертвы». Если шум достаточно велик, это может вызвать ложные переходы сигналов и повредить передачу данных.

Это явление связано, прежде всего, с емкостной связью. Лучший способ борьбы с перекрестными помехами и другими внешними шумами-это хорошо продуманная плоскость заземления.

Твердая плоскость заземления обеспечивает обратный путь с низким сопротивлением для сигнальных токов. Это затягивает электромагнитные поля вокруг следа сигнала, сдерживая их и предотвращая их вмешательство в другие сигналы.Более близкая опорная плоскость приводит к более плотному соединению и меньшему шуму.

Чтобы улучшить свой дизайн и добиться более высокой скорости передачи данных, вы должны:

  • Увеличьте плоскость заземления:Используйте как можно больше свободного места на печатной плате для плоскости заземления.
  • Используйте выделенные слои грунта:В многослойных платах выделенная плоскость заземления обеспечивает отличное разделение и снижает шум.
  • Добавьте пропуск для шитья:Если необходимо разделить плоскость заземления, используйте проход, чтобы «сшить» отдельные области вместе, создав непрерывный путь с низким сопротивлением.

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

Влияние программного обеспечения на производительность SPI

Ваше оборудование иРаскладка печатной платыУстановите потенциал для высокоскоростной связи, но ваше программное обеспечение определяет, сможете ли вы на самом деле его достичь. Выбор, который вы делаете в своем коде, от базовых настроек протокола до методов обработки данных, напрямую контролирует конечную производительность и пропускную способность SPI.

Режим SPI и время

ОПротокол SPIСинхронно, то есть ведущее и ведомое устройства должны согласовать время. Вы настраиваете это время, выбирая правильный режим SPI. Здесь несоответствие приведет к полной неудаче передачи. Режим определяется двумя параметрами в таблице данных ведомого устройства:

  • Полярность часов (CPOL):Это устанавливает состояние холостого хода тактового сигнала (низкое или высокое).
  • Тактовая фаза (CPHA):Это определяет, будут ли дискретизированные данные на первом (ведущем) или втором (заднем) ребре тактовой частоты.

Эти две настройки объединяются, чтобы создать четыре возможных режима SPI. Если для ведущего установлено значение Mode 0 (CPOL = 0, CPHA = 0), он ожидает выборки данных на восходящем фронте тактовой частоты. Ваше подчиненное устройство также должно быть настроено для этого режима, чтобы обеспечить успешную передачу данных. Это неправильно является распространенным источником ошибок, которые препятствуют связи между устройствами.

Драйвер и накладные ОС

То, как ваш микроконтроллер перемещает данные, оказывает огромное влияние на производительность. Обычно у вас есть два варианта обработки передачи SPI: прерывания или прямой доступ к памяти (DMA). Использование прерываний проще для базовой передачи, но оно создает значительную нагрузку на ЦП, которая ограничивает максимальную скорость передачи данных. Для высокой производительности DMA является превосходным методом.

💡DMA позволяет периферийному устройству SPI передавать данные непосредственно в память или из нее без участия ЦП. Это освобождает ЦП для выполнения других задач, значительно повышая эффективность вашей системы и обеспечивая более высокую скорость передачи данных.

В таблице ниже сопоставляются два подхода:

ОсобенностьSPI с прерыванным приводомSPI, управляемый DMA
Накладные ЦПВысокий; ЦП управляет передачей каждого байта.Низкий; ЦП свободен после начала передачи.
Пропускная способностьLower; Ограничен способностью процессора обслуживать прерывания.Выше; Может достигать максимальной скорости SPI.
Случаи использованияХорошо для низкой скоростиДатчикиИли простые команды.Идеально подходит для высокоскоростной потоковой передачи и больших блоков данных.

Когда вам нужно достичь максимальной скорости передачи данных от таких компонентов, как АЦП высокого разрешения или флэш-память, вы должны использовать DMA. Такой подход сводит к минимуму задержки программного обеспечения и позволяет вашей шине SPI работать ближе к своим аппаратным ограничениям.


Ваша конечная скорость SPI зависит от трех ключевых факторов. Это пределы вашего оборудования, ваши физические соединения и эффективность вашего программного обеспечения. Вы должны учитывать все три области, чтобы достичь высоких скоростей передачи данных, известных SPI. Быстрая система требует полного подхода.

💡Действительность на вынос:Чтобы найти свою истинную максимальную скорость, сначала проверьте техническое описание ведомого устройства на предмет ограничения скорости. Затем проверьте эту скорость с помощью макета печатной платы и программного обеспечения. Отрегулируйте вниз оттуда, чтобы найти самую быструю стабильную ставку для вашего конкретного проекта.

Часто задаваемые вопросы

Related Articles