Раздел: Документация
0 ... 7 8 9 10 11 12 13 ... 105 (смещение ОЗп) равен нулю. Если по этому адресу записан байт, то он передается в регистр сдвига передатчика и последовательно поступает на выход. Во время приема происходит обратная операция: после того как данные успешно приняты и с помощью регистра сдвига преобразованы в параллельный формат, они передаются в буферный регистр приемника. Когда информация из этого регистра считана, он очищается и готов к приему следующего блока данных. По смещению 01 h от базового находится регистр разрешения прерываний, посредством которого можно настраивать прерывания, генерируемые UART. Назначения битов этого регистра приведены ниже: 0 0 0 0 SINP ERBK ТВЕ RxRD биты с 7 по 4 всегда нули SINP1 = прерывание по изменению состояния линий CTS, DSR, DCD и RI О - нет прерывания ERBK1 = прерывание при ошибке приема данных О = нет прерывания ТВЕ1 = прерывание, когда регистр передатчика пуст О - нет прерывания RxRD1 - прерывание при получении данных О - нет прерывания По смещению 02h находится регистр идентификации прерываний. При возникновении прерывания нулевой бит этого регистра устанавливается в 0. Биты 1 и 2 указывают причину прерывания. Биты с 7 по 3 не используются и всегда равны нулю. Назначение битов регистра следующее: 0 0 0 0 0 ID1 ID0 PND PND1 - нет прерывания 0= прерывание ID 1, ID000 = изменение входного сигнала RS232 (приоритет 3) 01= регистр передатчика пуст (приоритет 2) 10 = в буферном регистре приемника данные готовы (приоритет 1) 11= ошибка передачи данных или остановка (приоритет 0, высшая степень) Если процесс обмена данными организован по прерываниям, то установившееся прерывание должно быть сброшено; в противном случае корректность обмена данными нарушится. Действия, необходимые для очистки прерывания, таковы: ID1 = 0, ID0 = 0 чтение содержимого регистра состояния модема (06h) ID1 = 0, ID0 = 1 запись в регистр передатчика (00h) или чтение регистра идентификации прерываний (02h) ID1 = 1, ID0 = 0 чтение байта данных из буферного регистра приемника (00h) ID1 = 1, ID0 = 1 чтение регистра состояния приемопередатчика (05h) По смещению 03h находится регистр формата данных, который определяет такие параметры передаваемых данных, как скорость, количество битов данных, количество стоповых битов и настройка проверочного бита. Назначение битов регистра приведено ниже: DLAB BRK PAR2 PARI PARO STOP DAB1 DAB0 DLAB1 = доступ к установке скорости О = доступ к регистру приемника/регистру передатчика (00h) и к регистру разрешения прерываний (01 h) BRK1 = остановка включена 0= остановка выключена PAR2,1,0 ООО = нет проверки 001= нечетная ОН = четная 101 = всегда 1 111= всегда 0 STOP1 = 2 стоповых бита 0= 1 столовый бит DAB 1,0 00 = 5 бит данных 01= 6 бит данных 10= 7 бит данных 11= 8 бит данных Когда бит DLAB равен 1, регистры приемопередатчика (ООп) и разрешения прерываний (01 h) используются для загрузки делителя скорости обмена. В первый записывается младший, во второй - старший байт делителя. Они формируют шестнадцатибитовый делитель, значение которого вычисляется по следующей формуле: Делитель = байт ... + 256 х байт .... pel истр ООпрегистр Olh В компьютере тактовая частота, подаваемая в UART, составляет 1,8432 МГц. Внутри UART эталонная частота образуется как тактовая, деленная на 16, и равна 115200 Гц. Соотношение между значениями делителя и скоростью можно представить в виде формулы: Скорость =*15200 . Делитель Для получения скорости 9600 бод необходимо, чтобы делитель был равен 12. Следовательно, в буферный регистр приемопередатчика (ООп) должно быть записано число 12, а в регистр разрешения прерываний (01h) - ноль. Если в регистры делителя записана единица, то получится самая высокая скорость - 115200 бод. По смещению 04п расположен регистр управления модемом. В общем случае он используется для управления двумя выходами интерфейса - RTS и DTR. Назначения битов регистра следующие: ООО LOOP 0UT2 0UT1 RTS DTR биты 7-5всегда нули LOOP1 = обратная связь доступна 0 = обратная связь недоступна
По смещению 05h находится регистр состояния приемопередатчика, который содержит информацию о состоянии приемника и передатчика UART. При использовании совместно с регистром идентификации прерываний (02h) можно установить источник прерываний. Назначения битов регистра приведены ниже: О ТХЕ ТВЕ BREK FRME PARE OVFE RxRD ТХЕ (передатчик пуст) ТВЕ (буфер передатчика пуст) BREK (остановка) FRME (ошибка блока) PARE (ошибка проверки на четность) OVRE (ошибка переполнения) RxRD (принятые данные готовы) 1 = 1 О 1 О 1 О 1 О 1 О 1 О нет байта в регистре передатчика и регистре сдвига в регистре передатчика и регистре сдвига один байт нет байта в регистре передатчика в регистре передатчика один байт обнаружена остановка нет остановки обнаружена ошибка нет ошибки обнаружена ошибка нет ошибки обнаружена ошибка нет ошибки принятые данные находятся в регистре приемника нет принятых данных По смещению Обп находится регистр состояния модема, который может использоваться для определения состояния входных сигналов, в частности DCD, DSR, CTS, RI, а также для считывания четырех цифровых входных линий. Назначения битов регистра следующие: DCD RI DSR CTS DDCD DRI DDSR DCST DCD (обнаружена несущая передачи данных) RI (индикатор звонка) DSR (набор данных готов) CTS (сброс для передачи) 1 = DCD активна 0= DCD неактивна 1= RI активна 0= RI неактивна 1= DSR активна 0= DSR неактивна 1= CTS активна О = CTS неактивна 0 ... 7 8 9 10 11 12 13 ... 105
|