Разработка формирователя сигналов

Автор работы: Пользователь скрыл имя, 14 Ноября 2011 в 09:48, курсовая работа

Описание

Формирователь сигналов работает следующим образом: импульсы с выхода генератора с периодом следования поступают на 4-х разрядный счетчик, который с каждым импульсом изменяет свое состояние на единицу. На выходах счетчика формируются заданные последовательности четырехразрядных сигналов . Затем, с помощью преобразователя кодов, эти последовательности преобразуются в восьмиразрядные последовательности сигналов , которые управляют работой ЦАП. С выхода ЦАП снимается пропорциональное входным восьмиразрядным последовательностям аналоговое напряжение заданной величины и формы .

Содержание

1. Задание на выполнение курсовой работы. 4
2.1. Определение цифровых последовательностей на входах ЦАП. 5
2.2.Синтез преобразователя кода. 7
2.3. Синтез счётчика импульсов. 10
2.4. Выбор и расчет генератора тактовых импульсов. 13
2.5. Выбор схемы ЦАП. 14
2.6. Составление полной принципиальной схемы формирователя. 15
2.7. Расчет задержки распространения сигналов и потребляемой мощности. 16

Работа состоит из  1 файл

курсовая.doc

— 919.50 Кб (Скачать документ)

   

   Такое большое количество тактов требует  введения в алгоритм блока временной задержки (блок 3), который должен формировать нужный временной интервал Тс.

   Кроме этого нужно предусмотреть анализ сигналов X1 и Х2, активный уровень которых должен приводить к появлению на выходе кода начального состояния М(0) или к остановке счета соответственно.

   Составим  таблицу исходных данных для дальнейшего  проектирования.

   Определим начальный адрес размещения массива  кодов сигналов в ОЗУ  , определяется соотношением с округлением до большего четного числа

   Определим значение диапазона адресов устройств  ввода-вывода определяется по формуле с округлением до большего числа кратного восьми

   после округления получим:

   

 ABC=512;
;
; M(i)=PC, Y(i)=PB; X1,X2=PA
i Номер кодовой комбинации Адреса ячеек ОЗУ Содержимое  ячеек ОЗУ Примечание
HEX BIN HEX
0 00280 00001001 09 M(0)
0 00282 01101101 6D Y(0)
1 00284 00001000 08 M(1)
1 00286 01011011 5B Y(1)
2 00288 00000111 07 M(2)
2 0028A 01001001 49 Y(2)
3 0028C 00000110 06 M(3)
3 0028E 00110110 36 Y(3)
4 00290 00000101 05 M(4)
4 00292 01000000 40 Y(4)
5 00294 00000100 04 M(5)
5 00296 01001001 49 Y(5)
6 00298 00000011 03 M(6)
6 0029A 01010010 52 Y(6)
7 0029C 00000010 02 M(7)
7 0029E 01011011 5B Y(7)
8 002A0 00000001 01 M(8)
8 002A2 01100100 64 Y(8)
9 002A4 00000000 00 M(9)
9 002A6 01101101 6D Y(9)
10 002A8 00001111 15 M(10)
10 002AA 01110110 76 Y(10)

Таблица 4. Исходные данные для проектирования 

  3.2. Определение управляющего  слова. 

    Назначение  разрядов управляющего слова показано на рис.10. С помощью этого рисунка определим управляющее слово, которое будет использоваться для инициализации ППИ. Для формирования заданных сигналов целесообразно использовать основной режим ввода-вывода – режим “0”.

      

   Для нашего варианта, коды счетчика M(i) = Q4Q3Q2Q1 выводятся в порт С, коды, управляющие работой ЦАП, Y(i) = Y8Y7Y6Y5Y4Y3Y2Y1 выводятся в порт B, а порт A используется для ввода сигналов внешнего управления X1 и Х2. Следовательно, в соответствии с рис.10, разряды управляющего слова, используемого для установки режимов портов, будут такими:

   1    0    0    1    0    0    0    0

   После перевода в шестнадцатеричный код  получим управляющее слово 90H. 

3.3. Определение адресов портов и синтез дешифратора адреса ППИ. 

   ППИ подключен к системной шине с  использованием адресного пространства ввода-вывода и занимает в нем четыре четных адреса начиная с адреса . Для определения значений адресов портов ввода-вывода составим таблицу 5 в которой покажем состояние сигналов на системной шине адреса А7...А0 и адресуемый при этом порт. При составлении таблицы считаем, что разряд адреса А0 не используется и всегда равен 0, разряды адреса А2 и А1 используются для выбора портов и регистра управляющего слова внутри ППИ.

Состояние шины адреса Адресуемый  порт Адрес порта  HEX
A7 A6 A5 A4 A3 A2 A1 A0
0 1 0 0 0 0 0 0 Порт A 40
0 1 0 0 0 0 1 0 Порт B 42
0 1 0 0 0 1 0 0 Порт C 44
0 1 0 0 0 1 1 0 РУС 46

Таблица 5. Распределение адресов портов ввода-вывода

   Как видно  из составленной таблицы, порты ввода-вывода и регистр управляющего слова, которые входят в состав ППИ занимают 4 адреса в диапазоне 40Н...46Н. Поскольку в МП системе могут присутствовать УВВ с другими адресами, то для безошибочной работы нужных портов необходимо формировать сигналы их выбора. Эту функцию выполняет дешифратор адреса ППИ (ДШ ППИ), который формирует сигнал CS с уровнем логического 0, активизирующий БИС ППИ, только при установке на шине адресов, отведенных для данного устройства. Составим таблицу 6 истинности для дешифратора адреса ППИ.

Входные сигналы CS

Выходной  сигнал

A7 A6 A5 A4 A3 A2 A1  
0 1 0 0 0 0 0 0
0 1 0 0 0 0 1 0
0 1 0 0 0 1 0 0
0 1 0 0 0 1 1 0
все остальные комбинации 1

Таблица 6. Таблица работы дешифратора адреса ППИ

   Запишем логическое выражение для выходного сигнала, с учетом того, что входные сигналы A2,A1 являются фиктивными.

   

   и перейдя в базис ИЛИ-НЕ, получим

   

   Дешифратор  адреса ППИ будет иметь вид как на рисунке 11.

 
 

3.4. Составление полной функциональной схемы формирователя на основе МП.

   Все разработанные выше аппаратные части  и выбранные устройства формирователя объединим в единую функциональную схему МП системы. На ней покажем в виде элементов принципиальной схемы ЦП К1810ВМ86, ППИ К580ВВ55, синтезированный ДШ ППИ и ЦАП. Остальные узлы схемы покажем в виде функциональных элементов. Данная схема изображена в приложении 2.

 

3.5. Разработка детального алгоритма работы микропроцессорной системы. 

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

   Поскольку МП использует сегментацию памяти, адреса ячеек определяем в виде: PA=Seg : EA,

   где PA – двадцатибитовый полный (физический) адрес ячейки;

   Seg – шестнадцатибитовый адрес сегмента (база, сегмент);

   EA – шестнадцатибитовый адрес ячейки внутри сегмента (смещение).

   Таким образом, для адресов (таблица 4), получим таблицу 7:

   

Таблица 7. Адреса ячеек ОЗУ

   
PA Seg EA
00280 0028 0000
00282 0028 0002
00284 0028 0004
00286 0028 0006
00288 0028 0008
0028A 0028 000A
0028C 0028 000C
0028E 0028 000E
00290 0028 0010
00292 0028 0012
00294 0028 0014
00296 0028 0016
00298 0028 0018
0029A 0028 001A
0029C 0028 001C
0029E 0028 001E
002A0 0028 0020
002A2 0028 0022
002A4 0028 0024
002A6 0028 0026
002A8 0028 0028
 

      

3.6. Разработка алгоритма подпрограммы задержки. 

   Для разработки алгоритма ПП задержки найдем число тактов задержки NЗ:

   NЗ= NC-NФ,

   где NФ – число тактов между двумя соседними выводами кода ЦАП в порт без учета подпрограммы.

   NЗ=10000-118=9882

   ПП  задержки реализуется путем включения  в алгоритм подпрограммы холостых (пустых) команд NOP. Каждая команда NOP выполняется за 3 такта частота CLK. Последовательно можно включать любое количество холостых команд, но для экономии памяти и компактности целесообразно выполнять эти команды в цикле. Регистр МП СН используется как счетчик циклов и в него загружается число R, равное числу повторений цикла задержки. Поскольку СН восьмиразрядный  регистр, то загружаемое в него число не должно быть больше 255(10).

   Найдем  число повторений цикла задержки из соотношения:

    ,

   где n – количество последовательно включенных команд NOP в блоке 24.

   Для того чтобы R было не больше 255, выберем n=10, тогда R= 247(10)=F7h

   

 
 
 
 
 
 

3.7. Разработка программы работы микропроцессорной системы. 

Текст программы представлен ниже:

; программа работы формирователя сигналов варианта 512
; упр. слово для настройки УВВ  90H
; адрес текущего сегмента 0028H , адрес начального смещения 0000H
      MOV AL, 90H ;загрузить в AL управляющее слово
      OUT AL, 46H ;вывести управляющее  слово в порт 46H
  MOV AX, 0028H ;адрес текущего  сегмента данных
      MOV DS, AX ;загрузить в  сегментный регистр DS
Label1: MOV CL, 0BH ;загрузить в  CL число циклов формирования
      MOV BX,0000H ;загрузить начальное  смещение в регистр BX
Label2: CALL SUBR ;вызвать подпрограмму  задержки SUBR
      MOV AL,[BX] ;выбрать код M(i) из памяти
      OUT AL,44H  ;вывести код  M(i) в порт 44H
      ADD BX,0002H ;увеличить смещение  на 2
      MOV AL,[BX] ;выбрать код Y(i) из памяти
      OUT AL,42H ;вывести код  Y(i) в порт 42H
      ADD BX,0002H ;увеличить смещение  на 2
Label3: IN AL,40H ;ввести X2,X1 из порта 40H
      RCR AL,1 ;сдвинуть циклически  на один разряд вправо
      JC Label3 ;перейти к  метке Label3, если FC=1 (X2=1)
      RCRAL,1 ;сдвинуть циклически  на один разряд вправо
      JNC Label4 ;перейти к  метке Label4, если FC=0 (X2=0)
      JMP Label1 ;перейти к  метке Label1
Label4: DEC CL ;уменьшить содержимое  счетчика CL на 1
      JZ Label1 ;перейти на  метку Label1, если ZF=1 ((CL)=0)
      JMP Label2 ;перейти на  метку Label2
; подпрограмма временной задержки

SUBR: MOV CH, F7H

;загрузить в  CН число циклов задержки R=F7H
Label5: NOP ;холостая команда
      NOP ;холостая команда
      NOP ;холостая команда
      NOP ;холостая команда
      NOP ;холостая команда
      NOP ;холостая команда
      NOP ;холостая команда
      NOP ;холостая команда
      NOP ;холостая команда
      NOP ;холостая команда
      DEC CH ;уменьшить содержимое  счетчика CН на 1
      JNZ Label5 ;перейти на  метку Label5, если CН не пуст (ZF=0)
      RET ;возврат из  подпрограммы

Информация о работе Разработка формирователя сигналов