Преобразователь двоичной последовательности из фиксированного числа байт в ЧМ-сигнал
Преобразователь
двоичной последовательности из фиксированного числа байт в ЧМ-сигнал
Введение
Микроконтроллер (MCU) - микросхема, предназначенная для управления электронными
устройствами. Типичный микроконтроллер сочетает в себе функции процессора и
периферийных устройств, может содержать ОЗУ и ПЗУ. По сути, это однокристальный
компьютер, способный выполнять простые задачи. Использование одной микросхемы,
вместо целого набора, как в случае обычных процессоров, применяемых в
персональных компьютерах, значительно снижает размеры, энергопотребление и
стоимость устройств, построенных на базе микроконтроллеров.
1.
Микроконтроллер ATtiny2313
битный AVR микроконтроллер с 2 КБ
программируемой в системе Flash памяти
Характеристики:RISC архитектура-
высококачественная и низкопотребляющая RISC архитектура
команд, большинство которых
выполняется за один тактовый цикл
8 битных рабочих регистра общего
применения
Полностью статическая архитектура
ОЗУ и энергонезависимая память
программ и данных
КБ самопрограммируемой в системе
Flash памяти программы, способной выдержать 10 000 циклов записи / стирания
Байт программируемой в системе
EEPROM памяти данных, способной выдержать 100 000 циклов записи / стирания
Байт встроенной SRAM памяти
(статическое ОЗУ)
Программируемая защита от считывания
Flash памяти программы и EEPROM памяти данных
Характеристики периферии
Один 8 - разрядный таймер / счетчик
с отдельным предделителем
Один 16-разрядный таймер / счетчик с
отдельным предделителем, схемой сравнения, схемой захвата и двумя каналами ШИМ
Встроенный аналоговый компаратор
Программируемый сторожевой таймер со
встроенным генератором- универсальный последовательный интерфейс
Полнодуплексный UART
Специальные характеристики
микроконтроллера
Встроенный отладчик debugWIRE
Внутрисистемное программирование
через SPI порт
Внешние и внутренние источники
прерывания
Режимы пониженного потребления Idle,
Power-down и Standby
Усовершенствованная схема
формирования сброса при включении
Программируемая схема обнаружения
кратковременных пропаданий питания
Встроенный откалиброванный генератор
Порты ввода - вывода и корпусное
исполнение
программируемых линий ввода - вывода
выводной PDIP, 20 выводной SOIC и 32
контактный MLF корпуса
Диапазон напряжения питания
от 1.8 до 5.5 В
Рабочая частота
- 16 МГц
Потребление
Активный режим:
мкА при частоте 1 МГц и напряжении
питания 1.8 В
мкА при частоте 32 кГц и напряжении
питания 1.8 В
Режим пониженного потребления
.5 мкА при напряжении питания 1.8 В
2. Микросхема интерфейса
RS-232
Широко используемый последовательный
интерфейс синхронной и асинхронной передачи данных, определяемый стандартом EIA
RS-232-C и рекомендациями V.24 CCITT. Изначально создавался для связи
компьютера с терминалом. В настоящее время используется в самых различных
применениях.- это преобразователь уровня напряжения. Интерфейс RS232 использует
+-10V, а Max232 преобразует их в 0-5V.
Алгоритм работы ПО МК:
Программа в микроконтроллере
выполняется в бесконечном цикле (wait1). В данном цикле происходит прием байт с UART и их анализ. Для
отправки ЧМ последовательности необходимо, чтобы с UART поступила команда 01C,
далее происходит переход на процедуру отправки ЧМ сигнала (меняется частота
таймера).
3. Листинг
микроконтроллера
INCLUDE «C:\Program Files\Atmel\AVR Tools\AvrAssembler\Appnotes\2313def.inc»
; спецификацией регистров ввода /
выводаA_LINE = 0; линия PORTB, соответствующая сигналу A
DSEG0xc0:.BYTE 0x10; область стекаsp_ini = stack+0x0f
CSEG
;========= Таблица векторов
прерываний0x00RESET; вектор прерывания RESET0x06OVR0_isr; вектор прерывания по
переполнению Timer0
;========= Основная программа:r16,
sp_ini; инициализация указателя стека
out SPL, r16PORTB,
A_LINE; установить A в 1
ldi r16,0x07; разрешить PB.0, PB.1,
PB.2 как выходыDDRB, r16r16; занести 0 в счетчик Timer0TCNT1, r16r16,0x02;
частота синхронизации Timer0 = Fosc/8
out TCCR1, r16r16,0x02
out TIMSK, r16; разрешить прерывание
по переполнению Timer0
; Прерывания разрешены,
прием-передача разрешен. r16,
(1<<RXEN)|(1<<TXEN)|(1<<RXCIE)|(1<<TXCIE)|(0<<UDRIE) UCSRB,
r16
; Формат кадра - 8 бит, пишем в
регистр UCSRC, за это отвечает бит селектор
ldi r16,
(1<<URSEL)|(1<<UCSZ0)|(1<<UCSZ1)
out UCSRC, r16; глобальное
разрешение прерыванийwait1; пустой цикл (ожидание прерывания и прием байтов с
UART)
;========== Процедура отправки байта
==========_send: sbis UCSRA, UDRE ; Пропуск если нет флага
готовности uart_snt ; ждем готовности - флага UDRE UDR, r0 ;
шлем байт ; Возврат
;========== Ожидание байта
==========_rcv: SBIS UCSRA, RXC ; Ждем флага прихода байта uart_rcv ;
вращаясь в цикле R16, UDR ; байт пришел -
забираем.uart_counter; увеличиваем счётчик принятых байт ;
Выходим. Результат в R16
;========== Обработчик прерывания по
переполнению Timer0_isr:r16, SREG; сохранение в стеке регистра статуса
push r16PORTB, A_LINE
rjmp OVR0_m1
; 1-е состояние: A==1, B==0, C==0
cbi PORTB, A_LINE; A=0
breq next1;wait1:
uart_rcvr16, 0x31; если: 1next2
brne wait1:uart_rcvr16, 0xC; если: C
символ С-конец сообщения
breq send1wait1 wait1
; перенастройка частоты на 200,
затем на 500 Гц
send1:r16; старт сигналTCNT1, r16
ldi r16,0xE8; частота синхронизации
Timer1 1000 Гц
out TCCR1A,
r16r16,0x03TCCR1B, r16VR0_isr; отправляем сигналwait1r16TCNT1, r16 r16,0xC8; частота синхронизации
Timer1
200 Гц
out TCCR1A, r16
clr TCCR1B
rjmp VR0_isr; отправляем сигнал
clr r16
out TCNT1, r16
ldi r16,0x01; частота синхронизации Timer1 500 Гц
out TCCR1A,
r16r16,0xF4TCCR1B, r16VR0_isr; отправляем сигналr16TCNT1, r16r16,0xD0; частота синхронизации Timer1 2000 ГцTCCR1A, r16r16,0x07TCCR1B, r16VR0_isr; отправляем сигналr16TCNT1,
r16r16,0xD0; частота синхронизации Timer0 2000 ГцTCCR1A, r16r16,0x07TCCR1B, r16VR0_isr; отправляем сигнал
rjmp wait1
Перечень элементов
Наименование
|
Кол-во
|
Условное обозначение
|
|
|
|
Микросхемы
|
|
|
ATiny2313
|
1
|
D1
|
MAX232
|
1
|
D2
|
контроллер преобразование листинг
двоичный
Заключение
В процессе работы был разработан
проект контроллера осуществляющего преобразование двоичной последовательности
из фиксированного числа байт в ЧМ-сигнал.
Список литературы
1. Конспект лекций по курсу микроконтроллеры 2011 г.
. Микроконтроллеры AVR Методическое пособие к лабораторному
практикуму для студентов II-IV курсов АВТФ