Преобразователь двоичной последовательности из фиксированного числа байт в ЧМ-сигнал

Тип работы:
Контрольная
Предмет:
Коммуникации, связь, цифровые приборы и радиоэлектроника


Узнать стоимость

Детальная информация о работе

Выдержка из работы

Преобразователь двоичной последовательности из фиксированного числа байт в ЧМ-сигнал

Введение

Микроконтроллер (MCU) — микросхема, предназначенная для управления электронными устройствами. Типичный микроконтроллер сочетает в себе функции процессора и периферийных устройств, может содержать ОЗУ и ПЗУ. По сути, это однокристальный компьютер, способный выполнять простые задачи. Использование одной микросхемы, вместо целого набора, как в случае обычных процессоров, применяемых в персональных компьютерах, значительно снижает размеры, энергопотребление и стоимость устройств, построенных на базе микроконтроллеров.

1. Микроконтроллер ATtiny2313

8 битный AVR микроконтроллер с 2 КБ программируемой в системе Flash памяти

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

AVR RISC архитектура

AVR — высококачественная и низкопотребляющая RISC архитектура

120 команд, большинство которых выполняется за один тактовый цикл

32 8 битных рабочих регистра общего применения

Полностью статическая архитектура

ОЗУ и энергонезависимая память программ и данных

2 КБ самопрограммируемой в системе Flash памяти программы, способной выдержать 10 000 циклов записи / стирания

128 Байт программируемой в системе EEPROM памяти данных, способной выдержать 100 000 циклов записи / стирания

128 Байт встроенной SRAM памяти (статическое ОЗУ)

Программируемая защита от считывания Flash памяти программы и EEPROM памяти данных

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

Один 8 — разрядный таймер / счетчик с отдельным предделителем

Один 16-разрядный таймер / счетчик с отдельным предделителем, схемой сравнения, схемой захвата и двумя каналами ШИМ

Встроенный аналоговый компаратор

Программируемый сторожевой таймер со встроенным генератором

USI — универсальный последовательный интерфейс

Полнодуплексный UART

Специальные характеристики микроконтроллера

Встроенный отладчик debugWIRE

Внутрисистемное программирование через SPI порт

Внешние и внутренние источники прерывания

Режимы пониженного потребления Idle, Power-down и Standby

Усовершенствованная схема формирования сброса при включении

Программируемая схема обнаружения кратковременных пропаданий питания

Встроенный откалиброванный генератор

Порты ввода — вывода и корпусное исполнение

18 программируемых линий ввода — вывода

20 выводной PDIP, 20 выводной SOIC и 32 контактный MLF корпуса

Диапазон напряжения питания

от 1.8 до 5.5 В

Рабочая частота

0 — 16 МГц

Потребление

Активный режим:

300 мкА при частоте 1 МГц и напряжении питания 1.8 В

20 мкА при частоте 32 кГц и напряжении питания 1.8 В

Режим пониженного потребления

0.5 мкА при напряжении питания 1.8 В

2. Микросхема интерфейса RS-232

Широко используемый последовательный интерфейс синхронной и асинхронной передачи данных, определяемый стандартом EIA RS-232-C и рекомендациями V. 24 CCITT. Изначально создавался для связи компьютера с терминалом. В настоящее время используется в самых различных применениях.

Max232 — это преобразователь уровня напряжения. Интерфейс RS232 использует ±10V, а Max232 преобразует их в 0−5V.

Алгоритм работы ПО МК:

Программа в микроконтроллере выполняется в бесконечном цикле (wait1). В данном цикле происходит прием байт с UART и их анализ. Для отправки ЧМ последовательности необходимо, чтобы с UART поступила команда 01C, далее происходит переход на процедуру отправки ЧМ сигнала (меняется частота таймера).

/

3. Листинг микроконтроллера

INCLUDE «C: Program FilesAtmelAVR ToolsAvrAssemblerAppnotes2313def. inc»

; спецификацией регистров ввода / вывода

EQU A_LINE = 0; линия PORTB, соответствующая сигналу A

DSEG

ORG 0xc0

stack:. BYTE 0×10; область стека

EQU sp_ini = stack+0x0f

CSEG

; ========= Таблица векторов прерываний

ORG 0×00

rjmp RESET; вектор прерывания RESET

ORG 0×06

rjmp OVR0_isr; вектор прерывания по переполнению Timer0

; ========= Основная программа

RESET:

ldi r16, sp_ini; инициализация указателя стека

out SPL, r16

sbi PORTB, A_LINE; установить A в 1

ldi r16,0×07; разрешить PB. 0, PB. 1, PB.2 как выходы

out DDRB, r16

clr r16; занести 0 в счетчик Timer0

out TCNT1, r16

ldi r16,0×02; частота синхронизации Timer0 = Fosc/8

out TCCR1, r16

ldi r16,0×02

out TIMSK, r16; разрешить прерывание по переполнению Timer0

; Прерывания разрешены, прием-передача разрешен.

ldi r16, (1< <RXEN)|(1<<TXEN)|(1<<RXCIE)|(1<<TXCIE)|(0<<UDRIE)

out UCSRB, r16

; Формат кадра — 8 бит, пишем в регистр UCSRC, за это отвечает бит селектор

ldi r16, (1< <URSEL)|(1<<UCSZ0)|(1<<UCSZ1)

out UCSRC, r16

sei; глобальное разрешение прерываний

rjmp wait1; пустой цикл (ожидание прерывания и прием байтов с UART)

; ========== Процедура отправки байта ==========

UART_send: sbis UCSRA, UDRE; Пропуск если нет флага готовности

rjmp uart_snt; ждем готовности — флага UDRE

out UDR, r0; шлем байт

ret; Возврат

; ========== Ожидание байта ==========

uart_rcv: SBIS UCSRA, RXC; Ждем флага прихода байта

RJMP uart_rcv; вращаясь в цикле

IN R16, UDR; байт пришел — забираем.

INC uart_counter; увеличиваем счётчик принятых байт

RET; Выходим. Результат в R16

; ========== Обработчик прерывания по переполнению Timer0

OVR0_isr:

in r16, SREG; сохранение в стеке регистра статуса

push r16

sbis PORTB, A_LINE

rjmp OVR0_m1

; 1-е состояние: A==1, B==0, C==0

cbi PORTB, A_LINE; A=0

pop r16; восстановление из стека регистра статуса

out SREG, r16

reti; конец обработчика прерывания

wait1:

uart_rcv; принимаем байт

cpi r16, 0×30; если: 0

breq next1;

brne wait1

next1: uart_rcv

cpi r16, 0×31; если: 1

breq next2

brne wait1

next2: uart_rcv

cpi r16, 0xC; если: C символ С-конец сообщения

breq send1

brne wait1

rjmp wait1

; перенастройка частоты на 200, затем на 500 Гц

send1:

clr r16; старт сигнал

out TCNT1, r16

ldi r16,0xE8; частота синхронизации Timer1 1000 Гц

out TCCR1A, r16

ldi r16,0×03

out TCCR1B, r16

rjmp VR0_isr; отправляем сигнал

rjmp wait1

clr r16

out TCNT1, r16

ldi r16,0xC8; частота синхронизации Timer1 200 Гц

out TCCR1A, r16

clr TCCR1B

rjmp VR0_isr; отправляем сигнал

clr r16

out TCNT1, r16

ldi r16,0×01; частота синхронизации Timer1 500 Гц

out TCCR1A, r16

ldi r16,0xF4

out TCCR1B, r16

rjmp VR0_isr; отправляем сигнал

clr r16

out TCNT1, r16

ldi r16,0xD0; частота синхронизации Timer1 2000 Гц

out TCCR1A, r16

ldi r16,0×07

out TCCR1B, r16

rjmp VR0_isr; отправляем сигнал

clr r16

out TCNT1, r16

ldi r16,0xD0; частота синхронизации Timer0 2000 Гц

out TCCR1A, r16

ldi r16,0×07

out TCCR1B, r16

rjmp VR0_isr; отправляем сигнал

rjmp wait1

Перечень элементов

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

Кол-во

Условное обозначение

Микросхемы

ATiny2313

1

D1

MAX232

1

D2

контроллер преобразование листинг двоичный

Заключение

В процессе работы был разработан проект контроллера осуществляющего преобразование двоичной последовательности из фиксированного числа байт в ЧМ-сигнал.

Список литературы

1. Конспект лекций по курсу микроконтроллеры 2011 г.

2. Микроконтроллеры AVR Методическое пособие к лабораторному практикуму для студентов II-IV курсов АВТФ

ПоказатьСвернуть
Заполнить форму текущей работой