Студенческий сайт КФУ - ex ТНУ » Учебный раздел » Учебные файлы »Коммуникации и связь

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

Тип: контрольная работа
Категория: Коммуникации и связь
Скачать
Купить
Разработка проекта контроллера, осуществляющего преобразование двоичной последовательности из фиксированного числа байт в ЧМ-сигнал. Выбор компонентов преобразователя. Микроконтроллер ATtiny2313. Микросхема интерфейса RS-232. Листинг микроконтроллера.
Краткое сожержание материала:

Размещено на

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

Введение

Микроконтроллер (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 Files\Atmel\AVR Tools\AvrAssembler\Appnotes\2313def.inc»

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

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

DSEG

ORG 0xc0

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

EQU sp_ini = stack+0x0f

CSEG

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

ORG 0x00

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

ORG 0x06

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

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

RESET:

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

out SPL, r16

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

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

out DDRB, r16

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

out TCNT1, r16

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

out TCCR1, r16

ldi r16,0x02

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, 0x30; если: 0

breq next1;

brne wait1

next1: uart_rcv

cpi r16, 0x31; если: 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,0x03

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,0x01; частота синхронизации 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,0x07

out TCCR1B, r16

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

clr r16

out TCNT1, r16

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

out TCCR1A, r16

ldi r16,0x07

out TCCR1B, r16

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

...
Другие файлы:

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

Вычислительные системы и программное обеспечение
Основные понятия: числовая форма, двоичная система счисления, бит, байт, слово, файл, папка, персональный компьютер, программное обеспечение, операцио...

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

Автоматизация типовых технологических процессов и установок
Следящий электропривод, следящая система, обеспечивающая воспроизведение некоторых механических перемещений на управляемом объекте посредством исполни...

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