Текст книги "Справочное пособие по цифровой электронике"
Автор книги: Майк Тули
сообщить о нарушении
Текущая страница: 5 (всего у книги 8 страниц)
Глава 8
Интерфейсы
Рассмотрим теперь два важнейших способа соединения микропроцессорных систем и периферийных устройств: хорошо известный (но часто довольно плохо понимаемый) последовательный интерфейс RS-232C и менее известную универсальную приборную шину GPIB (IEEE-488).
8.1. Интерфейс RS-232C
Несомненно, интерфейс RS-232C/CCITT V24 является наиболее широко распространенной стандартной последовательной связью между микрокомпьютерами и периферийными устройствами. Интерфейс, определенный стандартом Ассоциации электронной промышленности (EIA), подразумевает наличие оборудования двух видов: терминального DTE и связного DCE.
Чтобы не составить себе неправильного представления об интерфейсе RS-232C, необходимо отчетливо понимать различия между этими видами оборудования. Терминальное оборудование, например микрокомпьютер, может посылать и (или) принимать данные по последовательному интерфейсу. Оно как бы оканчивает (terminate) последовательную линию. Связное же оборудование понимается как устройства, которые могут упростить последовательную передачу данных совместно с терминальным оборудованием. Наглядным примером связного оборудования служит модем (модулятор-демодулятор). Он оказывается соединительным звеном в последовательной цепочке между компьютером и телефонной линией (рис. 8.1).
Рис. 8.1. Типичная последовательная линия связи между микрокомпьютерами:
1 – закрепленный 25-контактный разъем типа D (штырьки); 2 – съемный 25-контактный разъем типа D (отверстия); 3, 9 – кабель интерфейса RS-232C; 4 – съемный 25-контактный разъем типа D (штырьки); 5 – закрепленный 25-контактный разъем типа D (отверстия); 6 – телефонная линия; 7 – закрепленный 25-контактный разъем типа D (отверстия); 8 – съемный 25-контактный разъем типа D (штырьки); 10 – съемный 25-контактный разъем типа D (отверстия); 11 – закрепленный 25-контактный разъем типа D (штырьки)
К сожалению, различие между терминальным и связным оборудованием довольно расплывчато, поэтому возникают некоторые сложности в понимании того, к какому типу оборудования относится то или иное устройство.
Рассмотрим, например, ситуацию с принтером. К какому оборудованию его отнести? Еще вопрос: как связать два микрокомпьютера, когда они оба действуют как терминальное оборудование?
Для ответа на эти вопросы следует рассмотреть физическое соединение устройств.
Произведя незначительные изменения в линиях интерфейса RS-232C, можно заставить связное оборудование функционировать как терминальное. Чтобы разобраться в том, как это сделать, нужно проанализировать функции сигналов интерфейса RS-232C.
Сигналы интерфейса RS-232C. По-видимому, читатели знакомы с видом «стандартного» последовательного порта RS-232C, который всегда имеет форму 25-контактного разъема типа D.
Терминальное оборудование обычно оснащено разъемом со штырьками, а связное – разъемом с отверстиями (но могут быть и исключения).
Разводка контактов разъема RS-232C показана на рис. 8.2, а функции сигнальных линий приведены в табл. 8.1.
Рис. 8.2. Назначение линий 25-контактного разъема типа D для интерфейса RS-232C
Примечания:
1. Линии (контакты) 11, 18 и 25 обычно считаются незаземленными. Приведенные в таблице функции относятся к спецификациям Bell 113В и 208А.
2. Линии 9 и 10 используются для контроля отрицательного (MARK) и положительного (SPACE) уровней напряжения.
3. Чтобы избежать путаницы между RD (Read – считывать) и RD (Received Data – принимаемые данные), будем пользоваться обозначениями RXD и TXD, а не RD и TD.
4. Иногда отдельные фирмы используют запасные линии RS-232C для контроля или специальных функций, относящихся к конкретной аппаратуре (по неиспользуемым линиям подают даже питание и аналоговые сигналы, так что будьте внимательны).
Классы сигналов. Сигналы интерфейса RS-232C подразделяются на следующие классы.
Последовательные данные (например, TXD, RXD). Интерфейс RS-232C обеспечивает два независимых последовательных канала данных: первичный (главный) и вторичный (вспомогательный). Оба канала могут работать в дуплексном режиме, т. е. одновременно осуществляют передачу и прием информации.
Управляющие сигналы квитирования (например, RTS, CTS). Сигналы квитирования – это средство, с помощью которого обмен сигналами позволяет DTE начать диалог с DCE до фактических передачи или приема данных по последовательной линии связи.
Сигналы синхронизации (например, ТС, RC). В синхронном режиме (в отличие от более распространенного асинхронного) между устройствами необходимо передавать сигналы синхронизации, которые упрощают синхронизм принимаемого сигнала в целях его декодирования.
На практике вспомогательный канал RS-232C применяется редко, и в асинхронном режиме из 25 линий обычно используются только девять линий (контактов), которые приведены в табл. 8.2.
8.2. Виды сигналов в интерфейсе RS-232C
В большинстве систем, содержащих интерфейс RS-232C, данные передаются асинхронно, т. е. в виде последовательности пакетов данных. Каждый пакет содержит один символ кода ASCII (американский стандартный код для обмена информацией), причем информация в пакете достаточна для его декодирования без отдельного сигнала синхронизации.
Символы кода ASCII представляются семью битами, например буква А имеет код 1000001. Чтобы передать букву А по интерфейсу RS-232C, необходимо ввести дополнительные биты, обозначающие начало и конец пакета. Кроме того, желательно добавить лишний бит для простого контроля ошибок по паритету (четности).
Наиболее широко распространен формат, включающий в себя один стартовый бит, один бит паритета и два стоповых бита. Эквивалентный ТТЛ-сигнал при передаче буквы А показан на рис. 8.3.
Рис. 8.3. Представление кода буквы А сигнальными уровнями ТТЛ.
Начало пакета данных всегда отмечает низкий уровень стартового бита. После него следует 7 бит данных символа кода ASCII. Бит паритета содержит 1 или 0 так, чтобы общее число единиц в 8-битной группе было нечетным (нечетный паритет – нечетность) или четным (четный паритет – четность). Последними передаются два стоповых бита, представленных высоким уровнем напряжения.
Таким образом, полное асинхронно передаваемое слово данных состоит из 11 бит (фактические данные содержат только 7 бит) и записывается в виде 01000001011. Здесь использован четный паритет, поэтому девятый бит содержит 0.
К сожалению, используемые в интерфейсе RS-232C уровни сигналов отличаются от уровней сигналов, действующих в микрокомпьютере. Логический 0 (SPACE) представляется положительным напряжением в диапазоне от +3 до +25 В, а логическая 1 (MARK) – отрицательным напряжением в диапазоне от —3 до —25 В.
На рис. 8.4 показан сигнал пакета данных для кода буквы А в том виде, в каком он существует на линиях TXD или RXD интерфейса RS-232C.
Рис. 8.4. Вид кода буквы А на сигнальных линиях TXD или RXD
Сдвиг уровня, т. е. преобразование ТТЛ-уровней в уровни интерфейса RS-232C и наоборот, производится специальными микросхемами драйвера линии и приемника линии. Разводка контактов наиболее популярных микросхем 1488 и 1489 показана на рис. 8.5.
Рис. 8.5. Разводка контактов драйвера линии 1488 и приемника линии 1489
На рис. 8.6 представлен типичный микрокомпьютерный интерфейс RS-232C.
Рис. 8.6. Типичная схема интерфейса RS-232C
Программируемая микросхема IC1 последовательного ввода осуществляет необходимые параллельно-последовательные и последовательно-параллельные преобразования данных. Микросхемы IC2 и IC3 производят сдвиг уровней для трех выходных сигналов TXD, RTS и DTR, а микросхема IC4 – для трех входных сигналов RXD, CTS и DSR. Микросхемы IС2 и IC3 требуют напряжения питания ±12 В.
Усовершенствования. Разработано несколько новых стандартов, направленных на устранение недостатков первоначальных спецификаций интерфейса RS-232C. Эти стандарты позволяют улучшить согласование линии, увеличить расстояние и повысить скорость передачи данных.
Отметим среди них интерфейс RS-422 (балансная система, допускающая импеданс линии до 50 Ом), RS-423 (небалансная система с минимальным импедансом линии 450 Ом) и RS-449 (стандарт с очень высокой скоростью передачи данных, в котором несколько изменены функции схем и применяется 37-контактный разъем типа D.
8.3. Тестовое оборудование для интерфейса RS-232C
Специалистам, постоянно занимающимся тестированием или поставкой систем, в которых применяется последовательный интерфейс RS-232C (или эквивалентный ему), необходимы специальные тестовые приборы. Рассмотрим наиболее распространенные из них.
Соединители. Эти дешевые устройства упрощают перекрестные соединения сигнальных линий интерфейса RS-232С. Они обычно оснащаются двумя разъемами типа D (или ленточными кабелями, имеющими розетку и вставку), и все линии подводятся к той области, куда можно вставить перемычки. Такие устройства включаются последовательно с линиями RS-232C, и затем проверяются различные комбинации подключений.
Трансформаторы разъема. Обычно эти приспособления имеют разъем RS-232C со штырьками на одной стороне и разъем с отверстиями на другой стороне.
Пустые модемы. Как и предыдущие устройства, пустые модемы включаются последовательно в тракт данных интерфейса RS-232C. Их функции заключаются в изменении сигнальных линий таким образом, чтобы превратить DTE в DCE. Пустые модемы несложно реализовать с помощью соединителей. Две возможные конфигурации пустого модема показаны на рис. 8.7.
Рис. 8.7. Два варианта пустого модема
Линейные мониторы. Мониторы индицируют логические состояния (в терминах MARK и SPACE) наиболее распространенных сигнальных линий данных и квитирования. С их помощью пользователь получает информацию о том, какие сигналы в системе присутствуют и активны.
Врезки. Эти устройства обеспечивают доступ к сигнальным линиям. В них, как правило, совмещены возможности соединителей и линейных мониторов и, кроме того, предусмотрены переключатели или перемычки для соединения линий с обоих сторон устройства. Для подключения врезки применяются два плоских кабеля, заканчивающихся разъемами (самодельная врезка описана в приложении 2).
Интерфейсные тестеры. По своей конструкции эти приборы несколько сложнее предыдущих простых устройств. Они позволяют переводить линии в состояния MARK или SPACE, обнаруживать помехи, измерять скорость передачи и даже индицировать структуру слова данных. Конечно, такие приборы довольно дороги, например стоимость полностью укомплектованного интерфейсного тестера превышает 250 фунт. ст.
8.4. Поиск неисправностей в системах RS-232C
Поиск неисправностей в системах RS-232C включает в себя следующие основные этапы.
1. Установите, какое устройство является DTE, а какое DCE. Обычно на этот вопрос можно ответить, посмотрев на разъем (напомним, что оборудование DTE оснащается разъемом со штырьками, а оборудование DCE – разъемами с отверстиями). Если оба устройства, как это часто бывает, работают в конфигурации DTE, то для правильной работы необходим пустой модем.
2. Проверьте правильность использования кабеля. Отметим, что существуют несколько разновидностей кабелей интерфейса RS-232C: кабель, состоящий из четырех проводов (линий) для простых терминалов, девяти проводов для обычной асинхронной передачи данных, 15 проводов для синхронной связи и 25 проводов для любых применений (рис. 8.8). Если возникают какие-либо сомнения, пользуйтесь кабелем с 25 проводами.
Рис. 8.8. Варианты кабелей для интерфейса RS-232C:
а – кабель с четырьмя линиями для простейших терминалов (используются контакты 1–3 и 7, а контакты 8 и 20 закорачиваются); б – кабель с девятью линиями для асинхронной связи (используются контакты 1–8 и 20); в – кабель с 15 линиями для синхронной связи (используются контакты 1–8, 13–15, 17, 20, 22 и 24), г – кабель с 26 линиями для универсальных применений (используются контакты 1-25)
3. Убедитесь в том, что на каждом конце последовательной линии правильно заданы формат слова и скорость передачи в бодах.
4. Включите линию и проверьте логические состояния сигнальных линий данных (TXD и RXD) и квитирования с помощью линейного монитора, врезки или интерфейсного тестера.
5. Если что-то не так, посмотрите по техническому описанию, не требуются ли какие-либо специальные соединения и полностью ли совместимы интерфейсы. Особо подчеркнем, что некоторые фирмы реализуют интерфейсы квази-RS-232C с ТТЛ-совместимыми сигналами. Очевидно, что такие интерфейсы электрически не совместимы с обычным интерфейсом RS-232C, хотя и работают с аналогичными протоколами.
8.5. Универсальная приборная шина IEEE-488
Шина IEEE-488, называемая также приборной шиной Hewlett – Packard, широко применяется для соединения микрокомпьютерных контроллеров в автоматическом испытательном оборудовании АТЕ. Большинство современных электронных приборов, включая цифровые вольтметры и генераторы сигналов, оснащаются интерфейсом IEEE-488. Последний позволяет подключать приборы к микрокомпьютерному контроллеру, который управляет работой приборов и обрабатывает передаваемые ими данные.
Стандарт IEEE-488 определяет следующие типы устройств:
приемники, получающие информационные и управляющие сигналы от других устройств, подключенных к шине, но не передающие данные. Типичным примером приемника служит генератор сигналов;
передатчики, которые только помещают данные на шину, но не принимают данные. Типичным примером передатчика является перфоленточный считыватель. Отметим, что в любой момент времени активным является лишь один передатчик, но получать данные могут несколько приемников одновременно;
передатчик-приемник, принимающий данные с шины и передающий их на шину. Типичным примером такого устройства является цифровой мультиметр. Данные поступают в прибор для выбора требуемого диапазона и возвращаются на шину в виде цифровых отсчетов напряжения, тока или сопротивления;
контроллер, применяющийся для управления передачами данных по шине и их обработки. Контроллером в системе IEEE-488 почти всегда является микрокомпьютер; во многих системах используются персональные компьютеры фирмы IBM, но и другими фирмами выпускаются специализированные микропроцессорные контроллеры.
Шина IEEE-488 обладает восемью многофункциональными двунаправленными линиями данных. Они применяются для передач данных, адресов, команд и байт состояния. Кроме того, имеются пять линий управления шиной и три линии квитирования.
Разъем для шины IEEE-488 имеет 24 контакта (рис. 8.9), функции сигнальных линий приведены в табл. 8.3.
Рис. 8.9. Функции линий 24-контактного разъема для шины IEEE-488
Примечания: 1. В сигнальных линиях квитирования (DAV, NRFD и NDAC) используются выходы типа открытого коллектора, которые допускают реализацию монтажного ИЛИ.
2. Все остальные сигналы ТТЛ-совместимы и активны при низком уровне.
О наличии команд на шине сигнализирует низкий уровень на линии ATN. Затем контроллер помещает на шину команды, которые передаются в отдельные устройства, идентифицируемые адресами на пяти младших линиях шины данных. Можно выдавать также («широковещательные») команды для всех устройств.
Так как физические расстояния между устройствами невелики, скорость передачи данных довольно высока (от 50 до 250 Кбайт/с). На практике скоростью передачи данных управляет самый медленный приемник. На рис. 8.10 показана система, где в качестве контроллера выступает микрокомпьютер.
Рис. 8.10. Типичная конфигурация шины IEEE-488
8.6. Поиск неисправностей в системах IEEE-488
Поиск неисправностей в системах на базе шины IEEE-488 обычно намного проще, чем в системах с интерфейсом RS-232C. Объясняется это в основном двумя причинами: во-первых, в реализациях стандарта IEEE-488 гораздо меньше отклонений, и, во-вторых, все сигналы имеют стандартные TTЛ-уровни направления. Следовательно, здесь допускается применение обычных цифровых приборов, логических пробников и пульсаторов. Более того, в управляющие программы часто встроены диагностические процедуры, которые извещают пользователя о том, что, например, внешнее устройство не реагирует на команды с шины.
Если все же встречаются затруднения, следует проверить конфигурацию программного обеспечения и назначения адресов различным устройствам в системе. При необходимости проверки состояний сигнальных линий можно воспользоваться логическим пробником (напомним, что все сигналы активны при низком уровне).
Глава 9
Микропроцессорные шины
9.1. Шина STE
Шина STE – это сравнительно новое стандартизованное средство для микрокомпьютерных систем, которое начинает широко применяться в промышленности. Оно относится к модулям на европлатах, объединенных шиной из 64 линий и удовлетворяющих стандарту IEEE-1000. Шина рассчитана на три типа плат: для обработки, ввода-вывода и формирования сигналов. Так как процессоры управляют передачами данных по шине, их часто называют ведущими шины. Платы же ввода-вывода называются ведомыми шины.
В зависимости от назначения имеются платы ввода-вывода для цифрового ввода и вывода, аналогового ввода, аналогового ввода и вывода. В платах цифрового ввода-вывода применяются программируемые микросхемы параллельного ввода-вывода (см. гл. 7), а в платах аналогового ввода-вывода – аналого-цифровые (АЦП) и цифро-аналоговые (ЦАП) преобразователи.
Выпускаются также процессоры шины STE с последовательным интерфейсом RS-232C (см. гл. 8) для подключения к терминалу или внешнему главному микрокомпьютеру. Разработана плата шины STE для подключения к универсальной приборной шине IEEE-488 (см. гл. 8). Все это делает шину STE гибкой и универсальной.
Процессоры шины STE – это одноплатные компьютеры с ЦП, ПЗУ, ЗУПВ и интерфейсными схемами. На европлате размером 100x160 мм плотность монтажа оказывается очень высокой. Например, один из наиболее популярных процессоров состоит из более чем 30 микросхем, причем не менее четырех из них – в 40-контактных корпусах типа DIP.
Структурная схема типичного процессора шины STE показана на рис. 9.1 (сравните ее с конфигурациями из гл. 5).
Рис. 9.1. Структурная схема типичного процессора шины STE
Центральный процессор (ЦП) Z80 работает с частотой синхронизации 4 МГц. Системный генератор синхронизации, стабилизированный кварцем (см. гл. 5), функционирует с частотой 16 МГц. Затем с помощью делителя формируются сигналы синхронизации 8 МГц для контроллера динамического ЗУПВ, 4 МГц для ЦП и последовательного интерфейса RS-232C, 2 МГц для контроллера диска.
Системная синхронизация с частотой 16 МГц действует также на шине STE в целях использования ведомыми шины. Так как на шине в любой момент времени должен присутствовать только один сигнал синхронизации 16 МГц, а в системе может быть несколько процессорных плат, на печатной плате предусмотрена перемычка, запрещающая выход 16 МГц.
Контроллер динамического ЗУПВ формирует сигналы мультиплексных данных, а также сигналы выбора строки и столбца для восьми микросхем динамических ЗУПВ с организацией 64КХ1 (см. гл. 6). Контроллер диска выполнен в виде одной БИС, а последовательный интерфейс реализован на базе программируемого контроллера последовательного интерфейса (см. гл. 7). В последовательном интерфейсе осуществляется сдвиг уровня для удовлетворения всех спецификаций интерфейса RS-232C (см. гл. 8).
Шины адреса и данных буферируются от шины STE с помощью двух 8-битных драйверов (шина адреса) и 8-битного приемника-передатчика (шина данных). Все эти микросхемы имеют тристабильные выходы (см. гл. 2), поэтому при необходимости их можно изолировать от внешней шины.
Разводка разъема шины STE приведена на рис. 9.2, где D0—D7 – линии данных; А0—А19 – линии адреса; – строб адреса. Сигнал низкого уровня на этой линии показывает наличие на Шине действительного адреса; – строб данных.
Рис. 9.2. Разводка контактов разъема шины STE
Сигнал низкого уровня на этой линии идентифицирует наличие на шине действительных данных; СМО – СМ2 – командные модификаторы, характеризующие тип цикла шины; – запрос шины. На этих линиях действуют сигналы низкого уровня, когда потенциальному ведущему шины необходимо получить доступ к ней; линии подтверждения шины. Сигналы низкого уровня на этих линиях показывают, что запрос шины удовлетворен. Потенциальный ведущий шины может управлять шиной, если только он получил подтверждение на запрос шины; – на эту линию квитирования выдает сигнал ведомый шины в цикле записи, показывая восприятие данных, или в цикле считывания, показывая действительность своих данных; TRFERR – ведомый шины выдает этот сигнал вместо при обнаружении ошибки; – линия внимания запроса/прерывания (сигнал имеет больший приоритет); SYSCLK – системная синхронизация 16 МГц; – системный сброс.
Необходимо отметить, что линии командных модификаторов показывают операции считывания, записи ввода-вывода и памяти в соответствии с табл. 9.1.
Типичная конфигурация шины STE приведена на рис. 9.3. В ней используются одна процессорная и две ведомые платы: плата аналогового ввода и плата цифрового ввода-вывода. Для хранения программ и данных предусмотрен дисковый накопитель; система воспринимает команды по линии последовательного интерфейса RS-232C от терминала или главного микрокомпьютера, работающего в режиме эмуляции терминала.
Все платы, показанные на рис. 9.3, соединяются друг с другом с помощью системной («материнской») платы, которая представляет собой печатную плату с вмонтированными в нее 64-контактными разъемами DIN 41612 с шагом 20,3 мм. На системной плате соединены одноименные контакты всех разъемов и размещены терминаторы, минимизирующие рассогласование линий и «звон» сигналов. Системная плата обычно монтируется в корпусе с фиксирующими направляющими для печатных плат.
Рис. 9.3. Типичная конфигурация шины STE
9.2. Поиск неисправностей в шинных системах
Читателя не должна пугать кажущаяся сложность микрокомпьютерной системы, показанной на рис. 9.3. Систему можно разделить на несколько взаимосвязанных подсистем, а каждая подсистема аналогичным образом делится на составляющие ее компоненты. Более того, шинная организация упрощает поиск неисправностей: можно изолировать различные части системы, просто удалив подозрительную плату и вставив на ее место заведомо работоспособную.
Дополнительные трудности возникают, когда несколько потенциальных ведущих, т. е. процессоров, разделяют шину. Если какой-либо процессор не в состоянии получить доступ к шине, он может «зависнуть», так как другой ведущий уже управляет шиной и не освобождает ее. В этом случае необходимо проверить линии и с помощью логического пробника или осциллографа. Если они разрешены, проверяют линии модификаторов и убеждаются, что цикл шины не является циклом подтверждения, а «обиженный» процессор выдает строб данных. Если сигнал выдается, от ведомой платы должен поступать сигнал или . В противном случае следует убедиться, что ведомая плата реагирует на адрес, выдаваемый процессором. Отметим, что для многих ведомых плат необходимо наличие на шине сигнала STSCLK и поэтому возникают дополнительные сложности, связанные с тем, что несколько процессоров одновременно генерируют эти сигналы.
Важно также отметить, что платы ввода-вывода обычно имеют перемычки для выбора адресов и линий внимания запроса. Перемычки следует устанавливать таким образом, чтобы между платами не возникало «конфликтов». Перед заменой в системе вышедших из строя плат следует убедиться в правильной установке перемычек. Несоблюдение этого простого правила может стоить многочасовых усилий при выявлении неисправности.
Наконец, при диагностике неисправностей в сложных системах не забывайте об очевидных вещах. В любом случае прежде всего необходимо оценить состояние системы, руководствуясь нижеприведенными тестами.
1. Правильно ли работала система до возникновения неисправности или неисправность проявилась сразу же после включения системы?
2. Имеется ли журнал регистрации функционирования системы, не могут ли привести к неисправности плохое проектирование или дефектный элемент при изготовлении платы?
3. Если неисправность появилась недавно, в каком режиме работала система до ее возникновения?
4. Является ли неисправность постоянной или перемежающейся?
5. При каких обстоятельствах возникает перемежающаяся неисправность? Зависит ли она от температуры?
6. Можно ли предсказать, когда возникнет неисправность?
7. Если это так, можно ли воспроизвести такие условия, что неисправность будет постоянной?
8. Какие платы в системе работают правильно?
9. Можно ли локализовать неисправность до конкретной платы?
10. Задокументирована ли где-нибудь возникшая неисправность?
На все эти вопросы необходимо ответить прежде, чем приступать к измерениям и удалению подозрительных плат. Опытный исследователь осуществляет подобную оценку почти автоматически, а новичку мы советуем как можно скорее усвоить предложенный алгоритм.