close

Вход

Забыли?

вход по аккаунту

?

Пояснительная записка (3)

код для вставкиСкачать
Содержание:
1. Анализ задания.
2. Описание работы шины ISA IBM PC AT.
3. Описание устройства, выбор и расчет элементов.
4. Программное обеспечение.
5. Список использованной литературы и программ.
Приложение
Генератор последовательностей. Схема электрическая принципиальная.
Генератор последовательностей. Перечень элементов.
Модули. Перечень элементов.
3
1. Анализ задания.
Требуется
разработать
принципиальную
схему
и
программное
обеспечение модуля генератора последовательностей на шине ISA IBM PС AT.
Генераторы последовательностей обычно используются для тестирования
устройств, поэтому должна быть предусмотрена возможность загрузки
различных
последовательностей
из
файла.
Предполагается
написание
специальной программы для создания таких файлов и программы для загрузки
этой последовательности через шину ISA в устройство. Также при написании
программного обеспечения необходимо предусмотреть возможность выбора
выходных уровней. Шина ISA 16 разрядная, поэтому последовательность
необходимо сначала загружать в 32 разрядное ОЗУ, а потом производить из
него генерацию. Для этого требуется быстродействующее
ОЗУ,
также
необходим тактовый генератор с частотой 10 МГц. Устройство не должно
конфликтовать с остальными устройствами, подключаемыми к персональному
компьютеру, что достигается выбором свободных адресов в пространстве
ввода/вывода. Так как устройство подключается к шине ISA IBM PС AT
персонального компьютера, то оно не требует индивидуального блока питания.
4
2. Описание работы шины ISA IBM PC AT.
ISA (Industry Standard Architecture) - шина расширения, применявшаяся с
первых моделей PC и ставшая промышленным стандартом. В компьютере XT
использовалась шина с разрядностью данных 8 бит и адреса - 20 бит. В
компьютерах AT ее расширили до 16 бит данных и 24 бит адреса. В таком виде
она существует и поныне. Конструктивно шина выполнена в виде двух
щелевых разъемов с шагом выводов 2,54 мм (рис. 1). Подмножество ISA-8
использует только 62-контактный слот (ряды А, В), в ISA-16 применяется
дополнительный 36-контактный слот (ряды С, D).
Рис. 1
Шина обеспечивает возможность отображения 8- или 16-битных
регистров на пространство ввода/вывода и памяти. Диапазон адресов памяти
ограничен областью UMA (выше AOOOOh). Для шины ISA-16 опциями BIOS
Setup может быть разрешено пространство между 15-м и 16-м мегабайтами
памяти (при этом компьютер не сможет использовать более 15 Мбайт ОЗУ).
Диапазон адресов ввода/вывода сверху ограничен количеством используемых
для дешифрации бит адреса, нижняя граница ограничена областью адресов
0-FFh, зарезервированных под устройства системной платы. В PC была
принята 10-битная адресация ввода/вывода, при которой линии адреса А[15:10]
устройствами игнорировались. Таким образом, диапазон адресов устройств
шины ISA ограничивается областью 100h-3FFh, то есть всего 758 адресов 8битных регистров. На некоторые из адресов претендуют системные устройства.
Впоследствии диапазон адресов был расширен. При использовании адресов с
большим
количеством
разрядов
необходимо
5
учитывать
возможность
присутствия на шине старых 10-битных адаптеров, которые "отзовутся" на
адрес с подходящими ему битами А[9:0].
Шина ISA-8 может предоставить до 6 линий запросов прерываний,
ISA-16 до 11. Часть их могут "отобрать" устройства системной платы или шина
PCI. Шина позволяет использовать до трех 8-битных каналов DMA. На
16-битной шине доступны еще три 16-битных канала. Сигналы 16-битных
каналов могут использоваться для прямого управления шиной устройством
Bus-Master. При этом канал DMA применяется для арбитража шины, а адаптер
Bus-Master формирует все адресные и управляющие сигналы шины, не
забывая передать управление шиной процессору не позднее, чем через 15 мкс
(чтобы не нарушить регенерацию памяти). Приведем описание контактов,
используемых в курсовом проекте (рис. 2).
Контакт
A2-A9
A11
A12-A31
B3
B9
B10
B13
C11-C18
D2
Название Направление
Описание
D7-D0
Шина данных D7-D0
AEN
Разрешение адреса
A19-A0
Адресная шина A19-A0
+5V
+5 VDC
+12VDC
+12 VDC
GND
Общий вывод
/IOW
Запись в порты ввода/вывода
SD08-SD15
Шина данных D8-D15
/IOCS16
Разрешение 16 разрядного обмена
Рис. 2
Операция "Запись в 16-и разрядное устройство ввода-вывода" (рис. 3).
1. В момент времени, совпадающий с началом тактовых импульсов,
передаваемых по линии SYSCLK, процессор формирует сигнал BALE.
2. Получив этот сигнал, задатчик примерно через 20 нс. выставляет на
системные линии адреса SA0...SA15 адрес исполнителя. Чаще всего адресная
линия SA0 используется для определения разрядности обмена по шине.
3. На линию SBHE* (разрешение передачи старшего байта) выставляется
сигнал высокого уровня, а на линию младшего разряда адреса SA0 сигнал
6
низкого
уровня.
Эти
сигналы
указывают
исполнителю,
что
будет
производиться 16 битный обмен и удерживаются до момента снятия адреса.
4. Спустя не менее 50 нс. и не более Т/2 = 62,5 нс. сигнал BALE снимается,
указывая устройствам, что адрес установлен. По заднему фронту сигнала
BALE УВВ, подключенные к магистрали сравнивают адрес на линиях
SA1...SA15 с собственным.
5. Устройство, распознавшее свой адрес, становится исполнителем и в
подтверждении того, что может вести 16 битный обмен, выставляет сигнал
I/O CS16. Этот сигнал должен быть выставлен не более чем через 90 нс. после
начала обмена.
6. Спустя не менее чем через 70 нс. после начала цикла задатчик выставляет
на линии SD0...SD15 данные.
7. Спустя не менее чем через 22 нс. после начала установки данных на
линию IOW* выставляется стробирующий сигнал.
8. Исполнитель воспринимает сигнал IOW* и подготавливается к записи
данных.
9. Сигнал IOW* снимается не менее чем через 172 нс. Задний возрастающий
фронт сигнала позволяет исполнителю записать информацию.
10. Спустя не менее чем через 30 нс. после снятия сигнала IOW* задатчик
снимает данные.
Если устройство не успевает выполнить требуемую от него команду в
темпе магистрали, оно может приостановить на целое число периодов сигнала
SYSCLK завершение цикла чтения или записи с помощью снятия (перевода в
низкий уровень) сигнала I/O CH RDY (удлиненный цикл). Это производится в
ответ на получение сигнала IOR* или IOW*. Сигнал I/O CH RDY может
удерживаться низким не более 15,6 мкс, поскольку через этот интервал времени
происходит регенерация оперативной памяти. В противном случае процессор
переходит в режим обработки немаскируемого прерывания.
7
Рис. 3
8
3. Описание устройства, выбор и расчет элементов.
Описание устройства начнем с селектора адреса. Для устройства были
выбраны свободные адреса в пространстве ввода/вывода персонального
компьютера: 360h, 362h, 364h, 366h, 368h, 36Ah, 36Ch,36Eh (см. [1]). Адрес на
линиях SA4-SA9 всегда одинаков, при совпадении адреса на этих линиях и
появлении сигнала AEN (разрешения адреса) с помощью микросхем логики на
входе С2 дешифратора формируется разрешающий сигнал низкого уровня. В
зависимости от адреса на линиях SA1-SA3 дешифратор выставляет на одном из
8 выходов низкий уровень, для адреса 36Eh при этом формируется сигнал
/IOCS16, чем подтверждается возможность 16-разрядного обмена. Таблица
истинности дешифратора показана на рисунке 4.
Рис. 4
Выходы дешифратора подключены к логическим элементам “или - не”
(кроме 8 выхода), на второй вход этих элементов поступает сигнал
/IOW.
Вначале на выходе логического элемента низкий уровень, в момент времени,
когда дешифратор выставит на выходе низкий уровень (устройство распознало
адрес), и появится низкий уровень сигнала /IOW, на выходе “или - не” появится
высокий уровень. По положительному фронту сигнала на тактовом входе
триггера информация с шины данных записывается в триггер.
9
Отдельно следует описать адрес 36Eh, после того как устройство
распознает этот адрес (дешифратор выставит низкий уровень на восьмом
выходе), сразу же посылается импульс на тактовый вход счетчика и изменяется
адрес ячейки ОЗУ. Восьмой выход дешифратора вместе с /IOW через
микросхему “или” подключен к входу ОЗУ, управляющему записью. Низкий
уровень на выходе логического элемента появится только при наличии низкого
уровня на выходе дешифратора и низкого уровня сигнала /IOW, с этого
момента начнется запись в ОЗУ.
Непосредственно к шине подключаются микросхемы: дешифратор
(КР1533ИД7),
инверторы
(КР1533ЛА2).
Все
эти
(КР1533ЛН1)
микросхемы
и
серии
логический
КР1533
и,
элемент
“и”
следовательно,
удовлетворяют требованиям, предъявляемым к приемникам магистральных
сигналов. У них высокое быстродействие (задержки не превышают 15нс.) и
малые входные токи (ток “0” – 0,2 мА) (см. [4]). Задержки на селекторе адреса
определяются по формулам:
1   инв   и   деш  30нс(3.1)
 2   м  3 сч  42нс(3.2)
τ1 – задержка до выставления сигнала /IOCS16.
τ2 – задержка до изменения адреса ОЗУ.
τинв = 6 нс. – задержка на инверторе.
τи =12 нс. – задержка на микросхеме “и”.
τдеш = 12 нс. – задержка на дешифраторе.
τм =12 нс. – задержка на мультиплексоре.
τсч =10 нс. – задержка на счетчике.
Сигнал /IOCS16 должен быть выставлен спустя не более 90 нс. после
начала обмена, сигнал /IOW выставляется не раньше 92 нс. после начала цикла
записи, следовательно, задержка до изменения адреса ОЗУ не должна
превышать 92 нс. Все эти условия выполняются.
10
Для хранения информации в селекторе адреса используется триггер. В
качестве триггера используется микросхема КР531ТМ2, она имеет малое время
задержки (12 нс.), содержит в корпусе два независимых триггера. Триггеры
необходимы для хранения информации, управляющей микросхемами. Выходы
триггеров подключены к:
1. Входу “In” ключей, переводящему ключи в режим пропускания при
присутствии на нем высокого уровня (запись в триггер производится по
адресу 360h).
2. Входу “ENA” преобразователей уровня, переводящему преобразователи в
z-состояние при присутствии на нем низкого уровня (запись в триггер по
адресу 362h).
3. Входу “ED” счетчиков, при низком уровне на нем происходит
предустановка (запись в триггер по адресу 364h).
4. Входу “EС” счетчиков, при низком уровне на нем происходит
разрешение счета (запись в триггер по адресу 366h).
5. Входу “V” мультиплексора, при высоком уровне на нем к тактовому
входу счетчика подключается тактовый генератор (запись в триггер по
адресу 368h).
6. Входам “BS0-BS1” ОЗУ, при низком уровне на них возможен доступ к
первым двум байтам ячейки ОЗУ (запись в триггер по адресу 36Ah).
7. Входам “BS2-BS3” ОЗУ, при низком уровне на них возможен доступ ко
вторым двум байтам ячейки ОЗУ (запись в триггер по адресу 36Ch).
Основным элементом схемы является ОЗУ (EDI8L3265C20AC). Было
выбрано именно это ОЗУ из-за быстродействия (50 МГц), объема (64 MB) и
разрядности (32 разряда), также очень важна возможность выбора каждого
байта ячейки. Для изменения адреса ячейки ОЗУ используется счетчик.
Реализованы два способа управления счетчиком: подключение к счетчику
тактового генератора и изменение состояния счетчика при обращении по
адресу 36Eh. Для этого используется мультиплексор КР1533КП11. Для
реализации первого способа используется тактовый генератор, построенный на
11
базе кварца с частотой 10 МГц и двух инверторах. Этот блок генерирует
импульсы с частотой 10 МГц, которые поступают на тактовый вход счетчика. В
качестве счетчика используется микросхема КР1533ИЕ13 (рис. 5).
Рис. 5
Для увеличения разрядности счетчика используется выход “OF”, который
подключается к тактовому входу следующего счетчика, при переполнении
счетчика подается импульс на тактовый вход следующего счетчика. Входы “E”
счетчиков заземлены, так как используется только прямой счет. Входы
“разрешения счета” и “разрешения предустановки” подключены к триггерам, а
входы “D1-D8” заземлены, это позволяет при необходимости обнулять
счетчики. Также предусмотрена возможность остановки счетчиков при
достижении адреса 1024 ячейки ОЗУ. Для этого третий выход третьего
счетчика подключен вместе с выходом триггера, управляющим разрешением
счета, через микросхему “или” к входу разрешения счета. При возникновении
высокого уровня на любом из входов микросхемы “или” счет останавливается,
чтобы снова разрешить счет необходимо сбросить счетчик.
Для реализации второго способа управления счетчиком используется
селектор адреса. При обращении по адресу 36Eh подается импульс на тактовый
12
вход счетчика, и адрес ОЗУ увеличивается на единицу. Это позволяет записать
данные в следующую ячейку ОЗУ. Временные диаграммы ОЗУ приведены на
рисунке 6.
Рис. 6
По заданию требовалось обеспечить выходные уровни ТТЛ и КМОП. Для
этого данные из ОЗУ поступают параллельно на преобразователи уровня и на
аналоговые ключи. В программном обеспечении пользователь выбирает
желаемый выходной уровень, после этого программа записывает в триггер
необходимую информацию, тем самым включает либо преобразователи уровня
(ТТЛ-КМОП), либо аналоговые ключи. В качестве преобразователя уровня
используется микросхема К564ПУ6, она имеет высокое быстродействие, и
вход, переводящий выходы в z-состояние. В качестве аналогового ключа
используется микросхема MAXIM IH5045, это ТТЛ – совместимая микросхема,
она может оперировать аналоговыми сигналами до 15В, сопротивление в
режиме
“ВКЛ”
–
25 Ом (см. [2]). Выходы преобразователей и ключей
подключены к 32-входовым разъемам 612B2-32AB-FX (рис. 7). Разъем XP1
вытравливается на плате по принципу, описанному в главе 2.
13
Рис. 7
Максимальный ток, возможный при 5В на шине ISA 4,5А (мощность –
20,25 Вт.). Рассчитаем мощность, потребляемую устройством.
P  5  ( Iинв  Iи  Iдеш  Iили  2Iилине  I m s  3Iсч  4I т р  8I ПУ  8I кл )
 PОЗУ  5  (0.004  0.001 0.03  0.005  0.008  0.014  0.054  0.2 
 0.08  0.24)  3  6.18( Вт)(3.3)
Iинв – ток потребления инвертора.
Iи – ток потребления микросхемы “и”.
Iдеш – ток потребления дешифратора.
Iили – ток потребления микросхемы “или”.
Iили-не – ток потребления микросхемы “или - не”.
Ims – ток потребления мультиплексора.
Iсч – ток потребления счетчика.
Iтр – ток потребления триггера.
IПУ – ток потребления преобразователя уровня.
Iкл – ток потребления аналогового ключа.
P – мощность, потребляемая устройством.
PОЗУ – максимальная мощность, потребляемая ОЗУ.
Следовательно, мощность, потребляемая устройством, укладывается в
допустимые рамки.
14
4. Программное обеспечение.
Для
удобства
пользователя
разработана
программа
“bingen”,
генерирующая файл с тестовой последовательностью. Пользователь вводит
группы по 16 символов, а программа преобразует символы в двоичную
последовательность и записывает ее в файл “sample.dat”. Внешний вид
программы показан на рис. 8.
Рис. 8
Текст программы:
#include <windows.h> //Необходима для работы со структурами
#include <stdio.h>
//Необходима для работы с файлами
#include <conio.h>
//Содержит функцию getche()
#define Q 1024
//Заменяет 1024 идентификатором Q
struct BIN1K
{
WORD info[Q];
}
sample;
//Структура BIN1K
//Массив переменных типа WORD
void main()
{
FILE *out=fopen("sample.dat","w+");
for(int i=0;i<Q;i++)
//Открыть “sample.dat” для записи
15
{
printf("%d/%d:",i+1,Q);
//Выводит номер группы
for(int j=15;j>-1;j--)
{
int c=getche();
//Записать нажатый символ в с
if(c=='1') sample.info[i]|=(1<<j);
//Преобразуем символ
if(c=='0') sample.info[i]&=~(1<<j); //в бит на нужной позиции
}
printf("\n");
//Перевод строки
}
fwrite(&sample,sizeof(sample),1,out);
//Записать структуру в файл
fclose(out);
//Закрыть файл
}
Программа “binsend” считывает последовательность из файла и посылает
его через шину данных в устройство.
Текст программы:
#include <windows.h> //Необходима для работы со структурами
#include <stdio.h>
//Необходима для работы с файлами
#include <conio.h>
//Содержит функции outp(); outpw();
#define Q 1024
//Заменяет 1024 идентификатором Q
char level;
//Переменная для хранения выходного уровня
short adrRAM=0x36E; //Адрес для записи в ОЗУ
struct BIN1K
{
WORD info[Q];
}
sample;
//Структура BIN1K
//Массив переменных типа WORD
void main()
{
printf("Выберите выходные уровни (ТТЛ-1; КМОП-0):");
scanf("%d",level);
FILE *in=fopen("sample.dat","rb"); //Открыть файл для чтения в двоичном виде
fread(&sample,sizeof(sample),1,in); //Записать файл в структуру
fclose(in);
//Закрыть файл
_outp(0x360,0);
_outp(0x362,0);
_outp(0x368,0);
_outp(0x364,0);
_outp(0x366,1);
//Выключили ключ
//Преобразователь уровня в Z-состояние
//Наращивание счетчика по адресу 0x36E
//Обнулить счетчик
//Выключить счетчик
16
_outp(0x364,1);
_outp(0x36A,0);
_outp(0x36C,1);
//
-////Запись в первые два байта ОЗУ
//
-//-
_outpw(adrRAM,sample.info[0]);
_outp(0x366,0);
//Запись в нулевую ячейку ОЗУ
//Включить счетчик
for(int i=2;i<Q;i=i+2)
{
_outpw(adrRAM,sample.info[i]);
}
//Запись в ОЗУ первых двух байтов
_outp(0x364,0);
_outp(0x366,1);
_outp(0x364,1);
_outp(0x36A,1);
_outp(0x36C,0);
//Обнулить счетчик
//Выключить счетчик
//
-////Запись во вторые два байта ОЗУ
//
-//-
_outpw(adrRAM,sample.info[1]);
_outp(0x366,0);
//Запись в нулевую ячейку ОЗУ
//Включить счетчик
for(i=3;i<Q;i=i+2)
{
_outpw(adrRAM,sample.info[i]);
}
//Запись в ОЗУ вторых двух байтов
if (level=='1') _outp(0x360,1);
if (level=='0') _outp(0x362,1);
_outp(0x364,0);
_outp(0x366,0);
_outp(0x364,1);
_outp(0x36A,0);
_outp(0x36C,0);
_outp(0x368,1);
}
//Если ТТЛ, включили ключ
//Если КМОП, включили преобразователь
//Обнулить счетчик
//Включить счетчик
//
-////Чтение всех байтов ОЗУ
//
-////Подключаем тактовый генератор к счетчику
17
5. Список использованной литературы и программ.
1. Гук М. Аппаратные средства IBM PC. Энциклопедия.  Спб: Питер,
1998.  816 с.
2. Хоровиц П., Хилл У. Искусство схемотехники: Tом 1 и том 2. Пер с англ.
 6-е изд. перераб. и доп.  М.: Мир, 2001. – 704 с.
3. Цифровые и микропроцессорные устройства: Методические указания к
курсовому проектированию / Составитель: С.П. Гак.  Челябинск: ЧГТУ,
1998.  21 с.
4. ПО. Справочник по цифровым логическим микросхемам. Шульгин О.А.,
Шульгина И.Б.
18
Документ
Категория
Радиоэлектроника
Просмотров
15
Размер файла
284 Кб
Теги
пояснительная, записка
1/--страниц
Пожаловаться на содержимое документа