Главная Гальваническое покрытие Обработка поверхности Радиотехника
Бессточные операции Гальвано- химическое производство Достижения

Самые новые
Основы организации современных гальвано-химических производств
Взаимная адаптация технологий гальванического производства и очистки сточных вод
Импульсная металлизация печатных плат
Создание высокоэффективных систем промывки деталей
Утилизация гальванических отходов как гигиеническая проблема
Получение химико-механических цинковых покрытий на высокопрочных термообработанных сталях
Переработка металлургических отходов
Последние достижения в гальванопластике
Обработка промывных вод травильных агрегатов
Экологические перспективные технологии цинкования, кадмирования и меднения
Об утилизации гальванических шламов
Технологии изготовления технологической оснастки и продуктов методом гальванопластики
Россия экспортировала продукции химической промышленности и каучука на 11,3 млн долларов
В октябре экспорт ферросплавов уменьшился на 0,03% до 108,9 тыс. тонн
Мировое производство стали за 10 месяцев 2006 года выросло на 9,2%
Производство алюминия продолжает расти
Химическое производство в России выросло на 1,2%
Китай за 10 месяцев увеличил выпуск медной продукции на 6,6% до 4,6 млн. т
"Антон" - "Северсталь"
Чистая прибыль ОАО "Ульяновский автомобильный завод"
Оценка эфф. подготовки поверхности полистирола перед химической металлизацией
"Российские металлургические компании и ЕС - особые отношения"
Аналитики расходятся во мнениях по прогнозу цен на железную руду
Evraz увеличивает выплаты
Китай вышел на ежемесячный объем экспорта стали
Чистая прибыль Borealis в III квартале выросла в 2,6 раза
"Цинк среди драгоценных металлов"
Росбанк стал держателем 29,33% "Норникеля"
"Северсталь" подорожала на 2.7 миллиарда долларов после вчерашнего IPO
Новая волна слухов на тему консолидации в мировой металлургии
Итоги деятельности химического комплекса за 9 месяцев
Стратегия развития металлургической промышленности
Инженеры в почете
Информационное обеспечение химического комплекса
Дефицит кадров
Спрос на оцинкованную сталь растет
Карта: 1 2 3 4 5 6 7 8 9
10 11 12 13 14
Главная Радиотехника


Практические рекомендации по шине I2C


Ниже мы рассмотрим основные трудности, связанные с использованием шины I2C в целом, и типичные ошибки, возникающие на начальных этапах реализации алгоритмов обмена.


Удобства применения шины I2C очевидны - малое количество соединительных линий и высокая скорость обмена, простота аппаратной реализации линии связи. Наиболее широко поддерживает шину I2C, конечно же, фирма Philips, производящая множество ИС различной сложности с управлением по I2C. В первую очередь, можно выделить микросхемы энергонезависимой памяти (EEPROM) серии 24Cхх в 8-ми выводных корпусах, фактически ставшие промышленным стандартом. Из широко распространенных ИС можно выделить: микросхемы часов PCF8583, параллельный порт PCF8574, 4-х канальный 8-ми разрядный АЦП PCF8591. Cуществует множество модификаций этих ИС и более специализированные контроллеры.


I2C-абоненты жестко разделяются по классам:Master- и Slave- устройство. Тот факт, что сигнал SCL всегда генерируется Master-устройством означает, что Master-абонент может быть достаточно легко реализован чисто программными средствами, так как все изменения на шине будут происходить только по сигналу SCL. И наоборот, реализация Slave-устройства требует аппаратной поддержки, кроме случая весьма низких скоростей обмена. Существуют однокристальные микро-ЭВМ (ОМЭВМ) поддерживающие Slave-операции шины I2C. Это прежде всего Philips PCF80C552 (652), Microchip PIC16C62 (64, 73 и др.), Motorola MC68HC705CJ4 (BD3, E5). Кроме того, ОМЭВМ фирмы Philips аппаратно поддерживают Master-протокол, хотя практически аппаратные Master-контроллеры применяются редко.


Типичная ошибка при реализации программ Master-абонента - управление значением порта ОМЭВМ для установки нулевого и единичного состояний линий SCL и SDA. Если для ОМЭВМ семейства MCS-51 это нормальный режим работы, так как единичное состояние порта у них реализуется встроенным подтягивающим резистором = 50 кОМ, то для ОМЭВМ с симметричными портами (Motorola 68HCxx, Microchip PIC, Atmel AVR) это будет порождать электрические конфликты. Например, в руководстве Microchip. Embedded Control Handbook 1994/1995 приведены практические программы для связи PIC c ИС EEPROM, содержащие подобные грубые ошибки. Положение усугубляется тем, что в случае микросхем EEPROM такой вариант может сработать, так как оин являются 100% аппаратными схемами и не вносят задержек в связной протокол, а пазу ожидания окончания цикла программирования производят переходом в пассивное состояние. Использование таких подпрограмм с ИС, производящими захват линии SCL (практически любой Slave-абонент, реализованный с применением ОМЭВМ), приведет к невозможности связи, а возможно, и к выходу ИС из строя.


Реализовать настоящую имитацию ОК (мы назвали этот режим имитацией ОК, так он не позволяет устанавливать на линии напряжение выше напряжения питания, что было бы нормально для настоящего ОК, но так как по спецификации I2C напряжение на линиях SCL и SDA не должно превышать напряжение питания, его вполне законно можно считать выходом с ОК) на порте с симметричным выходом можно, если установить значение порта постоянно в ноль, а управлять состоянием линии через манипуляции с регистром направления данных. Для ОМЭВМ PIC это будет регистр TRISx, переводящий порт либо в третье состояние, либо подключающий линии в соответствии с состоянием регистра PORTx. Практически так же это реализуется в AVR и MC68HC05 (08, 11), где DDRx коммутирует порт PORTx, с той лишь разницей, что у них другая полярность управляющего сигнала - у PIC ноль в TRISx соответствует нулю на выходе, а у AVR и MC68HC05 единица в DDRx соответствует нулю на выходе.


Еще одна тонкость связанная с PIC, не имеющая собственно к I2C никакого отношения заключается в том, что у него совмещены регистр чтения состояния линий порта и регистр записи значения порта, в результате чего, если часть линий порта запрограммирована на вывод, а другая находится в третьем состоянии, то при выполнении PIC'а установленных в третье состояние, что может нарушить (и скорее всего нарушит) работу программы обмена (потеряются нули обеспечивающие имитацию выходов с ОК). Поэтому лучше производить принудительную установку в ноль битов в PORTx, например, перед каждой операцией обмена, скажем такой последовательностью:




movlw b'11100111' ; Маска линий SCL и SDA в порте С (RC3 и RC4)

andwf portc,f ; Сбр. значений линий SCL и SDA в порте С в ноль





Другая важная сторона вопроса-необходимость тщательного соблюдения параметров временной диаграммы цикла обмена. Несмотря на то, что шина I2C асинхронная и позволяет затягивать передачу бита (байта) на сколь угодно длительное время (это свойство позволяет реализовывать программы I2C-обмена на самом низком уровне приоритета, прерывая цикл передачи в любое время), требования к минимальным значениям длительностей импульсов весьма жесткие. Ситуация усугубляется тем, что положительные перепады состояния линии имеют склонность затягиваться, так как несимметричные управляющие выходы не могут создать крутые положительные фронты.


При написании программ весьма важно контролировать время между операциями на шине, реализуемыми различными подпрограммами, например выдача Start и Stop-условия, передача бита, передача байта. При состыковке этих подпрограмм не должны быть нарушены минимальные значения времени, что весьма легко происходит при использовании высокоскоростных циклоров (AVR, PIC). Кроме того, необходимо следить, чтобы время между изменением на линии SDA и стробированием положительным импульсом на линии SCL было не меньше половины минимальной длительности полупериода SCL (4.7 мкс/2=2.4 мкс). Помимо этого, некоторые Slave-приборы могут ужесточить требования к максимальной частоте обмена (например, CE110-48 кГц), в этом случае необходимо пропорционально снижению частоты обмена увеличивать значения минимумов временных допусков.


Еще одна распространенная ошибка - игнорирование требования слежения за захватом линии SCL Slave-абонентом. Грамотно реализованные прграммы операций Master-абонента должны контролировать возврат линии SCL после того, как переводят ее в единичное состояние, и только дождавшись реальной установки линии SCL в единичное состояние продолжать операции приемо-передачи.


Теперь мы опишем минимально необходимый набор операций для реализации Master-абонента. Прежде всего, это подпрограммы выдачи Start- и Stop-условия, подпрограмма передачи байта, подпрограмма приема байта, выдающая сигнал АСК и подпрограмма приема байта, не выдающая сигнал АСК. Три последние используют подпрограммы передачи бита и приема бита.Во временных промежутках между подпрограммами линия SCL имеет нулевое значение. Как уже говорилось ранее, важно правильно согласовывать все временные характеристики подпрограмм. Если, к примеру, вы вызываете повторный Start сразу за передачей (приемом) байта, то необходимо, чтобы полностью завершился нулевой полупериод (>4.7 мкс), предшествующий Start-условию, а подпрограмма, реализующая Start-условие, переведя линии SDA и SCL в единичное состояние, дождавшись их реального возврата, должна удерживать ее в таком состоянии не менее установленного времени (>4.7 мкс), и так во всех случаях.


Оперируя этими пятью подпрограммами можно легко наладить обмен по шине I2C. Можно выдать на шину Start-условие, за ним Siave Adress, далее данные, в соответствии с протоколом конкретной I2C-ИС. Можно выдать повторное Start-условие, новый Slave Adress и так далее, формируя цикл обмена как из элементов конструктора. Обычно протоколы обмена Slave-устройств довольно логично соответствуют программированию в таком стиле.


Читайте далее: Простой способ изготовления спутниковых антенн, Видеомодем на микросхеме PRACT от Siemens, Микроконтроллеры PIC16F84. Подробная документация для начинающих, Согласующий экспоненциальный трансформатор для спутниковых приемников, Два слова о тиристорах, Сотовый. Не грейте уши!, А знаете ли вы, что..., Элементы хорошего питания, КР1008ВЖ18 - приемник-декодер двухтонального (DTMF) сигнала (код 2 из 8), Проектирование зарядных систем, Статья о GPS-приемниках, Что такое GPS (2) ?, Советы любителям дальнего приема телевидения, Микросхемы - усилители низкой частоты. Часть 1, Простейшие способы соединения проводов из сплавов высокого сопротивления, ATmega169V, ATmega169L, CAN 2.0 В, CAN протоколы высокого уровня, FSTN – суперскрученный нематик с пленочной компенсацией,
Самые читаемые