Перейти к содержимому

#17. Асинхронная последовательная связь (UART)

После светодиодов и кнопок — наиболее основным методом связи со встроенным процессором является асинхронный последовательный интерфейс. Асинхронная последовательная связь в ее наиболее примитивной форме реализована по симметричной паре проводов, соединяющих два устройства — хост и таргет (целевое устройство), хотя эти термины являются произвольными. Всякий раз, когда у хоста есть данные для отправки целевому объекту, он делает это, отправляя закодированный поток битов по своему проводу передачи (TX); эти данные получает устройство по (RX) проводу. Точно так же, когда у устройства есть данные для отправки на хост, оно передает закодированный битовый поток через свой провод TX, и эти данные принимаются хостом через его провод RX. Этот режим связи называется «асинхронным», поскольку хост и целевой ресурс не имеют привязки по времени. Вместо этого временные свойства кодируются в битовом потоке передатчиком и должны быть декодированы приемником.

Basic Serial Communications Topology

Обычно используемым устройством для кодирования и декодирования таких асинхронных битовых потоков является универсальный асинхронный приемник / передатчик (UART), который преобразует предоставленные программным обеспечением байты данных в последовательность отдельных битов и, наоборот, преобразует такую последовательность битов в байты данных, чтобы отправить данные в программное обеспечение. Процессоры STM32 включают в себя (до) пять таких устройств, называемых USART (для универсального синхронного / асинхронного приемника / передатчика), поскольку они поддерживают дополнительные режимы связи помимо базовой асинхронной связи. Здесь мы рассмотрим последовательную связь между (целевым) STM32 USART и мостом USB / UART, подключенным к ПК.

UART также можно использовать для взаимодействия с различными периферийными устройствами. Например, широко распространенные модемы сотовых телефонов GSM / GPRS и модемы Bluetooth могут быть подключены к микроконтроллеру UART. Точно так же приемники GPS часто поддерживают интерфейсы UART.

Serial Communications Protocol

Одной из основных кодировок, используемых для асинхронной последовательной связи, показан на рисунке. Каждый символ передается во фрейме, который начинается с (младшего) начального бита, за которым следуют восемь битов данных, и заканчивается (старшим) стоп-битом. Биты данных кодируются как высокие или низкие сигналы для (1) и (0) соответственно. Между фреймами состояние простоя сигнализируется путем передачи непрерывного сигнала высокого уровня. Таким образом, каждый фрейм гарантированно начинается с перехода низкого уровня и содержит по меньшей мере один переход от низкого уровня к высокому. Альтернативы этой базовой структуре кадра включают в себя различное количество битов данных (например, 9), бит четности, следующий за последним битом данных, чтобы обеспечить обнаружение ошибок, и более длительные условия остановки.

В сигнале нет прямого кодирования клоков (в отличие от протоколов сигнализации) — начальный переход обеспечивает единственную временную информацию в потоке данных. Каждый передатчик и приемник независимо поддерживают тайминги, работающие на (кратной) согласованной частоте — обычно называемой скоростью передачи данных. Эти два тактовых сигнала не синхронизированы и не гарантированно имеют одинаковую частоту, но они должны быть достаточно близки по частоте (лучше, чем 2%) для восстановления данных.

UART Signal Decoding

Чтобы понять, как приемник извлекает закодированные данные, предположим, что у него есть тактовая частота, кратная скорости передачи в бодах (например, 16x), начиная с состояния ожидания. Приемник «дискретизирует» свой сигнал RX, пока не обнаружит высокий Низкий переход. Затем он ожидает 1,5-битные периоды (24 такта), чтобы произвести выборку своего сигнала RX с тем, что он оценивает как центр бита данных. Затем приемник производит выборку RX с интервалами битового периода (16 тактов), пока не прочитает оставшиеся 7 бит данных и стоп-бит. С этого момента процесс повторяется. Для успешного извлечения данных из кадра требуется, чтобы в течение 10,5-битных периодов дрейф тактового сигнала приемника относительно тактового сигнала передатчика составлял менее 0,5 периодов для правильного определения стоп-бита.

Добавить комментарий