Главная » Просмотр файлов » Проектирование устройств сопряжения

Проектирование устройств сопряжения (1083567), страница 18

Файл №1083567 Проектирование устройств сопряжения (Книга Разработка устройств сопряжения по микропроцессорной технике) 18 страницаПроектирование устройств сопряжения (1083567) страница 182018-01-12СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 18)

(unsigned long) inportb (R3) << 24;

}

//*** Конец драйверов

С использованием этих драйверов в качестве примера напишем простейшую программу для подсчета соотношения длительности единицы и нуля по всем из подключенных ко входам логического анализатора линий за время 100 мкс после прихода первой единицы по линии 3. Для получения максимальной точности будем проводить регистрацию на предельной частоте 10 МГц.

// Программа для подсчета соотношения единиц и нулей

#include <STDIO.H>

void main (void)

{

struct LA_Param la;

unsigned long data[LENGTH];

unsigned num0[32], num1[32];

float ratio[32];

unsigned i, j;

// Инициализация параметров регистрации

la.freq = 0; // Код частоты 10 МГц (период 100 нс)

la.sync = 3; // Номер синхролинии

la.polar = 0; // Запуск по положительному перепаду

la.pre_reg = 0; // Предпусковая регистрация не нужна

// Запуск регистрации

if(lnit LA(&la)== -1)

{

printf ("\nОшибка.");

exit(-1);

}

// Проверка окончания регистрации

while (Check_Ready() != 0)

// Чтение данных

Read_Data (&data);

// Определение соотношений единиц и нулей по всем линиям

// 100 мкс — это 1000 кадров регистрации на частоте 10 МГц

for (j=0;j<32;j++) // Обнуление счетчиков

{ // единиц и нулей

num0[j] = 0; // по всем линиям

num1[j] = 0;

}

for (i=0;i<1000;i++) // Подсчет числа нулей и единиц

for (j=0;j<32;j++) // по всем линиям, (1L << j) –

if ((data[i] & (1L << j)) == 0 )

// маска j-го бита

num0[j]++;

else

num1[j]++;

for (j=0;j<32;j++) // Вывод на экран соотношений

{

printf ("\nЛиния №%d. ", j);

if (num0[i] != 0) // Был ли ноль вообще ?

printf (Отношение 1/0 - %f.", num1[j]/num0[j]);

else // He было

printf ("Нуля не было.");

}

}

// Конец программы

В предложенных драйверах окончание регистрации определялось опросом флага готовности логического анализатора. Однако во многих случаях удобнее использовать аппаратное прерывание, которое анализатор вырабатывает по окончании регистрации (см. п. 2.1.10). Например, если синхропереход приходит редко, можно построить систему таким образом, чтобы после запуска регистрации программа переходила на выполнение другой задачи (например, обработка ранее полученных данных), а по прерыванию от логического анализатора переходила на его обработку. В этом случае необходимо написать программу обработки прерывания, в которую включить все необходимые действия. Драйвер Check_Ready становится не нужен.

// *** Программа обработки прерывания от логического анализатора

void interrupt LA_handler (unsigned long *data)

{

disable(); // Запрет прерываний на время обработки

... // Какие-то действия

Read_Data (data); // Чтение данных из буфера

... // Какие-то действия

enаble(); // Разрешение прерываний

}

// Конец программы

В тело основной программы следует включить установку вектора прерывания от логического анализатора:

setvect (INT, LA_handler); // INT — номер прерывания

2.2.4. К вопросу о программировании сетевого контроллера

Описанные в п. 2.1.12 варианты реализации узлов контроллера локальной сети требуют пересылки информационных пакетов из ОЗУ компьютера в буферное ОЗУ контроллера и наоборот. При этом скорость пересылки должна быть максимальной для повышения информационного быстродействия сети. Написанная "в лоб" даже на ассемблере (цикл команд MOV), эта процедура оказывается слишком медленной. Однако не следует спешить использовать прямой доступ к памяти. В системе команд имеется инструкция для пересылки массива из одного места памяти в другое — MOVS. Например, если буфер контроллера сети занимает адреса В0000Н — B0FFFH, то процедура записи в него пакета длиной 4Кбайта из адресов 80000Н—80FFFH выглядит следующим образом:

MOV CX, 1000Н ; длина пакета

MOV SI, 80000H ; начало источника

MOV DI, В0000Н ; начало приемника

MOVS ; пересылка

В библиотеке языка Си фирмы Borland имеется несколько функций, реализующих быструю пересылку массивов памяти. Эти функции построены на базе инструкции MOVS. Так, для решения той же задачи можно использовать функцию movedata:

movedata (0x8000, 0, 0хВ000, 0, 4096);

где первый и второй параметры — сегмент и смещение источника, третий и четвертый — сегмент и смещение приемника, пятый — длина массива.

2.3. Особенности отладки устройств сопряжения для ISA

Как уже отмечалось, особенностью разработки УС является опасность выхода из строя компьютера, к которому подключается изготовленное УС. В первую очередь это, конечно, относится к УС, ориентированным на ISA, то есть подключаемым к "внутренностям" компьютера. Большое число сигналов интерфейса ISA, подключение к нему системных устройств компьютера, сложность алгоритмов взаимодействия по ISA, использование внутреннего источника питания — все это приводит к тому, что вероятность поломки компьютера (и, как следствие этого, потеря интереса у разработчика к проектированию любых УС) довольно велика. Причем эта опасность исходит не только от вновь созданных УС, но и от УС, изготовленных недостаточно надежным производителем. Что касается использования двух других внешних интерфейсов компьютера (Centronics и RS-232C), то УС, подключаемые к ним, хотя и могут вывести из строя соответствующие порты, но очень редко ломают весь компьютер целиком. Поэтому для них рассматриваемая проблема стоит не столь остро.

Какие же методы могут быть предложены для предотвращения этой неприятной ситуации? Прежде всего стоит отметить, что полной гарантии от нарушений в работе компьютера, вызванных подключением к нему любой дополнительной платы (а отнюдь не только УС), не может дать ни один метод. Ни одна система контроля или отладки просто не в силах смоделировать все возможные сочетания комбинаций и последовательностей комбинаций сигналов интерфейса. Этот процесс занял бы огромное время.

Однако нарушения нарушениям рознь. Наиболее важно выявить те недостатки УС, которые ведут к необратимым поломкам компьютера, например, к выходу из строя драйверов системных узлов, к поломке источника питания и т.д. К другой группе дефектов УС относятся нарушения стандарта интерфейса, устойчиво проявляющиеся в циклах обращения к данному УС и мешающие нормальной работе компьютера, но не ломающие его окончательно. Задачу их выявления усложняет то, что некоторые из них наблюдаются только в циклах обмена, осуществляемых в реальном масштабе времени, в том темпе, который задается самим компьютером. Все эти дефекты УС могут быть достаточно достоверно выявлены, локализованы и устранены с помощью систем отладки, которые мы рассмотрим в этом разделе.

Почему возникает необходимость создания специальных средств отладки для УС? Ведь существует же большое число приборов, применяемых для контроля и отладки цифровой и цифроаналоговой техники: всевозможные генераторы, осциллографы, вольтметры и т.д. Но дело в том, что особенностью УС является шинная организация с большим количеством входных, выходных и двунаправленных сигналов, которые должны одновременно формироваться и одновременно контролироваться. Применение стандартных приборов в этом случае превратится в мучение для инженера или техника, занимающегося отладкой, и потребует неоправданно большого времени. Поэтому изготавливаются специальные многоразрядные формирователи входных воздействий и регистраторы ответных реакций, существенно упрощающие этот процесс. Естественно, гораздо большую эффективность имеют системы, в которых предусмотрена та или иная степень автоматизации процесса отладки. При этом часть трудоемких операций можно возложить на персональный компьютер, который часто служит основой такой системы.

2.3.1. Комплекс средств статической отладки

Метод статической отладки цифровых устройств, как следует из его названия, позволяет контролировать работу этих устройств или их отдельных узлов в статическом режиме, то есть в режиме неизменных входных и выходных сигналов. Этот метод основан на том положении, что большинство цифровых устройств может находиться в каждом из своих состояний бесконечно большое время. Он позволяет выявлять по различным оценкам до 80% неисправностей. Оставшиеся 20% приходятся на долю неисправностей, связанных с динамикой, с быстрыми изменениями сигналов, с емкостными и индуктивными эффектами, с гонками сигналов, с высокочастотными помехами и наводками, с ограничением быстродействия отдельных элементов и узлов и т.д.

Существуют узлы, которые в принципе не проверяются методом статической отладки, например блоки динамического ОЗУ, одновибраторы (ждущие мультивибраторы), генераторы, времязадающие RC-цепочки, некоторые микросхемы с заданным нижним пределом тактовой частоты (например, процессоры, внутри которых используются элементы динамической памяти). Однако в системе отладки часто предусматривают так называемый квазидинамический режим, позволяющий иногда проверить и их.

Какие же неисправности выявляются рассматриваемым методом? Прежде всего это внутренние неисправности микросхем отлаживаемого устройства, приводящие к нарушениям в логике их работы, к невыполнению таблицы истинности. Например, выход логического элемента не реагирует на один или несколько входных сигналов, или вход микросхемы закорачивает на землю или питание подводимый к нему сигнал. Кроме того метод статической отладки позволяет обнаружить дефекты печатного монтажа платы: непропаи выводов элементов, закоротки соседних проводников, обрывы проводников, ошибки при изготовлении фотошаблона платы.

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

Особенность УС как объекта отладки — однотипность набора входных, выходных и двунаправленных сигналов со стороны разъема интерфейса компьютера и однотипность последовательностей этих сигналов в соответствии с протоколом обмена по интерфейсу. Это позволяет обеспечить довольно высокую степень автоматизации процесса отладки и облегчить труд оператора, на долю которого остается только выбор режима работы и анализ результатов контроля.

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

Рис. 2.60. Простейшая реализация метода статической отладки.

Если первую из указанных двух задач еще можно решить вручную (с использованием тумблеров и светодиодов), то вторую — практически невозможно, так как надо перебирать все возможные комбинации сигналов на магистрали. Но именно решение этой второй задачи очень легко автоматизировать, так как контролировать здесь надо только магистральные (внешние для УС) сигналы, а не внутренние точки УС.

Реализовать систему статической отладки на базе персонального компьютера можно очень просто, если использовать описанный в разделе 2.1.9 универсальный контроллер параллельного обмена (и, конечно же, соответствующие программные средства). В этом случае аппаратура системы включает в себя только компьютер, рассмотренный контроллер и соединительный кабель, оканчивающийся магистральным разъемом ISA, к которому и подключается исследуемая плата УС (рис 2.61). В принципе, в случае данной системы отлаживаемая плата может быть любой, главное, чтобы количество ее внешних сигналов не превышало количество внешних линий контроллера параллельного обмена. Но для каждой платы нужен свой соединительный кабель (или кабель с индивидуальными зажимами для каждой линии) и, самое главное — свое программное обеспечение.

Рис. 2.61. Система статической отладки на базе персонального компьютера.

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

Рассмотрим несколько упрощенно управление внешними линиями контроллера параллельного обмена при пошаговой эмуляции машинных циклов ISA. Но сначала выделим минимальный набор сигналов ISA, необходимый в системе отладки. Пусть печь идет только об отладке УС, работающих как устройства ввода/вывода. В этом случае достаточно использовать 10 разрядов адреса (SA0 ... SA9), 8 или 16 разрядов данных (SD0 ... SD7 или SD0 ... SD15), два строба обмена (-IOR и -IOW) и два управляющих сигнала (BALE — не обязательно и AEN). Адресные и управляющие сигналы должны быть определены как выходные, данные — как двунаправленные. Однако надо учесть, что в системе отладки обязательно надо предусмотреть контроль правильности информации, выводимой на выходные линии. Все это легко позволяет сделать контроллер параллельного обмена.

Выделим шаги (или точки останова), которые будут использованы при пошаговой отладке (рис. 2.62). Принцип выделения здесь очень простой: каждый новый шаг отличается от предыдущего изменением хотя бы одного сигнала. При этом если задержка между сигналами определяется только временем распространения сигналов по магистрали или только временем срабатывания логических элементов (например, между -IOR и SD), то мы считаем их одновременными, так как при статической отладке обнаружить такой сдвиг все равно невозможно.

На нулевом шаге (исходное состояние) мы должны проверить отключение платы от магистрали. Первый шаг, в принципе, не обязателен, так как обычно в УС на нем ничего не происходит. На втором шаге проверяется работа селектора адреса. На третьем — контролируется реакция УС на сигнал BALE (он используется довольно редко). Шаги 4 ... 6 (для цикла записи) или четвертый шаг (для цикла чтения) — это проверка выработки внутренних стробов обмена УС и функционирования буферов данных.

Характеристики

Тип файла
Документ
Размер
1,13 Mb
Тип материала
Высшее учебное заведение

Список файлов книги

Книга Разработка устройств сопряжения по микропроцессорной технике
Свежие статьи
Популярно сейчас
Зачем заказывать выполнение своего задания, если оно уже было выполнено много много раз? Его можно просто купить или даже скачать бесплатно на СтудИзбе. Найдите нужный учебный материал у нас!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6451
Авторов
на СтудИзбе
305
Средний доход
с одного платного файла
Обучение Подробнее