Презентация. UART ПЛАН Особенности UART Регистры UART Подключение UART
Особенности UART Особенности: Два модуля универсального асинхронного приемопередатчика (UART) Соответствие спецификации «Промышленного стандарта 550» Встроенный контроллер скорости передачи 16-байтные буфера (FIFO) приема и передачи Модуль UART1 позволяет аппаратно управлять модемом
РегистрНазначениеD7D6D5D4D3D2D1D0 U0RBRБуферный регистр приемника 8 бит принятых данных (DLAB=0) U0THRБуферный регистр передатчика 8 бит передаваемых данных (DLAB=0) U0DLLДелитель (мл.байт)8 бит данных младшего байта делителя (DLAB=1) U0DLMДелитель (ст.байт)8 бит данных старшего байта делителя (DLAB=1) U0IERРазрешение прерыв.-----EnLinStEnTxDEnRxD U0IIRИдентификация прер.FiFos Enable--IIR3IIR2IIR1IIR0 U0FCRУправление FIFORX trigger---TX FIFO reset RX FIFO reset FIFO Enable U0LCRУправление линиейDLABSet Break Stick Parity Even Par.Selec Parity Enable No stop bit Word Length select U0LSRСтатус линииRX FIFO Error TD Empty TH Reg Empty Break Interrupt Framing Error Parity Error Overrun Error RD ready U0TERРазрешение передачиTX Enable Регистры UART0
Буферный регистр приемника U0RBR Содержит верхний байт UART0 Rx FIFO. Доступен только для чтения и только при DLAB = 0 (Старший бит U0LCR ). Биты Ошибки четности (Parity Error), Ошибки кадра (Frame Error) и Прерывания сброса (Break Interrupt) регистра Статуса Линии U0LSR относятся к верхнему значению регистра FIFO. Буферный регистр передатчика U0THR Содержит верхний байт UART0 Tx FIFO. Доступен только для записи и только при DLAB = 0 (Старший бит U0LCR ). После записи в него данные помещаются в вершину UART Tx FIFO, если есть место, при этом выставляется флаг (TH Reg Empty) регистра U0LSR (Статуса линии) и генерируется прерывание, если разрешено.
Регистры управления делителем DIVISOR= Pclk / (16 x BAUD) Где – BAUD – Скорость передачи, бод из ряда 1200, 2400, 7200, 9600, 14400, 19200, 38400, и т.д; Pclk - частота периферийного синхросигнала. Например, если PCLK=15МГц, а BAUD=9600 Бод, DIVISOR= /(16 x 9600) = Перед записью необходимо выполнить DLAB = 1 (Старший бит U0LCR ). Тогда U0DLL= 98 (младший байт); U0DLM=0 (старший байт). Фактическое значение скорости: BAUDf=9566 Бод, ошибка составляет 0.3% при допустимой до 5%.
Регистр разрешения прерывания U0IER =1 значение разрешает прерывание по приему в FIFO заданного в (RX Trigger) кол-ва байт, а также прерывание по задержке заполнения. D0 D1 =1 значение разрешает прерывание по опустошению регистра передатчика, что позволяет поместить в вершину Tx FIFO следующий передаваемый байт. D2D2 =1 значение разрешает прерывание по изменению статуса приемника (изменение состояния бит D0-D4 U0LSR). Например по Overrun Error – ошибке переполнения FIFO.
Регистр управления FIFO U0FCR FIFO Enable. При =1 разрешает работу FIFO. По умолчанию =0. Любые изменения бита очищают все FIFO и их счетчики. D0 RX FIFO Reset. При записи 1 выполняется очистка FIFO приемника и сброс его счетчиков. После этого бит самоочищается. D1 TX FIFO Reset. При записи 1 выполняется очистка FIFO передатчика и сброс его счетчиков. После этого бит самоочищается. D2 Не используетсяD5-D3 Количество принятых байт в FIFO, выз. прерывание. 00 – 1 байт, 01-4 байта, 10-8байт, 11 – 14байт. (Остаток принимается по прерыванию от задержки заполнения FIFO) D7-D6
Регистр управления линией U0LCR Длина слова данных. 00-5бит, 01-6бит, 10-7бит, 11-8бит. D1-D0 Стоп бит. 0 – Один стоп бит. 1 – Два стоп бита.D2D2 Разрешение проверки и генерации бита четности.D3D3 Break Control. При записи 1 быстро переводит выходную линию TxD в нулевое состояние. D6D6 DLAB – Бит-защелка разрешения доступа к регистрам делителя. При DLAB=1 – доступ к делителям, при DLAB=0 – регистрам данных приемника и передатчика. D7 Тип проверки четности: 00 – Проверка по нечетности, 01 – Проверка по четности, 10 – Маркер, 11-Пробел. D5-D4
Схема подключения