Проектирование генератора, формирующего аналоговый сигнал

  • Вид работы:
    Курсовая работа (т)
  • Предмет:
    Информатика, ВТ, телекоммуникации
  • Язык:
    Русский
    ,
    Формат файла:
    MS Word
    273,61 Кб
  • Опубликовано:
    2013-08-07
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

Проектирование генератора, формирующего аналоговый сигнал

1. АНАЛИЗ ЗАДАНИЯ

.1 Формирование кодовой таблицы аналогового сигнала

По заданию необходимо спроектировать генератор, формирующий аналоговый сигнал, заданный на рисунке 1.

Для получения заданного аналогового сигнала на выходе генератора необходимо провести его преобразование. Обработка сигнала производится с учетом заданной частоты дискретизации Fs=45кГц, максимального напряжения Umax=4,02 В и количества отсчетов на период N=32.

Разобьем заданный сигнал на 32 временных интервала, величина которых ts определяется частотой дискретизации:

генератор сигнал микроконтроллер порт

ts=1/Fs,=1/45 кГц=0,022 мс.

Таким образом, длительность одного периода сигнала составит:

=N*ts,=32*0,022=0,704 мс.

Проекции точек, соответствующих границам временных интервалов, на ось напряжений (отсчеты), позволяют получить мгновенные значения напряжений в точках дискретизации.

Для каждого отсчета формируемого сигнала необходимо определить кодовую комбинацию, соответствующую значению выходного напряжения Uвых.

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

По заданию максимальное выходное напряжение соответствует величине 4,02 В, следовательно опорное напряжение Uref можно принять равным 5,12 В.

Значение напряжения, формируемого на выходе n-разрядного ЦАП, определяется соотношением:

выхN=DN*Uref/2n,

где Dn - десятичный эквивалент числа на входе ЦАП, соответствующий отсчету N,ref - величина опорного напряжения,

n - количество уровней квантования при n-разрядном преобразовании.

Минимальное приращение напряжения на выходе ЦАП определяется как:

∆UвыхMIN=Uref/2n,

∆UвыхMIN=5,12/256=0,02 В

Следовательно, десятичный эквивалент числа на входе ЦАП, соответствующий отсчету N, определяется соотношением:

=UвыхN/∆UвыхMIN,

Где UвыхN - значение выходного напряжения, принятое для отсчета N.

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

Рисунок 1 - Дискретизация заданного сигнала генератора

Для каждого значения DN следует определить соответствующую шестнадцатиричную кодовую комбинацию HN, округляя значения до ближайшего целого.

Результаты дискретизации аналогового сигнала, формируемого на выходе генератора, приведены в таблице 1.

Таблица 1 - Кодовая таблица выходного сигнала генератора

№ Отсчета

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

Uвых, В

0,98

1,94

2,88

3,49

3,8

3,92

4

4,02

3,98

3,88

3,72

3,5

3,44

2,74

1,15

Кодовые комбинации, HEX

30

61

90

AE

BC

C4

C7

C9

C7

C2

BA

AE

AC

88

39

№ Отсчета

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

Uвых, В

1,82

2,02

2,18

2,28

2,36

2,42

2,44

2,44

2,44

2,40

2,32

2,22

2,08

1,92

1,7

Кодовые комбинации, HEX

5B

65

6D

72

76

78

7A

7A

7A

78

74

6F

68

60

55

1.2 Общая характеристика микроконтроллера P83C51RB+

Генератор разрабатывается на базе однокристальной микро-ЭВМ Philips P83C51RB+ с рабочей частотой 33 МГц. Основные характеристики микроконтроллера приведены в таблице 2.

Таблица 2 - Основные характеристики микроконтроллера P83C51RB+

Характеристика

Микроконтроллер P83C51RB+

1

2

Технология изготовления

КМОП

Типы корпуса

PLCC44 (L44), DIP40 (D40), QFP44 (Q44)

Диапазоны рабочих температур

Коммерческий 0…+70,  Расширенный -40…+85

Резидентная память программ

16 Кбайт ROM

Резидентная память данных

512 байт

Система прерываний

7 векторов прерываний, 4 уровня прерываний

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

Три по шестнадцать бит

Параллельные порты

32 двунаправленных параллельных порта ввода и вывода

Последовательные интерфейсы

UART - универсальный асинхронный последовательный приемопередатчик

Дополнительные характеристики и особенности

dual DPTR - сдвоенный указатель данных, Enhanced UART - улучшенный последовательный порт, ONCE - тестовый режим эмуляции микроконтроллера, QUICK-PULSE -алгоритм программирования «быстрыми пульсациями», low EMI - режим понижения электромагнитных помех, CO - выход тактового сигнала, POF - флаг выключения питания, PCA - массив программируемых счетчиков. L3 - три бита защиты, WDT - сторожевой таймер.

1

2

Напряжение питания

5В±20%

Входное напряжение логического 0

UILmin =-0,5В, UILmax = 0,9В

Входное напряжение логической 1

UIHmin =1,9В, UIHmax = 5,5В

Выходное напряжение логического 0

UOLmax =0,4 В

Выходное напряжение логической 1

UOHmin =4,3 В

Входной ток логического 0

IIL =50мкА

Выходной ток логического 0

IOL=15мкА


Условное графическое обозначение микроконтроллера P83C51RB+ представлено на рисунке 2.

Рисунок 2 - УГО микроконтроллера P83C51RB+ в корпусе DIP40

Назначение выводов микроконтроллера приведены в таблице 3.

Таблица 3 - Назначение выводов микроконтроллера P83C51RB+

Имя

Назначение

1

2

P1.0…P1.7

восьмиразрядный универсальный двунаправленный порт P1

RST

вход общего сброса

P3.0…P3.7  P3.0 P3.1 P3.2 P3.3 P3.4 P3.5 P3.6 P3.7

восьмиразрядный универсальный двунаправленный порт P3, альтернативные функции: RxD - вход последовательных данных приемника TxD -выход последовательных данных передатчика INT0^ - вход внешнего прерывания 0 INT1^ - вход внешнего прерывания 1 T0 - вход таймера/счетчика 0 T1 - вход таймера/счетчика 1 WR^ - выход управляющего сигнала записи во внешнюю память данных RD^ - выход управляющего сигнала чтения из внешней память данных

XTAL1

вход усилителя резонатора и внутреннего генератора

XTAL2

Выход усилителя резонатора

P2.0…P2.7

восьмиразрядный универсальный двунаправленный порт P2

PSEN^

выход разрешения чтения внешней памяти программ

ALE

выход стробирования адреса внешней памяти

EA^

вход блокировки резидентной памяти программ

P0.0…P0.7

восьмиразрядный универсальный двунаправленный порт P0

Vcc

вход напряжения питания

Vss

общий вход, 0В


.2.1 Организация памяти и программная модель P83C51RB+

Микроконтроллеры семейства MCS-51 относятся к классу устройств с гарвардской архитектурой, т.е имеют разделенные адресные пространства памяти программ и памяти данных. Функционально и логически они разделены за счет реализации различных алгоритмов адресации и формирования разных сигналов управления. К ним относятся: внешняя память программ (ВПП), резидентная память программ (РПП), внешняя память данных (ВПД), резидентная память данных (РПД).

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

Адресация ячеек памяти программ осуществляется с использованием программного счетчика PC или регистра-указателя данных DPTR.

Объем внешней памяти данных может достигать 64 Кбайт. Для обращения к внешней памяти данных используется только косвенная адресация с помощью регистров R0 и R1 или с помощью 16-разрядного регистра-указателя DPTR. Обращение к внешней памяти данных сопровождается стробирующими сигналами чтения RD^ и записи WR^.

Структура памяти данных приведена на рисунке 3. Объем внешней памяти данных может достигать 64 кбайт.

Рисунок 3 - Структура памяти данных P83C51RB+

Резидентная память данных предназначена для хранения переменных в процессе выполнения управляющей программы. Обращение к резидентной памяти данных производится одним байтом в адресном пространстве от 00h до FFh (256 байт). К адресному пространству резидентной памяти данных примыкают адреса блока регистра специальных функций - SFR.

Рисунок 4 - Структура памяти программ P83C51RB+

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

Таблица 4 - Регистры SFR микроконтроллера P83C51RB+

Имя

Адрес

Назначение

Значение при сбросе, Bin

1

2

3

4

В*

F0h

Регистр В

00000000

АСС*

E0h

Аккумулятор

00000000

PSW*

D0h

Слово состояния программы

00000000

IP*

B8h

Регистр приоритетов прерываний

X0000000

РЗ*

B0h

Порт 3

11111111

IE*

A8h

Регистр разрешения прерываний

00000000

Р2*

A0h

Порт 2

11111111

SBUF

99h

Буфер последовательного порта

XXXXXXXX

SCON*

98h

Управление последовательным портом

00000000

Р1*

90h

Порт 1

111111111

ТН1

8Dh

Таймер/Счетчик 1. Старший байт

00000000

ТН0

8Ch

Таймер/Счетчик 0. Старший байт

00000000

TL1

8Bh

Таймер/Счетчик 1. Младший байт

00000000

TL0

8Ah

Таймер/Счетчик 0. Младший байт

00000000

TMOD

89h

Регистр режима таймера/счетчика

00000000

TCON*

88h

Регистр управления таймера/счетчика

00000000

PCON

87h

Регистр управления потреблением

00XX0000

DPH

83h

Старший байт указателя данных

00000000

DPL

82h

Младший байт указателя данных

00000000

SP

81h

Указатель стека

00000111

Р0*

80h

Порт 0

11111111

ТН2

CDh

Старший байт данных Т/С2

Старший байт данных Т/С2

TL2

CCh

Младший байт данных Т/С2

00000000

RCAP2H

CBh

Регистр хранения Т/С2, старший байт

00000000

RCAP2L

CAh

Регистр хранения Т/С2, младший байт

00000000

T2MOD

C9h

Регистр режима Т/С2

XXXXXX00

T2CON*

C8h

Регистр управления Т/С2

00000000

SADEN

B9h

Регистр маски адреса ведомого

00000000

IPH

B7h

2-й регистр приоритетов прерываний

X0000000

SADDR*

A9h

Регистр маски ведомого

00000000

AUXR

8Eh

Дополнительный регистр, запрет ALE

XXXXXXX0

ССАР4Н

FEh

Старший байт регистра сравнения/фиксации модуля 4 РСА

XXXXXXXX

FDh

Старший байт регистра сравнения/фиксации модуля 3 РСА

XXXXXXXX

ССАР2Н

FCh

Старший байт регистра сравнения/фиксации модуля 2 РСА

XXXXXXXX

ССАР1Н

FBh

Старший байт регистра сравнения/фиксации модуля 1 РСА

XXXXXXXX

ССАР0Н

FAh

Старший байт регистра сравнения/фиксации модуля 0 РСА

XXXXXXXX

СН

F9h

Старший байт таймера/счетчика РСА

00000000

CCAP4L

EEh

Младший байт регистра сравнения/фиксации модуля 4 РСА

XXXXXXXX

CCAP3L

EDh

Младший байт регистра сравнения/фиксации модуля 3 РСА

XXXXXXXX

CCAP2L

ECh

Младший байт регистра сравнения/фиксации модуля 2 РСА

XXXXXXXX

CCAP1L

EBh

Младший байт регистра сравнения/фиксации модуля 1 РСА

XXXXXXXX

CCAP0L

EAh

Младший байт регистра сравнения/фиксации модуля 0 РСА

XXXXXXXX

CL

E9h

Младший байт таймера/счётчика РСА

00000000

ССАРМ4

DEh

Регистр режима модуля 4 РСА

X0000000

ССАРМ1

DBh

Регистр режима модуля 1 РСА

X0000000

ССАРМ0

DAh

Регистр режима модуля 0 РСА

X0000000

CMOD

D9h

Регистр режима РСА

00XXX000

CCON

D8h

Регистр управления РСА

00X00000

AUXR1

A2h

Старший байт указателя данных DPTR1

00000000

DPH1

85h

Старший байт указателя данных DPTR1

00000000

DPL1

84h

Младший байт указателя данных DPTR1

00000000

WDTRST

A6h

Регистр охранного таймера WDT

00000000

* - возможность побитной адресации.

.2.2 Параллельные порты ввода/вывода

В микроконтроллере имеется 4 многофункциональных 8-битовых порта ввода/вывода Р0, Р1, Р2 и Р3, предназначенные для обмена информацией с различными внешними устройствами, такими, как внешняя память программ и данных. Каждый порт является фиксатором-защелкой и может адресоваться как побайтно, так и побитно.

Порт P0 - двунаправленный порт ввода/вывода, выходные каскады с открытым стоком. Через порт Р0 выводится младший байт адреса, а также выдается и принимается в микроконтроллер байт данных при работе с внешней памятью программ/данных. Также задаются данные при программировании внутренней памяти программ и читается ее содержимое.

Порт Р1 является двунаправленным портом ввода/вывода, выходные каскады которого «подтянуты» к единице внутренними нагрузочными резисторами. Линии P1.0 и P1.1 используются для обслуживания третьего счётчика/таймера (T/C2).

Через порт Р2 выводится старший байт адреса (разряды А8-А15) внешней памяти программ и данных.

Все порты могут быть использованы для организации ввода/вывода информации по двунаправленным линиям передачи. Однако порты 0 и 2 не могут быть использованы для этой цели в случае, если система имеет внешнюю память, связь с которой организуется через общую разделяемую шину адреса/данных, работающую в режиме временного мультиплексирования.

Альтернативные функции порта 3 представлены в таблице 5

Таблица 5 - Альтернативные функции Р3

Бит

Мнемоника

Назначение

P3.0

R´D

Вход данных последовательного порта

P3.1

T´D

Выход передатчика последовательного порта

P3.2

INT0

Внешнее прерывание 0

P3.3

INT1

Внешнее прерывание 1

P3.4

T0

Внешний вход Т/С0

P3.5

T1

Внешний вход Т/С1

P3.6

WR

Строб записи во ВПД

P3.7

RD

Строб чтения из ВПД


В схеме генератора сигнала порты Р0 и Р2 используются при обращении к внешней памяти. Порт Р1 используется для организации управления работой генератора и индикации.

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

В составе микроконтроллера имеются независимые программно-управляемые таймеры/счётчики событий Т/С0, Т/С1 и Т/С2. Они функционируют на основе регистровых пар TH0, TL0, TH1, TL1 и TH2, TL2.

При работе в качестве таймера содержимое T/C инкрементируется в каждом машинном цикле, через каждые 12 периодов резонатора.

При работе в качестве счётчика содержимое T/C инкрементируется под воздействием перехода из 1 в 0 внешнего входного сигнала, подаваемого на соответствующий (T0, T1) вход микроконтроллера. Опрос сигналов выполняется в каждом машинном цикле. Так как на распознавание перехода требуется два машинных цикла, то максимальная частота подсчёта входных сигналов равна 1/24 частоты резонатора. На длительность периода входных сигналов ограничений сверху нет. Для гарантированного прочтения входного считываемого сигнала он должен удерживать значение 1 как минимум в течение одного машинного цикла.

Для управления режимами работы и для организации взаимодействия таймеров T/C0 и T/C1 с системой прерываний используются регистры специальных функций TMOD и TCON.

Таблица 6 - Формат регистра TMOD

7

6

5

4

3

2

1

0

GATE

C\T

M1

M0

GATE

C\T

M1

M0

T\C1

T\C0


Назначение битов M1, M0, если M1, M0 равны 0 то режим 0, если M1=0, M0=1 то режим 1, если M1=1, M0=0 то режим 2, если M1, M0 равны 1 то режим 3.

Бит C\T, если C\T=1 то счётчик, если C\T=0 то таймер.

Бит GATE- управление режимом блокировки.=1 таймер/счётчик разрешён, если вход INT0=1(аппаратное разрешение).=0 таймер/счётчик разрешён, если бит разрешения TR0 в регистре TCON=1(программное разрешение).

Таблица 7 - Формат регистра TCON

7

6

5

4

3

2

1

0

TF1

TR2

TF0

TR0

IE1

IT1

IE0

IT0

К таймерам

К прерыванию


Бит IT, управление типом внешнего прерывания, 1-прерывание по срезу, 0- прерывание по уровню

Бит IE- флаг прерывания по внешнему уровню, флаг IE устанавливается в 1 при переходе запроса на соответствующий внешний уровень.

Бит TR управление работой таймера/счетчика TR0=0-остановка, TR0=1-работа.

Бит TF флаг переполнения таймера, 1- переполнение таймера, 0 нет переполнения, формируется запрос на прерывание при переполнении таймера.

Для таймер/счетчиков режимы работы 0, 1 и 2 одинаковы, режимы 3 различны.

Режим 0. Соответствует тринадцатиразрядному таймеру-счетчику, который состоит из регистра THx и пяти младших битов регистра TLx, выполняющего функцию предделителя частоты на 32.

Режим 1. В этом режиме TL0 и TH0 образуют единый 16 разрядный регистр При переходе из состояния «все единицы» в состояние «все нули», устанавливается флаг переполнения в регистре TCON и таймер продолжает счёт с нуля.

Режим 2. При переходе из состояния «все единицы» в состояние «все нули» 8-битного счётчика TL1 приводит не только к установке флага TF1, но и автоматически перезагружает в TL1 содержимое старшего байта (TH1) таймерного регистра, которое предварительно было задано программным путем. Перезагрузка оставляет содержимое TH1 неизменным.

Режим 3. Используется редко. T1 останавливается, T0 работает как два незавимимых 8 битных таймера/счётчика.

Длительность формирования каждой кодовой комбинации определяется таймером/счетчиком T0 микроконтроллера. При переполнении таймера формируется запрос прерывания, в процессе обслуживания которого микроконтроллер читает из памяти и выводит в порт следующую кодовую комбинацию и начинает отсчет длительности следующего такта.

Определим количество машинных циклов, соответствующих временному интервалу ts при заданной рабочей частоте  микроконтроллера. Длительность одного машинного цикла при тактовой частоте 33 МГц составит:

,

.

Определим количество машинных циклов М, необходимых для формирования временного интервала 22 мкс:

,

.

Наиболее удобным режимом работы таймера T0 является Режим 2, обеспечивающий автоматическую перезагрузку регистра TL0 при переполнении. Перед включением таймера в регистр TH0 необходимо записать число Х, с которого начинает счет регистр TL0 (начальную уставку таймера). Так как счет производится по возрастанию, значение числа Х, соответствующее отсчету 60 машинных циклов до переполнения таймера (значение FFh+1), определяется выражением:

,

.

Таким образом, перед первым включением таймера T0 необходимо определить его режим работы, установив значения соответствующих битов в регистре TMOD, и запись в регистры TL0 и TH0 начальную установку С4h.

.2.4 Система прерываний P83C51RB+

Микроконтроллер P83C51RB+ имеет четырехуровневую систему прерываний, поддерживает семь векторов прерывания.

Внешние прерывания INT0^ и INT1^ могут быть вызваны уровнем, либо переходом сигнала из 1 в 0 на входах P83C51RB+ в зависимости от значений управляющих бит IT0 и IТ1 в регистре TCON. От внешних прерываний устанавливаются флаги IE0 и IE1 в регистре ТСОN, которые инициируют вызов соответствующей программы обслуживания прерывания. Сброс этих флагов выполняется аппаратно только в том случае, если прерывание было вызвано по переходу (срезу) сигнала. Если же прерывание вызвано уровнем входного сигнала, то для сброса флага IE соответствующая подпрограмма обслуживания прерывания должна воздействовать на источник прерывания, чтобы он снял свой запрос.

Таблица 8 - Структура системы прерываний.

Источник

Приоритет опроса

Флаг запроса

Назначение

Векторный адрес

1

2

3

4

5

Х0

1

IE0

Внешнее событие на выводе INT0

03Н

Т0

2

TF0

Переполнение T/C0

0ВН

Х1

3

IE1

Внешнее событие на выводе INT1

13Н

Т1

4

TF1

Переполнение T/C1

1ВН

6

RI, TI

Последовательный порт: приём или передача

23Н

Т2

5

TF2, EXF2

Прерывание от T/C2

2ВН

РСА

7

CF, CCFn, n=0…4

Прерывание от PCA

33Н


Таблица 9 - Приоритеты прерываний

Биты приоритета

Уровень приоритета прерываний

IPH.x

IP.x


0

0

Уровень 0 (низкий)

0

1

Уровень 1

1

2

3

1

0

Уровень 2

1

1

Уровень 3 (высокий)


Каждое из прерываний может быть индивидуально разрешено или запрещено установкой или сбросом соответствующих битов в регистре IE. В этом регистре также присутствует бит глобального (одновременного) запрещения всех прерывании вне зависимости от состояния соответствующего бита индивидуального разрешения/запрещения.

Таблица 10 - Регистр IE

БИТ

СИМВОЛ

ФУНКЦИЯ

IE.7

EA

Бит глобального разрешения/запрещения прерывания. Если ЕА=0, все прерывания запрещены. Если ЕА=1, каждое из прерываний может быть индивидуально разрешено или запрещено установкой или сбросом его индивидуального бита разрешения прерывания.

IE.6

ЕС

Не используется

IE.5

ЕТ2

Бит индивидуального разрешения прерывания от таймера/счетчика 2

IE.4

ЕS

Бит индивидуального разрешения прерывания от последовательного приемопередатчика

IE.3

ЕТ1

Бит индивидуального разрешения прерывания от таймера/счетчика 1

IE.2

ЕХ1

Бит индивидуального разрешения прерывания от внешнего сигнала 1

IE.1

ЕТ0

Бит индивидуального разрешения прерывания от таймера/счетчика 0

IE.0

ЕХ0

Бит индивидуального разрешения прерывания от внешнего сигнала 0


Каждому из источников прерываний путем установки или сброса соответствующего бита в регистр IP может быть программно присвоен высокий или низкий уровень приоритета, приоритетом может в свою очередь быть прервана подпрограмма обслуживания прерывания с высоким приоритетом.

Для организации обслуживания прерывания необходимо в ячейку памяти программ с адресом 0Вh (вектор прерывания таймера Т0) записать код команды безусловного перехода к подпрограмме обработки прерывания таймера Т0.

.3

Похожие работы на - Проектирование генератора, формирующего аналоговый сигнал

 

Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!