Автор работы: Пользователь скрыл имя, 04 Апреля 2011 в 15:09, курсовая работа
Цифровые сигналы обладают рядом преимуществ по сравнению с аналоговыми. В отличие от аналоговых, цифровые сигналы передаются не как волны, а в двоичном виде, или в виде битов. Наличие напряжения обозначается как единица, а отсутствие — как нуль. Такое свойство цифрового формата, в котором предусматриваются только два состояния — сигнал есть и сигнала нет, — позволяет получать и воспроизводить звуки в их первозданной чистоте. С цифровыми сигналами это может быть проделано с высокой степенью надежности. Гораздо труднее точно воспроизвести волну, способную принимать самые разные формы, в отличие от бита, который может иметь только два значения — включено и выключено.
Инициализация аппаратных модулей проводится в несколько этапов. На первом этапе выполняется инициализация СБИС модуля. На последующих этапах производится инициализация системы прерываний или ПДП, в зависимости от используемых режимов обмена данными между модулем и процессором системы.
В
данном случае ведётся программно-
Процедура инициализации СБИС заключается в программировании режима работы необходимо загрузить из микропроцессора управляющее слово CW. При этом на адресных входах А0 и А1, а также , , должны быт выставлены соответствующие сигналы. Их комбинации продублированы в таблице 3.1.
Режим работы каналов СБИС КР580ВИ53 программируется с помощью простых операций ввода/вывода (таблица 3.1)
Таблица 3.1 – Операции ввода/вывода для СБИС КР580ВИ53 | |||||
Сигналы на входах | Направление
и
вид информации | ||||
А1 | А0 | ||||
0 | 1 | 1 | 1 | 0 | Канал данных→СБИС (занесение управляющего слова в канал 0, 1 или 2) |
1 | 0 | 1 | 1 | 0 | Нет операций. Канал данных СБИС в высокоомном состоянии |
0 | 1 | 0 | 0 | 0 | Канал данных→СБИС (загрузка счетчика канала 0) |
0 | 1 | 0 | 1 | 0 | Канал данных→СБИС (загрузка счетчика канала 1) |
0 | 1 | 1 | 0 | 0 | Канал данных→СБИС (загрузка счетчика канала 2) |
1 | 0 | 0 | 0 | 0 | СБИС→канал данных (чтение показаний счетчика канала 0) |
1 | 0 | 0 | 1 | 0 | СБИС→канал данных (чтение показаний счетчика канала 1) |
1 | 0 | 1 | 0 | 0 | СБИС→канал данных (чтение показаний счетчика канала 2) |
1 | 1 | Х | Х | 0 | Нет операций. Канал данных СБИС в высокоомном состоянии |
Х | Х | Х | Х | 1 | Запрет. Канал данных СБИС в высокоомном состоянии |
Каждый из трех каналов СБИС программируется индивидуально путем записи в регистр режима управляющего слова, а в счетчик – запрограммированного числа байтов. Формат управляющего слова представлен в таблице 3.2.
Таблица 3.2 – Формат управляющего слова | |
Разряд слова состояния | Назначение |
D0 | Код: 0 – двоичный, 1 – десятичный |
D1, D2, D3 | Режим работы:
000 – режим 0; 001 – режим 1; Х10 – режим 2; Х11 – режим 3; 100 – режим 4; 101 – режим 5. |
D4, D5 | Чтение (загрузка):
00 – операция «защелкивание»; 01 – только младший байт; 10 – только старший байт; 11 – младший байт, затем старший. |
D6, D7 | Выбор регистра
режима:
00 – канал 0, 01 – канал 1, 10 – канал 2, 11 – запрет. |
Для инициализации СБИС необходимо сначала записать управляющее слово для канала 0 и загрузить счетчик 0, затем записать управляющее слово для канала 1 и загрузить счетчик 1. Запись управляющего слова, в отличие от загрузки счетчиков, производится по одному адресу (375h).
Таким образом, нам необходимо записать по адресу 375h управляющее слово: 00110100b, затем по адресу 372h необходимо занести в счетчик канала 0 запрограммированное число N1 (коэффициент счета). После этого снова записываем управляющее слово (01110100b) и загружаем по адресу 373h в счетчик параметр N2. Элементы программы представлены в приложении А.
Управляющие функции, которые выполняет модуль управления, включены в программный модуль инициализации.
В этой главе было рассмотрено программирование выбранной БИС, и была разработана программная часть модуля. Реализован программно-управляемый обмен данными с разрабатываемым устройством. Пользователь вводит значения частоты и скважности цифрового сигнала, значения которых он хочет получить на выходе устройства. Программный модуль инициализирует СБИС устройства в соответствии с введёнными значениями и схема начинает генерацию цифрового сигнала.
В результате выполнения курсового проекта был проведён обзор существующих аналогов проектируемого устройства, были получены навыки проектирования аппаратно-программных модулей системной шины ISA.
Так же разработан программируемый генератор цифровых сигналов со следующими характеристиками:
Также
были разработаны программные
В
основу проектирования была положена
микросхема программируемого таймера
К580ВИ53, работающая в режиме генерации
частоты. Для обеспечения масимальной
выходной частоты 2 МГц произведено деление
тактовых импульсов сигнала SYSCLK шины ISA
(8 МГц) на 4. В канал 0 и канал 1 программируемого
таймера загружаются 2 числа. На частоту
влияют оба загруженных числа (происходит
деление частоты 2 МГц на определённый
коэффициент). На скважность влияет число,
записанное в счётчик канала 1. Т.о., загружая
в счётчики определённые значения, мы
имеем возможность программно изменять
форму цифрового сигнала.
Список
сокращений
ЦП – центральный процессор
КПДП – контроллер прямого доступа к памяти
КРП – контроллер регенерации памяти
КПР – контроллер прерываний
ПБ – перестановщик байт
ПГЦС – программируемый генератор цифровых сигналов
СП – системная память
УВВ – устройство ввода/вывода
СА – селектор адреса
ООД – оконечное оборудование данных
БД – буфер данных
СБИС – сверхбольшие интегральные схемы
ЭВМ – электронно-вычислительная машиина
ПЭВМ – персональная электронно-вычислительная машина
ПТ – программируемый таймер
МП – микропроцессор
ПЛИС – программируемая логическая интегральная схема
ПДП – прямой доступ к памяти
ОЗУ – оперативное запоминающее устройство
УГО –
условно-графическое
БИС – большая интегральная схема
ТТЛ –
транзисторно-транзисторная
Листинг программы
#include <stdio.h>
//стандартная библиотека
#include <conio.h>
//там находится прототип
#define CWT0 0x52 //CWT0 – 00110100b управляющее слово для канала 0
#define CWT1 0x116 //CWT1 – 01110100b управляющее слово для канала1
#define portc 0x375// адрес для занесение управляющего слова в регистр режима
//прототип
функции инициализации
void InitPit
(int N1, int N2);// частота,
скважность
void main()
{int N1,N2;
…
//Ввод требуемых параметров (N1, N2)
…
//Инициализация счетчика:
InitPit(N1,N2);
}
void InitPit (int N1, int N2)
{unsigned char p1,p2,t1,t2;
p1=(N1<<8)>>8;
p2=N1>>8;
t1=(N2<<8)>>8;
t2=N2>>8;
disable();
outp(portc, CWT0); //Запись управляющего слова в регистр режима 0
outp(portc-3, p1); //Запись в счетчик 0 младшего байта
outp(portc-3, p2); //Запись в счетчик 0 старшего байта
outp(portc, CWT1); //Запись управляющего слова в регистр режима1
outp(portc-2, t1); //Запись в счетчик 1 младшего байта
outp(portc-2, t2); //Запись в счетчик 1 старшего байта
enable();
}
Информация о работе Разработка аппаратно-программных модулей системной шины Isa