В этой серии статей мы рассмотрим различные типы протоколов последовательной связи, доступные для передачи информации между микроконтроллерами, устройствами, производящими и обрабатывающими данные, а также другими умными устройствами. В последующих статьях этого введения в последовательные коммуникации будут рассмотрены некоторые из наиболее популярных протоколов, широко используемых на практике. В конце этой серии мы подведем итоги, рассмотрев преимущества и недостатки каждого из них. Мы надеемся, что этот ресурс окажется полезным, когда вам понадобится реализовать шину последовательной связи, помогая выбрать наилучший вариант для ваших конкретных обстоятельств.
В наши дни цифровая электроника стала наиболее значимой частью большинства электронных устройств на рынке. Используется множество различных микросхем, сложные операции которых зависят от информации, передаваемой к ним и от них к другим подобным цифровым компонентам. Были созданы общие стандарты протоколов для обеспечения коммуникации между ними. Представьте, если бы каждая ИС или устройство общались, используя свой уникальный протокол. Это было бы то же самое, если бы каждый человек говорил на своем уникальном языке. Это был бы хаос, поскольку нам всем было бы почти невозможно понять друг друга.
В настоящее время у нас есть различные микросхемы памяти, цифровые датчики, устройства защиты, программируемые источники питания, цифровые потенциометры, радиочастотные микросхемы и т. д. Все они должны обмениваться данными друг с другом или с микроконтроллерами, микропроцессорами, FPGA или ASIC. Цели такого обмена могут сильно различаться. Это может быть программирование для извлечения информации, предоставление сигнала для инициирования выполнения действия.
Также некоторые протоколы дают нам, людям, возможность взаимодействовать с микросхемами через микроконтроллеры. Вы можете отправить сигнал на микроконтроллер, который запрограммирован на отправку сигнала на микросхему через один из этих протоколов. Или же вы можете подключить один из доступных инструментов отладки.
Одна из проблем последовательных коммуникаций заключается в сложности поиска и отладки вашей схемы, если что-то идет не так. Предположим, данные не передаются от одного устройства к другому. В этом случае неисправность может находиться в одном или нескольких из следующих мест: в логике передающего устройства, в его схемотехнике, в способе кодирования последовательных коммуникаций, в шине коммуникаций, в декодировании приемником, в схемотехнике приемника или, наконец, в логике приемника. Подключение пробника осциллографа к последовательным коммуникациям может позволить вам увидеть, есть ли какая-либо активность, но мало что скажет о ее валидности. Чтобы полностью понять, что происходит, вам понадобится либо осциллограф с функцией декодирования, либо логический анализатор. Это позволит вам узнать о путешествии импульсов напряжения через импульс для поиска неисправностей уровней напряжения, выявления любых проблем с помехами и поиска проблем с скоростями нарастания и спада сигнала.
Однако для тщательной отладки последовательных коммуникаций вам понадобится инструмент, который может декодировать данные на шине, чтобы увидеть, правильные ли они или были повреждены или затронуты коллизиями. Было создано значительное количество инструментов для отладки коммуникаций между устройствами или интегральными схемами. Одним из стандартных в индустрии логических анализаторов является серия логических анализаторов Saleae Logic, причем модель Pro предлагает достаточную скорость для анализа всех наиболее популярных протоколов.
Многие более дешевые логические анализаторы слишком медленные для работы с протоколами высокой скорости, такими как SPI. Логический анализатор LA2016 Logic Analyser предлагает скорости выборки между Saleae Logic 8 и Logic 8 Pro по очень низкой цене; я владею одним и с большим успехом использовал его для анализа протоколов.
Также рассмотрение коммуникационных протоколов критически важно как для прошивки, так и для проектирования аппаратного обеспечения. С аппаратной стороны, вы всегда должны внимательно изучать техническое описание выбранного микроконтроллера. МК могут общаться только с заранее определенными протоколами, используя специальные выводы. Конструктор должен заранее решить, какие интегральные схемы будут использоваться и какие протоколы они потребуют, перед выбором своего МК.
Например, устройство STMicroelectronics STM32F103C8T6, установленное на популярной разработческой плате STM32 Blue Pill, включает 2 x I2C, 3 x USART, 2 x SPI и 1 x CAN интерфейсы связи. Однако некоторые из контактов для этих протоколов связи являются общими. Например, если мы посмотрим на контакт 14 устройства, который обозначен как PA4. Этот контакт имеет функции как USART, так и SPI. Это означает, что вы не можете использовать все перечисленные интерфейсы SPI и USART для вашего проекта одновременно. Вам нужно выбрать, какие из них вам нужны и когда, и планировать соответственно или искать другой микроконтроллер, который поддерживает больше интерфейсов связи. Конечно, контакт PA4 может использоваться для обоих протоколов связи путем изменения его конфигурации в процессе работы. Однако вам все еще нужно тщательно рассмотреть, в какое время он будет использоваться для функционирования, поскольку они не могут использоваться одновременно. Это увеличит сложность как аппаратного, так и программного проектирования.
Контакты последовательной связи в микроконтроллерах могут перекрываться, поэтому внимательно читайте технические описания. Вам нужно загрузить и использовать соответствующий модуль библиотеки связи ИС на основе того, какие протоколы будет использовать устройство для связи с программной стороны.
Хотя существует множество коммуникационных протоколов, наиболее популярными являются SPI и I2C. Каждый из протоколов имеет свои области применения, скорости передачи данных, особенности проектирования, преимущества и недостатки. Мы рассмотрим каждый из них по очереди в этой серии статей.
В следующей статье этой серии мы рассмотрим популярное устройство UART и обсудим некоторые его преимущества и детали реализации. Мы завершим серию сравнением различных протоколов, выделяя их ключевые преимущества и недостатки.
Есть вопросы? Звоните эксперту из Altium и узнайте, как мы можем помочь вам с вашим следующим проектом печатной платы.