Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
КР2.docx
Скачиваний:
0
Добавлен:
12.02.2026
Размер:
2.6 Mб
Скачать

Общая структура асинхронного приёмопередатчика.

Синхронный интерфейс – подразумевает использование общей тактовой линии (SCLK, SCL), передача идёт строго синхронно с тактами тактового сигнала. Асинхронный интерфейс – не подразумевает передачи тактового сигнала. UART – асинхронный. Общая структура ниже (RX – приём, TX – передача, GND – земля (для сравнения)):

RS-232

Интерфейс RS-232 (TIA/EIA-232) предназначен для организации приема-передачи данных между передатчиком или терминалом (англ. Data Terminal Equipment, DTE) и приемником или коммуникационным оборудованием (англ. Data Communications Equipment, DCE) по схеме точка-точка.

Скорость работы RS-232 зависит от расстояния между устройствами, обычно на расстоянии 15 метров скорость равна 9600 бит/с. На минимальном расстоянии скорость обычно равна 115.2 кбит/с, но есть оборудование, которое поддерживает скорость до 921.6 кбит/с.

Интерфейс RS-232 работает в дуплексном режиме, что позволяет передавать и принимать информацию одновременно, потому что используются разные линии для приема и передачи. В этом заключается отличие от полудуплексного режима, когда используется одна линия связи для приема и передачи данных, что накладывает ограничение на одновременную работу, поэтому в полудуплексном режиме в один момент времени возможен либо прием, либо передача информации.

Информация по интерфейсу RS-232 передается в цифровом виде логическими 0 и 1.

Логической «1» (MARK) соответствует напряжение в диапазоне от −3 до −15 В.

Логическому «0» (SPACE) соответствует напряжение в диапазоне от +3 до +15 В.

UART (Universal Asynchronous Receiver/Transmitter).

Асинхронный, полнодуплексный интерфейс, использует линии:

TX — передача данных (Transmit)

RX — приём данных (Receive)

Работает без отдельного сигнального такта (clock). Передающая и принимающая стороны должны быть настроены на одинаковую скорость передачи (baud rate). Структура посылки (фрейм данных):

Для передачи данных настраиваются: скорость (baud rate), кол-во бит данных, чётность (even/odd/none), кол-во стоп-битов.

Преимущества: простота, не требует тактовой линии; широко используется (например, COM-порты, Bluetooth, GPS-модули).

Недостатки: могут взаимодействовать только 2 устройства; нет подтверждения доставки; асинхронность требует точной настройки скорости.

Настройка и программирование интерфейса uart

  1. Регистр UDRx (UART Data Registor) – на физическом уровне представляет собой два разных регистра, имеющих одинаковый адрес. (у атмеги, с которой работаем, 8 битный)

При записи информация поступает в первый регистр (регистр передатчика TXB), а при чтении берется из другого (регистр приемника RXB). И при чтении, и при записи данных используется один регистр, что облегчает процесс программирования.

О том, что байт полностью пришел в регистр UDR, нам указывает прерывание по завершении приема, которое вызывается сразу же после того, как приемник обрабатывает все поступившие в него биты.

Так как передача идет медленно, то бездумно посылать новые данные в регистр UDR нельзя – необходимо дождаться окончания передачи предыдущего байта. О том, что UDR пуст и готов к приему нового байта сигнализирует бит UDRE, он же вызывает аппаратное прерывание по опустошению буфера.

Все настройки приемопередатчика хранятся в регистрах конфигурации UCSRA, UCSRB, UCSRC, скорость передачи данных задается регистровой парой UBRRH:UBRRL.

  1. Регистр UCSRxA (USART (s – потому что еще и синхронным может быть) Control and Status Register)

RXCn (Receive Complete) и TXCn (Transmit Complete) – флаги прерывания по приему и передачи данных, соответственно. UDERn (USART Data Register Empty) – по опустошению данных (сигнализирует что регистр UDR пуст и в него можно записывать байт), сбрасывается он аппаратно после записи новой порции данных в UDR, при этом генерируется соответствующее прерывание.

RXCn устанавливается в единицу, когда принимаемый байт запишется в регистр UDR для последующего чтения, а TXCn – после прохождения последнего стоп-бита и отсутствия новых данных в регистре UDR, т.е. после окончания передачи всех битов. Также одновременно с этими влагами вызывается прерывание (если оно было разрешено). Сбрасываются эти флаги на аппаратном уровне – принимающий после чтения данных из регистра UDR, передающие при переходе на соответствующее прерывание, либо программным образом (запись логической единицы).

Следующие три бита – всякие проверки (мы их не используем).

Бит U2Xn (Double the USART Transmission Empty) – бит удвоения скорости передачи данных при работе в асинхронном режиме. Его надо учитывать при расчете значения в регистровой паре UBRRH:UBRRL.

MPCM: Режим мультипроцессорного обмена. Если флаг равен 1, то ведомый МК ожидает приема кадра, содержащего адрес. Кадры, не содержащие адреса устройства, игнорируются.