Работа периферийных устройств
3) окончание обмена с освобождением линии.
В нервом случае ведущее устройство формирует последовательность из девяти импульсов и выполняется пересылка очередного байта данных. Во втором случае ведущее устройство формирует посылку ST и выдает новый адресный байт. В третьем случае ведущее устройство формирует посылку конца обмена (Stop, SP), которая представляется переходом сигнала в линии SD
A от низкого уровня к высокому при высоком уровне сигнала в линии SCL.
Все ведомые устройства при обнаружении в шине посылки ST принимают адресный байт и сравнивают полученный адрес с собственным адресом, который хранится в одном из регистров порта. При совпадении адресов формируется посылка АСК и устройство переводится в режим ожидания очередной серии из девяти импульсов для приема или передачи байта данных в зависимости от значения бита W/R в принятом адресном байте.
Все перечисленные операции в ведомом устройстве выполняются аппаратно.
Порт 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 |
Другие рефераты на тему «Программирование, компьютеры и кибернетика»:
- Автоматическое распараллеливание программ для распределенных систем. Статическое построение расширенного графа управления
- Объектно-ориентированная разработка программ
- Классификация и общие принципы построения и применения информационных измерительных систем
- Браузеры - достоинства и недостатки
- База данных ГИБДД
Поиск рефератов
Последние рефераты раздела
- Основные этапы объектно-ориентированного проектирования
- Основные структуры языка Java
- Основные принципы разработки графического пользовательского интерфейса
- Основы дискретной математики
- Программное обеспечение системы принятия решений адаптивного робота
- Программное обеспечение
- Проблемы сохранности информации в процессе предпринимательской деятельности