Цифровий вимірювач різниці двох напруг

[ виправити ] текст може містити помилки, будь ласка перевіряйте перш ніж використовувати.

скачати

Зміст

1. Аналіз поставленого завдання

2. Розробка структурної схеми пристрою

3. Розробка і дослідження моделі модулів

3.1 Розробка інтерфейсу модулів

3.2 Розробка архітектури модулів

3.3 Розробка архітектури лічильника

3.4 Дослідження роботи моделей модулів

4 Дослідження структурної моделі пристрою в цілому з використанням моделей вузлів

4.1 Аналіз придатності розроблених моделей для імплементації в PLD

Висновок

1. Аналіз поставленого завдання

По суті необхідно розробити пристрій, що перетворює аналоговий сигнал у, еквівалентну їй, цифровий код. Тобто заміни сигналу серією імпульсів за деякий певний час.

Таким чином пристрій повинен порівнювати вхідний сигнал з наростаючим еталонним сигналом і за час, поки сигнали не стали рівні, порахувати кількість імпульсів тактового генератора. Частота генератора повинна бути в 2 рази менше, ніж швидкість наростання еталонного сигналу на 1 значеніе.Т. е., якщо швидкість наростання еталонного сигналу 1 В/10нс, то частота генератора повинна бути 10 / 2 = 5нс, щоб генератор видав 1 імпульс еквівалентний 1 В.

У результаті виконаних розрахунків і зроблених раніше висновків, ми володіємо достатньою інформацією, щоб приступити до розробки структурної схеми пристрою.

2. Розробка структурної схеми пристрою

На даному етапі проектування розробляється структурна схема пристрою, спираючись на висновки зроблені при аналізі задачі.

Визначення набору модулів, що входять до складу схеми. Перш за все, необхідний вузол, що виконує функцію віднімання напруг. Таким вузлом є диференціальний підсилювач (ДП). Як уже згадувалося в розділі 1, нам будуть необхідні лічильник C Ч, і генератор тактових імпульсів ГТВ. Також необхідний вузол виробляє напругу для порівняння його з напругою різниці.

Цим вузлом є генератор лінійно змінюється напруги (ГЛИН). Для того щоб лічильник СЧ починав кожен період відліку з нуля, необхідна схема обнулення лічильника (СО). До складу схеми повинні три входити компаратора напруги. Один (К1) є компаратором знака напруги різниці. Два інших (К2, К3) порівнюють напруга різниці з наростаючим або падаючим напругою, що подається з ГЛИН. Структурна схема цифрового вимірювача різниці двох напруг наведена на малюнку 2.1

Малюнок 2.1 - Структурна схема цифрового вимірювача різниці двох напруг

Схема працює в такий спосіб. З виходу ДУ знімається напруга рівне різниці вхідних напруг Ua і Ub. Компаратор К1 порівнює отриманий сигнал з нулем. Якщо напруга позитивне, то на виході К1 формується рівень логічної 1, якщо негативне - логічного 0.

Для зручності індикації сигналу Знак, на виході К1 варто інвертор. Напруга різниці надходить на входи компараторів К2 і К3. Якщо напруга позитивне, то спрацьовує компаратор К2, і починає порівнювати його з наростаючим напругою ГЛИН. Поки напруга різниці більше напруги ГЛИН, на виході К2 -1.Т.о. дозволяється проходження імпульсів тактового генератора ГТВ, через вентиль, на рахунковий вхід лічильника СЧ. Як тільки напруга ГЛИН перевищило напруга різниці, на виході К2 -0, логічний вентиль закривається і лічильник перестає вважати. На виході лічильника сформований цифровий код, еквівалентний напрузі різниці. У момент переходу К2 в 0, спрацьовує схема обнулення (СО), яка через деякий час (необхідне для стійкої індикації і вірного зчитування коду) видасть сигнал на обнулення лічильника.

Якщо напруга різниці негативне, то спрацьовує компаратор К3, що порівнює його з падаючим напругою ГЛИН, і робота схеми повторюється.

3. Розробка і дослідження моделі модулів

3.1 Розробка інтерфейсу модулів

Розробка інтерфейсу диференціального підсилювача. Диференціальний підсилювач виконує віднімання двох напруг, поданих на його входи, і видає на вихід їх різницю.

library IEEE;

use IEEE. STD_LOGIC_1164. all;

entity dif_oy is

port (In1: in integer range - 5 to 5;

In2: in integer range - 5 to 5;

Out1: out integer range - 10 to 10);

end dif_oy;

Розробка інтерфейсу ГЛИН.

Генератор лінійно змінюється напруги має два виходи: прямий (напруга наростає від 0 до10 В) і інверсний (напруга падає від 0 до - 10В)

library IEEE;

use IEEE. STD_LOGIC_1164. all;

entity GLIN is

port (out1: out integer range 0 to 10;

not_out1: out integer range - 10 to 0);

end entity GLIN;

Розробка інтерфейсу компаратора.

Компаратор має два входи типу integer і один цифровий вихід типу std _ logic.

library IEEE;

use IEEE. STD_LOGIC_1164. all;

entity comp is

port (U1: in integer range - 10 to 10;

U2: in integer range - 10 to 10;

U_out: out std_logic);

end comp;

Розробка інтерфейсу генератора тактових імпульсів.

Генератор виробляє імпульси і має тільки один вихід.

entity gen is

port (gen_out: out std_logic);

end gen;

Розробка інтерфейсу лічильника.

Лічильник повинен мати вхід скидання, вхід рахунку і 4 виходи.

library IEEE;

use IEEE. STD_LOGIC_1164. all, IEEE. Numeric_STD. all;

entity counter is

port (reset: in std_logic;

up: in std_logic;

C_out: out unsigned (3 downto 0));

end counter;

3.2 Розробка архітектури модулів

Розробка архітектури диференціального підсилювача.

Як було сказано раніше, диференціальний підсилювач (ДП) виконує функцію віднімання над напругами, поданими на його входи. Так як фізично операційний підсилювач, на базі якого побудований ДУ, не може видати на виході напруга більше, ніж + U харчування (+12 В), то вхідні напруги не повинні бути більше +5 В.

architecture A4 of dif_oy is

begin

p1: process (In1, In2)

begin

if ((In1-In2) <12 and (In1-In2)> -12) then

Out1 <= In1-In2;

else Out1 <= 0;

end if;

end process;

end A4;

Розробка архітектури ГЛИН.

Генератор лінійно змінюється напруги має два виходи: прямий (напруга наростає від 0 до10 В) і інверсний (напруга падає від 0 до - 10В)

Швидкість наростання (падіння) напруги на виходах: 1В/100нс.

architecture A1 of GLIN is

begin

p1: process

begin

out1 <= 1;

wait for 100ns;

out1 <= 2;

wait for 100ns;

out1 <= 3;

wait for 100ns;

out1 <= 4;

wait for 100ns;

out1 <= 5;

wait for 100ns;

out1 <= 6;

wait for 100ns;

out1 <= 7;

wait for 100ns;

out1 <= 8;

wait for 100ns;

out1 <= 9;

wait for 100ns;

out1 <= 10;

wait for 100ns;

end process;

p2: process

begin

not_out1 <=- 1;

wait for 100ns;

not_out1 <=- 2;

wait for 100ns;

not_out1 <=- 3;

wait for 100ns;

not_out1 <=- 4;

wait for 100ns;

not_out1 <=- 5;

wait for 100ns;

not_out1 <=- 6;

wait for 100ns;

not_out1 <=- 7;

wait for 100ns;

not_out1 <=- 8;

wait for 100ns;

not_out1 <=- 9;

wait for 100ns;

not_out1 <=- 10;

wait for 100ns;

end process;

end A1;

Розробка архітектури компаратора.

Компаратор порівнює два сигнали, що подаються на його входи. Якщо сигнал на першому вході більше ніж на другому, то на виході компаратора 1, якщо менше - то 0.

architecture A2 of comp is

begin

p1: process (U1, U2)

begin

if (U1-U2)> 0 then

U_out <= '1 ';

else U_out <= '0 ';

end if;

end process;

end A2;

Розробка архітектури генератора тактових імпульсів

Генератор тактових імпульсів видає імпульси тривалістю 50нс, щоб за час наростання напруги ГЛИН на 1В, видати один імпульс.

architecture A3 of gen is

begin

p1: process

begin

gen_out <= '0 ';

wait for 50ns;

gen_out <= '1 ';

wait for 50ns;

end process;

end A3;

3.3 Розробка архітектури лічильника

Так як структура лічильника не особливо важлива, при моделюванні був використаний поведінковий стиль моделювання. Лічильник має вхід рахунку +1, асинхронний вхід скидання і 4 виходи.

architecture A5 of counter is

begin

p1: process (reset, up)

variable C_out1: unsigned (3 downto 0);

begin

if reset = 0 "then

C_out1: = "0000";

else

if up'event and up = '1 'then

C_out1: = C_out1 +1;

else C_out1: = C_out1;

end if;

end if;

C_out <= C_out1 after 3ns;

end process;

end A5;

3.4 Дослідження роботи моделей модулів

Дослідження працездатності моделей проводилося за допомогою аналізу часових діаграм сигналів. Задаючи вхідний обурення, проводиться аналіз відповідних йому вихідних сигналів. По таблиці відповідностей виноситься висновок про працездатність моделі. Нижче наведені часові діаграми, отримані по кожному з модулів.

В ідеальному випадку при тестуванні моделі необхідно подати всі можливі вхідні комбінації і проаналізувати вихідні обурення. Однак не завжди це є можливим і виправданим, на практиці вибирається безліч тестових комбінацій описують основні властивості розроблюваної моделі.

Малюнок 3.1 - Тимчасова діаграма, отримана при аналізі моделі ДУ.

З тимчасової діаграми видно, що диференціальний підсилювач виконує віднімання In 1 - In 2 і видає на вихід Out 1 вийшла різниця.

Рисунок 3.2 - Тимчасова діаграма, отримана при аналізі моделі ГЛИН.

Генератор лінійно змінюється напруги видає на вихід out 1, наростаюче зі швидкістю 100нс, напруга від 1В до 10В. На інверсному виході not _ out 1 напруга, падаюче зі швидкістю 100нс, від-1В до 10В.

Малюнок 3.3 - Тимчасова діаграма, отримана при аналізі моделі генератора

На виході пристрою з'являються логічні рівні 0 і 1 тривалістю 50нс.

Малюнок 3.4 - Тимчасова діаграма, отримана при аналізі моделі лічильника.

Як видно з діаграми лічильник рахує від 0 до 16.

З отриманих діаграм можна зробити висновок про працездатність окремих модулів.

4.Ісследованіе структурної моделі пристрою в цілому з використанням моделей вузлів

Для побудови моделі пристрою в цілому використовується структурний опис. При цьому модель представляється у вигляді сукупності окремих модулів описаних раніше і зв'язків між ними. Це дозволяє застосувати принцип декомпозиції, що значно спрощує процес розробки моделі.

В якості зовнішніх портів введення-виведення пристрої використовуються наступні:

Вхідна напруга (Ua);

Вхідна напруга (Ub);

вхід скидання (Reset1);

вихід знака різниці (znak)

вихід цифрового коду, еквівалентного різниці напруг (cod_out).

library IEEE;

use IEEE. STD_LOGIC_1164. all, IEEE. Numeric_STD. all;

entity V_metr is

port (Ua: in integer range - 5 to 5;

Ub: in integer range - 5 to 5;

Reset1: in std_logic;

znak: out std_logic;

cod_out: out unsigned (3 downto 0));

end V_metr;

Нижче наведено лістинг, що описує роботу пристрою. Вузли, розроблені раніше, підключені в складі бібліотеки "RGR" (library RGR).

Так само використовуються деякі найпростіші логічні елементи (і, або), їхній опис не наводилося на увазі очевидності.

architecture A10 of V_metr is

component GLIN

port (out1: out integer range 0 to 10;

not_out1: out integer range - 10 to 0);

end component;

component comp

port (U1: in integer range - 10 to 10;

U2: in integer range - 10 to 10;

U_out: out std_logic);

end component;

component gen

port (gen_out: out std_logic);

end component;

component dif_oy

port (In1: in integer range - 5 to 5;

In2: in integer range - 5 to 5;

Out1: out integer range - 10 to 10);

end component;

component counter

port (reset: in std_logic;

up: in std_logic;

C_out: out unsigned (3 downto 0));

end component;

component And_op

port (a: in std_logic;

b: in std_logic;

z: out std_logic);

end component;

component Or_op

port (a: in std_logic;

b: in std_logic;

c: in std_logic;

z: out std_logic);

end component;

component not_op

port (a: in std_logic;

z: out std_logic);

end component;

signal Ua_b: integer range - 10 to 10;

signal GLN: integer range 0 to 10;

signal NGLN: integer range - 10 to 0;

signal GND: integer range - 10 to 10;

signal nznak, R1: std_logic;

signal K1, K2, NK1, NK2, NK1_takt, NK2_takt, clock: std_logic;

signal takt, zk1, zk2, zk1_k2, zk2_k1, Res: std_logic;

begin

u1: dif_oy port map (In1 => Ua, In2 => Ub, Out1 => Ua_b);

u2: comp port map (U1 => Ua_b, U2 => GND, U_out => nznak);

u3: not_op port map (a => nznak, z => znak);

u4: GLIN port map (out1 => GLN, not_out1 => NGLN);

u5: comp port map (U1 => Ua_b, U2 => GLN, U_out => K1);

u6: comp port map (U1 => Ua_b, U2 => NGLN, U_out => K2);

u7: Or_op port map (a => K1, b => K1, c => K1, z => NK1);

u8: not_op port map (a => K2, z => NK2);

u9: gen port map (gen_out => takt);

u10: And_op port map (a => NK1, b => takt, z => NK1_takt);

u11: And_op port map (a => NK2, b => takt, z => NK2_takt);

u12: Or_op port map (a => NK1_takt, b => NK2_takt, c => NK2_takt, z => clock);

u13: counter port map (reset => Res, up => clock, C_out => cod_out);

u14: not_op port map (a => NK1, z => zk1);

u15: not_op port map (a => NK2, z => zk2);

u16: And_op port map (a => zk1, b => NK2, z => zk1_k2);

u17: And_op port map (a => NK1, b => zk2, z => zk2_k1);

u18: Or_op port map (a => zk1_k2, b => zk2_k1, c => zk2_k1, z => R1);

u19: And_op port map (a => R1, b => Reset1, z => Res);

У результаті аналізу моделі пристрою отримана наступна тимчасова діаграма.

Малюнок 3.5 - Тимчасова діаграма, отримана при аналізі моделі пристрою

З діаграми видно, що на виході cod _ out формується цифровий код, еквівалентний різниці напруг Ua - Ub, поданих на вхід пристрою. З виходу znak знімається знак різниці: 1, якщо Ua - Ub <0 і 0 якщо Ua - Ub> = 0.

4.1 Аналіз придатності розроблених моделей для імплементації в PLD

При проектуванні цифрового пристрою, для подальшого імплементації в PLD, з'являється ряд додаткових труднощів, пов'язаних з неможливістю використання деяких типів даних і мовних конструкцій. Так само доводиться враховувати особливості імплементації для ПМЛ різних фірм і встановлювані обмеження: максимальна частота, кількість доступних елементів і т.д. Найбільш ефективним способом у цьому випадку є побудова структурних моделей з використанням бібліотек компонентів поставляються виробником конкретного типу ПМЛ. Однак у даній розрахунково-графічної роботи цього не було зроблено, тому що основною метою було - набуття навичок побудова моделей окремих вузлів і структурних моделей. У цілому при побудові моделей цифрових вузлів не використовувалися заборонені мовні конструкції і типи даних, також були враховані обмеження на кількість доступних елементів пам'яті і максимальну частоту сигналу.

Висновок

У ході виконання роботи була побудована та досліджена модель цифрового вимірювача різниці двох напруг.

Модель містить не тільки цифрові блоки, а й аналогові пристрої. Були побудовані тимчасові діаграми сигналів, по яких можна судити про особливості функціонування пристрою.

При необхідності, для більшої наочності та зручності, модель можна доповнити дешифратором і цифровим семисегментний індикатором.

Додати в блог або на сайт

Цей текст може містити помилки.

Комунікації, зв'язок, цифрові прилади і радіоелектроніка | Курсова
33.4кб. | скачати


Схожі роботи:
Цифровий вимірювач часу
Кінцеві різниці Похибки
Генератор трикутних напруг
Електронний вимірювач амплітуди УЗ-вібрацій
Допплеровский вимірювач швидкості кровотоку
Перетворювач різниці тисків Сапфир-22ДД
Зображення струмів і напруг комплексними числами
Розрахунок струмів і напруг у складному електричному колі
Дослідження електричного кола змінного струму Резонанс напруг
© Усі права захищені
написати до нас