Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
УП КурсРасч9-1.doc
Скачиваний:
14
Добавлен:
01.07.2025
Размер:
11 Мб
Скачать
☆

3.10.Реализация интерфейса для передачи дельта-импульсов

Как указывалось ранее, передачу дельта-импульсов в блок формирования аналогового сигнала необходимо выполнить через гальваническую развязку. Простейшим вариантом такой развязки является использование изолирующих оптоэлектронных приборов (ОЭП) в контроллере имитатора, причем размещать сам ОЭП необходимо в аналоговом блоке. Для примера на рис. 3.18 приведен изолирующий оптоэлектронный прибор типа HCPL0710, который входит в список рекомендованных для использования.

Рис. 3.31. Изолирующий оптоэлектронный прибор типа HCPL0710

Прибор может питаться со стороны передатчика напряжением VDD1 и со стороны приемника VDD2 напряжением 5 В, имеет время запаздывания выходного сигнала не более 40 нс и срабатывает от стандартных уровней ТТЛ. Выходные дельта-импульсы положительной и отрицательной полярности могут быть сформированы на комбинационных схемах устройства УВВ2 (см. рис. 2.12). Для этого необходимо использовать сигнал переполнения таймера временного паттерна как модуль дельта-импульса и код знака, который может загружаться для хранения и последующего использования в регистр порта C прибора 8155 (см. рис. 3.10).

Для хранения бинарного кода знака достаточно одного разряда, однако далее будет показано, что в некоторых случаях удобно генерировать временной интервал из нескольких отрезков, тогда нулевой код на выходах PC.4 и PC.5 может предотвращать ошибочное формирование дельта-импульсов.

Электрическая схема формирователя дельта-импульсов ТВП представлена на рис. 3.19. Схема имеет два выхода: V11 и V12. Первый используется для управления оптоэлектронным прибором формирования отрицательного дельта-импульса, а второй – положительного.

Длительность импульса переполнения на выходе таймера временного паттерна (P4 на выходе DD5, рис. 3.17) определяется тактовой частотой Fclk (в нашем случае 0,5 мкс), поэтому с целью эффективной передачи энергии в колебательную систему формирователя аналогового сигнала длительность

Рис. 3.32. Схема формирователя дельта-импульсов имитатора

дельта-импульса на входе схемы формирования необходимо расширить до максимально возможного значения (2,5 мкс).

Это проще всего исполнить с помощью аналогового (DD12 на рис. 3.19) или цифрового мультивибратора. Вопросы построения аналоговых мультивибраторов подробно рассмотрены в [5, 5.10], цифровой вариант будет рассмотрен далее.

3.11.Табличное представление временного паттерна

Как указывалось ранее, коды временных интервалов ТВП удобно хранить в заранее сгенерированной таблице. Таблицы должны быть сохранены в сегменте кодов (т. е. в памяти типа ROM). Всего для варианта управления частотой необходимо иметь 8 таблиц по числу дополнительных частот (табл. 2.2), используемых для управления.

Для программирования таймера, как указывалось в 3.9, необходимо в таблицах сохранять 20-разрядные числа. Еще два разряда потребуются для программирования кода дельта-импульсов. Будем использовать для размещения 22 разрядов в памяти одну директиву DW и одну директиву DB (всего 24 бита).

В качестве примера рассмотрим интервал между 1-м и 2-м импульсами, код которого должен быть загружен ППОП от сигнала Start1 (см. рис. 3.17). Код загрузки должен иметь значение, представленное в табл. 3.5. Так как при программировании синхронного счетчика загружается дополнительный код программируемого интервала, то в регистры должен загружаться код FF830h, который должен быть разбит на 16-разрядную часть для директивы DW и 8-разрядную часть для директивы DB, причем в последнем случае старшая тетрада должна быть дополнена кодом знака или кодом фаз. Такой код может быть сохранен директивами:

Seg code

…

Dw 0F830h ; младшая часть кода программирования таймера

DB 1Fh ; старшая тетрада и код положительного дельта-

; импульса

Аналогично генерируется код для следующего интервала. Он будет такой же за исключением кода знака (знак 3-го импульса должен быть отрицательный  код 2Fh) и т. д. Таблицы могут быть сгенерированы вручную или с помощью средств ассемблера. В последнем случае удобно использовать макрокоманду, которая в свою очередь использует директивы повторения с параметрами. Макрос подробно описан в шаблоне курсового расчета (см. 6.3).

Замечание. В шаблонах курсового проектирования этот макрос располагается в файле типа .INC. При применении макроса необходимо иметь в виду, что препроцессор, вычисляющий макрос, использует для представления чисел 16-разрядов, поэтому для 20-разрядных кодов приходится масштабировать их делением на 8. Для других тактовых частот и частот повторения коэффициент масштабированя необходимо изменить.

; К о н с т а н т ы в р е м е н н о г о п а т т е р н а

; к о д ы ф а з

; 0, 180 градусов и "пусто" дельта-импульсов

PLUS EQU 10H ; используется линия 4 регистра C

MINUS EQU 20H ; используется линия 5 регистра C

NULL EQU 00h

; п е р и о д ы п о в т о р е н и я

; ассемблер допускает представление чисел в виде 2 байт.

TН equ 30000 ;в мкс

TL equ 40000 ;в мкс

TS equ 50000 ;в мкс

TSH EQU 60000 ;в мкс

; остальные периоды должны вычисляться.

;TSL = TL*2

;TSS = TS*2

; д о п о л н и т е л ь н ы е п е р и о д ы п о в т о р е н и я

; J=0-7 отличаются от основных на величину, кратную 100 мкс

; (J=0 => 0*100мкс, J=1 => (-1)*100мкс, (-2)*100мкс, ...)

; ===============================================================

; далее все временные величины будут представлены для тактовой

; частоты 2 МГц.

; поэтому далее временные интервалы Т1, Т2, TP, TD и т.д.

; будут даны в количествах счетных импульсов тактовой частоты.

===============================================================

; в р е м е н н о й и н т е р в а л м е ж д у импульсами

; в пачках ВЩ и ВМ равен T1 = 1000 мкс, число импульсов 8.

; для ВЩ существует дополнительный 9-й импульс через

; T2 = 2000 мкс

; после импульсов пачки.

T1 EQU 2000

T2 EQU 4000

TJ EQU 200 ; изменение модуля периода для

; дополнительных частот.

TM EQU 16 ; модуль счета таймера 555ие10

; и н т е р в а л м е ж д у п а ч к а м и

TMOD equ 0000h

TPN EQU 25000 ; значение TP/8 = 200000/8 ассемблер

; вычислить не может

T1N EQU T1/8

T2N EQU T2/8

TJN EQU TJ/8

TMN EQU 8192 ; TMod/8 ассемблер вычислить не может

KONEC EQU 0FFH ; конец таблицы, переход на начало

tabl %macro param_j

; таблица временного паттерна для J-й дополнительной частоты

; повторения

; таблица содержит код временного интервала и

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

; с младшего.

J TEQ param_j

N TEQ (TPN-T1N*7-TJN*J)/TMN

TD TEQ ( (TPn-T1n*7-TJn*J) MOD TMN )*8

%FOR param IN plus,plus,minus,minus,plus,minus,plus,minus

dw tmod-t1

db 0fh or param

%ENDFOR

dw tmod-(td-t1)

db (tm-(n+1) and 0fh) or null

%FOR param IN plus,minus,minus,plus,plus,plus,plus,plus

dw tmod-t1

db 0fh or param

%ENDFOR

dw tmod-(td-t1)

db (tm-(n+1) and 0fh) or null

DB KONEC

%endm

Поскольку таблица из памяти будет выбираться периодически, то необходимо задать маркер ее окончания для перевода указателя в начало при повторном ее считывании. Таким маркером является последняя строка макроса.

Считывание кода KONEC, который не может встречаться внутри таблицы, будет признаком перехода на ее начало.

Теперь, используя макрос, можно сгенерировать таблицы временного паттерна для всех дополнительных частот J = 0…7. Генерация выполняется вызовом макроса с соответствующим параметром и располагается в памяти типа ROM в сегменте TABL_PATT, структура которого представлена ниже.

DEFSEG tabl_patt,CLASS=code

SEG TABL_PATT

; сегмент таблиц паттернов для J=0,1,2,...,7

TABL0: tabl 0

TABL1: tabl 1

TABL2: tabl 2

TABL3: tabl 3

TABL4: tabl 4

TABL5: tabl 5

TABL6: tabl 6

TABL7: tabl 7

Ссылка на каждую таблицу может быть выполнена по метке, задающей ее начало (TABL0, TABL1, TABL2, …, TABL7). Для упрощения выбора таблицы, требуемой в соответствии с настройкой, целесообразно их базы разместить в дополнительной таблице TABL_TABL:

TABL_TABL:

; таблица адресов расположения таблиц паттернов для всех J.

DW TABL0

DW TABL1

DW TABL2

DW TABL3

DW TABL4

DW TABL5

DW TABL6

DW TABL7

Приведенные структуры, содержащие таблицы TABL0, TABL1 ...TABL7 и TABL_TABL, предназначены для генерирования временного паттерна при любом значении дополнительного периода J и использовании синхронных 20-разрядных счетчиков. Для других типов таймеров или другой разрядности необходимы коррективы макроса.