Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Интерфейсы микропроцессорных систем




Одним из центральных моментов в проектировании микропроцессорной системы является выбор интерфейсов. Интерфейсы представляют собой совокупность унифицированных аппаратных, программных и конструктивных средств, необходимых для реализации алгоритмов взаимодействия различных функциональных устройств. Стандартизации в интерфейсе обычно подлежат: форматы передаваемой информации, команды и состояния, состав и типы линий связи, алгоритм функционирования, передающие и приемные электронные схемы, параметры сигналов и требования к ним, конструктивные решения. Скорость передачи данных по интерфейсу измеряется в Бодах. Бод определяет, сколько бит передается в единицу времени, т.е. в секунду.

К основным характеристикам интерфейса относят: функциональное назначение, принцип обмена информацией, способ обмена, режим обмена, количество линий, число линий для передачи данных (разрядность), количество адресов, количество команд, быстродействие, длину линий связи, число подключаемых устройств (нагрузочная способность), тип линии связи.

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

По принципу обмена информацией выделяют интерфейсы с параллельной, последовательной и параллельно-последовательной передачей информации. В параллельных интерфейсах в единицу времени данные пересылаются по нескольким сигнальным линиям одновременно. В последовательных – по одной линии бит за битом. Аналогом здесь можно привести принцип организации параллельных и последовательных регистров. Методически интерфейсы с параллельной передачей должны обладать более высокой пропускной способностью. Однако, это не всегда так. Дело в том, что в параллельных интерфейсах из-за большого количества сигнальных линий, объединенных в кабели, существенное влияние оказывают паразитные емкости этих кабелей, увеличивающиеся с увеличением длины кабеля. Кроме того на такие кабели оказывает вляние поперечная помеха, также увеличивающая свое влияние с увеличением длины кабеля. Это накладывает ограничение на длину соединительных кабелей. В последовательных интерфейсах кабели обычно представляют витую пару и их длину можно реализовывать значительно большую, чем в параллельных интерфейсах. При проектировании специализированных микропроцессорных систем на базе микроконтроллеров разработчики часто сталкиваются с проблемой нехвати портов для подключения большого количества периферии. Поэтому выводы микросхем микроконтрллеров часто приходится экономить. По этой причине в микроконтроллерных микропроцессорных системах в настоящее время часто используются последовательные интерфейсы, особенно внутренние.



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

По способу передачи информации во времени различают интерфейсы с синхронной передачей данных (с постоянной временной привязкой в цикле сбора информации) и с асинхронной (без постоянной временной привязки к определенному временному интервалу цикла сбора). В первом случае передача синхронизируется специальными синхроимпульсами CLK в виде последовательности прямоугольных импульсов. Во втором – управляющими сигналами «ГОТОВНОСТЬ» к обмену, «НАЧАЛО», «КОНЕЦ» и «КОНТРОЛЬ» обмена.

В качестве примера магистральных интерфейсов можно привести асинхронные мультиплексные интерфейсы с параллельным способом передачи: 8-разрядные интерфейсы Microbus, Z-bus, шина iSBX, ISA; 16-разрядные интерфейсы Unibus (отечественный аналог ОШ), Multibus I, Q-bus, EISA; 32-разрядные интерфейсы Vercabus, PCI. В качестве внешних интерфейсов периферийных устройств наиболее широкое распространение получили последовательные интерфейсы RS-232, USB и параллельный интерфейс Centronix. В микропроцессорной технике для согласования микросхем аналого-цифровых и цифро-аналоговых преобразователей, памяти и прочих с микропроцессорами и микроконтроллерами широко используются внутренние последовательные интерфейсы I2C, SPI и MicroLAN. Для программирования внутренней памяти программ и отладки программного обеспечения микроконтроллеров используется интерфейс JTEG.

Следует отметить, что в составе микропроцессорных комплектов имеются специальные интерфейсные БИС, обеспечивающие совместимость по электрическим, конструктивно-технологическим и эксплуатационным параметрам процессорного модуля с внешними устройствами. Каждый микропроцессорный комплект характерен наличием, как правило, параллельных и последовательных интерфейсных устройств, выполненных в виде отдельных микросхем, представляющих собой регистры, буферные схемы и специализированные контроллеры. Такие микросхемы используются как шинные формирователи для организации внутримашинных магистралей и как внешние интерфейсы периферийных устройств.

Приведем в качестве примера организацию наиболее часто используемых в микроконтроллерных системах интерфейсов. Начнем с интерфейса RS-232. Принято также обозначение EIA-232 этого стандарта. Этот интерфейс обеспечивает последовательный мультиплексный режим связи. Для него сигнал логической единицы имеет уровень напряжения менее –3 В (обычно –10 В) и сигнал логического нуля - уровень напряжения более +3 В (обычно +10 В). Гарантированная длина кабеля для надежной работы интерфейса может быть до 30 м в зависимости от скорости передачи. Есть микросхемы, которые выполняют преобразование стандартных ТТЛ-уровней в уровни стандарта RS-232. Примером может служить микросхема MAX232A производства фирмы Maxim, условное графическое обозначение и типавая схема включение которой показаны на рис.12.12. Микросхема преобразует уровни напряжений стандарта ТТЛ (уровень нуля £0,2 В и уровень единицы ³3,5 В, рельно 0 В и 5 В) в уровни напряжения стандарта RS-232 (уровень единицы –10 В и уровень нуля +10 В) и наоборот для двух равноценных каналов 1 и 2. Вывод T1in микросхемы является входом усилителя первого канала с входными напряжениями ТТЛ, вывод T1out - выходом усилителя первого канала с уровнями напряжений RS-232. Вывод R1in является входом усилителя первого канала с входными напряжениями RS-232, вывод R1out - выходом усилителя первого канала с уровнями напряжений ТТЛ. Аналогично назначение выводов второго канала. Существет аналогичная микросхема MAX242, отличающаяся от рассмотренной тем, что у нее ТТЛ-выходы усилителей обоих каналов выполнены по трехстабильной схеме. Для управления состояниями этих выходов микросхема MAX242 имеет дополнительный управляющий вход .

Рис.12.12. УГО и типовая схема включения микросхемы MAX232A преобразователя уровней ТТЛ в RS-232.

Передача данных по протоколу стандарта RS-232 осуществляется обычно побайтно (в общем случае от 5 до 8 бит) бит за битом по независимым двум каналам для каждого направления. Канал передачи данных от передатчика называется каналом TxD (передача данных), а канал приема данных в приемник – каналом RxD (чтение данных). Пассивному состоянию линии передачи соответствует уровень напряжения логической единицы (-10 В). Наибольшее распространение получил асинхронный режим передачи интерфейса RS-232, поскольку именно он реализован для COM-портов персонального компьютера. В этом режиме передаче основного байта предшествует выдача на линию передатчиком логического нуля (стартовый бит), а завершение передачи заканчивается выдачей логической единицы (стоповый бит) (рис.12.13). Может также использоваться контрольный бит четности, предшествующий передаче стопового бита. Бит четности дополняет общую сумму единиц основного байта до четного (нечетного) количества единиц. Такой способ контроля может выявить на принимающей стороне ошибку, если общее количество единиц приходит нечетным (четным). При пересылке данных между устройствами необходимо, чтобы оба устройства были настроены в один режим и на одну скорость. Типовые значения скорости передачи данных для интерфейса RS-232 составляют: 2400, 4800, 9600, 19200 Бод.

Рис.12.13. Временная диаграмма протокола RS-232 в асинхронном режиме.

Как правило, функции интерфейса RS-232 реализуются аппаратно. Для этого существуют специализированные микросхемы последовательных приемопередатчиков. Если такие микросхемы реализуют асинхронный режим последовательной связи, то они называются UART-преобразователями (от англ. «Universal Asynchronous Receiver/Transmitter»). Примером подобной микросхемы является i8251A (отечественный аналог КР580ВВ51А). Эта микросхема не является в чистом виде асинхронным приемником-передатчиком. Она поддерживает как асинхронный режим, так и синхронный. Т.е. ее можно охарактеризовать как USART-преобразователь. Обмен может быть как полудуплексным, так и дуплексным. Структурная схема микросхемы i8251A приведена на рис. 12.14. Микросхема выполняет следующие функции:

· прием данных из устройства, осуществляющего передачу, преобразование их из параллельного формата в последовательный и передачу через последовательный канал периферийному устройству;

· прием данных по последовательному каналу из периферийного устройства, преобразование их к параллельному формату и передачу в устройство назначения.

Рис. 12.14. Структурная схема микросхема USART-преобразователя i8251A.

Назначение выводов микросхемы следующее (стрелка внутрь соответствет входу, стрелка наружу – выходу):

· D0…D7 – двунаправленные трехстабильные выводы параллельных данных;

· RESET – сброс;

· CLK – синхронизация (вход подачи последовательности прямоугольных импульсов с типовым значением частоты 2 МГц);

· A0 – адрес. Высокий уровень сигнала на этом входе определяет возможность записи или чтения данных по параллельному каналу, а низкий – возможность записи управляющих кодов для задания режима работы микросхемы или чтение слова состояния;

· - разрешение вывода данных или слова состояния на выводы параллельного канала;

· - разрешение ввода данных с параллельного канала;

· - выбор кристалла;

· - готовность микросхемы передавать данные по последовательному каналу;

· - готовность приемника терминала;

· - готовность микросхемы принять данные по последовательному каналу;

· - готовность передатчика терминала;

· TxD – последовательный канал передачи данных;

· TxEnd – буфер передатчика пустой;

· TxRDY – готовность передатчика к приему данных с выводов параллельного канала;

· - синхронизация передачи данных;

· RxD – последовательный канал приема данных;

· SynDet – определяет вид синхронизации - внутренней или внешней. Состояние вывода определяется программно;

· RxRDY – данные на выводах параллельного канала готовы для считывания их микропроцессором;

· - синхронизация приема данных.

Несмотря на то, что микросхема имеет большое количество управляющих выводов, для связи терминала и периферийного устройства в асинхронном режиме используется обычно всего 2 вывода: RxD и TxD. Причем вход RxD терминала соединяется кабелем с выходом TxD периферийного устройства и выход TxD терминала соединяется с входом RxD периферийного устройства. Рассмотрим работу микросхемы в наиболее часто используемом режиме – асинхронном. В этом режиме скорость обмена кратна частоте сигналов синхронизации TxC и RxC в соответствующих направлениях обмена. На эти входы подаются синхроимпульсы в виде последовательности прямоугольных импульсов. Коэффициент кратности задается программно и может быть выбран из ряда 1:1, 1:16 и 1:64. Для задания режима работы в микросхему необходимо по параллельному каналу записать слово инициализации. Это слово определяет асинхронный или синхронный режим работы микросхемы, кратность коэффициента деления, длину передаваемых/принимаемых данных по последовательному каналу, наличие или отсутствие бита контроля на четность или нечетность, блительность стоп-бита. В асинхронном режиме биты параллельного кода слова инициализации определяются следующими значениями:

· D0=1, D1=0 - коэффициент кратности равен 1;

· D0=0, D1=1 - коэффициент кратности равен 16;

· D0=1, D1=1 - коэффициент кратности равен 64;

· D2=0, D3=0 - формат передаваемых данных – 5 бит;

· D2=1, D3=0 - формат передаваемых данных – 6 бит;

· D2=0, D3=1 - формат передаваемых данных – 7 бит;

· D2=1, D3=1 - формат передаваемых данных – 8 бит;

· D4=1, D5=0 - контроль по четности;

· D4=1, D5=1 - контроль по нечетности;

· D4=0, D5=1 - без контроля;

· D6=1, D7=0 - длина стоп-бита 1;

· D6=0, D7=1 - длина стоп-бита 1,5;

· D6=1, D7=1 - длина стоп-бита 2.

Слово инициализации устанавливается один раз. Смена слова инициализации необходима тогда, когда необходимо сменить режим работы микросхемы. Также в процессе передачи может возникнуть потребность задавать слова команды, определяющие функции и этапы передачи. Разряды слова команды задают следующие функции:

· D0 – разрешение на передачу (при нулевом значении разряда передача не возможна, при единичном – возможна);

· D1 – запрос готовности передатчка (при единичном значении разряда на выводе микросхемы устанавливается ноль);

· D2 – разрешение приема (при нулевом значении разряда прием не возможен, при единичном – возможен);

· D3 – конец передачи (при нулевом значении разряда – нормальная работа канала передачи, при единичном – установка высокого уровня на выходе TxD микросхемы);

· D4 – сброс меток ошибок (при единичном значении разряда сбрасываются все флажки-признаки ошибок);

· D5 - запрос готовности приемника терминала (при единичном значении разряда на выводе микросхемы устанавливается ноль);

· D6 – программный сброс (единичное значение разряда равноценно подаче сигнала RESET);

· D7 – поиск синхроимпульсов (при единичном значении разряда выполняется поиск синхроимпульсов в синхронном режиме).

В настоящее время стандарт последовательной передачи RS-232 считается морально устаревшим. На многих современных персональных компьютерах он даже не предусмотрен. На смену ему пришел интерфейс USB (universal serial bus или универсальная последовательная шина). Этот интерфейс широко применяется для связи внешних периферийных устройств с персональным компьютером. Он может быть полезен, когда необходимо подключить измерительный прибор, построенный на базе микропроцессора или микроконтроллера как внешнее устройство к персональному компьютеру. USB предствляет собой шину. Т.е. к одному физическому каналу можно подключать несколько устройств. Для подключения периферийных устройств к шине USB используется четырёхпроводный кабель. При этом два провода «USB-» и «USB+» (витая пара) в дифференциальном включении используются для приёма и передачи данных, а два провода «+5 В» и «Общий» - для питания периферийного устройства. Благодаря встроенным линиям питания интерфейс USB позволяет подключать периферийные устройства без собственного источника питания. Максимальная сила тока, потребляемого устройством по линиям питания шины USB, не должна превышать 500 мА. Существует несколько версий стандарта шины USB, отличающихся режимами работы и пропускной способностью, но схемотехническое подключение устройств к этой шине одинаковое для всех версий (кроме последней версии 3.0). По этой причине не будем рассматривать в рамках данной данной книги особенности конкретных версий.

Шина USB строго ориентирована, имеет понятие «главное устройство» (хост, он же USB контроллер), и «периферийные устройства». Шина имеет древовидную топологию, т.е. периферийным устройством может быть разветвитель (хаб), к которому в свою очередь могут подключаться другие периферийные устройства. Разветвитель всегда активный и представляет собой сложное электронное устройство. К одному контроллеру шины USB можно подсоединить до 127 устройств по топологии «звезда», в том числе и разветвители. На одной шине USB может быть до 5 уровней каскадно включенных разветвителей.

USB поддерживает «горячее» подключение периферийных устройств в режиме Plug&Play. Это означает, что подключаемое к контроллеру периферийное устройство должно быть опознано персональным компьютером и должна автоматически запуститься программа обработки этого подключения. Попутно решается историческая проблема нехватки ресурсов на внутренних системных шинах персонального компьютера - контроллер USB занимает только одно прерывание независимо от количества подключенных к шине USB устройств. Для этого каждое периферийное устройство должно иметь уникальный код, который считывается контроллером USB (хостом) при подключении этого устройства.

Несмотря на то, что стандарт RS-232 на сегодняшний момент считается устаревшим и во многих новых моделях персональных компьютеров не используется вовсе, существует огромный парк периферийных устройств, имеющих интерфейс RS-232. Поэтому возникает задача стыковки периферии, имеющей интерфейс RS-232, с новыми моделями персональных компьютеров, в особенностями с переносными типа Notebook. Для этих целей разработаны микросхемы преобразователей RS-232 (с асинхронным режимом работы) в стандарт шины USB. Примером такой микросхемы является микросхема FT232R фирмы Future Technology Devices International Ltd., условное графическое обозначение и типовая схема включения которой приведены на рис.12.15.

Рис.12.15. УГО микросхемы FT232R и ее типовая схема включения.

В микросхеме имеются все сигналы и линии стандарта RS-232 со стороны периферийного устройства, рассмотренные ранее и дополнительные линии (обнаружен вызов) и (обнаружена несущая), задействованные обычно в работе модема. Для связи периферийного микропроцессорного устройства с персональным компьютером достаточно использовать только линии TxD и RxD. В микросхему FT232R запрограммирован индивидуальный идентификационный код, что позволяет использовать ее без каких-либо специальных процедур программирования. Если предусматривается возможность подключения нескольких устройств через несколько микросхем FT232R к одному хосту, то в каждую из них нужно запрограммировать индивидуальный номер, чтобы хост мог корректно идентифицировать устройство и запустить необходмую процедуру обработки. Для этих целей микросхема имеет встроенное перепрограммируемое ПЗУ, программирование которого осущетсвляется через выводы CBUS0…CBUS4. Выводы OSCi и OSCo используются в опциональных применениях и в обычном режиме не задействованы. Вывод TEST также используется в специальных режимах, в обычном режиме на него подается логичеий ноль. Вывод 3,3Vout может быть использован как стабилизированный источник напряжения для подключения дополнительных потребителей с потребляемым током не более 50 мА, если такие есть в схеме.

Другим примером интерфейса, широко применяемым в цифровой микропроцессорной технике, является интерфейс I2C (часто встречается обозначение «I2C»). Этот интрефейс представляет собой шину, поддерживающую мультиплексный синхронный последовательный обмен данными. Название интерфейса расшифровывается как как «Inter IC», т.е. «межмикросхемная шина». Интерфейс I2C был предложен фирмой Philips в начале 90-х годов прошлого века специально для связи различных цифровых микросхем между собой. Сегодня эта шина широко применяется для простой, не требующей большого количества выводов и сигнальных линий, стыковки микроконтроллеров с микросхемами памяти, АЦП, ЦАП, часами реального времени, таймерами, различными преобразователями, индикаторами и прочей периферией. В периферийных устройствах протокол шины I2C обычно реализуется аппаратно, в микроконтроллерах и микропроцессорах он может реализовываться как аппаратно, так и программно.

Шина I²C использует две двунаправленные линии, подтянутые к напряжению питания резисторами Rп (рис.12.16). На шину параллельно подключаются все микросхемы и функциональные блоки микропроцессорной системы. Выходы всех устройств, подключаемых к шине, должны быть организованы по схеме с открытым коллектором или открытым стоком. Одна линиия имеет обозначение SDA (Serial Data) и предназначена для последовательной передачи/приема данных, а вторая имет обозначение SCL (Serial Clock) и предназначена для последовательного тактирования. Поскольку в шине прием и передача данных организована по одной линии SDA в обоих направлениях, то выводы SDA и SCL микросхем должны быть как входами, так и выходами. Стандартные напряжения логических уровней соответствуют ТТЛ-уровням, однако допускаются и другие значения напряжений. Основной режим работы реализуется на скорости 100 кбит/с, режим с пониженной скоростью - 10 кбит/с. В более поздних спецификациях появились ускоренный режим со скоростью 400 кбит/с и режим повышенной скорости 3,4 Мбит/с. Стандарт шины допускает также приостановку тактирования для работы с медленными устройствами.

Рис.12.16. Организация подключения устройств с помощью шины I2C.

Устройства, подключаемые к шине, по своему назначению делятся на ведущие (Master) и ведомые (Slave). В шине должно быть как минимум одно ведущее устройство. Как правило, таким устройством является микроконтроллер. Он берет на себя функции управления шиной, вырабатывает тактовые сигналы SCL, инициирует сеансы приема/передачи. Информация может передаваться как от ведущего устройства к ведомому, так и в обратном направлении, но обязательно под управлением ведущего устройства. На рисунке показана внутренняя организация выводов SDA и SCL только для одного устройства. Такая же организация характерна для всех микросхем, подключаемых к шине.

В исходном состоянии на выходах SDA и SCL всех микросхем, подключенных к шине I2C, должны быть установлены логические единицы. Благодаря схеме с открытыми коллекторами, в которой транзисторные ключи выходов SDA и SCL оказываются закрытыми, через резисторы Rп потенциалы указанных выходов подтягиваются к напряжению питания. Внутренние сопротивления закрытых транзисторов выходов микросхем оказываются большими и все микросхемы находятся в режиме чтения. Если какое-либо устройство начнет процесс передачи, остальные устройства окажутся приемниками. Открывающиеся под управлением синхроимпульсов и импульсов передаваемых данных выходные транзисторы передающего устройства будут подсаживать потенциалы линий SDA и SCL шины на землю. Переданные сигналы данных и синхронизации поступят на входы всех остальных микросхем. Каждая микросхема, работающая в режиме приемника, считает переданный сигнал.

Кроме самих передаваемых данных, в каждой посылке закладывается адрес устройства, для которого эти данные предназначены. Каждое подключаемое к шине I2C периферийное устройство имеет свой уникальный адрес. В стандартном режиме для адресации периферийного устройства используется 7 бит информации с 16 зарезервированными адресами. Это означает, что к шине может быть подключено до 112 ведомых устройств. В более поздних спецификациях шины для адресации стали использовать 10 бит, что увеличило количество подключаемых устройств до 1008. Если передаваемый адрес совпадет с индивидуальным адресом микросхемы, то эта микросхема примет предназанченные для нее данные и обработает их. Остальные микросхемы текущую посылку проигнорируют. Адрес в ведомых микросхемах в зависимости от их типа может быть задан жестко производителем или может программироваться разработчиком устройства. Возможен случай, когда микросхема содержит неизменияемую честь адреса в старших разрядах и часть адреса в младших разрядах, доступную для программирования разработчиком. В этом случае упрощается адресация при подключении однотипных микросхем.

Информация по шине I2C передается побайтно, последовательно бит за битом. Передача каждого бита по линии SDA сопроводается синхроимпульсом на линии SCL. Процедура обмена начинается с того, что ведущий передатчик формирует состояние «СТАРТ», обозначаемое в спецификации шины символом «S». Для этого он генерирует переход сигнала линии SDA из высокого «отпущенного» состояния в низкое «подсаженное» при высоком уровне SCL (рис.12.17). Этот переход воспринимается всеми устройствами, подключенными к шине, как признак начала процедуры обмена. Генерация синхросигнала - всегда обязанность ведущего устройства. Каждый ведущий генерирует свой собственный сигнал синхронизации при пересылке данных по шине. Процедура обмена завершается тем, что ведущий формирует состояние «СТОП» (обозначаемое символом «P»), в котором осуществляет переход линии SDA из низкого уровня в высокое «отпущенное» при высоком уровне линии SCL. Состояния «СТАРТ» и «СТОП» всегда вырабатываются ведущим. Считается, что шина занята после фиксации состояния «СТАРТ» и свободна через некоторое время после фиксации состояния «СТОП». После формирования состояния «СТАРТ», ведущий опускает уровень линии SCL в низкое состояние и выставляет на линию SDA старший бит первого байта сообщения. Передача байта по спецификации шины I2C всегда происходит начиная со старшего бита. Количество байт в сообщении не ограничено. Спецификация шины I2C при передаче данных разрешает изменения на линии SDA только при низком уровне сигнала на линии SCL. Данные действительны и должны оставаться стабильными только во время высокого состояния синхроимпульса. Исключение составляют состояния «СТАРТ» и «СТОП», когда уровень линии SDA меняется при высоком уровне линии SCL. Для подтверждения приема байта от ведущего передатчика ведомым приемником в протоколе обмена по шине I2C вводится специальный бит подтверждения, выставляемый на шину SDA после приема последнего младшего бита данных. Для этого передатчик устанавливает логическую единицу на выходе SDA, тем самым «отпускает» эту линию, и передает девятый синхроимпульс по линии SCL. В ответ на этот синхроимпульс, приемник должен сам «подсадить» линию SDA. Если это произойдет, передатчик считает низкий уровень с линии SDA и продолжит или окончит передачу в зависимости от того, все ли байты переданы. Если от приемника подтверждения не последует, передача приостановится.

Рис.12.17. Временная диаграмма протокола шины I2C.

Мехнизм передачи, когда ведущее устройство является приемником, а ведомое передатчиком, аналогичен описанному выше. В этом режиме формированием синхроимпольсов и состяний «СТАРТ» и «СТОП» также будет заниматься ведущее устройство. Но только в данном случае оно будет приемником. В ответ на состояние «СТАРТ» ведомый передатчик под управлением синхроимпульсов SCL с ведущего приемника будет выставлять побитно данные на линию SDA, которые будут считаны ведущим приемником. После передачи восьми бит данных ведомый передатчик приступит к ожиданию от ведущего приемника бита подтверждения. Если прием прошел без ошибок, ведущий приемник передаст этот бит путем подсаживания линии SDA и формирования синхроимпульса на линии SCL. В противном случае на линии SDA останется присутствовать высокий потенциал.

Процесс обмена информации начинается с того, что ведущее устройство выдает на I2C шину первый байт, в семи старших разрядах которого присутствует адрес активизируемого устройства, а в младшем бите отражается направление пересылки данных. При нуле в этом бите передача осуществляется от ведущего устройства к ведомому, а при единице – от ведомого к ведущему. Все ведомые устройства получат условие «СТАРТ» и примут первый байт. Только в одном устройстве адрес, закодированный первым байтом, совпадет с индивидуальным адресом этого устройства. И именно оно продолжит участвовать в пересылке. Остальные ведомые устройства останутся в режиме ожидания. Все они будут ждать новое условие «СТАРТ», после которого вновь первым передаваемым байтом будет адрес активизируемого устройства. Ведомое устройство, для которого адрес совпал, завершит процедуру приема первого байта, для чего оно выработает бит подтверждения. Получив подтверждение, ведущее устройство начнет в зависимости от направления пересылки, управлять приемом или передачей данных. Между этими пересылками условие «СТОП» формироваться не будет, а будет формироваться только бит подтверждения после пересылки очередного байта. Как только все байты данных будут пересланы, ведущее устройство сформирует условие «СТОП» и пересылка будет считаться завершенной.





Дата добавления: 2014-01-06; Просмотров: 901; Нарушение авторских прав?;


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



ПОИСК ПО САЙТУ:


Читайте также:



studopedia.su - Студопедия (2013 - 2017) год. Не является автором материалов, а предоставляет студентам возможность бесплатного обучения и использования!
Генерация страницы за: 0.09 сек.