while (inportb (STATUS) & DATA_IN) = = 0); //ожидание готовности к приему
if (intportb ((STATUS) & (FRAME_ERR | OVERRUN))!=0);
}
printf (“Ошибка приема \n”);
return;
{
sym = inportb (IN_REG);
return sym;
}
1. Прием и передача без квитирования:
2. С квитированием:
а) с программным квитированием XON/XOFF.
Если приемник готов к вводу данных, он передает XON=11h, получив этот код передатчик передает 1 байт. Когда приемник не готов принять данные – он выдает XOFF = 13h и передатчик перестает передачу данных.
Недостаток – низкая скорость передачи
б) с аппаратным квитированием:
1. RTS и CTS
2. DTR и DSR
3. RTS и CTS; DTR и DSR
Интерфейсная шина I2C.
3 вида устройств:
Интеллектуальный узел – осуществляет управление; микроконтроллеры; однокристальные ЭВМ.
Блоки общего назначения (дисплей, порты ввода – вывода, устройства памяти, АЦП, ЦАП).
Специализированные устройства, характерные для отдельных приложений: блоки настройки, коммутации.
Phillips разработала простую двухпроводную, двунаправленную шину для межсхемного соединения: intel IC (IIC, I2C). С её помощью можно строить все устройства и реализовать все их функции.
Используются только две линии:
SDA – линия данных (последовательная передача)
SCL – линия синхронизации.
Стандартная скорость – до 100 кбит/с.
Быстрый режим – до 400 кбит/с.
Суммарная емкостная нагрузка не должна превышать 400 пФ.
Существует множество микросхем, которые имеют встроенный интерфейс: КМОП, n-МОП, ТТЛ, ЭСЛ.
Достоинство:
I) для конструкторов:
1) Блоки на функциональной схеме реализуются отдельными МС.
2) Нет необходимости разрабатывать интерфейс (схема присоединения к шине).
3) Одни и теже микросхемы могут использоваться в различных приложениях.
4) Отдельные микросхемы легко могут быть добавлены или убраны, не влияя на систему.
5) Упращается отладка и настройка системы для изготовителя.
II) для изготовителя:
1) Для соединения микросхемы требуется всего 2 линии, следовательно упрощается разводка и следовательно уменьшается стоимость и габариты плат.
2) Возможность наличия на линии нескольких ведущих.
Общие концепции шины I2C: применяется в системе с восьмиразрядным микропроцессором.
Для связи кроме самих линий нужен протокол обмена, чтобы не было потери данных.
Две группы устройств:
1) Типа Master (хозяин, ведущий).
2) Типа Slave (раб, ведомый).
В качестве ведущего используется микроконтроллер.
Возможно несколько ведущих на шине.
Ведущий генерирует импульсы синхронизации.
Устройства:
1) Передатчик.
2) Приемник.
Каждое устройство имеет свой уникальный адрес. Ведущий перед началом работы выдает на шину адрес ведомого. Ведущий задает направление передачи. Ведомое устройство, обнаружив свой адрес, посылает сигнал подтверждения и выполняет указанную функцию.
Все устройства присоединяются к шине, присоединяются по методу «монтажного ИЛИ»: выходы устройств должны иметь выходы с открытым стоком (коллектором).
Все устройства подключаются параллельно к линии.
Rр – подтягивающие резисторы.
Uип = 3 …15 В. (чаще всего 5 В).
Пересылка каждого бита сопровождается синхроимпульсом по линии SCL.
Действительность данных:
Состояние (условие) START и STOP – это состояние шины, вырабатывает выдущий.
Формат передаваемого байта: число передаваемых байт не ограничено; данные передаются со старшего разряда.
Девятый импульс:ведомый должен выдать сигнал подтверждения. АСК: проверяется сохранность данных.
Для прекращения передачи ведомый выставляет на линию синхронизации низкий уровень и ведущий прекращает передачю данных.
Адресация устройств на шине, можно использовать два формата:
семибитный (27=128)
десытибитный.
Передача адреса всегда следует за условием START.
START
A6
A5
A4
A3
A2
A1
A0
R/
: 7 - битный
ë
адрес
û
¯
|
|
Бит направления |
ë
û
Байт (передает ведущий)
R/ =1, чтение (ведомый – передатчик)
R/ =0, запись (ведомый – приемник).
Десятибитный:
START
A9
A8
R/
A7
A6
A5
A4
A3
A2
A1
A0
Из 7 разрядов выделяется две части:
фиксированное.
программируемая.
Фиксированная часть устанавливается в комиссии по шине I2C (это 4 разряда). Программная часть может менять пользователь (обычно перемычками).