Apple вики
Advertisement

Шаблон:Карточка интерфейсаШаблон:Значения

Apple Desktop Bus (или ADB) — устаревший компьютерный порт (последовательная шина ввода-вывода данных), созданный для подсоединения медленных устройств (компьютерная клавиатура и мышь) к компьютерам Apple Macintosh. Устанавливалась на всех настольных компьютерах Apple вплоть до 1999 года.

История[]

ADB была разработана Стивом Возняком, искавшим себе новый проект в середине 1980-х. Кто-то предложил, чтобы он создал новую систему связи для устройств типа мыши и клавиатуры, которая требовала бы только единственного цепочечного соединения кабеля, и была бы недорогой в конечном результате. Стив исчез из поля зрения СМИ на месяц, а вернулся уже с ADB.

Первая система, в которой использовалась ADB, была Apple IIgs. ADB впоследствии использовалась на всех Apple Macintosh машинах, начиная с Macintosh II и Macintosh SE, прежде чем была заменена на USB, начиная с iMac 1998 года. ADB также использовалась в ряде других 680x0-основанных микрокомпьютерах, выпускаемых Sun, HP, NeXT и другими производителями.

Никакие машины, построенные сегодня, не используют ADB для взаимосвязи устройств, но до февраля 2005 компьютеры PowerBook и iBook все ещё использовали ADB как внутренний интерфейс для встроенных клавиатуры и тачпада. Теперь они подсоединяются через USB.

Устройство[]

Аппаратная часть[]

В соответствии с общей философией промышленного дизайна Apple, ADB была предназначена, чтобы быть настолько простой в использовании, насколько возможно, все ещё будучи недорогой для создания. Подходящий разъём был найден в форме 4-штырькового miniDIN разъёма, который также используется для S-видео. Разъёмы были маленькими, широко доступными, и могли быть вставлены только в правильное положение из-за выемок на кольцевой части разъёма.

Протокол ADB требовал только единственного провода для данных (помечен как «ADB»). Два других провода использовались для питания (+5В и земля). 5-вольтовый провод допускал токи до 500 мА, и требовал, чтобы устройства использовали только по 100 мА каждое. ADB также включал «PSW» провод, который был подключён непосредственно к блоку питания компьютера. Это было сделано для того, чтобы разрешить клавише на клавиатуре запускать компьютер, не нуждаясь в программном обеспечении ADB для интерпретации сигнала. В более современных проектах вспомогательный микроконтроллер всегда остаётся включённым, таким образом экономично посылать команду включения по стандартному каналу USB.

Большинство последовательных цифровых интерфейсов используют отдельный тактовый провод, чтобы сигнализировать прибытие индивидуальных битов данных. Поскольку ADB была разработана, чтобы быть дешёвой, Возняк признал, что один единственный провод имел достаточную полосу пропускания чтобы нести оба сигнала. Кроме того, было экономично декодировать тактовые сигналы и сигналы данных, чтобы использовать более дешёвые кабели. Декодирующий приёмопередатчик был доступен только по запросу производителя оборудования, поскольку Apple предпочитало работать более близко с продавцами. Возможно, Apple продало эти аппаратные средства ниже их стоимости, чтобы поощрить развитие периферийных устройств.

Протокол обмена[]

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

  • 11 - talk — послать содержимое регистра в компьютер
  • 10 - listen — записать число в регистр
  • 00 - flush — очистить регистр
  • reset — команда сброса для всех присоединённых к шине устройств.
Примечание: для команды Reset значащими битами являются 3,2,1,0, все они равны 0.

Например, если мышь была известна по адресу $D, то компьютер периодически отсылал бы сообщение на шину, которое выглядело бы так: 1101 11 00

Это означает, что устройство $D (1101) должно говорить (11) и возвращать содержание нулевого регистра (00). Для мыши это означает: «скажи мне последние изменения положения». Регистры могли содержать 2…8 байт. Регистры 1 и 2 были не определены, и предназначались для хранения информации и конфигурации. В регистре #3 всегда содержалась информация для идентификации устройства.

Примечание: для команды Reset значащими битами являются 3,2,1,0, все они равны 0.

Адреса и номера устройств выстанавливались в значения по умолчанию при сбросе. Например, все клавиатуры имели номер $2, а все мыши — $3. При включении машины контроллер ADB спросит каждый из известных адресов содержимое регистра #3. Если от данного адреса ответ не прибыл, компьютер отметит его как пустой, и не будет опрашивать его в дальнейшем. Если устройство отвечало, то это выражалось назначением случайного адреса. Затем компьютер посылал другую команду на новый адрес, прося устройство переместиться на другой адрес. Как только это было закончено, устройство отмечалось как «живое», и система в дальнейшем обращалась к нему. Как только все устройства были перечислены этим способом, шина была готова к использованию.

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

При начальной настройке ADB компьютер отсылает команду по определённому адресу, и 1 устройство отсылает ответ, 2 устройство с таким же адресом видит, что шина занята, и ждёт следующего обращения, во время которого 1 устройство уже не занимает шину.

Скорость передачи данных по шине теоретически составляла 125 кбит/сек, однако фактическая скорость была в лучшем случае половинной из-за того, что использовался один неэкранированный провод для связи между компьютером и устройствами. В фактическом использовании скорость была намного меньше, чем половинная, поскольку скорость зависела от быстродействия всей системы. Mac OS тех времён была не очень быстра, и скорость передачи данных по шине часто падала до 10 кбит/сек.

Проблемы[]

Одной особенностью ADB было то, что, несмотря на то, что она была электрически опасна для горячей замены на всех машинах, имела все основные условия, необходимые для горячей замены, осуществлённые и в программном обеспечении, и в аппаратных средствах.

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

Соединители типа miniDIN были рассчитаны всего на 400 вставлений-выниманий, а при невнимательном вставлении можно было погнуть штырьки. Так же контакты в розетке miniDIN могли со временем расшатываться, что приводило к ненадёжной фиксации или выпаданию вилки.

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

В то время как соединители типа miniDIN не могут быть включены неправильно, всё же попадались вилки без пластикового штыря, что позволяло включить вилку неверно. В связи с этим Apple ввело U-образные выемки по периметру вилки, что исключало ошибки включения, но сторонние производители игнорировали это нововведение.

См. также[]

  • PS/2

Ссылки[]

Шаблон:Step Шаблон:Компьютерные шины

Advertisement