97
определенных пределах) от частоты Fint. Для этого используется стандартный
или специально выделенный таймер-счетчик в режиме автоперезагрузки. В
случае «фиксированных»
коэффициентов деления для поддержания
стандартного ряда скоростей необходимо выбирать определенную частоту
тактирования процессора.
Логика управления
Генератор скорости
обмена
Регистр сдвига
передатчика
Регистр сдвига
приемника
Регистр (буфер) данных
приемника
Регистр (буфер) данных
передатчика
TxD
RI, TI
Fint
Принятые
данные
Передаваемые
данные
RxD
сдвиг
сдвиг
Рисунок 45. Модуль UART
С выхода генератора скорости сигнал синхронизации поступает на вход
тактирования приемного и передающего сдвиговых регистров, которые
осуществляют последовательную выдачу/прием бит данных с заданной
скоростью. Полностью принятый байт попадает в регистр – буфер данных
приемника. Байт для передачи помещается в сдвиговый регистр из буфера
передатчика.
Процессы приема и передачи в асинхронном режиме UART происходят
независимо. Таким образом, поддерживается дуплексный режим обмена.
Однако требуется, чтобы приемник и передатчик были настроены на одну
скорость.
Более простым является
функционирование в синхронном режиме. Здесь
каждый принимаемый/передаваемый бит стробируется специальным сигналом
и нет необходимости точно согласовывать скорость приемника и передатчика.
Ошибки UART:
• Overrun Error (ошибка из-за повышенной скорости передачи,
переполнение буфера приема)
Эта ошибка случается, когда приемник UART не успевает обрабатывать
приходящие из канала символы, т. е. буфер переполняется.
• Framing Error (ошибка кадрирования)
Эта ошибка случается, когда фиксируется некорректное состояние линии
данных в момент передачи старт- или стоп-бита. Например, после передачи 8
98
бит данных приемник ожидает перехода линии в стоп-состояние, но этого не
происходит.
• Break Condition (сигнал прерывания передачи, разрыва связи)
Этот сигнал информирует о том, что входная линия данных находилась в
неизменном нулевом состоянии в течение времени, больше передачи одного
символа. В буфере приема нулевой байт. Некоторые устройства используют
такую последовательность, чтобы сообщить передатчику, например, о переходе
на другую скорость обмена данными.
Пример
организации и работы контроллера последовательного канала
микроконтроллера ADuC812 (Intel MCS-51) рассмотрен в следующем
подразделе этой главы. В разделе 6.3 приведен пример программирования
последовательного канала в учебном стенде SDK-1.1.
Еще более упрощается
функционирование в режиме SPI: приемник и
передатчик работают синхронно: приему одного бита соответствует передача
одного бита, начало передачи байта совпадает с началом приема, за сеанс
обмена происходит прием одного байта и передача одного байта.
В большинстве случаев приемопередатчики работают с входными и
выходными сигналами уровней TTL. Формирование физических сигналов с
уровнями напряжения и тока, соответствующими реализуемому интерфейсу,
выполняется с помощью специальных микросхем – трансиверов или адаптеров
физического интерфейса. Например: MAX232 (MAXIM) – RS-232C, MAX485
(MAXIM) – RS-422/485, PCA82C251 (Philips) – CAN.
Кроме рассмотренных приемопередатчиков USART во встраиваемых
процессорах широко используются другие интерфейсы, например, USB, CAN.
Достарыңызбен бөлісу: