Приемник ИК сигналов. Дешифрация принятых сигналов ДУ
В качестве дешифратора команд управления в системе ДУ по протоколу ITT можно использовать целый ряд контроллеров типа SAA1251, SAA1290, SAA1293, CCU20, CCU30 или MAA6000.
Рассмотрим дешифратор команд управления SAA1251. Микросхема SAA1251 предназначена для дешифрации команд управления телевизионным или радиоприемником, а также может быть использована для реализации функций дистанционного управления различными бытовыми приборами и устройствами. В общем случае микросхема может распознать 16 групп по 64 команды в каждой. Ввод команд может осуществляться без передатчика команд ДУ непосредственно на специальные входы микросхемы. Возможно управление с одного передатчика несколькими устройствами, использующими в качестве дешифратора ИМС SAA1251. Организация такого управления может быть различной (паралельной, независимой) в зависимости от вариантов использования микросхемы.
Микросхема SAA1251 разрабатывалась как центральная микросхема целого комплекта микросхем, предназначенных для управления телевизионным приемником (рис. 2.13).
Рисунок 2.13 - Система ДУ на основе приемника SAA1251
В состав комплекта в различных сочетаниях могут входить:
· SAA1121 - схема управления телевизионным селектором каналов (синтезатор напряжения настройки);
· SAA1250 - передатчик команд управления;
· SAA1271 -преобразователь последовательного кода в параллельный;
· SAA1272 - адаптер сопряжения данных от ИМС SAA1251 с декодером телетекста;
· SAA1274 - схема управления синтезатора частоты;
· SAA1075 - энергонезависимая память;
· SAA1276 - знакогенератор экранного индикатора;
· SAA2008 - знакогенератор номера выбранного канала.
Особенности SAA1251
· Работа в коде фирмы ITT для ДУ.
· Общая шина микросхемы подключена к отрицательному источнику питания.
· Возможность организации работы до 16-и микросхем SAA1251 независимо друг от друга.
· Трансляция принятого кода команды ДУ на другие устройства (телетекст, видеоигры и др.).
Для формирования тактовых импульсов используется кварцевый резонатор на частоту 4.4 МГц. Подключенный к выходу генератора формирователь тактовых импульсов выдает два типа сигналов тактирования F1 и F2, следующих с частотой 277 кГц. Эти тактовые импульсы предназначены для работы ИМС SAA1251 и обеспечивают синхронную работу всех остальных ИМС, связанных с ИМС SAA1251.
Конструктивно ИМС SAA1251 выполнена в пластмассовом DIP корпусе на 24 вывода. Напряжение питания от -16.5 до -19.5 В. Рабочий диапазон температур от -20 до 65°С.
Шины управления и обмена информацией
Введение
Для восьмибитных систем, например, систем с однокристальным микроконтроллером, можно установить следующие критерии проектирования.
· Полная система обычно состоит из одного микроконтроллера и периферийных устройств (запоминающие устройства, устройства ввода/вывода).
· Стоимость различных устройств, связанных внутри системы, должна быть минимизирована.
· Такие системы обычно выполняют функции управления и не требуют высокой скорости передачи данных.
· Общая эффективность зависит от выбранных приборов и взаимосвязей в шинной структуре.
Чтобы построить систему, удовлетворяющую этим критериям, нужна шинная структура последовательного типа. Хотя последовательные шины не обладают пропускной мощностью параллельных шин, они требуют меньше проводов и контактных выводов.
Однако шина - это не только соединительные провода. Она включает в себя форматы и процедуры обмена информацией внутри системы. Устройства, обменивающиеся информацией по последовательной шине, должны иметь определенную форму протокола, которая устраняла бы возможности ошибок: потери данных и блокирования информации. Быстрые приборы должны иметь возможность обмениваться информацией с медленными. Система не должна зависеть от устройств, подключенных к ней. В противном случае модификация и усовершенствования стали бы невозможными.
Должна быть разработана процедура, предусматривающая принятие решения, какое устройство является управляющим в шине и когда. И, если к шине присоединены приборы с различными тактовыми скоростями, должен быть определен источник тактового сигнала шины. Все эти критерии включены в спецификацию I2C-шины (Inter Integrated Circuit) [3].
3.2 Шина I2C
3.2.1 Концепция I2C-шины
Интегральные схемы любой технологии изготовления (n-МОП, КМОП, биполярной) могут поддерживать I2C-шину. Шина содержит всего две линии: последовательности данных (SDA) и последовательности тактовых сигналов (SCL). По этим двум проводам информация передается между устройствами, присоединенными к шине.
Каждое устройство в шине должно иметь свой уникальный адрес, по которому оно распознает обращение к себе. Все устройства в шине (например, микроконтроллер, схема управления ЖК-дисплея, запоминающее устройство, клавиатура и т.д.) могут работать как передатчик, или как приемник, в зависимости от функции этого прибора. Очевидно, что схема управления дисплеем может быть только приемником, а запоминающее устройство может быть и приемником, и передатчиком.
В связи с этим передающие и принимающие устройства также могут рассматриваться как ведущие (master) и ведомые (slave) при выполнении передачи данных (таблица 3.1). Ведущим является устройство, которое инициирует передачу данных по шине и генерирует тактовые сигналы для разрешения этой передачи. В это время все адресуемые устройства рассматриваются как ведомые.
Таблица 3.1 - Терминология I2C-шины
ТЕРМИН | ОПИСАНИЕ |
Передатчик | Устройство, которое посылает данные на шину |
Приемник | Устройство, получающее данные с шины |
Ведущий (мастер) | Устройство, инициирующее передачу, генерирующее сигналы и обрывающее передачу |
Ведомый | Устройство, адресуемое ведущим |
Мультимастер | Ситуация, когда более одного ведущего может пытаться управлять шиной в одно и то же время без искажения информации |
Арбитраж | Процедура, гарантирующая, что если более одного ведущего одновременно пытаются управлять шиной, только одному будет позволено делать это, и сообщения не будут искажены |
Синхронизация | Процедура синхронизации, гарантирующая работоспособность системы при генерации тактовых сигналов от двух или более устройств |
I2C-шина является мультимастер шиной. Это означает, что к шине может быть присоединено больше одного устройства, которое может управлять ей. Поскольку обычно ведущим является микроконтроллер, рассмотрим случай передачи данных между двумя микроконтроллерами, присоединенными к шине (рис.3.1). Этот случай ярко отражает отношения «ведущий - ведомый» и «передатчик - приемник», которые могут быть на I2C-шине. Следует отметить, что последнее отношение не является постоянным, оно зависит только от направления передачи данных в данный момент времени.
Рисунок 3.1 - Конфигурация I2C шины
Передача данных может проходить следующим образом:
1. Предположим, микроконтроллер А хочет послать информацию микроконтроллеру В:
a. микроконтроллер А (ведущий) адресует микроконтроллер В (ведомого);
b. микроконтроллер А (ведущий передатчик) посылает данные микроконтроллеру В (ведомому приемнику);
c. микроконтроллер А обрывает передачу.
2. Если микроконтроллер А хочет получить информацию от микроконтроллера В:
d. микроконтроллер А (ведущий) адресует микроконтроллер В (ведомого);
e. микроконтроллер А (ведущий приемник) получает данные от микроконтроллера В (ведомого передатчика);
f. микроконтроллер А обрывает передачу.
Даже в этом (втором) случае ведущий (микроконтроллер А) генерирует синхронизацию и обрывает передачу.
Возможность присоединения более одного микроконтроллера к I2C-шине означает, что более, чем один ведущий, может пытаться инициировать передачу данных в одно и то же время. Чтобы избежать хаоса, который может возникнуть в данном случае, была разработана процедура арбитража. Эта процедура обеспечивается соединением всех интерфейсных выводов (каждой из двух линий) I2C-шины по схеме «монтажное И».
Если два или более ведущих пытаются передать информацию по шине, то первый прибор, который выдаст «единицу», в то время когда остальные выдадут «ноль», выбывает в результате арбитража. Тактовые сигналы в течение процедуры арбитража являются синхронизированной комбинацией тактов, генерируемых ведущими при помощи соединения «монтажное И» с линией SCL-выходов тактовых сигналов.
Генерация тактовых сигналов на I2C-шине всегда является обязанностью ведущих; каждый ведущий генерирует свои собственные тактовые сигналы при передаче данных по шине. Шинные тактовые сигналы от ведущего могут изменяться в случае, когда они растягиваются медленными ведомыми, удерживающими в низком состоянии линию синхронизации, или другими ведущими в процессе арбитража.
Общие характеристики
Линия данных (SDA) и линия синхронизации (SCL) являются двунаправленными линиями, связанными с положительным напряжением источника питания через подтягивающий резистор (рис.3.2).
Рисунок 3.2 - Соединение приборов с I2C шиной
Когда шина свободна, обе линии находятся в состоянии «1». Выходной каскад устройств, соединенных с шиной, должен иметь открытый сток или открытый коллектор для того, чтобы выполнять функцию «монтажное И». Данные на I2C-шине могут передаваться со скоростью до 100 Кбит/с в стандартном режиме или 400 Кбит/с в быстром режиме. Количество интерфейсов, связанных с шиной, зависит только от ограничения на емкость шины (400 пФ).
Передача бита
Из-за разнообразия технологий (КМОП, n-МОП, биполярная), применяемых при изготовлении приборов, которые могут быть присоединены к I2C-шине, уровни логических «нуля» и «единицы» не фиксированы и зависят от уровня используемого питающего напряжения VDD.
Для каждого передаваемого бита данных генерируется один тактовый импульс. Данные на SDA линии должны быть стабильными в течение высокого уровня периода тактовой частоты. Смена состояния на линии данных должна происходить только тогда, когда тактовый сигнал на SCL-линии находится в низком состоянии (рис.3.3).
Рисунок 3.3 - Передача бита данных по I2C – шине
Условия START и STOP
В порядке действия I2C-шины возникают особые ситуации, которые определяются как START- и STOP- условия (рис. 3.4).
Рисунок 3.4 - START и STOP - условия
Переход «1 → 0» на линии данных SDA, если при этом линия SCL находится в состоянии «1»,- это одно из таких состояний. Такая ситуация определяет START-условие.
Переход «0 → 1» на линии SDA, если при этом линия SCL находится в состоянии «1», определяет STOP-условие.
Условия START и STOP всегда генерируются ведущими. Считается, что шина занята после условия START и свободна после условия STOP.
Определение состояний START- и STOP-устройствами, связанными с шиной, осуществляется легко, если они содержат необходимые интерфейсные аппаратные средства. Однако, микроконтроллерам, не имеющим таких средств, приходится опрашивать SDA-линию, по крайней мере, дважды за тактовый период, чтобы обнаружить этот переход (от «0» к «1» или наоборот).
3.3 Передача данных в I2C – шине
Байтовый формат
Все данные, проходящие по линии данных SDA, должны быть восьмибитными. Число байт, которое может быть послано за передачу, не ограничено. Каждый байт должен сопровождаться подтверждающим (квитирующим) битом.
Данные передаются, начиная со старшего бита (MSB) (рис. 3.5). Если приемник не может принять другой полный байт данных до тех пор, пока не выполнит некоторые другие функции, например, обслуживания внутреннего прерывания, он может установить линию SCL в положение «0», чтобы перевести передатчик в ожидающее состояние. Передача данных продолжится тогда, когда приемник будет готов к приему следующего байта данных и освободит линию SCL.
Рисунок 3.5 - Передача данных по I2C шине
В некоторых случаях допускается использовать форматы, отличные от формата I2C-шины. Сообщение должно содержать особый адрес. Оно может быть оборвано генерацией STOP-условия, даже во время передачи байта. В этом случае никакое подтверждение не генерируется.