03_Периферийные_устройства_Информ_материал_СПО_ч3 (Лекция)
Описание файла
Файл "03_Периферийные_устройства_Информ_материал_СПО_ч3" внутри архива находится в папке "Лекция". PDF-файл из архива "Лекция", который расположен в категории "". Всё это находится в предмете "системное программное обеспечение (спо)" из 5 семестр, которые можно найти в файловом архиве НИУ «МЭИ» . Не смотря на прямую связь этого архива с НИУ «МЭИ» , его также можно найти и в других разделах. .
Просмотр PDF-файла онлайн
Текст из PDF
3. ПЕРИФЕРИЙНЫЕ УСТРОЙСТВА МИКРОКОНТРОЛЛЕРОВСЕМЕЙСТВА MCS -513.1. Таймеры-счетчикиМикроконтроллер 8051 содержит два таймера/счетчика (ТС): ТС0 и ТС1.Микроконтроллер 8052 дополнительно к этим двум ТС содержит еще один, ТС2. Все ТСмогут быть запрограммированы для работы либо в качестве таймера, либо в качествесчетчика.Таймеры/счетчики построены на основе инкрементируемых 16-битовых регистров,каждый из которых состоит из пары программно-доступных РСФ, соответственно: TH0,TL0; TH1, TL1 и TH2, TL2 (8052). Причем регистры TL0-TL2 содержат младшие 8разрядов ТС.В режиме таймера содержимое регистра таймера/счетчика инкрементируется каждыймашинный цикл. Поскольку машинный цикл состоит из 12 периодов тактовогогенератора, то скорость счета – fBQ/12, где fBQ — частота тактового генератора. Вклассическом варианте счетчик работает только на суммирование, однако в современныхмоделях микроконтроллерах режим счета у таймеров/счетчиков можно выбирать.В режиме счетчика внешних событий содержимое регистра таймера/счетчикаинкрементируется при переходе из «1» в «0» сигнала на соответствующем внешнемвыводе: T0, T1 или T2 (8052).
Выборка внешнего входного сигнала выполняется в фазеS5P2 каждого машинного цикла. Переход этого сигнала из “1” в “0” фиксируется в случае,когда выборки показывают высокий уровень сигнала в одном цикле и низкий уровень вследующем цикле. Новое значение заносится в регистр в фазе S3P1 машинного цикла,следующего за циклом, в котором был зафиксирован переход сигнала из «1» в «0» (т.е.считает по отрицательным перепадам на входе). Поскольку для обнаружения этогоперехода требуется, как минимум, 2 машинных цикла, то максимальная частота счета —fBQ/24. На коэффициент заполнения (отношение длительности импульса к его периоду)внешнего входного сигнала ограничений нет. Однако, чтобы уровень сигнала былгарантированно зафиксирован, он должен оставаться неизменным в течение как минимумодного машинного цикла.3.1.1. Таймер 0 и таймер 1Эти таймеры/счетчики присутствуют в обоих типах микроконтроллеров, 8051 и 8052.Функционирование в качестве таймера или счетчика выбирается управляющими битамиC/T в регистре специальных функций TMOD (рис.
1). Оба этих TC имеют четырерабочих режима, которые выбираются парой битов (M1, M0) в регистре TMOD. Режимы0, 1 и 2 одинаковы для обоих TC. Режим 3 различен; причем установка режима 3 в TC0влияет на режимы работы TC1. Наиболее часто используемые режимы — 1 и 2.3.1.2. Режим 0 ТСВ режиме 0 любой TCx подобен таймеру микроконтроллера 8048 (8-битовый счетчик спредделителем на 32). На рис. 2 представлена функциональная схема ТСx, поясняющаяего работу в режиме 0. В этом режиме 13-битовый регистр ТСx включает 8-битовыйрегистр THx и 5 младших битов регистра TLx.
Старшие 3 бита последнего не определеныи должны игнорироваться. Счет разрешен, когда бит TRx регистра TCON (см. рис. 3)установлен в «1» и либо GATE = 0, либо INTx = 1. Установка бита GATE в «1» позволяетиспользовать TC для измерения длительности импульса, поданного на внешний выводINTx. При переполнении TCx устанавливается флаг прерывания TFx.3.1.3. Режим 1 ТСЭтот режим работы TC подобен режиму 0, за исключением того, что регистртаймера/счетчика имеет разрядность 16 бит (см. рис. 4).3.1.4. Режим 2 ТСВ этом режиме младший регистр TLx выполняет функции 8-битового счетчика савтоматической перезагрузкой. При каждом переполнении TLx не только устанавливаетсяфлаг TFx в регистре TCON, но и загружается содержимое THx в TLx; при этомсодержимое THx не изменяется. Логику работы TC в режиме 2 иллюстрирует рис.
5.Назначение управляющих битов полностью соответствует режиму 0.Временная диаграмма работы TCx в режиме 2:где NTL — значение содержимого регистра TLx, NTH — значение содержимого регистраTHx, T и f — период и частота входных счетных импульсов соотв., TOV и fOV — период ичастота переполнения счетчика соотв., fBQ — тактовая частота кварцевого генератора.В режиме таймера: T = Tц f = fBQ/12.Пример:FoscEQU 12000; частота генератора, кГцFovEQU 1200;TH_1EQU (Fosc/Fov)*1000/12частота переполнения, Гц; Подпрограмма InitTC1;инициализация TC1 в режиме 2InitTC1: MOVMOVMOVSETBRETTMOD,#0010$0000BTH,#TH_1TL,#TH_1TR13.1.5.
Режим 3 ТСTC1 в режиме 3 счет не производит, а просто сохраняет свое содержимое. Эффект такойже, как при установке бита TR1 = 0. В этом режиме регистры TL0 и TH0 работают как дванезависимых 8-битовых счетчика. Работа TL0 и ассоциированные с ним флаги иуправляющие биты такие же, как и при работе TC0 в режиме 0, за исключением того, чторазрядность счетчика в данном случае – 8 бит. TH0 может выполнять только функциютаймера и использует управляющий бит TR1 и флаг TF1 таймера TC1. Логику работы TC0в режиме 3 иллюстрирует рис.
6.Режим 3 может использоваться в приложениях, требующих дополнительный 8-битовыйтаймер или счетчик. Если TC0 используется в режиме 3, TC1 может бытьвключен/выключен переводом из/в свой собственный режим 3; или может бытьиспользован последовательным портом в качестве генератора, задающего скоростьпередачи; или — в любом приложении, не требующем прерывания.3.2. Последовательный портПоследовательный порт является дуплексным, что означает возможность одновременнойпередачи и приема. Программный доступ к приемнику и передатчику — этосоответственно считывание из РСФ SBUF и запись в SBUF, т.е. с идентификатором SBUFфизически ассоциированы два буферных регистра: один буферный регистр приемника,другой – передатчика.
С каждым буферным регистром, в свою очередь, ассоциируетсясдвиговый регистр (программно недоступный), преобразующий последовательный код впараллельный и наоборот. Прием и передача осуществляется «младшими разрядамивперед» (сначала передаются младшие).Последовательный порт может функционировать в 4-х режимах. В режиме 0последовательный порт работает как восьмибитовый сдвиговый регистр. В режимах 1, 2 и3 – как UART — универсальный асинхронный приемопередатчик (USART — -//-, номожет работать и в синхронном режиме). Последние режимы разнятся форматомпередаваемых/принимаемых и способом задания частоты приема/передачи.Во всех 4-х режимах передача инициируется любой командой записи в РСФ SBUF.
Приемв режиме 0 инициируется условием: биты RI = 0 и REN = 1, где RI и REN — битыуправляющего регистра последовательного порта SCON. В остальных режимах приеминициируется приходом старт-бита, если REN = 1.TxD1RxDRxDRxDTxD2TxD3.2.1. Инициализация (установка параметров) последовательногопортаПараметры последовательного порта определяются, главным образом, бит-адресуемымРСФ SCON и частично РСФ PCON. Описание назначения битов этих регистровпредставлено на соответствующих рисунках.3.2.2. Описание режимов работы последовательного портаРежим 0.
В этом режиме последовательный порт работает как сдвиговый регистр.Последовательные данные принимаются или передаются через вывод RXD (P3.0), а навыводе TXD (P3.1) микроконтроллер формирует синхросигнал. Скорость приема/передачи постоянна и составляет 1/12 частоты кварцевого резонатора МК: BR0 = FBQ/12.Здесь на рис. 3 для вывода RXD последовательного порта в режиме передачи будутсправедливы следующие времена — Tн’ ≈ (2TBQ – 117) нс, Tsu’ ≈ (10TBQ – 133) нс, а врежиме приема — T” = 0, Tsu” ≈ (2TBQ + 133) нс.Режим 1. В этом режиме последовательный порт работает в формате 8-битового UART.Через TXD передаются, а через RXD принимаются 10 бит: старт-бит (0), 8 бит данных истоп-бит. При приеме стоп-бит поступает в RB8 регистра SCON.
Скоростьприема/передачи определяется частотой переполнения TC1 и значением бита SMODрегистра PCON:Максимальная скорость при FBQ = 11059,2 кГц составляет 57,6 кбит/с.Примечание. Единицей измерения величины BR1 является бит/с или бод — количество измененийсостояния одной логической ячейки в единицу времени.Временная диаграмма, поясняющая передачу байта в режиме UART:Исходное состояние на линии — логическая «1» (асинхронный способ передачи).
Чтобызащититься от помех, счетчик отсчитывает половину периода и делает выборку, проверяя,пришел ли старт-бит. Далее выборки делаются посередине битов. Стоп-бит гарантируетпоследовательную передачу байтов.Режим 2. В этом режиме последовательный порт работает в формате 9-битового UART спостоянной скоростью. Через TXD передаются, а через RXD принимаются 11 бит: стартбит (0), 8 бит данных, программируемый 9-й бит данных и стоп-бит. Девятый бит данныхпри передаче определяется битом TB8 (например, для установки паритета [четности]).При приеме 9-ый бит поступает в RB8.
Скорость приема/передачи программируется как1/32 или 1/64 FBQ:Режим 3. Этот режим аналогичен предыдущему за исключением скорости передачи иотсутствию стоп-бита. Скорость приема/передачи определяется частотой переполненияTC1 и значением бита SMOD регистра PCON: BR3 = BR1.3.2.3. Мультипроцессорная связьРежимы 2 и 3 имеют специальное обеспечение для мультипроцессорной связи. В этихрежимах принимается и передается 9 битов данных.
При приеме девятый бит поступает вRB8. Затем приходит стоп-бит. Порт может быть запрограммирован так, что когдаполучен стоп-бит, то прерывание последовательного порта будет активизироваться толькопри RB8 = «1». Эта особенность разрешается установкой бита SM2 в регистре SCON.Использование этой особенности в МП-системах заключается в следующем. Когдаведущий процессор хочет передать блок данных к одному из ведомых процессоров, то он,во-первых, посылает адресный байт, который идентифицирует ведомого адресата.Адресный байт отличается от байта данных тем, что 9-й бит = «1» в байте адреса и «0»при байте данных. При SM2 = «1» ни один ведомый не будет прерываться байтом данных.Адресный байт, однако, прервет все ведомые, так что каждый из них может проверитьполученный байт и увидеть: является ли он адресуемым.