www.chms.ru - вывоз мусора в Балашихе 

Динамо-машины  Однокристальные микроконтроллеры 

1 2 3 4 5 6 7 [ 8 ] 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63

Как показывает практика, процедура арбитража наиболее трудна для понимания. Поэтому, чтобы досконально разобраться, приведем наглядную аналогию. Представьте себе шеренгу людей, синхронно поднимающих руки по команде ведущего. Если рука поднята, это свидетельствует о передаче единицы, если опущена - нуля. Допустим, в первом такте все подняли руки, а во втором - двое руки не подняли. Согласно принципу арбитража, из шеренги выбывают все, кроме этих двоих. Далее они, подчиняясь командам ведущего, будут поднимать или опускать руки, пока в каком-либо такте не окажется, что один руку поднял, а другой - опустил. Так вот, laquo;поднявший руку от руки и погибнет raquo; - перефразируем известное выражение. Он выбывает, а передачу до окончания продолжит оставшийся - в единственном числе. Рис. 1.27 отражает процедуру арбитража для двух master-абонентов.

Данные 1

Данные 2

\ г

- итказ ОТ передачи

/ \ г-

! s

\ /л

Г\ 1

ГЛ /л /л г

Рис. 1.27. Арбитраж на шине 1С

Разобравшись с условиями передачи данных по шине 1С, обратим внимание на форматы передачи (протоколы). Что такое формат? И не проще ли использовать передачу по 8 битов, как это предписывается, наполняя их содержимым по своему усмотрению? Оказывается, нет. Каждое усфойство должно иметь на шине свой уникальный адрес, по которому к нему можно обратиться. Адрес устройства всегда располагается в определенном месте (специалисты говорят: в определенных ячейках внутренней памяти). Адрес может быть назначен, а может быть жестко определен. В случае шины IC адреса устройств, называемые slave-адресами, жестко определяются.



Они laquo;закладываются raquo; при изготовлении микросхем и не подлежат переназначению, то есть модификации. В принципе часто все же переназначить адрес можно (и это делается с помощью 2-3 битов), но, за редким исключением, эти биты нужно предварительно определить аппаратно, то есть установить перемычки на соответствующие выводы. Этот принцип был заложен еще на заре возникновения шины для того, чтобы предельно упростить протокол обмена и аппаратную реализацию интерфейсов. Отметим, что значение slave-адреса можно узнать из документации на соответствующую микросхему.

Поскольку все абоненты шины не имеют иных способов общения, кроме обмена данными по линиям SDA и SCL, в момент начала передачи все slave-абоненты laquo;слушают raquo; линию на предмет опознавания своего slave-адреса. Опознавший свой адрес абонент продолжает прием данных и выдачу сигналов АСК, остальные только следят за моментом выдачи состояния Stop. В связи с этим возможны три формата передачи, определяемые как 7-битные (традиционные):

master транслирует данные на slave;

master читает данные со slave;

комбинированный формат трансляции/чтения.

Исторически сложилось, что вначале возник формат 7-битной адресации, при котором осуществляется передача slave-адреса 7 битами, а восьмой бит должен содержать признак операции laquo;чтение/запись raquo; (R/W). Легко посчитать - при 7-битной адресации на шине может присутствовать только 128 устройств с уникальными адресами. Реально устройств и того меньше, так как некоторые адреса зарезервированы под некоторые служебные функции, о которых мы расскажем ниже.

На рис. 1.28 приведен формат передачи данных от master-устройства к slave-абоненту. Заметим, что прямоугольники, отображенные на этом и последующих рисунках серым тоном, относятся к направлению передачи от master к slave, а белым цветом - от slave к master.

Slave-адрес

.-*.

ОАГА

DATA

Рис. 1.28. Master транслирует данные на slave



Необходимо сразу оговориться, что первый бит, передающий slave-адрес устройства, содержит признак операции R/W. Когда этот бит установлен в laquo;О raquo;, будет осуществляться запись в slave-устройство, когда в laquo;1 raquo; - чтение из него.

На рис. 1.29 приведен формат передачи данных от slave-абонента к master-устройству.

Обратите внимание: после чтения информационного байта DATA master-абонент обязан подтвердить получение байта сигналом АСК.

Slave-адрес :

DATA

DATA

;.р

1 - чтение

Чтение информационных бит

Рис. 1.29. Master читает данные со slave

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

Повторное условие START

Рис. 1.30. Комбинированный формат

Slave-адрес;:

DATA

Stave-jaApec;

DATA

CDATAf

iDATAr

Обычно комбинированные форматы используются для работы с последовательной памятью (для сокращения времени доступа к данным). Изучая рис. 1.30, мы можем заметить, что здесь повторяются знакомые нам по рис. 1.28 и рис. 1.29 форматы. Единственное новшество, введенное в комбинированный формат, - повторное условие Start (repeated Start condition), обозначаемое на рисунке сокращением laquo;Sr raquo;. Чуть позже, в соответствующей главе, мы рассмотрим тины последовательной памяти и способы работы с ней.

Как уже было сказано ранее, некоторые slave-адреса используются не для прямой адресации устройств на шине fC, а для служебных сообщений. Рассмотрим эти сообщения с учетом рис. 1.31, на котором укрупненно показана структура байта адресации.



1 2 3 4 5 6 7 [ 8 ] 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63