Поскольку работа программируемых микросхем параллельного ввода-вывода предсказуема, можно обнаружить возникающие в них неисправности, измерив сигналы на различных входных и выходных линиях. Поиск неисправностей в микросхемах параллельного ввода-вывода оказывается сравнительно простой задачей, чего нельзя сказать о микросхемах последовательного ввода-вывода.
Прежде всего следует убедиться в том, что ЦП действительно выбирает подозреваемую программируемую микросхему ввода-вывода. Для этого достаточно проверить сигналы на линиях управления с помощью логического пробника. Убедившись в выборе конкретной микросхемы, необходимо проверить ситуацию со стороны периферийного устройства. По возможности целесообразно написать короткую программу для исследования порта (т. е. считывания или записи данных) и проконтролировать возникающие при ее выполнении логические условия. Отказ транзистора внешнего драйвера часто выводит из строя буфер-драйвер внутри программируемой микросхемы ввода-вывода, но повреждение не обязательно распространяется на все восемь линий конкретного порта. Следовательно, перед заменой микросхемы ввода-вывода следует тщательно проверить периферийное устройство и соответствующие схемы.
Когда микросхемы вставлены в гнезда, целесообразно заменить подозреваемую микросхему на заведомо исправную (не забудьте при этом выключить питание и отсоединить все внешние схемы). Как и в случае с полупроводниковой памятью, рекомендуется смонтировать гнездо для микросхемы, если его нет.
Обнаружить неисправность в программируемых микросхемах последовательного ввода-вывода гораздо труднее. Здесь также рекомендуется прежде всего проверить условия со стороны ЦП, т. е. различные сигналы шины управления и выбора микросхемы. Убедившись в том, что микросхема выбирается, можно проверить состояния линий RTS и CTS (при выводе) и
Полезно, также выполнить короткую тест-программу порта, например цикл, который непрерывно выводит в порт один и тот же байт. Отметим, однако, что последовательный интерфейс с RS-232C требует сигналов квитирования, поэтому очень важно проверить драйверы и приемники линии связи, разъемы и кабели, а также само периферийное устройство, прежде чем менять микросхему последовательного ввода-вывода.
Глава 8
Интерфейсы
Рассмотрим теперь два важнейших способа соединения микропроцессорных систем и периферийных устройств: хорошо известный (но часто довольно плохо понимаемый) последовательный интерфейс RS-232C и менее известную универсальную приборную шину GPIB (IEEE-488).
Несомненно, интерфейс RS-232C/CCITT V24 является наиболее широко распространенной стандартной последовательной связью между микрокомпьютерами и периферийными устройствами. Интерфейс, определенный стандартом Ассоциации электронной промышленности (EIA), подразумевает наличие оборудования двух видов: терминального DTE и связного DCE.
Чтобы не составить себе неправильного представления об интерфейсе RS-232C, необходимо отчетливо понимать различия между этими видами оборудования. Терминальное оборудование, например микрокомпьютер, может посылать и (или) принимать данные по последовательному интерфейсу. Оно как бы оканчивает (
Рис. 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.
Примечания:
1. Линии (контакты) 11, 18 и 25 обычно считаются незаземленными. Приведенные в таблице функции относятся к спецификациям Bell 113В и 208А.
2. Линии 9 и 10 используются для контроля отрицательного (MARK) и положительного (SPACE) уровней напряжения.
3. Чтобы избежать путаницы между RD (
4. Иногда отдельные фирмы используют запасные линии RS-232C для контроля или специальных функций, относящихся к конкретной аппаратуре (по неиспользуемым линиям подают даже питание и аналоговые сигналы, так что будьте внимательны).
Классы сигналов. Сигналы интерфейса RS-232C подразделяются на следующие классы.
На практике вспомогательный канал RS-232C применяется редко, и в асинхронном режиме из 25 линий обычно используются только девять линий (контактов), которые приведены в табл. 8.2.
В большинстве систем, содержащих интерфейс 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.
Сдвиг уровня, т. е. преобразование ТТЛ-уровней в уровни интерфейса RS-232C и наоборот, производится специальными микросхемами драйвера линии и приемника линии. Разводка контактов наиболее популярных микросхем 1488 и 1489 показана на рис. 8.5.
Рис. 8.5.
На рис. 8.6 представлен типичный микрокомпьютерный интерфейс RS-232C.
Рис. 8.6.
Программируемая микросхема 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.
Специалистам, постоянно занимающимся тестированием или поставкой систем, в которых применяется последовательный интерфейс RS-232C (или эквивалентный ему), необходимы специальные тестовые приборы. Рассмотрим наиболее распространенные из них.
Соединители. Эти дешевые устройства упрощают перекрестные соединения сигнальных линий интерфейса RS-232С. Они обычно оснащаются двумя разъемами типа D (или ленточными кабелями, имеющими розетку и вставку), и все линии подводятся к той области, куда можно вставить перемычки. Такие устройства включаются последовательно с линиями RS-232C, и затем проверяются различные комбинации подключений.
Трансформаторы разъема. Обычно эти приспособления имеют разъем RS-232C со штырьками на одной стороне и разъем с отверстиями на другой стороне.
Пустые модемы. Как и предыдущие устройства, пустые модемы включаются последовательно в тракт данных интерфейса RS-232C. Их функции заключаются в изменении сигнальных линий таким образом, чтобы превратить DTE в DCE. Пустые модемы несложно реализовать с помощью соединителей. Две возможные конфигурации пустого модема показаны на рис. 8.7.
Рис. 8.7.
Линейные мониторы. Мониторы индицируют логические состояния (в терминах MARK и SPACE) наиболее распространенных сигнальных линий данных и квитирования. С их помощью пользователь получает информацию о том, какие сигналы в системе присутствуют и активны.
Врезки. Эти устройства обеспечивают доступ к сигнальным линиям. В них, как правило, совмещены возможности соединителей и линейных мониторов и, кроме того, предусмотрены переключатели или перемычки для соединения линий с обоих сторон устройства. Для подключения врезки применяются два плоских кабеля, заканчивающихся разъемами (самодельная врезка описана в
Интерфейсные тестеры. По своей конструкции эти приборы несколько сложнее предыдущих простых устройств. Они позволяют переводить линии в состояния MARK или SPACE, обнаруживать помехи, измерять скорость передачи и даже индицировать структуру слова данных. Конечно, такие приборы довольно дороги, например стоимость полностью укомплектованного интерфейсного тестера превышает 250 фунт. ст.