32
Интерфейсы периферийных устройств

Интерфейсы периферийных устройств

  • Upload
    ornice

  • View
    85

  • Download
    0

Embed Size (px)

DESCRIPTION

Интерфейсы периферийных устройств. Определения. - PowerPoint PPT Presentation

Citation preview

Page 1: Интерфейсы периферийных устройств

Интерфейсы периферийных

устройств

Page 2: Интерфейсы периферийных устройств

Определения

• Периферийные устройства (ПУ) - это устройства ЭВМ, не входящие в состав центральной части ВС и предназначенные для взаимодействия ВС с объектами внешнего мира. Под объектами внешнего мира будем подразумевать пользователей, другие ЭВМ(ВС), объекты управления, коммуникационные среды вычислительных сетей и носители информации устройств внешней памяти.

• Интерфейс - совокупность унифицированных технических и программных средств, используемых для сопряжения устройств в вычислительной системе или сопряжения между системами

Page 3: Интерфейсы периферийных устройств

Интерфейс

• Функциональная совместимость – общность управляющих сигналов, генерируемых обменивающимися модулями. Управляющие сигналы должны иметь заданное смысловое значение и определенные временные параметры.• Электрическая совместимость модулей обеспечивается

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

применение определенных типов и размеров плат, кабелей, соединителей и т.д.

Page 4: Интерфейсы периферийных устройств

Интерфейс

• Протокол обмена - совокупность правил и соглашений, определяющих работу функциональных устройств и процедур в процессе взаимодействия • Аппаратная часть• Программное обеспечение

Page 5: Интерфейсы периферийных устройств

Классификация

• По назначению (универсальные, специализированные);• По характеру передаваемых данных (параллельные,

последовательные);• По режиму передачи данных (дуплексные,

полудуплексные, симплексные);• По способу обмена (асинхронные, синхронные);• По области применения (внешние, внутренние).

Page 6: Интерфейсы периферийных устройств

Способы передачи данных

Интерфейсы бывают:• Последовательные• Параллельные (параллельно-последовательные)• Параллельно-параллельные• Последовательно-параллельные

Page 7: Интерфейсы периферийных устройств

Способы обработки данных

• Программный несовмещенный ввод-вывод• Программный ввод-вывод с прерываниями

программы• Ввод-вывод через канал прямого доступа в память

Page 8: Интерфейсы периферийных устройств

Программный несовмещенный ввод-вывод• Обращение к ПУ осуществляется

в моменты времени, определенные программой ЦП;• Все действия по управлению

реализуются командами прикладной программы;• Синхронизация ЦП и ПУ

достигается организацией программного ожидания момента готовности ПУ.

Page 9: Интерфейсы периферийных устройств

Пример

void send_sym(int sym){RW=0;RS=1;

E=1;D=sym;E=0;delay();

}

Page 10: Интерфейсы периферийных устройств

Пример

void uart_send(){

TI=0;SBUF = ‘S’;While(!TI);TI=0;SBUF = ‘O’;While(!TI);TI=0;SBUF = ‘S’;While(!TI);

}

char uart_recive ()

{

while(!RI);

RI=0;

return SBUF;

}

Page 11: Интерфейсы периферийных устройств

Прерывания

Прерывание - процесс переключения ЦП с одной программы на другую по внешнему сигналу с сохранением информации для последующего возобновления прерванной программы.Этапы: • ПУ формирует запрос прерывания.• Запросы могут поступать асинхронно.• Запросы сохраняются в специальном регистре.• Состояние регистра анализируется программно или аппаратно.• Либо информация о месте возникновения запроса передаётся

в виде адреса ячейки памяти (векторная система прерываний).• Вызывается программа-обработчик прерывания.

Page 12: Интерфейсы периферийных устройств

ПрерыванияИдентификация прерываний в Keil C51Таблица векторов прерываний ADuC842

Page 13: Интерфейсы периферийных устройств

Пример

void int0 (void) interrupt 0 // адрес обработчика - 0x00B{

P0=0;}

int main(){EA=1; //разрешаем прерыванияEX0=1; //разрешаем внешнее прерывание 0while (1){

P0=i;t1();i*=2;if (i == 16) i = 1;

}}

Page 14: Интерфейсы периферийных устройств

Пример

void int_uart (void) interrupt 4 // адрес обработчика - 0x023{

P0=0x15;}

int main(){EA=1; //разрешаем прерыванияES=1; //разрешаем прерывание от UART’а…while (1){

P0=i;t1();i*=2;if (i == 16) i = 1;

}}

Page 15: Интерфейсы периферийных устройств

Прерывания

• Порядок действий процессора

Page 16: Интерфейсы периферийных устройств

Синхронизация

Передача может быть:• Синхронная• Асинхронная

Page 17: Интерфейсы периферийных устройств

Синхронная передача

Page 18: Интерфейсы периферийных устройств

Асинхронная передача, стробирование

Page 19: Интерфейсы периферийных устройств

Асинхронная передача, старт-стоп биты

Page 20: Интерфейсы периферийных устройств

Асинхронная передача, запрос-ответ

Page 21: Интерфейсы периферийных устройств

Самосинхронизирующееся кодирование

Page 22: Интерфейсы периферийных устройств

Интерфейс 1-Wire

Основные характеристики:• Асинхронный (запрос-ответ)• Однопроводный• Полудуплексный• На линии может быть только одно мастер-

устройство• Мастер-устройство не имеет адреса

Page 23: Интерфейсы периферийных устройств

Организация питания

Page 24: Интерфейсы периферийных устройств

Запись одного бита

Передача логического «0» Передача логической «1»

Page 25: Интерфейсы периферийных устройств

Адресация

• Каждое устройство имеет уникальный адрес

Page 26: Интерфейсы периферийных устройств

Команды

Команды для определения адресов устройств:• Поиск• Чтение• Сравнение• ПропускСпецифические команды:• Конвертирование температуры• Чтение температуры

Page 27: Интерфейсы периферийных устройств

Импульс сброса

int onewire_reset(){Q=0;delay(640);Q=1;delay(2);pr = Q;delay(60);return(pr);

}

Page 28: Интерфейсы периферийных устройств

Отправка битаvoid onewire_send_bit(int bit) {

Q = 0;if (bit){

delay(5);Q = 1;delay(90);

}else{delay(90);Q = 1;delay(5);

}}

Page 29: Интерфейсы периферийных устройств

Чтение бита

int onewire_read_bit(){

Q = 0;

delay(2);

Q = 1;

delay(8);

return (Q);

}

Page 30: Интерфейсы периферийных устройств

Обмен с датчиком

onewire_start(){

onewire_reset();

onewire_send_byte(0xCC);

onewire_send_byte(0x44);

}

onewire_read_temperature(){

onewire_reset();

onewire_send_byte(0xCC);

onewire_send_byte(0xBE);

for (t=0;t<9;t++){

temp[t]=onewire_read_byte();

}

}

Page 31: Интерфейсы периферийных устройств
Page 32: Интерфейсы периферийных устройств