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

Preview:

DESCRIPTION

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

Citation preview

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

устройств

Определения

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

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

Интерфейс

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

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

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

Интерфейс

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Пример

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

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

}

Пример

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;

}

Прерывания

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

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

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

Пример

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;

}}

Пример

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;

}}

Прерывания

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Адресация

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

Команды

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

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

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

}

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

Q = 0;if (bit){

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

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

}}

Чтение бита

int onewire_read_bit(){

Q = 0;

delay(2);

Q = 1;

delay(8);

return (Q);

}

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

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();

}

}

Recommended