Сделай Сам Свою Работу на 5

Вспомогательные последовательные интерфейсы и шины





В этой главе рассматриваются интерфейсы и шины, предназначенные, в основном, для «внутреннего использования». В этом качестве PC используется для иденти­фикации модулей DIMM, информация о которых хранится в маленьких микросхе­мах энергонезависимой памяти. В ряде современных системных плат присутствует шина SMBus, основанная на том же интерфейсе PC. Эта шина используется для счи­тывания идентификационной информации модулей памяти, по ней же осуществля­ется доступ к памяти идентификаторов и средствам термоконтроля процессоров Хеоп. Она же входит и в состав сигналов слота CNR (слот подключения расширений аудиокодека и телекоммуникаций) для конфигурирования аудио- и коммуникаци­онного оборудования. По интерфейсу PC, входящему в интерфейс VESA DDC1/2B, современные мониторы обмениваются конфигурационной и управляющей ин­формацией с графическим адаптером (а через него и с центральным процессором). Канал DDC входит в обычный 15-контактный аналоговый интерфейс VGA, его развитие EVC и цифровые интерфейсы P&D, DVI и DFP. А при поддержке графи­ческим адаптером и монитором интерфейса DDC1/2AB пользователь теоретически получает возможность внешнего подключения дополнительных устройств по шине ACCES.Bus через разъем, расположенный на мониторе (практически таких мони­торов встречать не доводилось). Этими устройствами могут быть устройства пози­ционирования (планшеты, мыши), считыватели карт, штрих-кодов и т. п. После­довательная шина ACCESS.Bus, основанная на PC, разработана фирмой DEC для взаимодействия компьютера с его аксессуарами — например, монитором (канал VESA DDC), интеллектуальными источниками питания (Smart Battery) и т. п. С по­мощью интерфейса PC можно загружать программы (firmware) в энергонезависимую память (флэш) ряда популярных микроконтроллеров. Интерфейс PC обеспечи­вает скорость передачи данных до 100 и даже до 400 Кбит/с, при этом он гораздо проще и дешевле интерфейса RS-232C с его «потолком» 115 Кбит/с и позволяет легко подключать несколько устройств, с поддержкой «горячего» подключения/ отключения и технологии PnP. Недавно в спецификацию PC была введена высо­кая скорость передачи, до 3,4 Мбит/с, но на такой скорости могут работать лишь новые микросхемы со специальной аппаратной поддержкой интерфейса.






11.1. Последовательные шины на базе I2C_______________________________ 421

Интерфейс SMI в явном виде в ПК встречается нечасто, он «родом» из коммуни­кационной аппаратуры Fast Ethernet, где широко используется для управления модулями физического уровня (в том числе и сменными модулями концентраторов). Интерфейсы SPI и JTAG встречаются в аппаратуре, основанной на микроконт­роллерах и конфигурируемой логике, — наиболее часто они используются для за­грузки конфигурационной информации (и кодов программ). Для тех же целей применяются и другие трехпроводные и четырехпроводные интерфейсы, но здесь мы ограничимся лишь упоминанием об их существовании.

11.1. Последовательные шины на базе I2C

Интерфейс последовательной шины PC, введенной фирмой Philips как простое и дешевое средство сопряжения микросхем бытовой электроники, стал фактиче­ским промышленным стандартом для устройств различного назначения. Он очень удобен для обмена небольшими объемами данных, например, для конфигурации раз­личных устройств. Спецификация шины PC определяет протокол двусторонней передачи данных по двум сигнальным линиям. Приложения этого протокола могут быть самыми разнообразными, информационная «начинка» зависит от конкретных применений. На основе интерфейса PC построены шины ACCESS.bus и SMBus, рассмотренные ниже (о работе интерфейса PC с микросхемами памяти см. п. 7.3.3).

11.1.1. Шина I2C

Шина Inter 1C Bus (шина соединения микросхем), или, кратко, PC, — синхронная последовательная шина, обеспечивающая двустороннюю передачу данных между подключенными устройствами. Шина ориентирована на 8-битные передачи. Пере­дача данных может быть как одноадресной, к выбранному устройству, так и широко­вещательной. Уровни сигналов — стандартные, совместимые с широко распро­страненной логикой ТТЛ, КМОП, N-МОП, как с традиционным питанием +5 В, так и с низковольтным (3,3 В и ниже). Микросхемы с интерфейсом PC, как пра­вило, имеют аппаратную поддержку протокольных функций. Протокол позволя­ет взаимодействовать на одной шине устройствам с различным быстродействием интерфейса. Требования к временным параметрам сигналов весьма свободные, так что на компьютерах и микроконтроллерах, не имеющих аппаратной поддержки шины PC, ее протокол может быть реализован даже чисто программно.



Шина PC используется уже давно, ее официальная версия 1.0 вышла в 1992 г. По сравнению с предшествующими (черновыми) версиями, здесь отсутствует (как запутанная и неиспользуемая) возможность программного задания адреса ведо­мого устройства. Также отсутствует низкоскоростной режим (Low speed), явля­ющийся частным случаем стандартного режима Standard Mode (5) — со скоро­стью 0-100 Кбит/с. В версии 1.0 появились определение быстрого режима — Fast Mode (F) — со скоростью 0-400 Кбит/с и связанные с ним изменения требований к форме сигнала и фильтрации помех. Также здесь веден режим 10-битной адре­сации устройств. Версия 2.0 вышла в 1998 г., когда интерфейс PC стал фактиче-


422 Глава 11. Вспомогательные последовательные интерфейсы и шины

ски промышленным стандартом, использующимся в большом числе различных ИС. Здесь появился новый высокоскоростной режим — High speed (Hs), — в котором скорость передачи может достигать 3,4 Мбит/с. Прежние режимы FH Алогически работают одинаково, и для них используют обобщенное обозначение F/S. В этой версии пересмотрены требования к уровням и форме сигналов с учетом высоких скоростей и возможности подключения низковольтных устройств с питанием 2 В и ниже. В версии 2.1 (2000 г.) уточнены некоторые моменты, касающиеся времен­ных диаграмм в режиме Hs. Приведенная здесь информация основана на специ­фикации шины PC версии 2.1, доступной на сайте www.philips.com. Параметры интерфейсных сигналов приводятся в п. 11.1.4, где они сопоставляются с требова­ниями SMBus и ACCESS.Bus.

Интерфейс PC использует две сигнальные линии: данных SDA (Serial Data) и син­хронизации SCL (Serial Clock). В обменах участвуют два устройства — ведущее (master) и ведомое (slave). Ведущее и ведомое устройства могут выступать в роли и передатчика, и приемника данных. Протокол допускает наличие на шине не­скольких ведущих устройств и имеет простой механизм арбитража (разрешения коллизий).

Протокол обмена для обычных устройств F/S иллюстрирует рис. 11.1. Обе сиг­нальные линии имеют нагрузочные резисторы, «подтягивающие» их уровень к напряжению питания. На устройстве к каждой линии подключен приемник и пе­редатчик типа «открытый коллектор» («открытый сток»), у ведомого устройства передатчик на линии SCL не обязателен. Все одноименные передатчики соединя­ются по схеме «Монтажное И»: уровень в линии будет высоким, если все передат­чики пассивны, и низким, если хоть у одного передатчика выходной транзистор открыт. В покое (Idle, исходное состояние шины) все передатчики пассивны. Син­хронизацию задает ведущее устройство, но ведомое, если оно не имеет достаточ­ного быстродействия, может замедлять обмен данными.


 


 

Рис. 11.1. Протокол передачи данных I2C

Начало любой передачи — условие Start — инициируется ведущим устройством, убедившимся в том, что шина свободна (высокий уровень сигналов SCL и SDA). Условие Start (на диаграммах обозначается как S)— перевод сигнала SDA из вы­сокого в низкий при высоком уровне SCL Завершается операция переводом сиг­нала SDA из низкого уровня в высокий при высоком уровне SCL — условие Stop (обозначается как Р), также вводящееся ведущим устройством. При передаче дан­ных состояние линии SDA может изменяться только при низком уровне SCL, биты данных считаются действительными во время высокого уровня SCL Ведущее устройство может начать очередную передачу вслед за текущей, не вводя условие


11.1. Последовательные шины на базе I2C_______________________________ 423

Stop, — это называется repeated Start (повторный старт, обозначающийся S г). В про­токоле условия S и Sr почти равнозначны. Каждая посылка данных состоит из 8 бит данных, формируемых передатчиком (старший бит — MSB — передается первым), после чего передатчик на один такт освобождает линию данных для получения подтверждения. Приемник во время девятого такта формирует бит подтвержде­ния Ac k, по которому передатчик убеждается, что его «услышали». После переда­чи бита подтверждения ведомое устройство может задержать следующую посыл­ку, удерживая линию SCL на низком уровне. Ведомое устройство в режимах F/S может замедлить передачу по шине и на уровне приема каждого бита, удерживая SCL на низком уровне после его спада, сформированного передатчиком. Поэтому ведущее устройство должно генерировать сигнал SCL не «вслепую», а анализируя состояние линии SCL: сняв этот сигнал, новый импульс (открытие ключа передат­чика) оно имеет право вводить, лишь убедившись, что сигнал SCL вернулся в пас­сивное состояние (высокий уровень). В противном случае синхронизация будет потеряна. Сигнал SCL может быть растянут и другим устройством, пытающимся захватить шину в это же время. Тактовый сигнал SCL не обязательно будет равномер­ным: время его нахождения на низком уровне будет определяться максимальным временем, в котором его захочет удержать самое медленное из устройств, участву­ющих в данном обмене (даже и конфликтующих); время нахождение на высоком уровне будет определяться самым быстрым из конфликтующих ведущих устройств.

Коллизия (конфликт) на шине может возникнуть, когда два (или более) устрой­ства, убедившись в покое шины, одновременно (или почти одновременно) иници­ируют обмен данными. Все они управляют линиями SCL и SDA и наблюдают за ними. Если устройство, передающее единицу (высокий уровень), в данном такте на линии SDA видит ноль (низкий уровень), оно должно признать свой проигрыш в конфликте и освободить линии SCL и SDA (при этом ему позволительно управ­лять линией SCL до конца передачи текущего байта). Выигравшее устройство даже и не заметит проигравших конкурентов и продолжит работу. Арбитраж может закончиться в любом месте посылки, формируемой ведущим устройством. Иска­жения информации, передаваемой выигравшим устройством, не происходит (при­ятное отличие от коллизий в сетях Ethernet). Если ведущее устройство, проиграв­шее в конфликте, имеет и функции ведомого устройства, по признанию проигрыша оно должно перейти в режим ведомого, поскольку конфликт мог быть вызван и по­пыткой обращения к нему победившего ведущего устройства.

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


424__________ Глава 11. Вспомогательные последовательные интерфейсы и шины

устройству на окончание передачи — оно теперь должно освободить линии SDA и SCL, чтобы ведущее устройство смогло сформировать условие Р или S r.

На вышеописанной физической основе строится протокол обмена данными по PC. Каждое ведомое устройство имеет свой адрес, уникальный на шине. В начале любой передачи ведущее устройство после условия S или S г посылает адрес ведо­мого устройства или специальный адрес (табл. 11.1). Ведомое устройство, опо­знавшее свой адрес после условия Start, становится выбранным; оно обязано отве­тить подтверждением на адрес и последующие сигналы со стороны ведущего устройства, до получения условия Р или 5г. В первоначальном варианте интер­фейса разрядность адреса устройства составляла 7 бит, впоследствии был введен и режим 10-битной адресации, совместимый с 7-битной. На одной шине могут присутствовать устройства и с 7-битной, и 10-битной адресацией.

При 7-битной адресации в первом байте после S (Sr) ведущее устройство переда­ет 7 бит адреса (А[6:0] в битах [7:1]) и признак операции RW (в бите О RW=1 — чте­ние, RW=0 — запись). Адреса ведомых устройств не должны попадать в области, указанные в таблице. Диапазоны адресов устройств различных типов централи­зованно выдаются изготовителям микросхем фирмой Philips. Для микросхем па­мяти, например, 7-битный адрес содержит две части: старшие 4 бита А[б:3] несут информацию о типе устройства (EEPROM — 1010), а младшие 3 бита А[0:2] определяют номер устройства данного типа на шине. Микросхемы с интерфей­сом PC имеют три адресных входа, коммутацией которых на логические уровни 1 и 0 задается номер устройства, на который оно «отзовется», а тип устройства «за­шит» в нем самом его изготовителем.

Когда ведущее устройство является передатчиком данных, оно в первом байте передает адрес ведомого устройства, при этом RW=0. Выбранное ведомое устрой­ство отзывается подтверждением (АСК=0), после чего ведущее устройство посы­лает один или несколько байт данных, на каждый из которых ведомое устройство должно отвечать подтверждением.

Когда ведущее устройство является приемником данных, оно в первом байте пе­редает адрес ведомого устройства с RW=1. Выбранное ведомое устройство также отзывается подтверждением (АСКНЗ), после чего происходит смена направления передачи и данные уже передает ведомое устройство. Ведущее устройство под­тверждает каждый принятый байт, кроме последнего.

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

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


11.1. Последовательные шины на базе I2C



Таблица 11.1.Специальные адреса I2C

Биты [7:1 ] Бит 0 (RW) Назначение



0000 000
0000 001 X
0000 010 X
0000 011 X
0000 1ХХ X
1111 1ХХ X
1111 ОХХ X

General call address — адрес общего вызова

Start — начало активного обмена

Адрес устройства шины CBUS (для совместимости)

Адрес для устройств иных шин

Зарезервировано

Код ведущего устройства режима Hs

Зарезервировано

Признак 10-битной адресации


Специальные коды, приведенные в табл. 11.1, трактуются следующим образом.

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

♦ Байт Start предназначен для облегчения программной реализации протокола
PC (для функций ведомых устройств, не имеющих полной аппаратной реали­
зации протокола). На байт S t a r t не должно отвечать ни одно устройство. Фор­мируемый сигнал SDA (рис. 11.2) может быть использован как запрос аппарат­ного прерывания, по которому процессор «вплотную» займется обработкой сигналов PC. До получения этого байта процессор (микроконтроллер) может не отвлекаться на слежение за сигналами интерфейса.

♦ На адреса шины CBUS (трехпроводный «родственник» шины PC) и иных шин
устройства PC отвечать не должны.

♦ При использовании 10-битной адресации биты [2:1] содержат старшую часть
адреса, форматы 10-адресных посылок рассмотрены ниже.

Рис. 11.2.Временная диаграмма байта Start

Посылка общего вызова используется для одной из двух целей, определяемых вто­рым байтом, младший бит которого называется В. При В=0 устройства, приняв­шие общий вызов, должны считать программируемую часть своего аппаратного адреса, выполнив (второй байт 00000110Ь) или не выполнив (ОООООЮОЬ) внут­реннюю процедуру сброса. Другие значения байта устройства должны игнориро­вать. Каким образом программируется адрес, зависит от устройства (указывается в его описании). При В=1 общий вызов используется для широковещательной пере­дачи данных. В этом случае ведущее устройство в старших 7 битах второго байта сообщает свой адрес (тот же, на который оно отзывается в роли ведомого), а далее


426__________ Глава 11. Вспомогательные последовательные интерфейсы и шины

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

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

Введение 10-битной адресации стало решением проблемы дефицита адресов: при 7-битной адресации с учетом зарезервированных комбинаций остается только 112 адресов, при 10-битной доступны еще 1024 адреса. Передача данных ведущим устройством с 10-битной адресацией выглядит просто: в первом байте после S (S г) биты 2:1 несут старшие биты адреса, бит 0 — признак RW=0; второй байт несет младшие 8 бит адреса, а последующие байты — передаваемые данные. Приемник дает подтверждения обычным способом. Прием данных ведущим устройством несколько сложнее, поскольку признак RW является явным указателем на смену направления передачи и младшую часть адреса ведущее устройство передать уже не может. Прием по 10-битному адресу ведущее устройство начинает как фиктив­ную передачу: в первом байте посылает признак 10-битной записи и 2 бита адреса, во втором байте — остаток адреса. Далее ведущее устройство выполняет условие Sr и посылает признак 10-битного чтения (RW=1) с двумя старшими битами того же адреса. Ведомый передатчик, получив те же 2 старшие бита адреса, что и до 5г, отвечает подтверждением и начинает передавать данные ведущему устройству. Этот процесс продолжается и завершается так же, как и с 7-битной адресацией. Возможны и комбинированные обмены: реальная передача ведущего устройства 10-битному устройству, за которой после Sr следует чтение того же устройства. Также возможно комбинирование (через 5г) 7- и 10-битных обращений к раз­ным устройствам. Широковещание с 10-битной адресацией выглядит так же, как и с 7-битной, но адрес ведущего устройства передается уже двумя байтами (млад­шие 8 бит адреса передаются на месте первого байта данных). Высокоскоростной режим (Hs) позволяет обмениваться данными со скоростью до 3,4 Мбит/с, причем обеспечивается обратная совместимость устройств Hs с быс­трыми и стандартными (-F/5). Для обеспечения возможности обмена на столь высокой скорости выходные и входные буферы микросхем должны переключать­ся в специальный режим работы, отличающийся параметрами формируемых и принимаемых импульсов. Сигналы высокоскоростных устройств обозначаются как SDAH и SCLH; в смешанных системах для работы в Hs они должны отделять­ся от линий SDA и SCL обычных устройств специальными мостами (поведение устройств F/S на таких частотах непредсказуемо). В режиме Hs уже нет речи о разре­шении конфликтов — арбитраж выполняется на скоростях F/S; также здесь нет


11.1. Последовательные шины на базе I2C_______________________________ 427

возможности синхронизации по каждому биту (замедления передачи ведомым устройством), а ведущим устройством устанавливаются жесткие соотношения длительности.низкого и высокого уровней сигнала SCLH (2:1). Ведомое устрой­ство может притормаживать обмен только после выдачи бит подтверждений. Для перехода в режим Hs ведущее устройство в первом байте (после 5) использует за­резервированное значение 0000 1ххх, в котором ххх несет код ведущего устройства. Во время передачи этого байта (на скорости F/S) выполняется арбитраж — если обмен одновременно пытаются начать несколько устройств, продолжать его мо­жет только выигравшее ведущее устройство. Код ведущего устройства в режиме Hs назначается при конфигурировании, а все ведущие устройства на шине в ре­жиме Hs должны иметь различные коды (код 000 зарезервирован), чем и обес­печивается завершение арбитража за время передачи первого байта. Ведущее устройство может переключиться в режим Hs, только если оно выиграло арбитраж и получило единичный бит подтверждения. В этом случае он перестраивает свои выходные и входные буферы на параметры Hs и формирует повторный старт (S г). Далее обмен логически выполняется точно так же, как и в режиме F/S, но уже на высокой скорости. Режим Hs может распространяться на несколько последующих передач, разделенных условиями S r, и завершится работа в режиме Hs по усло­вию Р, по которому буферные схемы снова вернутся к параметрам F/S.

Шина ACCESS.Bus

Последовательная шина ACCESS.Bus (Accessory Bus) разрабатывалась фирмой DEC как унифицированный недорогой интерфейс взаимодействия компьютера с внешними устройствами — клавиатурой, координатными устройствами, тексто­выми устройствами (принтеры, считыватели штрих-кодов), мониторами (в плане обмена управляющей и конфигурационной информацией по каналу VESA DDC). История ACCESS.Bus начинается с 1991 г.; несколько позже в шину вели допол­нительную спецификацию для взаимодействия с внутренними устройствами, на­пример, интеллектуальными источниками питания (Smart Battery) и т. п. К внут­ренним относятся устройства системного управления SM (System Management), и в спецификации имеются точки соприкосновения с шиной SMBus, основанной на том же интерфейсе PC. Формально шина позволяет обмениваться сообщениями устройствам числом до 125 (предел принятой системы адресации). Над аппарат­ным протоколом PC в шине ACCESS.Bus имеется базовый программный протокол, с которым взаимодействуют протоколы конкретных подключенных устройств. Протоколы обеспечивают подключение/отключение устройств без перезагрузки ОС и автоматическое динамическое назначение адресов. Последняя доступная версия ACCESS.bus Specifications Version 3.0 опубликована ACCESS.bus Industry Group в 1995 г., дальнейшее описание сделано на ее основе.

На аппаратном уровне шина логически полностью соответствует шине PC со стан­дартной скоростью (до 100 Кбит/с) и 7-битной адресацией ведомых устройств. Здесь работают те же механизмы синхронизации и арбитража. Однако из всех возможных способов передачи и приема данных в ACCESS.bus основным являет­ся передача данных ведущим устройством и их прием ведомым устройством — это


428__________ Глава 11. Вспомогательные последовательные интерфейсы и шины

самый простой способ, при котором в каждой транзакции отсутствует смена на­правления передачи. Из этого следует, что для двустороннего обмена информацией все устройства должны поддерживать функции ведущего устройства (передатчи­ка) и ведомого устройства (приемника). Для совместимости с SMBus разрешена возможность чтения данных ведущим устройством и комбинированные переда­чи через условие 5г.

По электрическим сигналам имеются две спецификации, для внешних и внутрен­них устройств соответственно.

Спецификация для внешних устройств (Off-board ACCESS.bus), являющаяся основной для этой шины, определяет использование 4-контактного экраниро­ванного модульного разъема (MOLEX SEMCONN или AMP SDL), назначение контактов которого приведено в табл. 11.2. Хост-компьютер должен обеспечивать питание 5 В с током 50-1000 мА. Каждое устройство (и кабель), характеризуется потребляемым током I (мА) и вносимой емкостью сигнальных проводов С (пФ). Предельное число подключаемых устройств ограничивается суммарной вносимой емкостью (не более 1000 пФ) и током потребления. До ограничения по адресации (125 устройств) дело практически не доходит. Максимальная суммарная длина кабеля (без повторителей) не должна превышать 10 м. По сравнению с PC в шине ток нагрузки линий SDA и SCL увеличен до б мА (выходной ток низкого уров­ня). Для улучшения формы импульсов и защиты от статического электричества устройства рекомендуется подключаться к линиям SDA и SCL через последова­тельные резисторы 51 Ом. Входы микросхем рекомендуется защищать диодами, соединенными с шинами GND и +5 В.

Таблица 11.2.Назначение контактов внешнего разъема ACCESS.bus
Контакт Назначение Цвет провода

1 GND Черный

2 SDA Зеленый

3 +5 В (питание устройств) Красный

4 SCL Белый

Ассоциация VESA для вывода внешней шины ACCESS.Bus на корпус мониторов предлагает иной, 5-контактный разъем ACCESS.Bus; назначение его контактов приведено в табл. 11.3.

Таблица 11.3.Разъем ACCESS.Bus (VESA)

 

Контакт Назначение
GND
Ключ
SDA
+5 В (питание устройств)
SCL


11.1. Последовательные шины на базе I2C_______________________________ 429

Спецификация для внутренних устройств (On-board ACCESS.bus) рассчитана на меньшие токи нагрузки (350 мкА); здесь допускаются последовательные резисто­ры большего сопротивления. Вместо ограничения на вносимую емкость задаются требования к фронтам и спадам сигналов. Эта спецификация была введена толь­ко в 1995 г., она нацелена на совместимость с устройствами SMBus, и в нее введе­ны дополнительные ограничения на максимальные длительности различных фаз, соответствующие SMBus.

Базовый протокол шины ACCESS.bus 3.0 состоит из двух наборов: протокол РА для устройств с программируемым адресом (Programmable Address) и протокол FA для устройств с фиксированным адресом. В устройстве (как внешнем, так и внутреннем) может быть реализован любой из них или оба. Предыдущая версия спецификации описывала только внешние устройства РА; внутренние устройства с FA называ­ются SM-устройствами (System Management). Протокол FA практически соответ­ствует шине SMBus, описанной ниже, без «архитектурных излишеств» в виде РЕС и динамического назначения адресов. Устройства SM могут общаться с хостом по протоколу Write Word (см. ниже). Базовый протокол РА основан на передаче од­нонаправленных сообщений (см. ниже). Шина ACCESS.bus является хост-цент­рической: сообщения передаются от устройства к хосту и от хоста к устройству; исключением является попытка сброса устройства-двойника (см. ниже). После включения питания устройства должны отвечать только на «дежурный» адрес 0110 111; в процессе конфигурирования каждому устройству назначается личный адрес. В рабочем состоянии шина позволяет обнаруживать подключение новых устройств и их конфигурировать без перезагрузки («горячее подключение»).

Сообщения передаются в виде пакетов, формат пакета приведен на рис. 11.3. Адрес назначения DestAddr воспринимается получателем аппаратно (это адрес ведомого устройства PC). Адрес источника SrcAddr позволяет получателю идентифици­ровать источник данных (и определить, куда посылать ответ). Флаг протокола Р позволяет различать назначение тела пакета: Р=0 — «полезные» данные устройства (Device Data Stream); P=l — управление/состояние (control/status). Поле Length определяет длину тела пакета (в байтах); само тело (Body) размещается в после­дующих байтах. Контрольный байт Checksum является результатом выполнения функции XOR (Исключающее ИЛИ) над всеми предшествующими байтами паке­та начиная с адреса приемника. Признаком целостности пакета является нулевой результат функции XOR от всех байтов пакета включая контрольный. Подлежат отработке только пакеты с корректным контрольным байтом. Минимальная дли­на всего пакета — 4, максимальная — формально 131 (127 байт тело и 4 байта об­рамления). Однако максимальную длину пакета ограничивает и время, разрешен­ное устройству для передачи пакета.

Каждому устройству назначается свой адрес, на который оно должно отзываться битами подтверждения при приеме сообщения. Адрес выражают однобайтным числом, причем всегда четным, поскольку в PC 7-битный адрес дополняется младшим битом RW, нулевым в ACCESS.bus. Адрес 50h всегда назначается хост-компьютеру, адрес 10h зарезервирован для хоста SM-устройств. Адрес 6Eh является



Глава 11. Вспомогательные последовательные интерфейсы и шины


«дежурным» адресом, на который отзываются лишь устройства с неназначенным личным адресом. Для личных адресов устройств остаются диапазоны 02-4ЕН; 52-GCh; 70-FEh — 125 адресов с некоторыми исключениями, зарезервированными для фиксированных адресов SM-устройств и мониторов.

Рис. 11.3.Формат пакета сообщения ACCESS.Bus

Для ACCESS.bus определено 9 протокольных сообщений (у них флаг Р=1), обяза­тельных для реализации интерфейсных функций шины (автоконфигурирования). «Полезными» прикладными сообщениями могут обмениваться только сконфигу­рированные устройства и только после явного разрешения этого обмена.

Ниже перечислены сообщения от хоста к устройствам.

♦ Reset — сброс устройства и перевод его в режим ответа на «дежурный» адрес. Тело состоит из однобайтного кода FOh. Это же сообщение может послать и устройство, обнаружившее на шине помеху в виде устройства-двойника с тем же адресом. Послав это сообщение по своему же собственному адресу, устройство заставит двойника перейти на «дежурный» адрес.

♦ Identification Request — запрос идентификационной строки. Тело состо­
ит из однобайтного кода Flh.

♦ Assign Address — назначение устройству, имеющему совпадающую иденти­фикационную строку, нового адреса. Тело (длина 30) начинается с кода F2h, за которым следует 28-байтный идентификатор устройства, а за ним — байт но­вого адреса.

♦ Capabilities Request — запрос фрагмента информации о возможностях
устройства. В теле за кодом F3h следует 16-битный параметр — смещение
требуемых данных относительно начала структуры данных возможностей. Для
упрощения логики устройств параметр ограничивается значениями, обес­
печивающими чтение первого фрагмента (с нулевым смещением), следующе­
го и переспрос последнего переданного.

♦ Enable Application Report — разрешение передачи прикладных данных.
За кодом F5h следует байт кода операции: ООН — запрет, 01

♦ Presence Check — проверка наличия устройства по данному адресу. За кодом F7h следует нулевой байт (зарезервирован на будущее).


11.1. Последовательные шины на базе !2С_______________________________ 431

Далее перечислены сообщения от устройств к хосту.

♦ Attenti on —запрос на конфигурирование (устройство включилось и заверши­ло автоинициализацию). Тело состоит из однобайтного кода EOh.

♦ Identification Reply — ответ на запрос идентификационной строки. Тело
(длина 29) содержит код Elh, за которым следует 28-байтная строка иденти­
фикации.

♦ Capabilities Reply — ответ на запрос фрагмента описания возможностей.
Тело (длина 3-35) начинается с кода E3h, за которым следует 16-битное сме­щение (см. запрос) и собственно данные (0-32 байт). Хост собирает фрагмен­ты, используя смещение.

Также в спецификации определены дополнительные протокольные сообщения, используемые для управления потреблением, распределением ресурсов и иных целей (у этих сообщений также флаг Р-1).

♦ Resource Requeset — запрос ресурса (от устройства к хосту). За кодом E5h
следует байт-описатель ресурса и необходимые данные. Команда позволяет
запросить адрес в личное пользование и освободить его; запросить сообщение
о текущем времени; запросить хост о сохранении блока данных, а также о воз­
вращении его ббратно; запросить хост о сохранении питания на шине (для
окончания внутренних операций); запросить дополнительную полосу шины.

♦ Resource Grant — выделение ресурса, ответ хоста на запрос. За кодом F4h
следует описатель ресурса и необходимые данные.

♦ Application Hardware Signal—запрос устройства на генерацию высокопри­
оритетного аппаратного сигнала хост-компьютеру. За кодом AOh следует байт со следующим кодом сигнала:

 

• 1 — Reset — попытка аппаратного сброса компьютера;

• 2 — Halt — вызов отладчика;

• 3 — Attention — генерация сигнала внимания (аппаратное прерывание).

 

♦ Application Test — команда от хоста на выполнение устройством приклад­
ного теста (код Blh).

♦ Application Test Reply — сообщение устройством о результатах выполне­
ния теста. За кодом Alh следует код результата (0 — успешное выполнение, иначе — ошибка) и 0-30 байт дополнительных данных.

♦ Application Status Message — сообщение устройством об изменении сво­
его состояния (в прикладном плане). За кодом A2h следует нулевой байт, за ним байт состояния и 2 байта специфических данных. Байт состояния:

 

• 00 — готово;

• 01 — не готово;

• 02 — изменились свойства;

• 03 — потеряно внутреннее состояние;

• 04 — потеряны прикладные данные (может, и от переполнения).


432__________ Глава 11. Вспомогательные последовательные интерфейсы и шины

♦ Device Power Management Command — команда управления потреблением устройства. За кодом F6 следует байт кода операции:

• 00 — режим Run;

• 01 — режим Standby;

• 02 — режим Suspend;

• 03 — режим Shutdown;

• 04 — совет отключить питание;

• 05 — рестарт;

• 06 — сообщить режим потребления.

Остальные коды протокольных сообщений задаются разработчиком в соответ­ствии со спецификой устройств. Напомним, что прикладные данные передаются с флагом Р=0.

Строка идентификации устройства ACCESS.bus длиной 28 байт состоит из ряда символьных полей — байта ревизии протокола (protocol revision), 7-байтного поля ревизии модуля (module revision), 8-байтных имен производителя (vendor name) и модуля (module name), за которым следует 32-битный уникальный номер устройства (device number). Этот номер может быть либо фиксированным (уни­кальность обеспечивает производитель, что недешево), либо случайным числом, генерируемым по включению (на весь сеанс работы). Системное ПО, распознавая устройство для подключения драйверов, не должно руководствоваться этой стро­кой — возможности устройства (Capabilities) описываются (и сообщаются) в спе­циальной структуре данных. Эта структура зависит от типа устройства.

На уникальности идентификатора и основан механизм автоконфигурирования: на запрос идентификатора по «дежурному» адресу отвечают все устройства, еще не имеющие личных адресов. Однако в ходе арбитража до конца сообщения дохо­дит только одно из этих устройств, после чего хост ему назначает личный адрес. В следующем общем опросе идентификаторов «победит» уже другое устройство и так далее, пока всем устройствам не будут назначены личные адреса (об этом хост узнает по отсутствию ответа на общий опрос). Устройство-«новичок» на шине заявит о своем появлении сообщением Attenti on, в ответ на которое хост выпол­нит вышеописанную процедуру идентификации и назначения адреса.

 








Не нашли, что искали? Воспользуйтесь поиском по сайту:



©2015 - 2024 stydopedia.ru Все материалы защищены законодательством РФ.