Главная

Популярная публикация

Научная публикация

Случайная публикация

Обратная связь

ТОР 5 статей:

Методические подходы к анализу финансового состояния предприятия

Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века

Ценовые и неценовые факторы

Характеристика шлифовальных кругов и ее маркировка

Служебные части речи. Предлог. Союз. Частицы

КАТЕГОРИИ:






Последовательный порт




Последовательный обмен используется при передаче информации на большие расстояния, с целью экономии оборудования. В последнее время он используется для внутриплатного и внутрикрейтового обмен с той же целью. Передача через последовательный порт может быть реализована в режимах синхронного или асинхронного обмена (отличается от синхронного и асинхронного способов передачи информации). При асинхронном режиме формат передаваемого сообщения имеет вид:

 

Cтартовый бит символ бит паритета стоповые биты

 

Обычно длина символов, бит паритета и стоповые биты задаются программно.

Достоинство такого обмена - повышеная достоверность передаваемой информации.

Недостатки:

1. пониженное быстродействие, так как на каждый передаваемый символ требуется 3 или 4 бита сопровождения;

2. информация передается по байтам.

При асинхронном обмене требуется меньшее количество линий между приемником и передатчиком, так как синхронизация обеспечивается заданием одинаковой частоты генераторов ГТИ на приемном и передающем конце линии связи.

 
 

 


При синхронном обмене информация передается посимвольно, с необязательным битом паритета. В некоторых случаях начало сообщения, его конец и адрес приемника кодируются специальными символами (символами синхронизации). Скорость синхронного обмена возрастает в 5-10 раз, по сравнению с асинхронным. Однако требуется дополнительная линия, к которой подключен ГТИ(генератор тактовых импульсов), общий для приемника и передатчика.

Последовательный порт ВЕ51 осуществляет прием/передачу информации в последовательном коде, младшими битами вперед в дуплексном режиме (одновременный прием и передача информации) или полудуплексном режимах.

В состав последовательного канала входят принимающие и передающие сдвиговые регистры, специальный программно-доступный буфер SBUF, регистр управления SCON и логика управления каналом.

Запись байта в передатчик осуществляется автоматически, после того, как информация записана в SBUF. Чтение иформации выполняется из этого же регистра после установки флага готовности последовательного канала RI.

 

Последовательный канал может работать в следующих четырех режимах:

Режим '0' - cинхронный обмен в полудуплексном режиме с частотой OSC/12. Формат посылки – 8 бит. Данные принимаются и передаются через вход RxD, а частота синхронизации формируется на выходе TxD.

В этом режиме порт работает как восьмиразрядный сдвиговый регистр.

Режим '1' - асинхронный обмен, десятибитовый кадр, состоящий из стартового (ноль), стопового (единица)битов и 8-разрядного символа. Cкорость приема и передачи определяется частотой переполнения счетчика С/ T1. В зависимости от состояния бита SMOD регистра PCON частота, поступающая на вход схемы синхронизации последовательного канала с выхода С/Т1, может изменяться в два раза. Схема синхронизации делит эту частоту на 16 и использует её для приема/передачи последовательного кода.

При использовании этого режима следует запретить прерывание от С/Т1.

При приеме стоп-бит заносится в бит RB8 регистра SCON.

Режим '2' - асинхронный 11-битовый кадр. По сравнению с режимом 1 добавлен программно устанавливаемый девятый бит. Передаваемый девятый бит данных принимает значение бита TB8 из регистра управления SCON. Этот бит может быть программно установлен в 0 или 1.В частности, ТВ8 можно присвоить значение бита паритета Р из регистра PSW для повышения достоверности передаваемой информации. При приеме девятый бит данных поступает в бит RB8 регистра SCON. Cкорость передачи фиксирована и определяется значением бита SMOD регистра PCON: OSC/32 или OSC/64.

Режим '3' -аналогичен режиму '2', но скорость обмена задается счетчиком С/T1 как в режиме 1.

Основная настройка последовательного канала на требуемый режим работы производится в регистре SCON, в котором задается режим работы, значение 11-го бита, разрешение контроля 11-го бита (в режимах '2' и '3'), флаги готовности приемника и передатчика.

 

                   
SCON SM0 SM1 SM2 REN TB8 RB8 TI RI  
                             

Рис.3.10.Формат регистра управления/статуса универсального асинхронного приемопередатчика (УАПП) SCON: SMO,SM1 - биты управления режимом, устанавливаются/сбрасываются программно: SMO, SM1 = 00 - режим '0', SMO,SM1 = 01 - режим '1', SM0,SM1 = 10 - режим '2', SM0,SM1 = 11 - режим '3',SM2 - запрещение приема кадров с нулевым восьмым битом, в режиме '0' должен быть сброшен, устанавливается программно; RЕN - разрешения приема, устанавливается/сбрасывается программно; TB8 - восьмой бит передатчика в режимах '2' и '3'; RB8 - восьмой бит приемника в режимах '2' и '3', в режиме '1', если SM2=0, то отображает стоповый бит, в режиме '0' не используется; TI - флаг готовности передатчика, устанавливается аппаратно по окончании передачи байта, сбрасывается программно; RI - флаг готовности приемника, принцип работы аналогичен TI.

 

Скорость последовательного обмена в зависимости от режима работы определяется либо частотой работы ОМК (режимы 0 и 2) либо частотой переполнения C/T1 (режимы 1 и 3).

В режимах 1-3 изменение частоты передачи информации в 2 раза обеспечивается битом SMOD регистра PCON. В режиме '2' скорость задается частотой В режимах '1' и '3' - частотой: , частота переполнения С/T1.

                   
PCON SMOD X X X GF1 GF0 PD IDL  
                                     

Рис.3.11. Формат регистра управления мощностью PCON: SMOD - бит управления скоростью передачи УАПП, при SMOD = 1 скорость передачи вдвое больше, чем при SMOD = 0; GF1,GF2 - флаги общего назначения, устанавливаемые пользователем; PD - установка бита переводит ОМК в режим холостого хода.

 

Hаиболее удобен для использования в последовательном канале режим '2' счетчика/таймера С/Т1, если с его помощью можно обеспечить требуемую скорость передачи, так как в этом режиме не требуется перезагрузка коэффициента пересчета.

Для использования C/T1 в качестве источника скорости обмена необходимо:

запретить прерывание от C/T1,

запрограммировать работу C/T1,

запустить C/T1.

 

Пример: Организовать работу передатчика в режиме '1'; передаваемые данные находятся в РПД с адреса аddr. Число передаваемых данные n. Вывести информацию в программном режиме.(SCON):=01x...xb, (TMOD):=1xh, (PCON):=80h

 

CLR IE.7; Запрет прерываний, возможно CLR IE.4;CLR ES

MOV SCON, #01x...xb; Режимное слово передатчика

MOV TMOD, #1xh; Режимное слово таймера (режим 1,таймер, прогр.запуск)

MOV PCON, #80h;Установка бита SMOD

MOV R0, #addr; Параметры массива

MOV R2, #n;

M2: MOV TH1, #C1; Коэффициент деления СТ1

MOV TL1, #C2;

SETB TCON.6; Пуск таймера

MOV SBUF, @R0; Передача элемента массива

M1: JNB SCON.1, M1; Анализ флага готовности передатчика

CLR SCON.1; Сброс флага готовности передатчика

DEC R0; Переход к следующему элементу массива

DJNZ R2,M2;

Проиллюстрируем расчет коэффициента деления для скорости обмена 110 бит/сек при частоте кварца 12 МГц: с учетом условий задачи (SMOD=1) частота переполнения C/T1 равна 110*16=1760; на вход таймера поступает частота OSC/12 (1 МГц); коэффициент деления – 1000000/1760=568; так как счетчик суммирующий, то константа (65535-568+1)=64968 (0fdc8h). Таким образом, С1=FDh, C2=C8h.

Возможен вариант решения этой задачи, при котором перезапуск C/T1

выполняется по прерыванию от флага переполнения TF1. Тогда прерывание от C/T1 должно быть разрешено.

Аналогично рассчитывается коэффициент деления и для режима 2, но следует учитывать особенности этого режима (режим перезапускаемый, регистр счетчика восьмиразрядный).

При организации последовательного канала необходимо учитывать, что выход передатчика может работать на длинную линию, поэтому его надо буферизировать. При реализации протоколов стандартных интерфейсов RS-232, RS-485 на выходе устанавливается специальная БИС, обеспечивающая соответствующее формирование сигнала.RS-232(-12B-'1', +12B-'0'), RS-485(5B). В качестве формирователей RS-232 можно использовать передатчики - К559ИП19, К170АП2, приемники - К559ИП20, К170УП2. Недостатком передатчиков этих схем является необходимость использования источников напряжения +/-12В. Лучшими характеристиками обладают формирователи MAX235, MAX221,242, которые питаются только от напряжения +5В и содержат в одном корпусе как приемники, так и передатчики.

 


 

Подсистема прерываний  

 

 

Рис.3.12. Организация подсистемы прерываний.

 

Подсистема прерываний (ПП) реализована в виде двухуровневой подсистемы с пятью источниками запросов - 2 внешних (INT0,INT1), 2 прерывания от счетчиков TF0,TF1 и одно от последовательного канала(TI V RI).

В качестве регистров запроса прерываний используются регистры TCON и SCON.

В TCON хранятся биты переполнения счетчиков, которые сбрасываются автоматически при обращении к подпрограмме обработки прерываний, и флаги внешних прерываний. В SCON – флаги готовности последовательного порта.

Восприятие запроса по входам INTO,INT1 может быть программно установлено по уровню (ноль) или срезу (единица). Запрос по срезу предпочтительнее, так как сброс флага запроса прерываний реализуется автоматически при обращении к подпрограмме обработки прерываний; а в первом случае необходимы дополнительные программно-апппаратные средства для сброса запроса.

Последовательный порт имеет один вектор прерывания общий для TI и RI. Поэтому, в процедуре обработки прерываний, необходимо уточнять источник запроса методом поллинга.

Прерывание можно вызвать также, если установить соответствующие флаги в регистрах TCON и SCON программно.

Управление подсистемой прерывания осуществляется при помощи регистра маски IE и регистра приоритетов IP.

 

                   
  IE EA X X ES ET1 EX1 ET0 EX0
                                     

Рис.3.13. Формат регистра масок прерываний IE: EA - бит общего разрешения прерываний; ES - бит разрешения прерывания от флагов TI и RI; ETI,ET0 - биты разрешения прерываний от таймеров/счетчиков; EXI,EX0 - биты разрешения внешних прерываний INT1,INT0; 1 – прерывание разрешено, 0 – запрещено.

 

Каждому источнику запроса прерываний можно присвоить один из двух уровней приоритета сбросом или соответствующей установкой битов регистра IP.

 

                 
IP X X X PS PTI PXI PT0 PX0

 

Рис.3.14. Формат регистра приоритетов прерываний IP; PS - бит приоритета последовательного канала,; PTI,PTI0 - биты приоритета таймеров; PXI,PXO - биты приоритета внешних прерываний (1 - высший приоритет, 0 – низший).

 

Процедура обслуживания запроса с низким приоритетом может быть прервана запросом более высокого уровня. Прерывание от запроса с высоким приоритетом не может быть остановлено никаким другим запросом. Для разрешения конфликтов одного уровня используется схема вторичного арбитража, устанавливающая следующие приоритеты:

IE0(INT0) - высший

TF0

IE1(INT1)

TF1

RI V TI - низший

Запросы на прерывание могут быть приняты к обслуживанию в конце каждого командного цикла за исключением исполнения команды RETI и команд с любым обращением к регистрам IE и IP. Это обстоятельство гарантирует выполнение хотя бы еще одной инструкции после команд обращения к IE, IP, RETI, прежде чем возникнет новое прерывание. Эта особенность может быть использована для организации пошагового режима

Если прерывание разрешено, то ОМК генерирует команду LCALL vect, где vect принимает значения

IE0(INT0) 0003h EXIT0

TF0 000Bh TIMER0

IE1(INT1) 0013h EXIT1

TF1 001Bh TIMER1

RI V TI - 0023h SINT

По адресу вектора обычно располагается команда LJMP или LCALL с адресом начала подпрограммы обработки прерывания. Так как вектора располагаются в начальных адресах памяти, программы обработки прерываний следует располагать по адресам большим, чем 0026h.

При переходе к процедуре обслуживания прерываний состояние РС автоматически загружается в стек, обеспечивая возврат к прерванной программе по команде RETI.

Если число внешних источников запросов больше двух, то их можно объединить по ИЛИ на входах INT0 и INT1. Дальнейшая обработка запросов производится методом поллинга. Наиболее просто это реализуется по схеме «Монтажное ИЛИ»(открытый коллектор или открытый сток). Дополнительно потребуется регистр запросов прерывания, в качестве которого может использоваться свободный параллельный порт или его часть.

Для организации ввода/вывода информации по срезу импульса запроса INT0 можно, например, реализовать следующую программу:

MOV SP,#2F; запись указателя стека

SETB TCON.0; настройка на динамический вход

SETB IP.0; присвоение высшего приоритета (для INT0 это не нужно)

MOV IE,#81h; разрешние прерывания

...

EXIT0(0003h):

LJMP addr16; начальный адрес подпрограммы обработки прерываний

addr 16:

CLR IE.7;

Сохранение информации о прерванной программе

SETB IE.7

...процедура обработки прерываний

CLR IE7

Восстановление информации о прерванной программе

SETB IR.7

RETI; Возврат из прерывания

Если вместо RETI использовать RET, то повторное прерывание по этому входу не будет выполнено

.






Не нашли, что искали? Воспользуйтесь поиском:

vikidalka.ru - 2015-2024 год. Все права принадлежат их авторам! Нарушение авторских прав | Нарушение персональных данных