Проектирование устройств сопряжения (1083567), страница 19
Текст из файла (страница 19)
Рис. 2.62. Шаги (точки останова) в циклах записи и чтения ISA.
Что касается сигнала I/O CH RDY, то его при статической отладке проконтролировать совершенно невозможно, так как его длительность по стандарту не превышает 15,6 мкс, а в худшем случае может быть равна даже одному периоду SYSCLK. Единственно, что можно здесь проверить, — это не остается ли он снятым (нулевым) слишком долго.
Последовательности сигналов (рис. 2.62) могут вырабатываться компьютером не только с остановками на каждом шаге, но и без остановок (с максимально возможной для обмена компьютера с используемым контроллером скоростью). Это, конечно же, не будет истинным режимом реального времени, но быстрое периодическое повторение этих циклов облегчает отладку некоторых узлов с помощью осциллографа (уже упоминавшаяся квазидинамическая отладка).
В процессе отладки необходимо контролировать не только сигналы на магистральном разъеме платы УС, что легко может осуществлять сам компьютер, но и внутренние сигналы платы, не имеющие выхода на внешний разъем. Конечно же, для этого можно использовать обычный осциллограф, этот универсальный прибор электроники, но можно пойти и по другому пути.
Применяемый нами контроллер параллельного обмена имеет много внешних линий, и мы задействовали для эмуляции ISA не все эти линии. Используя две из оставшихся как входные, можно довольно часто обойтись без осциллографа и существенно увеличить удобство работы оператора. Для этого надо применить схему простейшего логического щупа (пробника), показанную на рис. 2.63. Эта схема различает напряжения трех уровней: логический нуль, логическую единицу и так называемый "висячий" потенциал, или "обрыв" (напряжение на неподключенном входе ТТЛ-элемента). Информацию о состоянии щупа можно выводить на экран компьютера и сопровождать звуковым сигналом, поставив в соответствие, например, нулю — низкий тон, единице — высокий тон, обрыву — отсутствие звука.
А теперь несколько слов об основных сервисных функциях, которые может выполнять компьютерная система статической отладки.
1. Перед началом отладки проводится проверка отключения оглаживаемой схемы УС от магистрали ISA. To есть УС должно быть пассивно, если к нему нет обращений. Если же обнаруживаются какие-нибудь активные линии, то на экран выводится информация об ошибке с указанием наименований ошибочных сигналов и характера неисправности.
2. Проверка установки схемы УС в исходное состояние по сигналу магистрального сброса (RESET DRV). Этот сигнал (выходной) формируется контроллером параллельного обмена и требует только два шага статической отладки: сигнал активен, сигнал пассивен. Такая проверка часто является необходимой, так как некоторые схемы УС будут неправильно работать, если их не инициализировать.
Рис. 2.63. Принципиальная схема логического щупа, различаемые им уровни и таблица истинности.
3. Проверка, на какие адреса отвечает УС. В стандарте ISA не существует магистрального сигнала подтверждения, соответствующего ответу УС на обращенный к нему цикл (как, например, в системных магистралях Q-bus или Unibus). Сигнал I/O CH RDY используется только медленными УС, не успевающими выполнить цикл за положенное время, к тому же он очень короткий для статической отладки. Поэтому, если анализировать только канальные сигналы, мы не сможем определить, на какие адреса отвечает наше УС. Здесь возможно два пути. Простейший состоит в том, что мы проводим циклы чтения из всех возможных адресов и проверяем считанную из них информацию. Если в каких-то адресах она отлична от пассивного состояния (FFFF для 16-разрядного УС), то мы считаем, что на эти адреса данное УС отвечает. Понятно, что этот путь ненадежен, так как действительно считанная из УС информация может быть в данный момент как раз равной FFFF. Другой путь — использование упомянутого логического щупа, подключаемого к контроллеру параллельного обмена (рис. 2.63). Устанавливая его на выход селектора адреса УС и перебирая все возможные адреса, мы можем надежно определить те из них, которые принадлежат отлаживаемому УС.
4. Далее должна следовать собственно отладка, которая проводится или в статическом, пошаговом режиме (обязательный этап), или в квазидинамическом режиме. В режиме отладки мы проверяем формирование внутренних стробов обмена УС, работу буферов, правильность записываемых и читаемых данных. Функционирование интерфейсной части УС может быть проверено практически всегда полностью. С операционной частью УС дело обстоит сложнее. Однако, если она содержит в себе только входные и выходные порты, как, например, в схеме универсального контроллера параллельного обмена, то и для нее процесс отладки проводится без проблем. Если же в операционной части есть динамические узлы (генераторы, одновибраторы, микропрограммные автоматы и т.д.), то часто может помочь квазидинамический режим с бесконечным повторением циклов обмена и осциллограф.
5. Помимо перечисленных обязательных функций система отладки может моделировать целые серии циклов обращения к УС, позволяющие легко отлаживать, например, УС с буферным ОЗУ, к которому предусмотрен последовательный доступ. Понятно, что при большом объеме такого ОЗУ произведя пошаговую запись всех его ячеек или пошаговое чтение из них очень непросто, если вообще возможно. Для реализации данной функции в системе отладки должен быть предусмотрен некий специальный язык для задания требуемых последовательностей циклов.
2.3.2. Отладка в динамическом режиме
Для выявления неисправностей УС, проявляющихся только в режиме реального времени, система статической отладки не подходит. Построение аналогичной по возможностям системы динамической отладки гораздо сложнее и дороже, а эффект от ее использования зачастую оказывается невысоким. Ведь, как уже упоминалось, чисто статическая отладка выявит около 80% неисправностей, а квазидинамическая — еще около 10%. Стоит ли организовывать сложную систему для оставшихся 10% неисправностей? В то же время, в ряде случаев оказывается необходимым не заменять УС, имеющее динамические дефекты, на новое, а починить его. Тем более, что некоторые узлы принципиально работают только в режиме реального времени, и, следовательно, статическая отладка для них не подходит в принципе.
Для целей динамической отладки удобно использовать все тот же персональный компьютер, дополненный модулями динамической генерации входных сигналов отлаживаемого УС и динамической регистрации его выходных сигналов. В качестве такого модуля регистрации можно применить логический анализатор, описанный в разделе 2.1.10. Конечно, быстродействие данного анализатора не всегда достаточно для измерения малых временных задержек, но его можно заметно увеличить за счет снижения количества разрядов (рис. 2.64). Тем более, что такое быстродействие (в нашем случае 80 МГц) по всем входам регистрации, как правило, и не нужно. Достаточно иметь его по одному-двум входам.
Что касается модуля генерации последовательностей цифровых кодов, то его организация очень близка к организации модуля логического анализатора, но только направление потока данных противоположное.
Рис. 2.64. Увеличение в 8 раз быстродействия логического анализатора за счет снижения количества разрядов.
Структура системы динамической отладки в данном случае будет довольно простой (рис. 2.65). Дополнительный буферный модуль (БМ) служит для усиления сигналов с целью передачи их по соединительному кабелю и формирования пришедших по кабелю сигналов. Генератор кодов задает последовательности сигналов интерфейса ISA, а логический анализатор контролирует как канальные сигналы ISA, так и сигналы с внутренних точек отлаживаемого УС. При этом контроль за правильностью функционирования может быть возложен как на оператора, анализирующего фиксируемые временные диаграммы на экране компьютера, так и на компьютер, сравнивающий полученные временные диаграммы с эталонными, хранящимися у него в памяти. Последний режим особенно удобен в том случае, когда нам нужно не чинить плату УС, а только проконтролировать ее исправность по принципу "годен — не годен", что очень полезно при выходном контроле на производстве. При этом мы можем практически полностью автоматизировать процесс контроля, возложив на оператора только смену контролируемых плат.
Рис. 2.65. Система динамической отладки.
Таким образом, дополнив персональный компьютер несколькими УС, можно получить самые разнообразные системы контроля и отладки различных цифровых (да и аналоговых при использовании ПАП и АЦП) устройств и систем. Причем компьютер обеспечит нам удобный интерфейс пользователя, сложные алгоритмы обработки, средства хранения результатов работы и их документирования.
Разработка устройств сопряжения для Centronics
3.1. Основные принципы проектирования аппаратуры для сопряжения с Centronics
3.1.1. Чем удобен и чем неудобен интерфейс Centronics
Интерфейс Centronics благодаря простоте сопряжения и удобству программирования широко используется для подключения к компьютеру нестандартных внешних устройств. Однако выбор разработчиком именно этого интерфейса для связи своего устройства с компьютером должен быть осознанным и учитывать ряд уже упоминавшихся ограничений.
Во-первых, возможности реализации различных протоколов информационного обмена с устройством через параллельный порт невелики. Действительно, небольшое количество сигнальных линий интерфейса и возможности его программирования не позволяют реализовать обмен по прерываниям или прямой доступ к памяти. Практически приходится ограничиваться программно-управляемым обменом.
Кроме того, так как интерфейс Centronics является программно-управляемым, скорость информационного обмена не может быть особенно велика и оказывается напрямую связанной с быстродействием компьютера. Поэтому не имеет смысла сопряжение через параллельный порт устройств, требующих обработки или передачи информации в реальном масштабе времени, таких как устройства ввода изображения, звуковые системы и т.д. Кроме того, зависимость скорости информационного обмена от быстродействия компьютера делает практически нереализуемыми без специальных ухищрений быстродействующие синхронные протоколы связи.
Имеется также ограничение на длину линии связи устройства, подключенного к интерфейсу Centronics. Оно должно располагаться на расстоянии не более 1.5 — 2 метров от компьютера.
Еще одной особенностью интерфейса Centronics является отсутствиеe на его разъеме шин питания (есть только "земля"). Это означает, что сопрягаемое устройство должно использовать внешний источник питания. Вообще говоря, на взгляд авторов, в ряде случаев это не только не является недостатком интерфейса, но скорее его достоинством. Нет искушения использовать питание от компьютера, что может привести к выходу его из строя.
В 99% компьютеров имеется только один параллельный порт, к которому должен подключаться принтер. Но и это ограничение часто не является существенным. Во-первых, многие компыотеры, ориентированные на работу с внешней аппаратурой, прекрасно обходятся без принтера. Во-вторых, имеется масса простых и дешевых устройств (коммутаторов) для подключения к одному параллельному порту двух устройств.
Основным достоинством интерфейса Centronics является его стандартность — он есть на каждом компьютере и на всех компьютерах работает одинаково (правда, с разной скоростью). Для подключения внешнего устройства к параллельному порту не требуется открывать системный блок компьютера, что для многих пользователей может стать проблемой. Надо только подсоединить кабель к разъему на его задней стенке.
Можно также отметить такое достоинство интерфейса Centronics, как простота его программирования на любом уровне. В большинстве языков программирования имеются процедуры взаимодействия с принтером, которые легко использовать и для программирования нестандартного устройства. А так как с точки зрения программирования Centronics представляет собой три программно доступных регистра, не вызывает затруднений и написание программ нижнего уровня.
Итак, интерфейс Centronics можно рекомендовать в первую очередь для сопряжения с компьютером относительно несложных устройств без предъявления жестких требований по скорости информационного обмена и длине линии связи.