I2C (Inter-Integrated Circuit) или двухпроводный интерфейс
Другим очень полезным синхронным протоколом последовательной связи является протокол I2C или Inter-Integrated Circuit. В отличие от SPI, I2C использует только два провода для всего процесса, возможно, поэтому он также известен как протокол двухпроводного интерфейса (TWI). Эти два провода представляют собой SDA (последовательные данные) и SCL (последовательное тактирование). Протокол I2C может поддерживать несколько подчиненных устройств, но в отличие от SPI, который поддерживает только одно ведущее устройство, I2C может также поддерживать несколько мастер-устройств. Каждое устройство отправляет / принимает данные, используя только один провод, который является SDA. SCL поддерживает синхронизацию между устройствами через общую систему тактирования, которая реализуется активным ведущим устройством.
Каждое подчиненное устройство имеет свой собственный уникальный адрес (от 7 до 10 бит), который ведущий использует для их идентификации. Всякий раз, когда ведущий хочет отправить данные, он сначала генерирует запрос, который имеет конкретный адрес этого подчиненного устройства. Каждое подчиненное устройство сопоставляет этот адрес со своим и тот, чей адрес соответствует, отвечает ведущему. Каждое сообщение начинается с условия запуска и заканчивается условием остановки. Одно сообщение может содержать несколько байтов данных, каждый из которых имеет бит подтверждения (ACK) или отрицательный бит подтверждения (NACK) между ними.
Преимущества I2C следующие. Во-первых, несколько ведущих и несколько ведомых могут соединяться друг с другом. Во-вторых, для этого протокола требуется только два провода. К недостаткам протокола I2C можно отнести то, что он медленнее по сравнению с SPI, потому что в рамках этого протокола выполняется много операций с кадрами данных.
UART / USART
UART означает универсальный асинхронный приемник и передатчик, а USART – универсальный синхронный и асинхронный приемник и передатчик. Разница между ними заключается в том, что UART выполняет только асинхронную последовательную связь, в то время как USART может выполнять как синхронный, так и асинхронный последовательный коммуникационный процесс.
Для асинхронного режима этот протокол использует только два провода, а именно Rx и Tx. Поскольку здесь не нужна синхронизация, оба устройства должны использовать свои независимые внутренние системы тактирования для функционирования. Тем не менее, существует термин «скорость передачи», который помогает этим устройствам оставаться в режиме синхронизации, фиксируя скорость обмена данными. Скорость передачи данных в бодах равно число бит данных, передаваемое в секунду, поэтому оба устройства должны работать с одинаковой скоростью передачи в бодах, чтобы поддерживать его надлежащее функционирование.
Интерфейс UART/USART имеет большое ограничение, связанное с тем, что только два устройства могут обмениваться данными с помощью этого протокола одновременно. Линия Tx одного устройства передает данные на лннию Rx другого устройства и аналогично Tx последнего передает данные в Rx первого устройства. Так происходит обмен данными.
Для синхронного режима используется дополнительный вывод XCK. Импульсы тактирования генерируются устройством, отправляющим данные в это время.
Преимущества UART/USART следующие. Во-первых, этот протокол обеспечивает как синхронную, так и асинхронную последовательную связь. Во-вторых, обеспечивается наличие различных скоростей передачи, что делает его пригодным для широкого применения и устройств. В-третьих, это одна из самых простых форм последовательной связи. Недостатком здесь является то, что одновременно могут быть подключены только два устройства.
Выводы
Используйте SPI, если у вас есть только один ведущий и несколько ведомых устройств. SPI для этого является более быстрым протоколом. Когда у вас также есть несколько ведущих устройств, помимо нескольких ведомых устройств, следует предпочесть использовать I2C или TWI вместо SPI. Это также уменьшит количество используемых проводов. А если вы ищете протокол для последовательной связи только двух устройств между собой, то USART / UART оказывается лучшим решением, поскольку его легко применять и с ним просто работать во многих периферийных устройствах.
Дата добавления: 2021-12-14; просмотров: 712;