48450 (Работа периферийных устройств), страница 3

2016-07-30СтудИзба

Описание файла

Документ из архива "Работа периферийных устройств", который расположен в категории "". Всё это находится в предмете "информатика" из 1 семестр, которые можно найти в файловом архиве . Не смотря на прямую связь этого архива с , его также можно найти и в других разделах. Архив можно найти в разделе "курсовые/домашние работы", в предмете "информатика, программирование" в общих файлах.

Онлайн просмотр документа "48450"

Текст 3 страницы из документа "48450"

Все перечисленные операции в ведомом устройстве выполняются аппаратно.

Порт TWSI у микроконтроллера типа ml63 содержит 5 регистров ввода-вывода:

■ регистр данных TWDR (№ $03);

■ регистр адреса TWAR (№ $02);

■ регистр состояния TWSR (№ $01);

■ регистр задания скорости передачи TWBR (№ $00);

■ регистр управления TWCR (№ $36).

Порт переводится в активное состояние при установке в единичное состояние разряда TWEN регистра TWCR. При этом выводы порта SCL и SDA подключаются к внешним выводам микроконтроллера PC0 и РС1 соответственно.

Порт начинает работать в качестве ведущего после установки в единичное состояние разряда TWSTA регистра TWCR.

При работе в качестве ведущего генератор G формирует импульсный сигнал, который через буферную схему I/OCL выдается в линию SCL. Скорость передачи битов определяется числом, код которого записан в регистре TWBR. Положение фронтов импульсов в импульсном сигнале связано с выполнением определенных операций в порте и может изменяться в некоторых пределах. Осредненное значение скорости передачи BR, бит/с, определяется по формуле

где FCK - тактовая частота микроконтроллера; (TWBR) - число, код которого записан в регистр TWBR ( (TWBR) >7); tA - показатель, учитывающий растяжение некоторых интервалов между фронтами импульсов (tА = 200-600 нс).

При работе порта в качестве ведомого порядок его работы определяется импульсной последовательностью, которая через вывод SCL и буферную схему I/OCL поступает в схему управления СУ.

Регистр TWDR имеет цепи для сдвига кода влево. В него параллельно записываются байты, предназначенные для последовательного вывода в линию SDA через буферную схему I/ODA, и последовательно вводятся байты, поступающие из линии SDA через буферную схему I/ODA. импулсы сдвига поступают из схемы управления.

Регистр TWAR используется только при работе порта в качестве ведомого. Код, записанный в старших семи его разрядах, представляет собственный адрес микроконтроллера (А6,..., АО). Этот код сравнивается с помощью схемы сравнения СС с кодом в старших семи битах адресного байта, принятого в регистр TWDR.

Младший разряд TWGCE регистра TWAR разрешает прием байтов данных (при TWGCE = 1) после получения адресного байта с адресом общего вызова для всех ведомых микроконтроллеров ($00).

Регистр TWCR содержит разряды, определяющие работу схемы управления, (TWEA, TWSTA, TWSTO и TWEN), отражающие состояние порта (TWINT и TWWC) и разряд TWIE, разрешающий поступление запроса прерывания из порта в блок прерываний. Запрос прерывания TWSI поступает в блок прерываний при TWINT = 1 и TWIE = 1.

Код, формируемый в регистре TWSR, отражает состояние порта TWSI на различных этапах его работы.

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

1) ведущий с передачей байтов данных;

2) ведущий с приемом байтов данных;

3) ведомый с приемом байтов данных;

4) ведомый с передачей байтов данных.

В табл.6. описан порядок управления портом TWSI при работе его в качестве ведущего с передачей байтов (табл.6, а) и с приемом байтов (табл.6,5) при отсутствии ошибок в процессе обмена.

В таблице используются следующие обозначения:

■ SLA, W/R - адресный байт, где SLA - адрес ведомого устройства;

■ DATA - байт данных;

■ (TWSR) - байт в регистре TWSR;

■ (TWDR) - байт в регистре TWDR;

■: = - знак операции установки разряда регистра TWCR в указанное состояние.

В исходном состоянии разряд TWEN в регистре TWCR находится в единичном состоянии, остальные разряды - в нулевом состоянии.

В табл.7. описан порядок управления портом TWSI при работе его в качестве ведомого с приемом байтов (в табл.7, а) и с передачей байтов (в табл.7, б) при отсутствии ошибок в процессе обмена.

В исходном состоянии разряды TWEN и TWEA регистра TWCK находятся в единичном состоянии, другие разряды - в нулевом состоянии; в регистре TWAR записан байт SLA, 0/1.

Таблица 6

№ шага

Операция по команде

в программе

Условие перехода

к следующему шагу

а) ведущий с передачей байтов данных

1

TWSTA: =1

TWINT=1, (TWSR) =$08

2

SLA, 0→TWDR

3

TWINT: =0

TWINT=1, (TWSR) =$18

4

DATA→TWDR

5

TWINT: =0

TWINT=1, (TWSR) =$28

Выполнение шагов 4, 5

N

TWSTO: =1 - конец передачи, освобождение шины IC

N

TWSTO: =1, TWSTA: =1

TWINT=1, (TWSR) =$10

N+1

Выполнение шага 2 в табл. а) или б) и далее

б) ведущий с приёмом байтов данных

1

TWSTA: =1

TWINT, (TWSR) =$08

2

SLA, 1→TWDR

3

TWINT: =0

TWINT=1, (TWSR) =$40

4

(TWRD) →Rd

5

TWINT: =0

TWINT=1, (TWSR) =$50

Выполнение шагов 4, 5

M

TWSTO: =1 - конец приема, освобождение шины IC

M

TWSTO: =1, TWSTA: =1

TWINT=1, (TWSR) =$10

M+1

Выполнение шага 2 в табл. а) или б) и далее

Таблица 7

№ шага

Операция по команде

в программе

Условие перехода

к следующему шагу

а) ведомый с приемом байтов данных

1

TWINT=1, (TWSR) =$60/$70

(TWDR) →Rd

2

TWINT: =0

3

TWINT=1, (TWSR) =$80/$90

(TWDR) →Rd

4

TWINT: =0

Далее шаги 3, 4

б) ведомый с выдачей байтов данных

1

TWINT=1, (TWSR) =$A8

DATA→TWDR

2

TWINT: =0

3

TWINT=1, (TWSR) =$B8

DATA→TWDR

4

TWINT: =0

Далее шаги 3, 4

Единичное состояние разряда TWINT в процессе обмена может определяться программными средствами с использованием команды условного перехода или аппаратными средствами по запросу прерывания TWSI. Во втором случае при инициализации порта необходимо установить в единичное состояние также разряд TWIE регистра TWCR.

При появлении ошибок в процессе обмена в регистре состояния TWSR появляются коды иные, чем указаны в табл.6 и 7.

Разряд TWWC регистра TWCR устанавливается в единичное состояние при попытке записать код в регистр TWDR во время сдвига кода в регистре.


5. Таймеры-счетчики общего назначения

Таймер-счетчик Т/СХ (X = 0, 1, 2 - цифра в имени таймера-счетчика) любого типа содержит базовый счетчик TCNTX, имеющий восемь или шестнадцать разрядов, и восьмиразрядный регистр управления TCCRX. Кроме того, в состав таймера-счетчика входят один или несколько разрядов регистра запросов, прерывания TIFR (№ $38, у МК типа 128 - № $05) и столько же разрядов регистра маскирования прерываний TIMSK (№ $39, у МК типа t28 - № $06). Регистры TIFR и TIMSK являются общими для всех таймеров-счетчиков микроконтроллера.

Разряд регистра TIFR устанавливается в единичное состояние при формировании в таймере-счетчике определенного запроса прерывания. Запрос прерывания проходит в блок прерываний при единичном состоянии соответствующего разряда регистра TIMSK. Разряд регистра TIFR сбрасывается в нулевое состояние аппаратно при переходе микроконтроллера к выполнению соответствующей прерывающей программы или программно при выполнении команды установки бита в единичное состояние (!).

В состав таймера-счетчика, выполняющего функцию сравнения/PWM, входит регистр сравнения OCRX, а в состав таймера-счетчика, выполняющего функцию захвата, - регистр захвата ICRX. Разрядность регистров OCRX и ICRX равна разрядности базового счетчика TCNTX.

Для записи кода в шестнадцатиразрядный счетчик или регистр сначала выполняется команда записи (OUT) байта в старшую половину разрядов (Н), при этом поступавший из регистра общего назначения старший байт запоминается в регистре временного хранения. Затем выполняется команда записи (OUT) младшего байта в младшую половину разрядов (L), при этом оба байта одновременно записываются в счетчик или регистр.

Для чтения кода из шестнадцатиразрядного счетчика или регистра сначала выполняется команда чтения (IN) байта из младшей половины разрядов (L), при этом считанный младший байт поступает в регистр общего назначения, а старший байт запоминается в регистре временного хранения. Затем выполняется команда чтения байта из старшей половины разрядов (Н), при этом старший байт из регистра временного хранения поступает в указанный в команде регистр общего назначения.

5.1 Таймер-счетчик типа А

Таймер-счетчик типа А есть у микроконтроллеров всех типов кроме микроконтроллера типа тЮЗ. Он имеет имя Т/СО (X = 0). Таймер-счетчик типа А формирует запрос прерывания Т/СО OVF при переполнении восьмиразрядного базового счетчика TCNT0 (№ S32, у МК типа t28 - № $03).

Тактовый сигнал микроконтроллера СК поступает в пересчетную схему (prescaler) ПС, представляющую собой десятиразрядный счетчик, где выполняется деление частоты тактового сигнала на 8, 64, 256 и 1024. Сигналы с четырех выходов пересчетной схемы поступают в схему управления СУ (мультиплексор). При наличии в микроконтроллере таймера-счетчика Т/С1 эти же сигналы поступают в Т/С1.

В схему управления поступают также тактовый сигнал СК и сигнал из внешнего источника, принимаемый на вход ТО. В качестве входа то у микроконтроллеров типа 1200, 2313 и 4433 используется вывод порта PD4, у микроконтроллеров типа 2323, 2343 и серии ATtiny - вывод порта РВ2, а у микроконтроллеров типа 8515, 8535 и m163 - вывод порта РВО.

Схема управления в зависимости от комбинации состояний разрядов CSOO, CS01 и CS02 регистра управления TCCR0 (№$33, у МК тип t28 - № $04) передаст один из поступающих сигналов на счетный вход базового счетчика TCNT0, ведущего счет па сложение. Сигналы, используемые для счета в счетчике TCNT0 при разных комбинациях значений в разрядах регистра TCCR0, указаны в табл.8.

Таблица 8

CS02

CS01

CS00

сигнал

0

0

0

нет

0

0

1

СК

0

1

0

СК/8

0

1

1

СК/64

1

0

0

СК/256

1

0

1

СК/1024

1

1

0

Отрицательный фронт

на ТО

1

1

1

Положительный фронт

на ТО

При переполнении счетчика TCNT0 устанавливается в единичное состояние разряд TOV0 регистра TIFR и при единичном состоянии разряда TOIE0 регистра TIMSK в блок прерываний поступает запрос прерывания Т/СО OVF.

В микроконтроллере типа tl5 в работе таймера-счетчика типа А Участвуют разряд PSR0 регистра SFIOR (№ $2С). При установке этого Разряда в единичное состояние сбрасывается в исходное (нулевое) состояние пересчетная схема ПС. Разряд PSR0 возвращается в нулевое состояние аппаратно. В микроконтроллере типа ш163 аналогичная операция выполняется при установке в единичное состояние разряда PSR10 Регистра SFIOR (№ $30).

5.2 Таймер-счетчик типа В

Таймер-счетчик типа В входит в состав периферийных устройств микроконтроллеров типа 115 (Т/С1) и ml03 (Т/С2). Он формирует запрос прерывания Т/СХ OVF при переполнении восьмиразрядного базового счетчика TCNTX и выполняет функцию сравнения / PWM с формированием запроса прерывания Т/СХ СОМР.

Свежие статьи
Популярно сейчас
Почему делать на заказ в разы дороже, чем купить готовую учебную работу на СтудИзбе? Наши учебные работы продаются каждый год, тогда как большинство заказов выполняются с нуля. Найдите подходящий учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Нет! Мы не выполняем работы на заказ, однако Вы можете попросить что-то выложить в наших социальных сетях.
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
4098
Авторов
на СтудИзбе
673
Средний доход
с одного платного файла
Обучение Подробнее