Интерфейсы периферийных устройств
DESCRIPTION
Интерфейсы периферийных устройств. Определения. - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: Интерфейсы периферийных устройств](https://reader036.vdocuments.net/reader036/viewer/2022062314/56813a02550346895da1c971/html5/thumbnails/1.jpg)
Интерфейсы периферийных
устройств
![Page 2: Интерфейсы периферийных устройств](https://reader036.vdocuments.net/reader036/viewer/2022062314/56813a02550346895da1c971/html5/thumbnails/2.jpg)
Определения
• Периферийные устройства (ПУ) - это устройства ЭВМ, не входящие в состав центральной части ВС и предназначенные для взаимодействия ВС с объектами внешнего мира. Под объектами внешнего мира будем подразумевать пользователей, другие ЭВМ(ВС), объекты управления, коммуникационные среды вычислительных сетей и носители информации устройств внешней памяти.
• Интерфейс - совокупность унифицированных технических и программных средств, используемых для сопряжения устройств в вычислительной системе или сопряжения между системами
![Page 3: Интерфейсы периферийных устройств](https://reader036.vdocuments.net/reader036/viewer/2022062314/56813a02550346895da1c971/html5/thumbnails/3.jpg)
Интерфейс
• Функциональная совместимость – общность управляющих сигналов, генерируемых обменивающимися модулями. Управляющие сигналы должны иметь заданное смысловое значение и определенные временные параметры.• Электрическая совместимость модулей обеспечивается
заданными уровнями вырабатываемых ими сигналов, их нагрузочными способностями, мощностью и т.п.• Механическая совместимость предполагает
применение определенных типов и размеров плат, кабелей, соединителей и т.д.
![Page 4: Интерфейсы периферийных устройств](https://reader036.vdocuments.net/reader036/viewer/2022062314/56813a02550346895da1c971/html5/thumbnails/4.jpg)
Интерфейс
• Протокол обмена - совокупность правил и соглашений, определяющих работу функциональных устройств и процедур в процессе взаимодействия • Аппаратная часть• Программное обеспечение
![Page 5: Интерфейсы периферийных устройств](https://reader036.vdocuments.net/reader036/viewer/2022062314/56813a02550346895da1c971/html5/thumbnails/5.jpg)
Классификация
• По назначению (универсальные, специализированные);• По характеру передаваемых данных (параллельные,
последовательные);• По режиму передачи данных (дуплексные,
полудуплексные, симплексные);• По способу обмена (асинхронные, синхронные);• По области применения (внешние, внутренние).
![Page 6: Интерфейсы периферийных устройств](https://reader036.vdocuments.net/reader036/viewer/2022062314/56813a02550346895da1c971/html5/thumbnails/6.jpg)
Способы передачи данных
Интерфейсы бывают:• Последовательные• Параллельные (параллельно-последовательные)• Параллельно-параллельные• Последовательно-параллельные
![Page 7: Интерфейсы периферийных устройств](https://reader036.vdocuments.net/reader036/viewer/2022062314/56813a02550346895da1c971/html5/thumbnails/7.jpg)
Способы обработки данных
• Программный несовмещенный ввод-вывод• Программный ввод-вывод с прерываниями
программы• Ввод-вывод через канал прямого доступа в память
![Page 8: Интерфейсы периферийных устройств](https://reader036.vdocuments.net/reader036/viewer/2022062314/56813a02550346895da1c971/html5/thumbnails/8.jpg)
Программный несовмещенный ввод-вывод• Обращение к ПУ осуществляется
в моменты времени, определенные программой ЦП;• Все действия по управлению
реализуются командами прикладной программы;• Синхронизация ЦП и ПУ
достигается организацией программного ожидания момента готовности ПУ.
![Page 9: Интерфейсы периферийных устройств](https://reader036.vdocuments.net/reader036/viewer/2022062314/56813a02550346895da1c971/html5/thumbnails/9.jpg)
Пример
void send_sym(int sym){RW=0;RS=1;
E=1;D=sym;E=0;delay();
}
…
![Page 10: Интерфейсы периферийных устройств](https://reader036.vdocuments.net/reader036/viewer/2022062314/56813a02550346895da1c971/html5/thumbnails/10.jpg)
Пример
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: Интерфейсы периферийных устройств](https://reader036.vdocuments.net/reader036/viewer/2022062314/56813a02550346895da1c971/html5/thumbnails/11.jpg)
Прерывания
Прерывание - процесс переключения ЦП с одной программы на другую по внешнему сигналу с сохранением информации для последующего возобновления прерванной программы.Этапы: • ПУ формирует запрос прерывания.• Запросы могут поступать асинхронно.• Запросы сохраняются в специальном регистре.• Состояние регистра анализируется программно или аппаратно.• Либо информация о месте возникновения запроса передаётся
в виде адреса ячейки памяти (векторная система прерываний).• Вызывается программа-обработчик прерывания.
![Page 12: Интерфейсы периферийных устройств](https://reader036.vdocuments.net/reader036/viewer/2022062314/56813a02550346895da1c971/html5/thumbnails/12.jpg)
ПрерыванияИдентификация прерываний в Keil C51Таблица векторов прерываний ADuC842
![Page 13: Интерфейсы периферийных устройств](https://reader036.vdocuments.net/reader036/viewer/2022062314/56813a02550346895da1c971/html5/thumbnails/13.jpg)
Пример
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: Интерфейсы периферийных устройств](https://reader036.vdocuments.net/reader036/viewer/2022062314/56813a02550346895da1c971/html5/thumbnails/14.jpg)
Пример
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: Интерфейсы периферийных устройств](https://reader036.vdocuments.net/reader036/viewer/2022062314/56813a02550346895da1c971/html5/thumbnails/15.jpg)
Прерывания
• Порядок действий процессора
![Page 16: Интерфейсы периферийных устройств](https://reader036.vdocuments.net/reader036/viewer/2022062314/56813a02550346895da1c971/html5/thumbnails/16.jpg)
Синхронизация
Передача может быть:• Синхронная• Асинхронная
![Page 17: Интерфейсы периферийных устройств](https://reader036.vdocuments.net/reader036/viewer/2022062314/56813a02550346895da1c971/html5/thumbnails/17.jpg)
Синхронная передача
![Page 18: Интерфейсы периферийных устройств](https://reader036.vdocuments.net/reader036/viewer/2022062314/56813a02550346895da1c971/html5/thumbnails/18.jpg)
Асинхронная передача, стробирование
![Page 19: Интерфейсы периферийных устройств](https://reader036.vdocuments.net/reader036/viewer/2022062314/56813a02550346895da1c971/html5/thumbnails/19.jpg)
Асинхронная передача, старт-стоп биты
![Page 20: Интерфейсы периферийных устройств](https://reader036.vdocuments.net/reader036/viewer/2022062314/56813a02550346895da1c971/html5/thumbnails/20.jpg)
Асинхронная передача, запрос-ответ
![Page 21: Интерфейсы периферийных устройств](https://reader036.vdocuments.net/reader036/viewer/2022062314/56813a02550346895da1c971/html5/thumbnails/21.jpg)
Самосинхронизирующееся кодирование
![Page 22: Интерфейсы периферийных устройств](https://reader036.vdocuments.net/reader036/viewer/2022062314/56813a02550346895da1c971/html5/thumbnails/22.jpg)
Интерфейс 1-Wire
Основные характеристики:• Асинхронный (запрос-ответ)• Однопроводный• Полудуплексный• На линии может быть только одно мастер-
устройство• Мастер-устройство не имеет адреса
![Page 23: Интерфейсы периферийных устройств](https://reader036.vdocuments.net/reader036/viewer/2022062314/56813a02550346895da1c971/html5/thumbnails/23.jpg)
Организация питания
![Page 24: Интерфейсы периферийных устройств](https://reader036.vdocuments.net/reader036/viewer/2022062314/56813a02550346895da1c971/html5/thumbnails/24.jpg)
Запись одного бита
Передача логического «0» Передача логической «1»
![Page 25: Интерфейсы периферийных устройств](https://reader036.vdocuments.net/reader036/viewer/2022062314/56813a02550346895da1c971/html5/thumbnails/25.jpg)
Адресация
• Каждое устройство имеет уникальный адрес
![Page 26: Интерфейсы периферийных устройств](https://reader036.vdocuments.net/reader036/viewer/2022062314/56813a02550346895da1c971/html5/thumbnails/26.jpg)
Команды
Команды для определения адресов устройств:• Поиск• Чтение• Сравнение• ПропускСпецифические команды:• Конвертирование температуры• Чтение температуры
![Page 27: Интерфейсы периферийных устройств](https://reader036.vdocuments.net/reader036/viewer/2022062314/56813a02550346895da1c971/html5/thumbnails/27.jpg)
Импульс сброса
int onewire_reset(){Q=0;delay(640);Q=1;delay(2);pr = Q;delay(60);return(pr);
}
![Page 28: Интерфейсы периферийных устройств](https://reader036.vdocuments.net/reader036/viewer/2022062314/56813a02550346895da1c971/html5/thumbnails/28.jpg)
Отправка бита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: Интерфейсы периферийных устройств](https://reader036.vdocuments.net/reader036/viewer/2022062314/56813a02550346895da1c971/html5/thumbnails/29.jpg)
Чтение бита
int onewire_read_bit(){
Q = 0;
delay(2);
Q = 1;
delay(8);
return (Q);
}
![Page 30: Интерфейсы периферийных устройств](https://reader036.vdocuments.net/reader036/viewer/2022062314/56813a02550346895da1c971/html5/thumbnails/30.jpg)
Обмен с датчиком
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: Интерфейсы периферийных устройств](https://reader036.vdocuments.net/reader036/viewer/2022062314/56813a02550346895da1c971/html5/thumbnails/31.jpg)
![Page 32: Интерфейсы периферийных устройств](https://reader036.vdocuments.net/reader036/viewer/2022062314/56813a02550346895da1c971/html5/thumbnails/32.jpg)