Последовательный порт
2.12.1. Последовательный порт предназначен для приема и передачи данных в последовательном коде. Преобразование параллельного кода в последовательный и обратно осуществляется с помощью сдвигающих регистров универсального асинхронного приемопередатчика (UART – Universal Asynchronous Receiver/Transmitter), принцип работы которого представлен на рис. 2.12, где: Data Bits – параллельный код передаваемых (принятых) данных, Serial Data – последовательный код данных, D0 ¸ D8 – разряды сдвигающих регистров приемопередатчика, Shift – сигнал управления сдвигом, LSB (Least Significant Bit) – младший бит, MSB (Most Significant Bit) – старший бит, Start Bit – стартовый бит, Stop Bit – стоп-бит, TXD – выход передатчика, RXD – вход приемника,
1-to-0 DETECTOR – устройство обнаружения стартового бита (перехода входного сигнала из 1 в 0).
Рис. 2.12. Работа универсального асинхронного приемопередатчика в режиме передачи данных (A) и в режиме приема данных (B)
В режиме передачи данных UART не только преобразует параллельный код в последовательный, но также добавляет к каждому передаваемому байту данных два служебных бита – стартовый бит и стоп-бит, которые служат для определения границ байта данных.
2.12.2. Последовательный порт МК 80С51 может работать в полном дуплексном режиме, т.е. он может осуществлять передачу и прием данных одновременно.
Сдвигающие регистры приемника и передатчика последовательного порта имеют доступ к одному и тому же регистру специальных функций SBUF. Запись байта в регистр SBUF приводит к автоматической загрузке сдвигающего регистра передатчика и инициирует начало передачи. По окончании приема байта в сдвигающий регистр приемника, содержимое этого регистра загружается в SBUF
Наличие в структуре микроконтроллера буферного регистра позволяет совмещать операции приема очередного байта данных с чтением ранее принятого байта. Однако, для того, чтобы не произошло потери информации, к моменту окончания приема очередного байта, предыдущий байт должен быть считан из SBUF.
2.12.3.Последовательный порт имеет 4 режима работы. Выбор режима осуществляется путем программирования соответствующих разрядов регистра управления последовательного порта SCON(Serial Port Control Register), формат которого представлен в табл. 2.9.
Во всех четырех режимах работы последовательного порта передача данных инициируется любой командой микроконтроллера в которой регистр SBUF выступает в качестве регистра-приемника результата. По окончании передачи байта данных устанавливается флаг прерывания передатчика TI в регистре SCON.
2.12.4. Режим 0 – синхронный режим с постоянной скоростью обмена (Baud Rate), определяемой выражением:
BR0 = fosc / 12 , (2.1)
где BR0 – скорость обмена в режиме 0, бод;
fosc – частота тактового генератора МК, Гц.
В режиме 0 разряд Р3.0/RXD порта 3 микроконтроллера используется для ввода/вывода последовательных данных (8 бит), а разряд Р3.1/TXD – для формирования выходных импульсов синхронизации. За один машинный цикл передается (принимается) один бит данных. В конце передачи 8-го бита устанавливается флаг прерывания передатчика TI в регистре SCON.
Таблица 2.9
Дата добавления: 2015-10-09; просмотров: 1187;