Когда я должен использовать USART вместо UART?

10

Я хочу установить связь между моим PIC18F4550 и моим ПК, но я застреваю, должен ли я использовать UART или USART на большое расстояние. Когда выгоднее использовать один вместо другого?

Тата Симано
источник
2
Ну, у кого будет синхронный приемопередатчик, доступный для их ПК для подключения к вашему гаджету?
PlasmaHH

Ответы:

11

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

COM-порт ПК использует только UART для общения. Тот факт, что USART можно было использовать по-другому, для вас не имеет значения, за исключением того, что, возможно, у вас есть некоторые дополнительные биты конфигурации, которые должны быть установлены правильно.

Олин Латроп
источник
3

Краткий ответ: используйте тот чип, который у вас есть

Чтобы полностью изучить вопрос, необходимо расшифровать аббревиатуры:

U niversal синхронное R eceiver T ransmitter ваш традиционный «последовательный порт». Он асинхронный в том смысле, что задействован только один сигнал - тактовые импульсы не передаются, и вместо этого приемник должен восстанавливать тактовые импульсы, обычно путем избыточной дискретизации.

В противоположности этого U niversal S ynchronous синхронное R eceiver Т ransmitter является более универсальным устройством с УАППАМИ стиля асинхронными режимами, но которые могут также необязательно быть сконфигурированы для работы в синхронном режимах , где часы посылаются вместе с данными. В зависимости от возможностей это может включать взаимодействие с известными синхронными последовательными форматами, например SPI или I2S.

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

Крис Страттон
источник
3

Они в основном то же самое для вашего микроконтроллера.

USART обозначает универсальный асинхронный и синхронный приемник / передатчик. UART обозначает универсальный асинхронный приемник / передатчик.

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

Thịnh Lê Quí
источник
« Синхронная передача данных используется редко, потому что у вас гораздо лучший протокол синхронной связи, такой как SPI & I2C. » Осторожно, кажется, вы сравниваете яблоки и апельсины :-) SPI & I2C обычно используются для сравнительно небольших расстояний. Синхронный режим USART обычно используется для интерфейсов на большие расстояния, например, несколько футов или более. Я работал со многими интерфейсами синхронной связи, например V.35 или даже с дополнительными синхронными сигналами на V.24, для подключения к синхронным модемам. Все они нуждались в USART и не могли быть разумно заменены SPI & I2C.
СамГибсон
Большое спасибо за информацию.
Th Lnh Lê Quí
1

Ваш микроконтроллер (MCU) имеет универсальный синхронный / асинхронный приемник / передатчик (USART). Этот функциональный блок поддерживает режим синхронной связи и режим асинхронной связи.

В синхронном режиме передатчик Tx подключен к приемнику Rx с помощью провода CLOCK и провода DATA. Один раз за период CLOCK Tx отправляет еще один бит на DATA, а Rx получает еще один бит от DATA. Время передачи управляется CLOCK и поэтому известно как Tx, так и Rx. Таким образом, и Tx, и Rx могут использовать более высокие скорости передачи данных, чем в асинхронном режиме.

Однако вместо одного нужны два провода / штырька разъема, а чрезмерный перекос или дрожание между CLOCK и DATA приводит к получению поврежденных данных. Синхронизация в линейных драйверах и линейных приемниках, несущих CLOCK и DATA, должна быть тщательно согласована, чтобы уменьшить этот перекос. И интерфейс, и двухпроводные факторы становятся более заметными на более длинных расстояниях с длинными кабелями и / или несколькими переходами.

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

В начале каждого нового байта Rx использует начальный битовый переход STOP-START для повторной синхронизации с синхронизацией входящей битовой последовательности. Это делает задержки от линейных драйверов / приемников, кабелей и разъемов несвязанными с синхронизацией периода битов, хотя не с качеством битов. Для каждого сигнала связи требуется только один провод вместо двух, что снижает стоимость кабелей, разъемов и линейных драйверов / приемников.

Так что это зависит от ваших приемлемых затрат, расстояний, которые вы путешествуете, и возможностей Tx и Rx. Ваш компьютер, скорее всего, будет поддерживать только асинхронный режим на стандартном COM-порту, для которого требуется специальный порт (PCIe или USB, скорее всего, USB) для синхронного режима.

TonyM
источник