Upload
ornice
View
85
Download
0
Embed Size (px)
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();
}
}