Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

лр / ТСАиУ Лабораторная работа №2 Задание 2024

.pdf
Скачиваний:
0
Добавлен:
21.12.2025
Размер:
1.44 Mб
Скачать

Лабораторная работа №2 «Работа с ЦАП/АЦП в режиме

безусловного обмена и по готовности»

В лабораторной работе используется плата ЦАП/АЦП L’card L154, она установлена внутрь системного блока.

Технические характеристики ЦАП:

Диапазон выходного сигнала -5,12 В - +5,12 В;

UвыхU (код-2048); U= 2,5 мВ - разрешающая способность ЦАП;

Максимальная частота преобразования Fmax=1000кГц.

Технические характеристики схемы АЦП + усилитель + мультиплексор:

Диапазон изменения входных сигналов: Uвх=±5,12В; ±2,56В;±1,024В;

Разрешающая способность: U= 2,5 мВ;1,25 мВ; 0,5 мВ - разная на разных диапазонах;

Коэффициенты усиления: kус= 1; 2; 5;

Максимальное время преобразования: Tпр=1,7мкс;

Входное сопротивление: Rвх=2МОм;

Время переключения канала мультиплексора: Т = 4мкс.

Аналогично с ЦАП формула пересчета кода в напряжение будет иметь вид:

UвхU (код-2048)

Базовый адрес для платы равен 300 в шестнадцатеричной форме исчисления.

Работа с регистрами ЦАП и АЦП осуществляется напрямую из программы, написанной в Turbo Pascal или Turbo C++. Примеры программ приведены после задания на лабораторную работу. Пути к инструментальным средам прописаны, поэтому запустить их можно командами tp и tc из командной строки.

Для работы с L154 из программы необходимо знать карту ее регистров и назначения битов отдельных регистров.

Карта регистров L154 приведена в следующей таблице:

 

Наименование

 

Адрес

 

Тип

Размер,

 

Назначение

 

 

 

относит.

 

доступа

бит

 

 

 

 

 

 

 

 

ЦП

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ЦАП

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

Регистр данных

0

 

Запись

12

 

Код для записи в ЦАП

 

 

ЦАП

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

АЦП – коммутатор – усилитель

 

 

 

 

 

 

 

 

 

 

 

2

 

Регистр данных

0

 

Чтение

12

 

Результат преобразования

 

 

АЦП

 

 

 

 

 

 

 

 

напряжения в код АЦП

 

 

 

 

 

 

 

 

 

 

 

3

 

Регистр

2

 

Запись

8

 

Установка канала мультиплексора,

 

 

управления АЦП

 

 

 

 

 

 

 

 

режима подключения и диапазона

 

 

– Коммутатор –

 

 

 

 

 

 

 

 

измерения входных сигналов АЦП

 

 

Усилитель

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4

 

Регистр состояния

2

 

Чтение

8

 

Состояние АЦП и счетчиков –

 

 

 

 

 

 

 

 

 

 

 

таймеров

 

 

 

 

 

 

 

 

 

 

 

5

 

Регистр запуска

4

 

Запись

8

 

Запуск АЦП на измерение

 

 

АЦП

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Таймеры-счетчики

 

 

 

 

 

 

 

 

 

 

 

 

 

6

 

Канал 0

8

 

Запись/

8

 

Программирование канала 0

 

 

 

 

 

 

чтение

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

7

 

Канал 1

9

- « -

 

 

8

 

Программирование канала 1

 

 

 

 

 

 

 

 

 

 

 

 

8

 

Канал 2

 

Ah

- « -

 

 

8

 

Программирование канала 2

 

 

 

 

 

 

 

 

 

 

 

 

9

 

Регистр

 

Bh

- « -

 

 

8

 

Установка параметров

 

 

управления

 

 

 

 

 

 

 

 

каналов

 

 

таймеров

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

10

 

Регистр

 

Fh

 

Запись

8

 

Разрешение/запрет прерываний от

 

 

прерываний

 

 

 

 

 

 

 

 

таймера

 

 

 

 

 

 

 

 

 

 

 

 

Цифровые линии ввода – вывода

 

 

 

 

 

 

 

 

 

 

 

11

 

Цифровые

3

 

Чтение

8

 

Чтение цифровых линий с

 

 

входы

 

 

 

 

 

 

 

 

внешнего разъема

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

12

 

Цифровые

3

 

Запись

8

 

Установка/сброс цифровых линий с

 

 

выходы

 

 

 

 

 

 

 

 

внешнего разъема

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Регистр управления АЦП платы L154.

Формат регистра управления:

Назначение отдельных разрядов регистра управления:

U2, U1 — диапазоны измерения входного сигнала: (1,1 — ±5,12В; 1,0

±2,56В, 0,1 — ±1,024В; 0,0 — не допустимая комбинация);

M32 — режим подключения сигнала на входе мультиплексора (М32 = 1

32-канальный режим с общей землей (ассиметричное подключение), М32 = 0 — 16-канальный (дифференциальный режим);

С4С0 — номер канала мультиплексора, подключаемого к входу

АЦП (00000 — 1 канал, 00001 — 2 канал, …, 11111 — 32 канал).

При дифференциальном подключении входных сигналов С4 = 0.

После команды переключения номера канала в мультиплексоре, необходимо на время переключения канала организовать задержку, равную ~ 4мкс.

Регистр состояния платы L154.

Формат регистра состояния:

В данной работе нас интересует только бит D3. После запуска АЦП бит состояние АЦП устанавливается в «1» на время выполнения преобразования и сбрасывается в «0» по окончании преобразования. При проверке готовности данных после запуска АЦП необходимо дождаться нулевого значения бита состояния.

Регистр запуска АЦП 8-разрядный. ЦП регистр доступен для записи. Запись произвольного значения в указанный регистр запускает АЦП на выполнение измерения.

Методика измерения входного напряжения включает:

1)подключение выбранного канала мультиплексора к источнику сигнала;

2)установка номера канала мультиплексора, режима и диапазона измерения входного сигнала;

3)запуск АЦП на измерение не ранее чем через 4 мкс после команды переключения канала мультиплексора;

4)проверку завершения измерения и готовности данных для чтения;

5)чтение данных и преобразование полученного кода в напряжение UКВ.

Для определения момента окончания измерения АЦП необходимо, после запуска АЦП, проверять бит D3 регистра состояния.

К L154 подключен блок разъемов, совмещенный с простым генератором:

Выход ЦАП – разъем для подключения к выходу ЦАП;

Входы АЦП – группа разъемов для подключения к входам АЦП, входы 1-6 подключены по ассиметричной схеме, входы 7-12 по дифференциальной;

Регулировка частоты – регулирует частоту синусоидального, пилообразного сигнала и сигнала типа меандр.

Регулировка амплитуды - регулирует амплитуду синусоидального или пилообразного сигнала. Амплитуда сигнала типа меандр не регулируется.

Выходы генератора – выходы для подключения к соответствующим видам сигналов.

Переключатель вида сигналов – переключает вид генерируемого на втором выходе сигнала.

Для работы с регистрами используются команды ввода/вывода:

Turbo Pascal используются команды port[адрес] для чтения и записи 1 байта из регистра и portw[адрес] для чтения и записи 2 байт.

Turbo C++ используются команды outp(адрес, значение) записывает 1 байт в регистр, outpw(адрес, значение) 2 записывает байта, inp(адрес) считывает 1 байт, inpw(адрес) считывает 2 байта.

Задание № 1 Безусловный обмен данными

1. Разработать программу генерации произвольного числа периодов периодического аналогового сигнала с заданными амплитудными характеристиками (указываются преподавателем из таблицы 1.1.). Для получения максимальной частоты генерации выходного сигнала ЦАП следует до начала эксперимента рассчитать мгновенные значения сигнала на интервале равном одному периоду.

Варианты заданий

 

 

Таблица 1.1

 

 

 

 

Вид сигнала, U(i)

Амплитуда,

Число точек на

варианта

 

 

 

Umax.

периоде, М

 

 

 

 

 

 

 

 

 

[В]

 

 

 

 

 

 

 

1

U маxsin2 i/M,

 

0 i M

4,5

200

 

 

 

 

 

2

2Umaxi/M ,

0 i M/2

4,0

200

 

2Umax(1-i/M ), M/2 i M

 

 

 

 

 

 

 

3

Umax ,

0 i 3/4M

5,0

100

 

0,

3/4M i M

 

 

 

 

 

 

 

4

2Umaxi/M ,

0 i M/2

4,0

200

 

-2Umax(1-i/M ), M/2 i M

 

 

 

 

 

 

 

5

Umax ,

0 i M/2

4,0

100

 

-Umax,

M/2 i M

 

 

 

 

 

 

 

 

6

Umaxexp(-2i/M) ,

0 i M

5,0

100

 

 

 

 

 

 

 

 

7

U маx/sin2 i/M,

0 i M

4,0

200

 

 

 

 

 

8

2Umaxi/M ,

0 i M/2

2,5

100

 

2Umax(1-i/M ), M/2 i M

 

 

 

 

 

 

 

 

2.Соединить выход ЦАП с входом осциллографа и с помощью осциллографа проконтролировать соответствие установленных амплитудных характеристик сигнала и наблюдаемых значений. Определить интервал вывода отдельных значений T и частоту генерируемого сигнала f.

3.В цикл генерации указанного сигнала вставить вычислительную процедуру (wait) и, с помощью осциллографа, определить время ее выполнения в зависимости от значений входного параметра (100, 200, 500, 1000, 2000, 5000, 10000). Рассчитать задержку, создаваемую процедурой.

Задание № 2 Обмен данными по готовности внешнего устройства

1. Разработать программу измерения напряжений на входе АЦП по готовности, преобразования кодов АЦП в напряжение Uкв. и сохранения полученных данных на диске. Диапазон измеряемых сигналов и номер канала указан в таблице 1.2. Сигнал подключается с помощью ассиметричной схемы измерения аналоговых сигналов. Измерения проводятся на 1000 точках.

Варианты заданий

Таблица 1.2

 

 

 

 

 

Диапазон сигналов ЦАП,

Вид, амплитуда (если есть) и

Канал

варианта

[В]

частота измеряемого сигнала

АЦП

 

 

 

 

 

1

5,0

Меандр

1

 

 

частота 500Гц

 

 

 

 

 

2

2,5

Синусоидальный,

2

 

 

амплитуда 2В, частота 900Гц

 

 

 

 

 

3

1,0

Треугольный

3

 

 

амплитуда 1В, частота 600Гц

 

 

 

 

 

4

5,0

Синусоидальный,

4

 

 

амплитуда 3В, частота 700Гц

 

 

 

 

 

5

2,0

Треугольный

5

 

 

амплитуда 2В, частота 400Гц

 

 

 

 

 

6

1,0

Синусоидальный,

6

 

 

амплитуда 1В, частота 500Гц

 

 

 

 

 

7

5,0

Меандр

2

 

 

частота 1200Гц

 

 

 

 

 

8

2,0

Синусоидальный,

1

 

 

амплитуда 2В, частота 800Гц

 

 

 

 

 

2.Соединить соответствующий выход генератора с осциллографом. Установить на выходе генератора вид, амплитуду и частоту сигнала согласно таблице 1.2.

3.Соединить соответствующий выход генератора с нужным каналом АЦП.

4.С помощью разработанной программы провести регистрацию сигнала с генератора. Убедиться, что данные были получены.

5.По снятым данным в отчете определить частоту фиксации сигнала и амплитуду измеряемого сигнала. Построить график измеренного сигнала от времени и определить смещение периодического сигнала относительно 0В.

6.Модифицировать программу для измерения сигналов, подключенных с помощью дифференциальной схемы измерения. Диапазон измерения 5,12 В, номер канала в соответствии с таблицей 1.3.

Варианты заданий

Таблица 1.3

 

 

 

 

 

Частота сигнала, Гц

Вносимая задержка, мкс

Канал

варианта

 

 

АЦП

 

 

 

 

1

200

100

7

 

 

 

 

2

400

40

8

 

 

 

 

3

150

150

9

 

 

 

 

4

300

80

10

 

 

 

 

5

350

70

11

 

 

 

 

6

250

90

12

 

 

 

 

7

450

30

8

 

 

 

 

8

100

120

10

 

 

 

 

7.Соединить выход меандра генератора с осциллографом. Установить на выходе генератора частоту сигнала согласно таблице 1.3.

8.Соединить выход меандра генератора с каналом АЦП согласно таблице 1.3.

9.С помощью разработанной программы провести регистрацию сигнала с генератора. Убедиться, что данные были получены.

10.Модифицировать программу добавив задержку между измерениями с помощью процедуры wait аналогично п.3 задания №1. Провести измерения повторно.

11.В отчете рассчитать частоту регистрации сигнала для обоих случаев. Сделать выводы о влиянии процедуры wait.

Примеры программ

Безусловный обмен:

В примере рассмотрена генерация сигнала вида амплитудой 5В и с числом точек на периоде равным 100.

Рассчитываем цифровое значение амплитуды:

0В это 2048.

Рассчитываем значение для 5В

UDAC = U (n - 2048), где U =2,5 мВ

Откуда n= UDAC/ U+2048= 5/0.0025+2048=4048

Нас интересует именно прирост относительно 0, в данном случае он составляет 2000.

Программа на Turbo Pascal, для п.1, задания №1:

uses crt;

const M=100;{Количество генерируемых значений на период сигнала}

var

U: array [1..M] of integer; {Объявление массива и счетчика цикла}

i: integer;

begin

for i:=1 to M do U[i]:=Round(2048+2000*sqr(sin(2*pi*i/M)));

{Сформирован массив значений синусоидального сигнала в квадрате на интервале одного периода}

i:=1;

repeat

PortW[$300]:= U[i]; {Запись очередного значения в регистр ЦАП, PortW выводит 2 байта}

inc(i);

if i>M then i:=1

until keypressed; {Генерация сигнала до нажатия любой клавиши}

while keypressed do readkey

end.

Процедура организации задержки Turbo Pascal для п.3, задания №1:

Procedure wait(i:word); var j:word;

begin for j:=1 to i do asm NOP end; end;

Ассемблерная команда NOP – не делает ничего, но процессор все же тратит время на ее выборку из ОЗУ и дешифрацию. Эту процедуру нужно описать до начала (begin) основной программы. Строку с вызовом процедуры нужно разместить внутри цикла repeat until.

Программа на Turbo С++, для п.1, задания №1:

#include <math.h>

#include <dos.h>

int main()

{

const int M=100; //Количество генерируемых значений на период сигнала

int U[M]; //Объявление массива

long j; //Объявление счетчика цикла вывода сигнала

for(int i=0;i<M;i++)

U[i]=floor(2048+2000*pow(sin(2*M_PI*i/M),2));

//Сформирован массив значений синусоидального сигнала в квадрате на интервале одного периода, round в Turbo C++ 3.0 нет, используем floor для округления до целого

i=0;j=1;

while(j<100000) //Организуем цикл на 100000 периодов сигнала

{

outpw(0x300,U[i]); //Запись очередного значения в регистр ЦАП outpw выводит 2 байта

i++;

if(i=М){i=0;j=j+1;}

}

return 0; //Функция должна вернуть целочисленное значение, void в Turbo C++ 3.0 нет

}

Процедура организации задержки Turbo С++ для п.3, задания №1:

int wait(int count)

{

for(int i=0;i<count;i++) asm nop; return i;

}

Ассемблерная команда nop – не делает ничего, но процессор все же тратит время на ее выборку из ОЗУ и дешифрацию. Эту процедуру нужно описать до начала (int main()) основной программы. Строку с вызовом процедуры нужно разместить внутри цикла while.

Обмен по готовности:

В примерах будет рассмотрена рассмотрена фиксация сигнала 5,12 В по первому каналу.

Рассчитаем для этого случая регистр управления:

диапазон измерения 5,12 В – биты 7 и 6 равны 1

асинхронная схема измерения – бит 5 равен 1

номер канала 1 – биты с 0 по 4 равны 0.

Получаем число в двоичной форме 1110 0000, или E0 в шестнадцатеричной форме исчисления.