Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

ГОСЫ НОВЫЕ 2015

.docx
Скачиваний:
100
Добавлен:
18.02.2016
Размер:
6.34 Mб
Скачать

67. Охарактеризуйте формирователи последовательных протоколов на PIC16С52, структура пакета, блок-схема и исходный текст ПО

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

- синхронный, при котором тактовые синхроимпульсы ТС передаются по каналу связи всем участникам информационного обмена;

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

m1 movf Data_Bit,0 ; Data_Bit →W→PortB, при этом в разряде RB0

появится первый (младший) бит регистра Data_Bit, т.е.

фактически начнется передача в последовательный канал первого бита пакета данных и ставим метку m1

m2 subwf TMR0,0 ; вычли из TMR0 значение W

и результат поместили в W, т.к. в TMR0 это значение помещать нельзя

– он считает текущие импульсы

movlw 0x64; восстановили W=100 для отсчета следующих 100 импульсов

btfss Status, 0x02 ; проверили Z=1, если - да, т.е. TMR0 досчитал до

100 и надо подавать на RB0 следующий вит, .е.

пропустить следующую команду, если же – нет, т.е. формирование 100 микросекундного интервала ещё не закончилось, идем на метку m2 для продолжения счета до 100 импульсов (предыдущая команда movlw на

бит Z не влияла)

m3 movlw 0xff

tris PortB ; циклическое конфигурирование

входных контактов порта В, хотя реально требуется только контакт RB0.

Операция чтения PortB=W=РОН здесь не приведена

68. Опишите принципы страничной организации памяти PIC16F877, модуль АЦП, циклограмма, блок-схема и исходный текст ПО. (из конспекта)

Принцип страничной организации памяти PIC 16F877 состоит в том, что вся физически реализованная статическая регистровая память объемом 512 байт делится на 4 банка (страницы) по 128 байт. (рис. 34) Доступ и адресация конкретного регистра в общем адресном пространстве памяти содержит 2 строго последовательных шага:

- выбор номера банка (0,1,2,3) посредством установки 5-го (RP0) и 6-го

(RP1) битов регистра STATUS в 0 или 1 (рис.33);

- выбор адреса требуемого регистра в установленном банке в диапазоне 0х00 – 0хFF (т.е. от 0 до 255)

Модуль АЦП PIC16F877 осуществляет преобразование аналогового сигнала одного из 8-ми входов RA0-RA5 в 10-разрядное число, размещаемое в регистрах

ADRES_H и ADRES_L.

Алгоритм работы модуля:

1. Сконфигурировать и включить модуль АЦП;

2. Выдержать паузу 20мкс;

3. Запустить преобразование бит GO_DONE=1;

4. Ожидать окончания преобразования по флагу GO_DONE=0;

5. Прочитать ADRES.

Указанные шаги указаны на схеме (рис 42)

Фрагмент кода:

begin bcf STATUS, RP1

bsf STATUS, RP0

movlw b’0000111’

movwf OPTION_REG

start bsf ADCON0, ADON ; включаем модуль АЦП, начинается заряд емкости

movlw .5 ; вызов процедуры задержки на 30мкс с параметром W=5

call Small_delay ; необходимую для зарядки емкости

bsf ADCON0, GO_DONE ;старт преобразования

WLoop btfsc ADCON0, GO_DONE ; ожидаем окончания преобразования

goto WLoop

Small_delay: ; Процедура задержки на (5W+5)мкс. Работа основана

bcf STATUS, RP1 ;на двух свойствах: 1) время выполнения одной

bcf STATUS, RP0 ; команды равно 1 или 2 мкс; 2) в теле процедуры

группа таких команд выполняется W раз

69. Охарактеризуйте SPI модуль PIC 16F877, структура, организация взаимодействия с внешней EEPROM, блок-система и исходный текст ПО.

На рис. 54 приведена структурная схема встроенного в PIC 16F877 модуля син-

хронного последовательного порта (MSSP), в мастер-режиме SPI интерфейса, поэтому далее будем называть его модулем SPI. Модуль обеспечивает решение 3-х основных задач интерфейса:

- автоматическую генерацию на выходе SCK (разряд RC3 порта С) синхроим-пульсов (с управляемой частотой и начальным уровнем) для синхронизации начала и окончания процессов приема-передачи и передачу его slave-устройствам;

- передачу данных (инструкций, адресов) в последовательном коде на выходе

SDO (разряд RC5 порта С) от мастер-контролера к slave-устройствам сети;

- прием данных в последовательном коде, поступающих на его вход SDI (разряд

RC4 порта С), от slave-устройств сети к мастер-контроллеру.

Для рассмотрения режимов приема и передачи необходимо учитывать, что в SPI

модуле эти режимы реализованы только одновременно, т.е. при передаче байта одновременно будет происходить прием, и, наоборот, для приема байта, необходимо включить режим передачи.

контроллер ВСЕГДА

для управления микросхемой (в зависимости от ее режима работы) вначале отправляет по SPI интерфейсу 1-3 байта, а затем принимает ответный байт от микросхемы памяти. Отсюда следует, что целесообразно создать отдельную процедуру для передачи/приема одного байта, вызывая ее требуемое число раз сначала для

передачи сначала команды/адреса, а затем для приема и чтения содержимого регистра SSPBUF.

output ; имя процедуры перед. 1Б по SPI

bcf STATUS, RP1 ; 0-й банк для обращения

bcf STATUS, RP0 ; к регистру outbyte

movf outbyte, W ; пересыл. содерж. оutbyte

movwf SSPBUF

loop1

bsf STATUS, RP0 ; 1-й банк

btfss SSPSTAT, BF ; проверка окончания

; приема/передачи

goto loop1

bcf STATUS, RP0 ; 0-й б

movf SSPBUF,W ;пересылка содержимого регистра SSPBUF в РОН для

movwf rxdata ; хранения и обработки. Эти 2 команды нужны в режиме

;приема, когда принятый и содержащийся в SSPBUF байт был отправлен ;м/с памяти. В режиме передачи они тоже выполняются, но для сброса BF ;в 0 и корректности контроля приема/передачи след.байта, но содержимое ;регистра rxdata в этом случае не используется

retlw 0 ; точка возврата из процедуры с записью константы в W

70. Опишите модули таймеров PIC16F877, архитектура и программирование

В состав микроконтроллера PIC 16F877 входят три независимых модуля таймеров-счетчиков (далее - таймеров) TMR0, TMR1, TMR2.

Модуль TMR0: 1) 8-ми разрядный суммирующий счетчик, состояние которого (через регистр TMR0) доступно на ШД и может работать в режиме подсчета числа внешних импульсов, поступающих на вход RA4, или внутренних импульсов FOSC/4, частота которых 1 МГц; 2) управляет периодом сброса сторожевого таймера WDT, определяя моменты перезагрузки процессора при некорректной работе ПО.

При работе микроконтроллера в составе контроллера TTF 5.0 сторожевой таймер – НЕ ОТКЛЮЧАЕТСЯ. В связи с этим есть особенности: 1) необходимость установки максимального периода срабатывания (в регистре OPTION_REG); 2) невозможность использования таймера TMR0 как для обработки внешних сигналов с контакта RA4, так и для ЛЮБЫХ иных целей,

Модуль TMR1 :1) 16-ти разрядный суммирующий счетчик, состояние которого в виде двух байт: старшего H и младшего L доступно на ШД. Может работать в режиме подсчета числа внешних импульсов, поступающих на один из входов RС0 или RC1, или внутренних импульсов FOSC/4, частота которых 1 МГц; 2) максимальное число импульсов составляет 219 (из них – 216 сам таймер, а 23 – предварительный делитель, установленный перед ним).

Модуль TMR2: 1) 8-ми разрядный суммирующий счетчик, состояние которого (через регистр TMR2) доступно на ШД и может работать ТОЛЬКО в режиме подсчета числа внутренних импульсов FOSC/4, частота которых 1 МГц; 2) формирует временные параметры (период и длительность) выходных сигналов двух модулей ШИМ. 3) максимальное число импульсов составляет 216 (из них – 28 сам таймер, 24 – предварительный делитель, установленный перед ним, и 24 – постделитель, установленный после таймера).

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

Работа модуля начинается с его конфигурирования с помощью специального регистра T1CON (имеющего адрес 0х10). Посредством бит выбирается один из 4-х возможных коэффициентов деления пред делителя. Эти операции должны производиться при ВЫКЛЮЧЕННОМ таймере (бит TMR1ON=0). Запуск таймера осущ. битом TMR1ON. В процессе работы таймера, 16-ти разрядный двоичный эквивалент числа импульсов с периодом 1 мкс (FOCS/4), автоматически записывается в два регистра – TMR1H и TMR1L. Учитывая, что максимальный КСЧ таймера равен 216, следующим 65536-ым тактовым импульсом он устанавливается в состояние 0х0000, и в регистре PIR1 устан. бит (флаг) TMR1IF=1.

Алгоритм работы с модулями таймеров на примере конфигурирования и ожидания окончания работы таймера TMR2 по биту TMR2IF=1. В примере используется тот факт, что при сбросе микроконтроллера состояние регистра PR2 = 0хFF, т.е. таймер TMR2 считает до 256.

bcf STATUS, RP1 ; 0-й банк

bcf STATUS, RP0

clrf T2CON ; выключение таймера для его конфигурирования

clrf TMR2 ; очистка старого значения таймера

clrf INTCON ; запрет обработки прерываний от периферийных модулей, чтобы исключить переход к авт. обработчику в памяти команд,

bsf STATUS, RP0 ; 1-й банк

clrf PIE1 ; доп. запрещ. прерыв. рекоменд. Microchip

bcf STATUS, RP0 ; 0-й банк

c lrf PIR1 ; сбросить все флаги прерываний

movlw 0x72 ; конфиг. : постдел.-1:15, предел.-1:16

movwf T2CON

bsf T2CON, TMR2ON ; включаем таймер

Flag

Btfss PIR1, TMR2IF ; проверка досчитал 16 раз до 0х00 по флагу TMR2IF=1

goto Flag

ОБРАБОТКА СОБЫТИЯ ОКОНЧАНИЯ СЧЕТА

bcf PIR1, TMR2IF ; сбрасываем флаг прерывания для обеспечения возможности контроля переполнения таймера в след. цикле работы

71. Опишите ЦАП с использованием модуля ШИМ PIC 16F877, блок схема и исходный текст ПО.

Существует два основных способа (см. Рис. 160) построения ЦАП (преобразующих цифровой сигнал в аналоговое напряжение) с использованием микроконтроллеров:

- в случае параллельного кода цифрового сигнала: с использованием суммирующих резистивных матриц (Г-образных делителей напряжения), подключаемых к выходам микроконтроллера, при этом сопротивления резисторов R1 - RN пропорциональны коду «8-4-2-1» и R0 , а результирующее сопротивление плеч делителя определяется числом логических «0» и «1» на выходах порта. В этом случае на выходе обеспечивается любое постоянное напряжение с шагом 5В/2n , где n – разрядность порта;

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

В состав микроконтроллера входят два независимых идентичных встроенных модуля, позволяющие формировать импульсные сигналы с ШИМ. Выходом первого модуля является контакт RC2, выходом второго – RC1. Каждый из них позволяет генерировать последовательность прямоугольных импульсов с программируемыми значениями периода и длительности положительного импульса. Принцип формирования заключается в предварительной записи требуемых значений в специальные управляющие регистры PR2, CCPR1L, CCP1CON, установки значений коэффициента пред. делителя таймера TMR2. Изменение этих параметров в процессе работы микроконтроллера позволяет получать импульсную последовательность с регулируемой скважностью, путем вариации как периода ШИМ, так и длительности положительного импульса.

.

72. Опишите пример АС измерения температуры с использованием интеллектуальных датчиков, схема, формат выходного сигнала, структура протокола µLAN

Алгоритм измерения температуры с помощью датчика DS1820 определяется спецификацией интерфейса «1-Wire» и содержит элементы логического протокола обмена данными между мастер-контроллером и датчиком. Это связано с использованием технологии «master-slave», при которой инициирование любых действий датчика производит мастер-контроллер. Блок-схема алгоритма измерения приведена на рис. 53.

После включения питания, контроллер производит инициализацию датчика. После получения положительного ответа датчика, мастер отправляет на него последовательно две команды (используя процедуру ds_write) - Skip ROM и Convert T После передачи второй команды, которая аппаратно запускает процесс измерения температуры датчиком, необходимо дождаться ответа от датчика о том, что процесс измерения завершен и в ОЗУ датчика хранятся два байта значения температуры. Этот процесс не рассматривался ранее, поэтому «затенен» на рис. 53 и ниже рассмотрен более подробно. После получения команды Convert T, датчик производит собственно процесс измерения температуры, который занимает определенное (и достаточно большое, около 1 сек) время. Строго говоря, контроллер может «ничего не делать» и просто «опросить» датчик через 1 секунду для получения измеренного значения температуры. Однако на практике, скажем при необходимости отслеживать температуру непрерывно, такая задержка приведет к неоправданным задержкам в реакции контроллера на изменение температуры. Осуществляется путем отправки на него стандартного (для режима чтения бита) 5-ти микросекундного импульса, после которого, выждав паузу 5 мкс, контроллер ждет ответа в виде уровня «1» в этот момент. Блок-схема процесса ожидания ответа датчика после выполнения команды Convert T представлена на рис. 54. При обнаружении через 5 мкс ответа датчика в виде высокого уровня на линии (а пока датчик не готов – он «отвечает» на линии нулем), контроллер делает вывод о завершении процесса измерения и готовности датчика к выдаче результата. Для получения результата измерения предназначена команда Read Scratch pad, однако в соответствие со спецификацией интерфейса «1-Wire» перед ней необходимо два вспомогательных шага: повторно проинициализировать датчик и отправить на него команду Skip ROM. После их выполнения в ОЗУ датчика будут сохранены 2 байта о знаке и значении измеренной температуры, и он будет готов побитно передавать их мастер-контроллеру. В этом случае контроллеру останется лишь инициировать прием (процедура ds_read), т.к. без импульсов синхронизации приема датчик самостоятельно ничего передавать не может, принять и соответствующим образом декодировать принятые 16 бит.

73 Вывести аналитическое выражение для коэффициента нелинейности ГЛИН с ПОС.

Физически нелинейность выходного напряжения вызывается непостоян­ством зарядного тока емкости С1, в процессе формирования прямого хода. Анализ принципиальной схемы ГЛИН показывает, что на создание зарядного тока оказывают влияние три компоненты, непостоянство или несовпадение которых во времени и вызывает нелинейность выходного напряжения:

1.Наличие входного тока эмиттерного повторителя на VT2 обуслов­ленного конечной величиной входного сопротивления:

2.Наличие тока разряда конденсатора С0, который во время прямого хода является источником энергии для заряжающегося конденсатора C1. Обычно этот ток характеризуется величиной напряжения, на которую уменьшается напряжение на накопительной емкости С0: ΔUС0

З.Наличие в цепи заряда управляемого источника напряжения E(t), величина которого пропорциональна величине изменяющегося напряже­ния на емкости С1 и обусловлена отличием от единицы коэффициента передачи К эмиттерного повторителя на VT2: Е(t) = Ек + К UС1(t), К ≠ 1

Учет этих составлявших приводит к образованию следующая схемы заряда С1 (рис.11).

Для определения коэффициента нелинейности γ воспользуемся его определением (1.2), а с учетом общего соотношения (1.4) получим:

γ = 1 – ic1(tп.х) / ic1(0) (2.11,1)

- зарядный ток емкости С1 на момент действия соответственно переднего и заднего фронтов коммутирующего импульса. Поскольку при t = 0, UC1(0) = 0, Δ UС0(0) = 0, Uвых(0) = 0, Iвх.э.п.(0) = 0 (т.к. VT2- заперт), то из рис.7 видно:

iС1(0) = Ек / R (2.12)

При t = tп.х = Ткомм, по I закону Кирхгофа из рис.11 следует

iС1(t) = iR(t) - Iвх.э.п. (2.13)

На этапе формирования прямого хода, входной ток VT2 уже зависит от UC1(t):

Iвх.э.п. = UC1(t) / Rвх.э.п. = UС1(t) / βVT2Rэ (2.14)

βVT2 - статический коэффициент передачи тока VT2. Ток через резистор iR(t)

определяется разностью потенциалов на его концах:iR(t) = (Ек - ΔUС0 +KUC1(t) – UC1(t)) / R (2.15)

Величину ΔUС0 найдем из закона сохранения заряда, с учетом того что после запирания диода VD1 происходит перераспределение напря­жение между емкостями С0 и С1. При этом в начале прямого хода емкость С0, заряженная до напряжения Ек, имеет заряд: q1 = C0Ек. По окончании прямого хода конденсатор С1 заряжается до напряжения UM, а С разряжается до напряжения Ux. Суммарный заряд системы стал:q2 = UMC1 + UxC0, q1 ≡ q2, а ΔUС0 = Ек – Ux, то ΔUС0 = UM C1/C0 (2.I6)

Подставляя (2.16) в (2.15) и далее (2.14) в (2.13, 2.12, 2.11,1), а также учитывая, что UС1(tп.х) = UM получим окончательно:

Физически нелинейность выходного напряжения вызывается непостоян­ством зарядного тока емкости С1, в процессе формирования прямого хода

74 Вывести расчетные соотношения для потребляемой мощности схемой ТУО в режиме отсечки и насыщения

Типовая схема транзисторного усилителя - ограничителя представлена на рис.5 и построена в соответствии со структурой идеального преобразователя (рис.1).

Роль ключевого элемента Кл здесь выполняет транзистор VT1 с коллекторной нагрузкой R3. Резистивный делитель R1, R2 обеспечивает наличие начального потенциала (базового смещения) на базе транзистор VТ1, необходимого для выведения рабочей точки каскада на требуемый участок амплитудной характеристики. Конденсаторы Ср1 ,Cp2 - раздели­тельные, служат для развязки по постоянному току источника входного сигнала от цепей смещения транзистора VT1.

Потребляемая мощность в любом режиме

Ток потребление зависит от режима работы VT1:

А) отсечка, VT1 – заперт

() Таким образом :

Б) Режим насыщения, VT1- открыт

) Таким образом,

75 Синтезировать схему одноразрядного полного арифметического сумматора в базисе «И-ИЛИ-НЕ»

Операция сложения двух одноразрядных чисел x1 и x2 и формирование результата суммы широко применяется в вычислительной технике, поскольку все остальные арифметические операции (умножение, деление, вычитание) можно выразить через операцию сложения чисел, представленных некоторыми специальными кодами. Исключение составляет случай сложения двух единиц, когда происходит переполнение, и для индикации этого приходится вводить новую переменную Р – сигнал переноса в старший разряд. В десятичной системе счисления аналогичная ситуация возникает когда складывают, например, 1+9=10, в данном случае разрядности единиц уже не хватает, и на единицу увеличивается разряд десятков. Отсюда следует , что при суммировании двух одноразрядных чисел, результат может быть числом двухразрядным, причем младший разряд определяется выражением , а старший равен Р. Ниже будет показано, что суммирование двух много разрядных чисел сводится к поразрядному суммированию, начиная с младшего разряда, с учетом переноса из предыдущего разряда.

Таким образом, одноразрядный полный сумматор, обеспечивает сложение трех двоичных цифр – слагаемых и сигнала переноса (из предыдущего младшего (i- 1) разряда). А на выходе формируется сумма этих трех цифр и сигнал переноса в старший (i +1) разряд.

76 Синтезировать схему дешифратора для семисегментного индикатора в базисе «И-ИЛИ-НЕ»

Семисегментный оптический индикатор представляет собой устройство, состоящее из семи светодиодов в виде отрезков прямой линии, которые принято обозначать буквами a, b, c, d, e, f, g расположенными таким образом, что свечение определенной их комбинации изображает определенную цифру (рис.14)

Например: для изображения цифры «0» необходимо, чтобы светились: a, b, c, d, e, f, т.е. на эти сегменты должны быть поданы уровни логической единицы (на сегмент g – уровень логического нуля). По способу изображения цифры N десятичной системы, заполняем таблицу функционирования (табл. 10).

Учитывая, что с помощью 4-х разрядного входного кода можно отобразить десятичные числа от 0 до 15, в то время как одноразрядный семи сегментный индикатор способен отобразить числа только от 0 до 9, в диаграммах Вейча будет 6 избыточных комбинаций. Доопределяя их для каждой из семи выходных (a – g) функций можно получить минимальную ДНФ. Окончательные результаты из-за их громоздкости здесь не приводятся.

77 Синтезировать схему синхронного суммирующего счетчика на D триггерах, с модулем счета К=8 в базисе «И-ИЛИ-НЕ»

Разрешающим сигналом для D триггера является положительный из 0 1 перепад.

Вследствие этого:

- для первого разряда никаких подходящих (кроме ) сигналов, подаваемых на тактирующий вход подобрать не удается;

- для второго и третьего подходят сигналы, снимаемые не с прямых, а с инверсных выходов соответственно первого и второго триггеров.

3.Выбранные сигналы (для второго и третьего разрядов)

кроме того, обеспечивают отсутствие разрешающего перепада (из 0 в 1) для всех переходов триггеров 00, 11, что позволяет отметить крестиком все переходы 00,11.

Таким образом, получаем таблиц

.

78 Разработать исходный код процедуры для обработки сигнала от одиночного дискретного датчика для контроллера PIC 16C52

Работа схемы: при замыкании Кл1 на контакте RB1 появляется логический “0”, при этом контроллер формирует уровень логической “1”на выходе RA0, вызывая зажигание светодиода, при размыкании Кл1, за счет подключения RB1 через R1 к источнику питания на RB1 появляется логическая “1”, светодиод при этом должен погаснуть (RA0=”0”).

Scan ; метка начала опроса (сканирования) кнопки RB1 для определения, не нажата ли она

btfsc PortB,1 ; если она замкнута (т.е. на RB1 подается “0”), то пропустить следующую команду и перейти к метке Fire, подпрограмме зажигающей светодиод

goto NotFire ; переход к метке NotFire, подпрограмме тушения светодиода, если RB1 не замкнута

goto Fire ; переход к метке Fire, подпрограмме зажигания светодиода, если RB1 замкнута

NotFire ;метка начала подпрограммы тушения светодиода

bcf PortA,0 ; установить “0” на выходе RA0, светодиод погаснет

goto Scan ; переход к метке Scan для продолжения сканирования кнопки на RB1

Fire ; метка начала подпрограммы зажигания светодиода

bsf PortA,0 ; установить “1” на выходе RA0, при этом светодиод загорится

goto Scan ; переход к метке Scan для продолжения сканирования кнопки на RB1

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]