Рефераты. Цифровой осциллограф






VDD  - напряжение питания от 2.7 В до 5.5 В.

VSS – общий вывод.

D0 - D7 – шина данных. Контакты входа/выхода на три состояния. Подключаются к микропроцессорной шине данных.

SEL1 и SEL2 – контакты выбора интерфейса микропроцессора (таблица 3.2).


Таблица 3.2 – Виды интерфейсов, поддерживаемые контроллером SED1335

SEL1

SEL2

Интерфейс

A0

RD

WR

CS

0

0

Семейство 8080

A0

RD

WR

CS

1

0

Семейство 6800         

A0

E

R/W

CS


A0 – выбор типа данных. А0, в конъюнкции с сигналами RD и WR или R/W и Е, контролирует тип доступа к SED1335F, как показано ниже в таблице 3.3.   


Таблица 3.3 – Функции, поддерживаемые контроллером SED1335, настроенного на интерфейс семейства 8080

А0

RD

WR

Функция

 0

0

1

Чтение флага статуса

 1

0

 1

Чтение данных дисплея и адрес курсора

 0

1

 0

Запись данных дисплея и параметров

 1

1

0

Запись команды


RD или E – сигнал чтения или разрешения. Когда выбран интерфейс семейства 8080, этот сигнал действует как активный низко уровневый строб-импульс чтения.     

WR или R/W – сигнал записи. Когда выбран интерфейс семейства 8080, этот сигнал действует как активный низко уровневый строб-импульс чтения. Шина данных защёлкивается по переднему фронту этого сигнала.

CS - выбор чипа. Этот активный по низкому уровню вход разрешает SED1335F.

RES – сброс. Этот активный по низкому уровню вход осуществляет аппаратный сброс SED1335F.

Схема представлена на рисунке 3.8.


Рисунок 3.8 – Схема подключения ЖКД

  4. Описание работы устройства

Аналоговый сигнал подаётся на вход Ain1 или Ain2. Сигнал ослабляется или усиливается по амплитуде в зависимости от заданного количества вольт на деление. После этого он преобразуется в дифференциальную форму трансформатором. И затем попадает на аналоговый вход АЦП. АЦП оцифровывает сигнал и каждые 25 нс на цифровых выходах АЦП появляется цифровой код соответствующий определённому уровню напряжения. Этот цифровой код считывается МК и записывается в память XRAM через промежуток времени, зависящий от количества секунд на деление. То есть происходит прореживание цифрового кода.

После записи в память, МК не реагирует ни на какие прерывания, а выводит информацию о сигнале в виде осциллограммы на ЖКД. После вывода одного кадра происходит считывание следующего кадра с выходов АЦП.


















5 Описание программы для микроконтроллера

Разработка программы для МК C8051F120 фирмы Silicon Laboratories с системой команд совместимой с MCS – 51 проводилось с помощью программного продукта Keil mVision2 версии 2.40a, симулирующего работу МК.

Программа состоит из блока настройки портов ввода – вывода, генератора, периферийных устройств, прерываний, ЖКД и подпрограммы для ввода данных с АЦП - InputADC. На рисунке 5.1 показана блок – схема алгоритма программы для МК.

Используемые в программе переменные:

–       kfn – коэффициент частоты дискретизации (n=1 или 2 – номер канала);

–       CoefAmplif – содержит число выводимое в порт P6 для задания коэффициента усиления;

–       i – переменна – счётчик;

–       Num – переменная, используема для записи в XRAM последовательности чисел;   

–       Switch – порт, управляющий аналоговыми коммутаторами;

–       Button_kf – порт, к которому подключены кнопки задающие kf

–       Button_CefAmplif - порт, к которому подключены кнопки задающие CefAmplif

–       Padc1 – АЦП канал 1;

–       Padc2 – АЦП канал 2;

Сначала программа подключает файл с определением регистров специального назначения, которые имеются в данном микроконтроллере. Регистрам общего назначения присваиваются имена переменных приведённых выше. Порты P4 и P5 подключены к цифровым выходам АЦП и настроены как цифровые входы с открытым стоком. С помощью приоритетного декодера матрицы на разряд P0.0 выводится сигнал тактирования АЦП с частотой SYSCLK/4 (SYSCLK=100 МГц).  

В переменную kf производится запись в младшие четыре разряда – коэффициента kf1 для задания частоты дискретизации сигнала с канала 1 и в старшие четыре разряда -  коэффициента kf2 для задания частоты дискретизации сигнала с канала 2. Связь значения коэффициента и частоты дискретизации приведена в таблице 3.1 (n=1 или 2).

Таблица 5.1 – Связь коэффициента частоты и периода дискретизации

kfn

f, Гц

T, с

TimeOnDiv

1

10М

100н

4 мкс

2

200н

5 мкс

3

2.5М

400н

10 мкс

4

500к

2мк

50 мкс

5

250к

4мк

100 мкс

6

50к

20мк

500 мкс

7

25к

40мк

1 мс

8

200мк

5 мс

9

2.5к

400мк

10 мс

10

500

50 мс

11

250

100 мс

        

Частота дискретизации соответствующая количеству секунд на деление определяется по формуле:


   ,                         (3.3)

где  n – количество байт содержащих информацию об уровне сигнала;  

       TimeOnDiv – количество секунд на деления;

       tmax и tmin – границы временного интервала.

            Скорость работы МК позволяет сохранять информацию  о сигнале за 90 нс. Поэтому максимальная частота дискретизации сигнала


                                             (5.1) .

Необходимая частота дискретизации сигнала задаётся с помощью задания задержки между считываниями данных с АЦП. Для создания задержки используется таймер TMR3. Таймер тактируется системным тактовым сигналом, и изменение значения таймера на 1 происходит каждые 10 нс. Для создания необходимой задержки в таймер записывается число, с  которого он начинает счёт. Флаг переполнения таймера проверяется до тех пор, пока таймер не переполнится. Таким образом, создаётся задержка с точностью до 10 нс.

В переменную CoefAmplif загружается байт данных, содержащий информацию о коэффициенте усиления и о виде измеряемого напряжения (переменного или постоянного). Биты 7 и 6 управляют ключами S2A и S2C соответственно, которые подключают или отключают конденсатор. Биты 5, 4, 3 и 2, 1, 0 задают коэффициент усиления или ослабления Ku для канала 1 и канала 2 соответственно.

Связь Ku и вида измеряемого напряжения с числом в переменной  CoefAmplif приведена в таблице 5.2 (n=1 или 2 – номер канала).

Таблица 5.2 – Зависимость Ku и вида напряжения от CoefAmplif

CoefAmplif

Вид напряжения

Kun

XX 000 000

X

1/2

XX 001 001

X

1/5

XX 010 010

X

1/10

XX 011 011

X

10

XX 100 100

X

1

XX 000 000

DC

X

XX 000 000

AC

X


         Ниже представлена блок-схема программы для МК.



Рисунок 5.1 – Блок схема алгоритма программы для МК



Ниже приведено более подробное описание настройки контроллера SED1335.

После вывода кода 40h (команда «System Set») на шину данных контроллера, производится вывод восьми байтов (P1 – P8), содержащих параметры команды.

В программе задаются следующие значения этих параметров:

P1=30h.

M0=0 - внутренний генератор символов ROM.

М1=0 - генератор символов RAM1; 32 знака.

М2=0 - высота символа 8 пикселов (2716 или эквивалент ROM).

W/S=0 -  однопанельное управление

IV=1- нет коррекции верхней строки экрана (нет смещения)      

T/L=1 - режим ТВ

DR=0 - нормальная операция

P2=87h.

FX=7h - ширина символа равна 8 пикселей.

WF=1 - двухкадровое управление АС

P3 = FY= 07h - высота символа равна 8 пикселей.

P4 = С/R = 27h - адресный диапазон равен 40 байтов на одну строку дисплея.

P5 = TC/R =39h - длина строки равна 58 байтов.

P6 = L/F = EFh -  количество линий на кадр равно 240.

P7 = AL = 28h и P8 = AH = 0 - горизонтальный адресный диапазон (текстовый) равен 40.

Значения параметров команды «Scroll» (код 44hрр):

P1 = SAD 1L = 0 и P2 = SAD1H = 0 - начальный адрес первого экранного блока прокрутки.

P3 = SL1 = P6 = SL2 = EFh - 255 строк на прокручиваемый блок.

P4 = SAD2L = B0h и P5 = SAD2H = 04h - начальный адрес второго блока прокрутки.

P7 = SAD3L = 0h и P8 = SAD3H = 0h - начальный адрес третьего блока прокрутки.

P9 = SAD4L = 0h и P10 = SAD4H = 0h - начальный адрес четвёртого блока прокрутки.

Значения параметров команды «CURSOR FORM» (код 5Dhрр):

P1= CRX = 04hширина курсора равна 5 пикселей.

P2 = 86h.

CRY = 6h - высота курсора равна 7 пикселей

CM = 1 – блочный курсор.

Далее выставляется команда  «CURSOR DIRECTION» с кодом  4Сhрр. Два младших бита кода команды CD1 и CD2 сброшены, поэтому курсор будет двигаться вправо.

Значения параметра команды «HORIZONTAL SCROLL RATE» (код 5Ahрр):

P1 = 0 – ноль пикселей для прокрутки.

Значения параметра команды «OVERLAY» (код 5Ahрр): P1 = 01h.

MX0 = 0 и MX1 = 1 - метод композиции наслоённого экрана следующий: (L1 and L2) or L3.

DM1 = DM2 = 0 – текстовый режим отображения блоков экрана 1 и 3, соответственно.

         Командой «DISPLAY ON/OFF» (код 59h)  включается дисплей (P1=16h).

         Изображение выводится на дисплей сканированием его памяти. Курсор двигается слева направо и сверху вниз. Каждый бит в памяти соответствует пикселю на дисплее. Контроллер настроен так, что ширина горизонтальной линии равна 40 байтов (40*8=320) и этих линий 240. Контроллер сканирует память дисплея, пока не достигнет конца ряда, а потом переходит на следующий ряд. То есть адрес начала ряда  с номером n равен 40*n или 28h*n.

         Информация о сигнале с канала 1 хранится в XRAM микроконтроллера по адресу 000h – 0F0h (240 байтов).

         Для отображения осциллограммы по вертикали нужно 256 пикселей, так как АЦП 8 – ми разрядный. По горизонтали будем использовать 240 пикселей. То есть размер графического экрана равен байтов. Эти байты будут храниться в XRAM по адресу 0200h – 1FFFh.

         Коду 0 соответствует напряжение -0.512 В, а коду 255 соответствует напряжение +0.512 В. Коду 128 – напряжение 0 В. В каждом байте, которые хранятся по адресу 000h – 0F0h содержится номер пикселя в строке дисплея, который нужно зажечь. Адрес байта – это номер строки (Рисунок 5.2).

Рисунок 5.2 – Соответствие байтов памяти дисплея и положения пикселей на дисплее.

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

           

Перед выводом осциллограммы посылается команда с кодом 46h «CSRW» - установка адреса курсора. У неё два параметра – два байта шестнадцатиразрядного адреса. Мы устанавливаем курсор в начало графической страницы.

Осциллограмма выводится путём подачи команды «MWRITE» контроллеру SED1335. После выставления кода команды 42h производится посылка байтов данных в память дисплея.

         Текст программы представлен в приложении A. В программе приведена только подпрограмма InputADC1, так как подпрограмма InputADC2 – такая же.

Изменены лишь названия переменных.

 

Рисунок 5.3 – Блок схема алгоритма подпрограммы WrComm и WrData

         240 команд идущих подряд, записывающих данные с АЦП с частотой дискретизации 10 МГц также не приведены.

 

ПРИЛОЖЕНИЕ A

 

Программа для МК цифрового осциллографа.

;--------------------------------------------------------------------------------

;     НГТУ РЭФ Кафедра ЭП  2006г.


;     Азанов М.А. РЭ3-11


;     FILE NAME   : dig_osc.asm

;     TARGET MCU  : C8051F120

;     DESCRIPTION : Программа для МК цифрового осциллографа.

;     NOTES       : Прием данных с АЦП, сохранение выборки в памяти, вывод данных

;                   на ЖКИ, прием данных о параметрах сигнала и установка нужной

;                   частоты дискретизации и уровня сигнала

;----------------------------------------------------------------------------------



$include (c8051f120.inc) 


;-------------------------

;Объявление переменных

;-------------------------


kf equ      R0    ;коэффициент частоты дискретизации


; kfn f        Т

; 1    10М     100н            

; 2    5М      200н

; 3   2.5М     400н

; 4  500к     2мк

; 5  250к     4мк

; 6    50к     20мк

; 7    25к     40мк

; 8    5к      200мк

; 9   2.5к     400мк

;10   500      2м

;11   250      4м


CoefAmplif equ R2  ;коэффициент усиления 

i equ R3           ;переменная - cчётчик1

Num equ R4

kf1 equ R5

kf2 equ R6


switch equ P2      ;порт, управляющий аналоговыми коммутаторами


Button_kf equ P6

Button_CoefAmplif equ P7


Padc1 equ P4         ;АЦП канал 1

Padc2 equ P5         ;АЦП канал 2



;-----------------------------------------------------------------------------

; Векторы прерывания и сброса

;-----------------------------------------------------------------------------


      cseg AT 0   ;Определение сегмента в адресном пространсве CODE по адресу 0

      jmp Config      ;Относительный переход на Config


;------------------------------------

; Объявленеие сегмента Main

;------------------------------------


Main segment CODE ;объявление сегмента Main, имеющего класс памяти CODE

     rseg Main          ;выбор сегмента Main

Страницы: 1, 2, 3



2012 © Все права защищены
При использовании материалов активная ссылка на источник обязательна.