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

 

РЕФЕРАТ


Пояснительная записка: 47с., 19 рис., 6 табл., 9 ссыл., приложения.

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

Разработан программно управляемый задающий генератор пачек прямоугольных импульсов на микроконтроллере AT90S2313 для физиотерапевтической установки. Для него составлен алгоритм и написана программа генерирования импульсов определённой длительности. Определены все временные соотношения и проанализированы погрешности.

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

Прогнозные позиции что касается развития объекта исследования - дальнейшее усовершенствование и поиск оптимальных решений проблемы.

ГЕНЕРАТОР, ПРОГРАММА, МИКРОКОНТРОЛЛЕР, МИКРОПРОЦЕССОР, АССЕМБЛЕР, ATMEL, ИМПУЛЬС


ВВЕДЕНИЕ


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

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

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


1. ОБЗОР АНАЛОГИЧНЫХ УСТРОЙСТВ


Одним из необходимых в лаборатории приборов является генератор прямоугольных импульсов (ГПИ). Сфера применения ГПИ довольно широка: он незаменим при настройке импульсных и цифровых устройств, при проверке реакции различной аппаратуры (например, усилителей звуковых частот) на импульсные воздействия; его применяют при измерениях как в комплексе с другими приборами, так и отдельно при испытании различных радиоэлектронных компонентов. Очень широкое применение ГПИ имеет в медицинском обслуживании. Особо важное место он занимает в терапии. Множество болезней излечивается с помощью импульсного воздействия и без хирургического вмешательства. Медицинские генераторы должны иметь высокую точность и многие другие высокостабильные параметры.

Генераторы прямоугольных импульсов могут иметь различную элементную базу, в частности:

генераторы в интегральном исполнении;

генераторы на дифференциальных усилителях;

генераторы на операционных усилителях;

генераторы на логических элементах;

генераторы на триггерах;

генераторы на микропроцессорах и микроконтроллерах.


Генераторы импульсов


Вариант простейшего генератора (мультивибратора) показан на рис. 1.1а. Схема имеет два динамических состояния. В первом из них, когда на выходе D1.1 состояние лог. "1" (выход D1.2 лог. "0"), конденсатор С1 заряжается. В процессе заряда напряжение на входе инвертора D1.1 возрастает, и при достижении значения Uпор=0,5Uпит происходит скачкообразный переход во второе динамическое состояние, в котором на выходах D1.1 лог. "О", D1.2 - "1". В этом состоянии происходит перезаряд емкости (разряд) током обратного направления. При достижении напряжения на С1 Unop происходит возврат схемы в первое динамическое состояние. Диаграмма напряжений поясняет работу. Резистор R2 является ограничительным, и его сопротивление не должно быть меньше 1 кОм, а чтобы он не влиял на расчетную частоту, номинал резистора R1 выбираем значительно больше R2 (R2<0,01R1). Ограничительный резистор (R2) иногда устанавливают последовательно с конденсатором. При использовании неполярного конденсатора С1 длительность импульсов (tи) и пауза (tо) будут почти одинаковыми: tи=to=0,7R1C1. Полный период T=1,4R1C1. Резистор R1 и конденсатор С1 могут находиться в диапазоне 20 к0м...10 МОм; 300 пф...100 мкФ.

При использовании в схеме (рис. 1.1б) двух инверторов микросхемы К561ЛН2 (они имеют на входе только один защитный диод) перезаряд конденсатора будет происходить от уровня Uпит+Unop. В результате чего симметричность импульсов нарушается tи=1,1R1C1, to=0,5R1C1, период T=1,6R1C1.


Рис. 1.1. Генератор импульсов на двух инверторах


Рис. 1.1. Генератор импульсов на двух инверторах


Рис 1.2. Генератор импульсов с раздельной установкой длительности импульса и паузы между ними


Так как порог переключения логических элементов не соответствует точно половине напряжения питания, чтобы получить симметричность импульсов, в традиционную схему генератора можно добавить цепь из R2 и VD1, рис. 1.1в.Резистор R2 позволяет подстройкой получить меандр (tи=to) на выходе генератора.

Схема на рис. 1.2 дает возможность раздельно регулировать длительность и паузу между импульсами: tи=0,8C1R1, to=0,8C1R2. При номиналах элементов, указанных на схеме, длительность импульсов около 0,1 с, период повторения 1 с.

Более стабильна частота у генераторов, выполненных на трех инверторах (Рис. 1.3). Процесс перезаряда С1 в сторону уменьшения напряжения на левой обкладке начинается от напряжения Uпит+Unop, в результате чего на это уходит больше времени tи=1,1C1R2. Полный период колебаний составит T=1,8C1R2.

Рис. 1.3. Генератор импульсов на трех инверторах


На рис. 1.4 приведены схемы аналогичных генераторов, которые позволяют раздельно регулировать длительность и паузу между импульсами или при неизменной частоте регулировать скважность импульсов. Мультивибратор на основе триггера Шмитта показан на рис. 1.5.

Если требуется получить на выходе приведенных выше схем генераторов симметричные импульсы без подстройки, то после схемы необходимо ставить триггер или же воспользоваться схемой на трех инверторах, рис. 1.6. Элемент D1.1 используется для создания второй цепи отрицательной обратной связи, охватывающей инвертор D1.2 (главную цепь обратной связи для сигнала образует резистор R5) Элемент микросхемы D1 1 работает в режиме с низким коэффициентом усиления при замкнутой обратной связи подобно операционному усилителю работающему в линейной части характеристики, в результате этого инвертированное пороговое напряжение инвертора D1 1 может быть просуммировано с напряжением отрицательной обратной связи и подано на вход элемента D1.2. Если соотношение R2/R1 равно отношению R3/R5 может быть получена полная компенсация ошибок обусловленных изменением пороговых напряжении элементов D1.1 и D1.2 При этом предполагается, что все элементы схемы расположены в одном корпусе и их пороговые напряжения фактически равны Частота импульсов такой схемы определяется из соотношения F=1/R5C1 (она будет примерно в два раза выше по сравнению со схемой, показанной на рис. 1.1)


Рис 1.4 Генератор импульсов с раздельной регулировкой

а) длительности импульсов и паузы между ними б) скважности импульсов


Рис 1.5 Генератор перекрывающихся импульсов


Рис 1.6 Генератор с симметричными импульсами на выходе


Симметричный мультивибратор можно выполнить на основе RS-триггере, рис 1.36. Вариант схемы на рис 1.7в) позволяет резисторы R1 и R2 выбирать более низкоомными, потому что диоды разделяют цепь заряда от выходов триггера.

Рис1.7 Симметричные мультивибраторы

а) на RS триггере с двумя конденсаторами,

б) с одним конденсатором,

в) с резисторами соединенными с источником питания,

г) на двух RS триггерах


Вторым преимуществом этой схемы является то, что она позволяет легко и независимо регулировать в определенных границах период и скважность генерируемых импульсов. Скважность можно регулировать линейно, если R1 и R2 объединить в один потенциометр, а период - если общий конец R1 и R2 соединить с источником питания через потенциометр.


2. ОБОСНОВАНИЕ ВЫБРАННОГО ВАРИАНТА ТЕХНИЧЕСКОГО РЕШЕНИЯ


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

Так как на данный момент наиболее используемыми являются микроконтроллеры и микропроцессоры Pic и Atmel, то можно выбрать микроконтроллер одной из этих фирм.


2.1 8-разрядные RISC микроконтроллеры семейства AT90S


Отличительные особенности:

Производительность, приближающаяся к 1 MIPS/МГц

Усовершенствованная AVR RISC архитектура

Раздельные шины памяти команд и данных, 32 регистра общего назначения

Flash ПЗУ программ, с возможностью внутрисистемного перепрограммирования и загрузки через SPI последовательный канал, 100000 циклов стирание/запись

Блокировка режима программирования

Встроенный аналоговый компаратор, сторожевой таймер, порты SPI и UART, таймеры/счетчики

Полностью статические приборы - работают при тактовой частоте

от 0Гц до20 МГц

Диапазон напряжений питания от 2,7 В до 6,0 В

Режимы энергосбережения: пассивный (idle) и стоповый (power down)

КМОП микроконтроллеры семейства АТ90S выполнены по AVRTM RISC архитектуре с раздельной памятью программ и данных и раздельными шинами для памяти программ и данных (Гарвардская архитектура). AVR ядро объединяет мощную систему команд с 32 регистрами общего назначения и конвейером (в одном цикле одна команда выполняется а другая выбирается) выборки из памяти программ. Все 32 регистра напрямую связаны с АЛУ, что позволяет выполнять обращение к двум независимым регистрам и возвращать результат одной командой, выполняемой в одном тактовом цикле. Шесть регистров могут использоваться как три 16-разрядных указателя адреса данных (кроме прибора AT90S1200). Выполняя команды за один тактовый цикл, прибор обеспечивает производительность, приближающуюся к 1 MIPS на МГц, что на порядок больше, чем у CISC микроконтроллеров. Архитектура эффективно поддерживает как языки высокого уровня, так и программы, написанные на экстремально плотных языках ассемблера.


Таблица 3 - Основные характеристики микроконтроллеры семейства AT90S

Тип прибора Объем памяти (органи зация), битОбъем ЭСППЗУ (СОЗУ) памяти данных, байтТактовая частота, МГцТаймеры/ счетчики, кол-во х разряд- ностьДругие отличияПотребл. в активном/ пассивном режиме Vcc=3B F=4МГцКорпуса пром. и ком. исполь зованияAT90S12001k (512x16)64x80…121x815 линий I/O, аппаратный стек2/0.520PDIP 20SOIC 20SSOPAT90S23132k (1kx16)128x8 (128x8)0…101x8 1x1615 линий I/O, ШИМ , UART2.5/0.820PDIP 20SOICAT90S23232k (1kx16)128x8 (128x8)0…101x83 линии I/O3.0/1.28PDIP 8SOICAT90S23432k (1kx16)128x8 (128x8)0…101x85 линии I/O3.0/1.28PDIP 8SOICAT90S44144k (2kx16)256x8 (256x8)0…81x8 1x1632 линии I/O ШИМ , UART3.5/1.040PDIP 44PLCC 44TQFTAT90S44344k (2kx16)256x8 (256x8)0…82x8 1x1632 линии I/O ШИМ , UART, 8x10 АЦП, аналог компоратор3.0/1.240PDIP 44PLCC 44TQFTAT90S85358k (4kx16)512x8 (512x8)0…82x8 1x1632 линии I/O ШИМ , UART, 8x10 АЦП, аналог компоратор3.0/1.240PDIP 44PLCC 44TQFTAT90S85158k (4kx16)256x8 (256x8)0…81x8 1x1632 линии I/O ШИМ , UART,3.5/1.040PDIP 44PLCC 44TQFTATmega103128k (64kx16)4kx8 (4kx8)0…63x1640 линии I/O ШИМ , UART, 8x10 АЦП, аналог компоратор3.0/1.264TQFTATmega60364k (32kx16)2kx8 (4kx8)0…63x1640 линии I/O ШИМ , UART, 8x10 АЦП, аналог компоратор3.0/1.264TQFT

Микроконтроллеры семейства оснащены встроенной загружаемой Flash памятью программ, обеспечивающей внутрисистемное перепрограммирование с использованием интерфейса SPI или программирование внешними стандартными программаторами энергонезависимой памяти. Поскольку все команды 16-разрядного или 32 разрядного формата, то Flash память программ имеет 16-разрядную организацию. В качестве памяти данных в микроконтроллерах семейства используется комбинация СОЗУ и ЭСППЗУ (у прибора AT90S1200 только ЭСППЗУ) в которых размещается также и пространство памяти ввода\вывода. Стек, предназначенный для хранения адресов возврата из подпрограмм и прерываний располагается в памяти данных (у прибора AT90S1200 стек выполнен аппаратно). Ряд AVR микроконтроллеров имеют встроенный в арифметическую часть АЛУ перемножитель.

Все приборы семейства AT90S совместимы по исходным кодам и тактированию. Семейство обеспечено комплектом программ и системами отладки, включающими: макро-ассемблеры, отладчики/симуляторы программ, внутрисхемные эмуляторы, и отладочные устройства.

Микроконтроллеры семейства AT90S поставляются в очищенном состоянии - содержимое и Flash памяти программ и ЭСППЗУ данных находиться в состоянии FF и готово к программированию.

Объединение на одном кристалле усовершенствованного 8-разрядного RISC ЦПУ с загружаемым Flash ПЗУ позволило фирме создать мощные микроконтроллеры, обеспечивающие высокую гибкость и экономичность в использовании приборов в качестве встраиваемых контроллеров.


.1.1 Микроконтроллеры АТ90S2313 фирмы AtmelS2313 - экономичный 8 битовый КМОП микроконтроллер, построенный с использованием расширенной RISC архитектуры AVR. Исполняя по одной команде за период тактовой частоты, AT90S2313 имеет производительность около 1MIPS на МГц, что позволяет разработчикам создавать системы оптимальные по скорости и потребляемой мощности.

В основе ядра AVR лежит расширенная RISC архитектура, объединяющая развитый набор команд и 32 регистра общего назначения. Все 32 регистра непосредственно подключены к арифметико-логическому устройству (АЛУ), что дает доступ к любым двум регистрам за один машинный цикл.

Подобная архитектура обеспечивает десятикратный выигрыш в эффективности кода по сравнению с традиционными CISC микроконтроллерами.S2313 предлагает следующие возможности: 2кБ загружаемой флэш-памяти; 128 байт EEPROM; 15 линий ввода/вывода общего назначения; 32 рабочих регистра; настраиваемые таймеры/счетчики с режимом совпадения; внешние и внутренние прерывания; программируемый универсальный последовательный порт; программируемый сторожевой таймер со встроенным генератором; SPI последовательный порт для загрузки программ; два выбираемых программно режима низкого энергопотребления. Холостой режим (Idle Mode) отключает ЦПУ, оставляя в рабочем состоянии регистры, таймеры/счетчики, SPI порт и систему прерываний. Экономичный режим (Power Down Mode) сохраняет содержимое регистров, но отключает генератор, запрещая функционирование всех встроенных устройств до внешнего прерывания или аппаратного сброса.

Микросхемы производятся с использованием технологии энергонезависимой памяти высокой плотности фирмы Atmel. Загружаемая флэш-память на кристалле может быть перепрограммирована прямо в системе через последовательный интерфейс SPI или доступным программатором энергонезависимой памяти. Объединяя на одном кристалле усовершенствованный 8-битовый RISC процессор с загружаемой флэш-памятью, AT90S2313 является мощным микроконтроллером, который позволяет создавать достаточно гибкие и эффективные по стоимости устройства.S2313 поддерживается полной системой разработки включающей в себя макроассемблер, программный отладчик/симулятор, внутрисхемный эмулятор и отладочный комплект.

Описание выводов:


Рисунок 2.1 - Описание выводов микроконтроллера АТ90S2313

- вывод источника питания;- земля.B(PB7..PB0) - Порт B является 8-битовым двунаправленным портом ввода/вывода. Для выводов порта предусмотрены внутренние подтягивающие резисторы (выбираются для каждого бита). Выводы PB0 и PB1 также являются положительным (AIN0) и отрицательным (AIN1) входами встроенного аналогового компаратора. Выходные буферы порта B могут поглощать ток до 20мА и непосредственно управлять светодиодными индикаторами. Если выводы PB0..PB7 используются как входы и извне устанавливаются в низкое состояние, они являются источниками тока, если включены внутренние подтягивающие резисторы. Кроме того, Порт B обслуживает некоторые специальные функции, которые будут описаны ниже.D (PD6..PD0) - Порт D является 7-битовым двунаправленным портом с внутренними подтягивающими резисторами. Выходные буферы порта D могут поглощать ток до 20мА. Как входы установленные в низкое состояние, выводы порта D являются источниками тока, если задействованы подтягивающие резисторы. Кроме того, Порт D обслуживает некоторые специальные функции, которые будут описаны ниже.- вход сброса. Удержание на входе низкого уровня в течение двух машинных циклов (если работает тактовый генератор), сбрасывает устройство.- вход инвертирующего усилителя генератора и вход внешнего тактового сигнала.- выход инвертирующего усилителя генератора.и XTAL2 являются входом и выходом инвертирующего усилителя, на котором можно собрать генератор тактовых импульсов. Можно использовать как кварцевые, так и керамические резонаторы. При подключении внешнего тактового сигнала вывод XTAL2 остается неподключенным, а XTAL1 подключается в выходу внешнего генератора.


.1.2 Обзор архитектуры AT90S2313

Регистровый файл быстрого доступа содержит 32 8-разрядных регистра общего назначения, доступ к которым осуществляется за один машинный цикл. Поэтому за один машинный цикл исполняется одна операция АЛУ. Два операнда выбираются из регистрового файла, выполняется операция, результат ее записывается в регистровый файл - все за один машинный цикл.

Шесть из 32 регистров можно использовать как три 16-разрядных указателя в адресном пространстве данных, что дает возможность использовать высокоэффективную адресную арифметику (16-разрядные регистры X, Y и Z). Один из трех адресных указателей (регистр Z) можно использовать для адресации таблиц в памяти программ. Это X-, Y- и Z-регистры.

Подключение кристалла Подключение внешнего генератора


Рисунок 2.2 - Подключение кристалла и генератора


АЛУ поддерживает арифметические и логические операции c регистрами, с константами и регистрами. Операции над отдельными регистрами также выполняются в АЛУ. Кроме регистровых операций, для работы с регистровым файлом могут использоваться доступные режимы адресации, поскольку регистровый файл занимает адреса $00-$1F в области данных, обращаться к ним можно как к ячейкам памяти. Пространство ввода состоит из 64 адресов для периферийных функций процессора, таких как управляющие регистры , таймеры/счетчики и другие. Доступ к пространству ввода/вывода может осуществляться непосредственно, как к ячейкам памяти расположенным после регистрового файла ($20-$5F).

Процессоры AVR построены по гарвардской архитектуре с раздельными областями памяти программ и данных. Доступ к памяти программ осуществляется при помощи одноуровнего буфера. Во время выполнения команды, следующая выбирается из памяти программ. Подобная концепция дает возможность выполнять по одной команде за каждый машинный цикл. Память программ - это внутрисистемная загружаемая флэш-память. При помощи команд относительных переходов и вызова подпрограмм осуществляется доступ ко всему адресному пространству. Большая часть команд AVR имеет размер 16-разрядов, одно слово. Каждый адрес в памяти программ содержит одну 16- или 32-разрядную команду.

При обработке прерываний и вызове подпрограмм адрес возврата запоминается в стеке. Стек размещается в памяти данных общего назначения, соответственно размер стека ограничен только размером доступной памяти данных и ее использованием в программе. Все программы пользователя должны инициализировать указатель стека (SP) в программе выполняемой после сброса (до того как вызываются подпрограммы и разрешаются прерывания). 8-разрядный указатель стека доступен для чтения/записи в области ввода/вывода. Доступ к 128 байтам статического ОЗУ, регистровому файлу и регистрам ввода/вывода осуществляется при помощи пяти доступных режимов адресации поддерживаемых архитектурой AVR.

Все пространство памяти AVR является линейным и непрерывным.

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


2.1.3 Файл регистров общего назначения

Все команды оперирующие регистрами прямо адресуются к любому из регистров за один машинный цикл. Единственное исключение - пять команд, оперирующих с константами SBCI, SUBI, CPI, ANDI, ORI и команда LDI, загружающая регистр константой. Эти команды работают только со второй половиной регистрового файла - R16..R31. Команды SBC, SUB, CP, AND и OR, также как и все остальные, применимы ко всему регистровому файлу.

Каждому регистру присвоен адрес в пространстве данных, они отображаются на первые 32 ячейки ОЗУ. Хотя регистровый файл физически размещен вне ОЗУ, подобная организация памяти дает гибкий доступ к регистрам. Регистры X, Y и Z могут использоваться для индексации любого регистра. Кроме обычных функций, регистры R26..R31 имеют дополнительные функции, эти регистры можно использовать как адресные указатели в области памяти данных. Эти регистры обозначаются как X,Y,Z и определены следующим образом:


Рисунок 2.3 - Обозначение и определение регистров

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

Арифметико-логическое устройство - АЛУ

АЛУ процессора непосредственно подключено к 32 регистрам общего назначения. За один машинный цикл АЛУ производит операции между регистрами регистрового файла. Команды АЛУ разделены на три основных категории - арифметические, логические и битовые.

Загружаемая память программS2313 содержит 2кБ загружаемой флэш-памяти для хранения программ. Поскольку все команды занимают одно 16- или 32-разрядное слово, флэш-память организована как 1Kx16. Флэш-память выдерживает не менее 1000 циклов перезаписи.

Программный счетчик имеет ширину 10 бит и позволяет адресоваться к 1024 словам программной флэш-памяти.память данныхS2313 содержит 128 байт электрически стираемой энергонезависимой памяти (EEPROM). EEPROM организована как отдельная область данных, каждый байт которой может быть прочитан и перезаписан. EEPROM выдерживает не менее 100000 циклов записи/стирания. Доступ к энергонезависимой памяти данных задается регистрами адреса, данных и управления.

Дальше будет рассмотрена загрузка данных в EEPROM через SPI интерфейс.

Время выполнения команд.

ЦПУ процессора AVR управляется системной частотой генерируемой внешним резонатором. Внутреннее деление частоты генератора не используется.

В процессоре организован буфер (pipeline) команд, при выборе команды из памяти программ происходит выполнение предыдущей команды. Подобная концепция позволяет достичь быстродействия 1MIPS на MHz, уникальных показателей стоимости, быстродействия и потребления процессора.


Таблица 4 - Пространство ввода/вывода AT90S2313


Все устройства ввода/вывода и периферийные устройства AT90S2313 располагаются в пространстве ввода/вывода. Различные ячейки этого пространства доступны через команды IN и OUT, пересылающие данные между одним из 32-х регистров общего назначения и пространством ввода/вывода. К регистрам $00..$1F можно осуществлять побитовый доступ командами SBI и CBI. Значение отдельного бита этих регистров можно проверить командами SBIC и SBIS. Дополнительную информацию по этому вопросу можно найти в описании системы команд.

При использовании специальных команд IN, OUT, SBIS и SBIC, должны использоваться адреса $00..$3F. При доступе к регистру ввода/вывода как к ячейке ОЗУ, к его адресу необходимо добавить $20. В приведенной выше таблице адреса регистров в памяти данных приведены в скобках.


.1.4 Источники сбросаS2313 имеет три источника сброса.

* Сброс по включению питания. Процессор сбрасывается при подаче питания на выводы VCC и GND.

* Внешний сброс. Процессор сбрасывается при подаче низкого уровня на вывод RESET на время более двух периодов тактовой частоты.

* Сброс от сторожевого таймера. Процессор сбрасывается по окончанию времени отработки сторожевого таймера, если разрешена его работа.

Во время сброса все регистры ввода/вывода устанавливаются в начальные значения, программа начинает выполняться с адреса $000, поэтому адресу должна быть записана команда RJMP - относительный переход на программу обработки сброса. Если в программе не разрешаются прерывания и векторы прерываний не используются, в первых адресах памяти может быть записана программа.

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

Внешний сброс обрабатывается по низкому уровню на выводе RESET. Вывод должен удерживаться в низком состоянии, по крайней мере два периода тактовой частоты.

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


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

В AT90S2313 предусмотрены два таймера/счетчика общего назначения. 8-разрядный и 16-разрядный. Каждый из таймеров индивидуально подключается к одному из выходов 10-разрядного предварительного делителя частоты. Оба таймера могут использоваться как таймеры с внутренним источником импульсов или счетчики импульсов поступающих извне.

В качестве источника импульсов для таймеров можно выбрать сигнал с тактовой частотой процессора (CK), импульсы предварительного делителя (CK/8, CK/64, CK/256 или CK/1024) или импульсы с соответствующего внешнего вывода. Кроме того, таймеры могут быть остановлены, запретом прохождения импульсов на них.


.1.6 Порт В, как порт ввода/вывода общего назначения

Все 8 бит порта B при использовании для ввода/вывода одинаковы. Бит DDBn регистра DDRB выбирает направление передачи данных. Если бит установлен (1), вывод сконфигурирован как выход. Если бит сброшен (0) - вывод сконфигурирован как вход. Если PORTBn установлен и вывод сконфигурирован как вход, включается КМОП подтягивающий резистор. Для отключения резистора, PORTBn должен быть сброшен (0) или вывод должен быть сконфигурирован как выход.

Таблица 5 - Влияние DDBn на выводы порта B


Характеристики по постоянному току


Ta = -40...+85°C, Vcc=2.7...6.0V (если не указано иначе)


Мин./Тип./Макс.

Входное напряжение '0' - -0.5/_/0.2Vcc-0.1 V

Входное напряжение '1'(кроме XTAL1 и RESET) - 0.2Vcc+0.9/_/Vcc+0.5 V на XTAL1 и RESET - 0.7Vcc/_/Vcc+0.5 V

Выходное напряжение '0' (Порты B и D) Il=20mA, Vcc=5V - _/_/0.5 V


Il=10mA, Vcc=2.7V - _/_/0.5 V


Выходное напряжение '1' (Порты B и D) I0h=10mA, Vcc=5V - 4.5/_/_ V


I0h=5mA, Vcc=2.7V - 4.5/_/_ V


Выходной ток (Порты B и D) Vcc=5V - _/_/10 mA


Vcc=2.7V - _/_/5 mA


Поглощаемый ток (Порты B и D) Vcc=5V - _/_/20 mA


Vcc=2.7V - _/_/10 mA

Подтягивающий резистор сброса - 100/_/500 кОм

Подтягивающий резистор вывода порта 35/_/120 кОм

Потребляемый ток:

Активный режим, 3V, 4MHz - _/2.5/_ mA

холостой ход (idle mode), 3V, 4MHz - _/800/_ uA

пониженное потребление WDT включен, 3V - _/50/_ uAвыключен, 3V - _/_/1 uA

Напряжение смещения аналогового компаратора Vcc=5V - _/_/20 mV

Входной ток утечки аналогового компаратора - _/10/_ nA

Время срабатывания аналогового компаратора


Vcc=2.7V - _/750/_ nS=4.0V - _/500/_ nS


2.2Набор команд AT90S2313






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


.3 ЦАП фирма Analog Devices AD7224


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


ФУНКЦИОНАЛЬНАЯ ДИАГРАММА

Рисунок 2.4 - Блок схема ЦАП


ОБЩЕЕ ОПИСАНИЕ- 8-ми разрядный аналого-цифровой преобразователь общего назначения с выходным операционным усилителем и входной логикой образованной двумя регистрами с внешним управлением. Входная логика представляет собой два регистра управляемых внешними сигналами, это входной регистр и DAC регистр. На значение выходного сигнала влияют только данные записанные в DAC регистре. Внешние управляющие сигналы: CS, WR, LDAC. RESET сбрасывает все регистры в 0 и устанавливает 0 на выходе. Все логические входы поддерживают стандарты ТТЛ и CMOS уровней сигнала.

Опорное напряжение подается на вывод Vref и может меняться в пределах +2В до +12,5 В.


Параметры ЦАП при данных условиях - Vdd= 11-4Vto16-5V'Vss= -5V± 10%;AGND= DGND= OV;VREF= +2Vto(VDD-4V)1

ParameterK,B,T Versions2L, C,U Versions2UnitsConditions/CommentsSTATIC PERFORMANCE Resolution Total Unadjusted Error Relative Accuracy Differential Nonlinearity Full-Scale Error Full-Scale Temperature Coefficient Zero Code Error Zero Code Error Temperature Coefficient 8 ±2 ±1 ±1 ±3/2 ±20 ±30 ±50 8 ±1 ±1/2 ±1 ±1 ±20 ±20 ±30Bits LSB max LSB max LSB max LSB max ppm/°C max mV max LiV/°C typVDD= +15 V± 5%, VREF = +10 V Guaranteed Monotonic VDD = 14 Vto 16.5 V, VREF = +10 VREFERENCE INPUT Voltage Range Input Resistance Input Capacitance32to(VDD-4) 8 1002to(VDD-4) 8 100V min to V max k£2 min pF maxOccurs when DAC is loaded with all 1s.DIGITAL INPUTS Input High Voltage, VINH Input Low Voltage, VINL Input Leakage Current Input Capacitance3 Input Coding2.4 0.8 ±1 8 Binary2.4 0.8 ±1 8 Binary V min V max µA max pF maxVIN = 0 V or VDDPOWER SUPPLIES VDD Range Vss Range Idd @ 25°C Tmin to TMAX Iss @ 25°C Tmin to TMAX 11.4/16.5 4.5/5.5 4 6 3 511.4/16.5 4.5/5.5 4 6 3 5V min/V max V min/V max mA max mA max mA max mA maxFor Specified Performance For Specified Performance Outputs Unloaded; VIN = VINL or VINH Outputs Unloaded; VIN = VINL or VINH Outputs Unloaded; VIN = VINL or VINH Outputs Unloaded; VIN = VINL or VINH

AD7224

ТЕРМИНОЛОГИЯ

ОБЩЕЕ КОЛИЧЕСТВО ОШИБОК

Общее количество

Ошибку - всесторонняя спецификация, которая включает ошибку в полном масштабе, относительную точность и нулевую ошибку выходного напряжения. Максимальное напряжение выхода - VREF - 1 LSB (идеал), насколько 1 LSB (идеал) - VREF/256.

LSB размер изменится по диапазону VREF.

Следовательно нулевая ошибка выхода, относительно LSB размера, увеличивается если VREF уменьшения. Соответственно, общее количество ошибок, которые включают нулевую ошибку выхода, также изменится в терминах LSBS по диапазону VREF.

В результате, общее количество ошибок, определен для установленного опорного напряжения + 10 V.

ОТНОСИТЕЛЬНАЯ ТОЧНОСТЬ

Относительная Точность или нелинейность - мера максимального отклонения от прямой линии, проходящей через конечные точки функции передачи DAC. Это измерено после учета нулевой ошибки и ошибки в полном масштабе и обычно выражается в LSBS или как процент от чтения в полном масштабе.

ДИФФЕРЕНЦИАЛЬНАЯ НЕЛИНЕЙНОСТЬ

Дифференциальная Нелинейность - различие между измеренным и идеалом 1 LSB, изменение между любыми двумя смежными уровнями. Указанная дифференциальная нелинейность 1 LSB Макс по операционному температурному диапазону.

ИНФОРМАЦИЯ о структуре ЦАП/A СЕКЦИЯсодержит цифро-аналоговый преобразователь с разрешением 8 бит. Выходное напряжение от конвертера имеет ту же самую полярность как опорное напряжение. DAC состоит из высокоточных, тонкопленочных резисторов, R-2R матрица и восемь высоко скоростных NMOS коммутаторов с двойным броском. Упрощенная схема для этого DAC показывается на рис 2.5.


Рисунок 2.5 - Упрощенная схема ЦАП


Входное сопротивление входа Vref зависит от входного кода и может изменяться от 8 кОм до бесконечности. Самое низкое входное сопротивление тогда когда входной код равен 01010101, поэтому очень важно запитывать этот вход стабилизированным напряжением. Емкость в процессе работы ЦАП меняеться незначительно и лежит в пределе от 25 pF к 50 pF.может рассматриваться как в цифровой форме программируемый источник напряжения с выходным напряжением:


Vout = D VREF


Где D - фракционное представление цифрового входа, и может измениться от 0 до 255/256.

Операционный усилитель

На выходе ЦАП стоит неинвертирующий CMOS операционный усилитель способный при нагрузке 2 кОм и емкости 3300 pF дать выходное напряжение в 10 В.может использоваться и при однополярном напряжении но тогда при низких выходных напряжениях падает ток нагрузки и это может привести к ухудшению точности. Рекомендуется либо использовать двуполярное питание либо ставить дополнительный операционный усилитель.


Рисунок 2.6 - Зависимость выходного тока от выходного напряжения.


ЦИФРОВАЯ СЕКЦИЯцифровые входы совместимы или с TTL или 5 V CMOS уровни. Все логические входы статически-защищены MOS ворота с типичными потоками входа меньше чем 1 nA. Внутренняя защита входа достигнута " на чипе " распределенный диод между DGND и каждыми MOS воротами. Чтобы минимизировать потоки электропитания, рекомендуется, чтобы цифровые напряжения входа привели как близко к рельсам поставки (VDD и DGND) как фактически возможный.

ИНФОРМАЦИЯ ЛОГИКИ ИНТЕРФЕЙСА

Ниже приведена таблица истинности для данной микросхемы. Часть содержит два регистра, регистр входа и регистр DAC. CS и WR управляют загрузкой регистра входа, в то время как LDAC и WR управляют передачей информации от регистра входа до регистра DAC. Только данные, проведенные в регистр DAC определят выходное напряжение конвертера.

Все регистры можно перевести в режим прозрачности, для этого необходимо подать 0 на входы LDAC, WR, CS.


Таблица2 - Таблица истинности

RESETLDACWRCSFunctionHLLLОба Регистра Прозрачны нXНXОба Регистра закрыты нНXHОба Регистра закрытыннLLРегистр Входа Прозрачный ннJLРегистр Входа Закрыт нLLHDAC регистр Прозрачный нLJHDAC Регистр Закрыт LXXXОба Регистратора сбросили в 0 НHHОба Регистр закрыты Со Всеми Нолями И выходное напряжение равно 0LLLОба Регистра Прозрачны и Выходное напряжение Следует За данными Входа H = высокий уровень, L = низкий уровень, X = состояние не имеет значения.


Рисунок 2.7 - Схема входной логики микросхемы


Рисунок 2.8 - Временная диаграмма для записи 1 байта


Таблица 2 - Принцип расчета выходного напряжения


3. РАСЧЁТ ВРЕМЕННЫХ СООТНОШЕНИЙ


Согласно техническому заданию:

длительность импульса 20,40,60 мкс;

частота следования импульсов- 5 кГц

количество импульсов в пачке ;

длительность пачки 0,2 с;

Период повторения пачки - 2 сек.

Рассмотрим 1-й случай:

Рассчитаем время нуля t0 (между импульсами)

Частота 5 кГц значит период следования импульсов 0,2 мс

0=T-ti=200-20=180 мкс


Рассчитаем число импульсов в пачке

=Tp/Ti=0,2/0,2*10-3= 1000 импульсов


Необходимо сформировать такой сигнал:


Рисунок 3.1 - Сигнал на выходе ЦАП.


То есть за 1000 импульсов напряжение должно вырасти от 0 до 9В.

Так как мы используем 8 битный ЦАП, у нас есть возможность сформировать 255 уровней выходного напряжения, то есть для сохранения линейного закона нарастания сигнала необходимо формировать по несколько импульсов с одинаковой амплитудой.

Необходимо сформировать 20 пачек по 3 импульса с одинаковой амплитудой и 235 пачек по 4 импульса с одинаковой амплитудой.

Теперь рассчитаем коэффициенты, вносимые в таймер счетчик для формирования определенных временных интервалов.

Будем использовать 16 битный таймер счетчик с коэффициентом предварительного деления входной частоты 1.

Тактовая частота 4 МГц; ?т=0,25 мкс;

Количество тактов для ?и=20 мкс/0,25мкс=80;

Число вносимое в таймер счетчик 65535-80= 65455 $ FFAF

Количество тактов для ?0=180 мкс/0,25мкс= 720;

Число вносимое в таймер счетчик 65535-720= 64815 $ FD2F

Длительность паузы между пачками: Т-?пачки=2-0,2=1,8 с.

Зададим коэффициент предделения частоты равный 1024

Тактовая частота 4 МГц /1024= 3906.25 Гц; ?т=256 мкс;

Для формирования : 1,8 с/256 мкс = 7031.

Число вносимое в таймер счетчик 65535-7031= 58504 $E488

Рассмотрим 2-й случай:

Рассчитаем время нуля t0 (между импульсами)

Частота 5 кГц значит период следования импульсов 0,2 мс

0=T-ti=200-40= 160 мкс


Количество тактов для ?и=40 мкс/0,25мкс=160;

Число вносимое в таймер счетчик 65535-160= 65375 $FF5F

Количество тактов для ?0=160 мкс/0,25мкс=640;

Число вносимое в таймер счетчик65535-640= 64895 $FD7F

Длительность паузы между пачками та же.

Рассмотрим 3-й случай

Рассчитаем время нуля t0 (между импульсами)

Частота 5 кГц значит период следования импульсов 0,2 мс

0=T-ti=200-60= 140 мкс


Количество тактов для ?и=60 мкс/0,25мкс=240;

Число вносимое в таймер счетчик 65535-240= 65295 $ FF0F

Количество тактов для ?0=140 мкс/0,25мкс=560;

Число вносимое в таймер счетчик 65535-560= 64975 $FE47

Длительность паузы между пачками та же.

Все коэффициенты рассчитаны без учета времени выполнения программного кода, после моделирования мы получим реальные временные интервалы и уменьшим время ожидания на величину ошибки.


4. РАЗРАБОТКА СХЕМЫ ЭЛЕКТРИЧЕСКОЙ ПРИНЦИПИАЛЬНОЙ УСТРОЙСТВА


Для построения программно управляемого задающего генератора пачек прямоугольных импульсов на микроконтроллере для физиотерапевтической установки нужно микроконтроллер питать от блока питания (в данном случае 5В); а для достижения нужного уровня выходного напряжения на выходе ставим эмиттерный повторитель. Индикацию работы можно проверять с помощью светодиодов. Особенностью ЦАП является то что Vref должно быть на 4 вольта меньше чем питающее напряжение, поэтому ЦАП запитан рекомендуемым напряжением 10 В а Vref 5 вольт. Такое решение требует установки дополнительного усилителя для достижения требуемого размаха выходного сигнала 7 В. То есть усилитель должен иметь коэффициент передачи 1,4, и полосу пропускания в 2 раза выше граничной частоты.


.1 Выбор блока питания


Рассчитаем ориентировочно потребляемую устройством мощность:

Потребление микроконтроллера - 3мА*5В=15 мВт

Потребление ЦАП - 450 мВт

По техническому заданию на нагрузке 50 Ом необходимо получить напряжение 7 В, значит мощность порядка 1 Вт

Общее потребление около 1,5 Вт

Значит берем 5 Вт трансформатор питания и ставим КР142ЕН8А и КР142ЕН5А способные давать ток до 1,5 А. В качестве входного усилителя применим микросхему TDA1013B способную давать выходную мощность до 4Вт (запас по мощности позволит поставить микросхему без теплоотвода). Построечный резистор R4 позволит добиться нужного напряжения на нагрузке.

4.2 Подключение ЦАП


Особенности ЦАП описаны выше. Логическая схема управления предназначена для работы микросхемы на общей шине с другими устройствами. Так как у нас нет разделения шины мы выбираем такой режим работы: внутренние регистры прозрачны и любые изменения на шине данных тут же отражаются на выходном сигнале. Для этого мы садим выводы CS, WR, LDAC на землю чем разрешаем прямое управление ЦАП. Выходное напряжение снимается с 2 вывода нагруженного на резистор R4 позволяющий регулировать напряжение на нагрузке и добиться требуемой амплитуды в 7 В.


4.3 Схема электрическая принципиальная


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


Рисунок 4.1 - Схема генератора электрическая принципиальная


5. РАЗРАБОТКА АЛГОРИТМА РАБОТЫ УСТРОЙСТВА И СОСТАВЛЕНИЕ ПРОГРАММЫ


.1 Разработка алгоритма работы устройства


Рисунок 5.1 - Основной алгоритм работы программы


Пояснения:

Вначале происходит конфигурация контроллера, потом опрашивается клавиатура и (если была нажата одна из клавиш, что в начале работы маловероятно) контроллер перейдет на один из режимов, если клавиша нажата не была, вызовется 1 режим. Подпрограмма Режим 1 формирует 1 период сигнала с требуемыми параметрами (сюда входит пачка импульсов и время между пачками), здесь же после каждого периода вызывается подпрограмма опроса клавиатуры. То есть контроллер зациклен на функциях формирования пачки импульсов, паузы между пачками и опросом клавиатуры.

Ниже приведен алгоритм подпрограммы Режим 1.


Рисунок 5.2 - Алгоритм работы подпрограммы Режим 1


Рисунок 5.3 - Продолжение алгоритма работы подпрограммы Режим 1


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


;*******************************************************************************

;DEVICE AT90S2313

;*******************************************************************************

;Порт В ЦАП

;РB.0 - ЦАП

;PB.1 - ЦАП

;PB.2 - ЦАП

;РB.3 - ЦАП

;PB.4 - ЦАП

;PB.5 - ЦАП

;РB.6 - ЦАП

;PB.7 - ЦАП

;PD.0 - светодиод

;PD.1 - светодиод

;РD.2 - светодиод

;PD.3 - кнопка

;PD.4 - кнопка

;PD.5 - кнопка

;PD.6 -

;

;**** Includes ****

.INCLUDE "C:\VMLAB\include\2313def.inc"

; Подключение файла конфигурации устройства

;**** Глобальные Регистровые переменные ****

.def data =r25; -> РАБОЧИЙ

.def nol =r26; -> РАБОЧИЙ

.def temp1 =r27; -> РАБОЧИЙ

.def waitH =r28; -> РАБОЧИЙ

.def schetchik =r29; -> РАБОЧИЙ

.def N =r30; -> текущее напряжение на выходе ЦАП

.def cikle =r31

;*******************************************************************************

; Начальные установки

;*******************************************************************************

.cseg

.org 0 ; начать коипилирование с адреса 00

rjmp label1 ; переход на метку label1

reti

reti

reti

reti

reti

reti

reti

reti

reti

reti

reti

reti ; выход из подпрограммы прерывания: ldi temp1,$C8; загрузка конечного адреса стекаSPL,temp1;вывод в порт значение конечного адреса стека; разрешить все прерыванияtemp1,0b11111111;весь порт на выводDDRB,temp1temp1,0b11000111; выводы на которые подключены кнопки конфигурируються как входыDDRD,temp1temp1,0b00111000;включаю подтягивающие реисторы на кнопках

out PORTD,temp1temp1,0b10000010

out TIMSK,temp1 ; РЕГИСТР МАСКИ ПРЕРЫВАНИЯ ОТ ТАЙМЕРА/СЧЕТЧИКА - TIMSK(резрешение прерывания от счетчика 1)

ldi nol,0: rcall oprosregim1main

;*********************************************************************:PIND,PIND3regim1PIND,PIND4regim2PIND,PIND5regim3

;*********************************************************************:cbi PORTD,PD0PORTD,PD1PORTD,PD2:ldi data,0b00000001cikle,20:ldi N,3:out PORTB,datawait_impuls1PORTB,nolwait_nol1NN,0l2dataN,4:out PORTB,datawait_impuls1PORTB,nolwait_nol1NN,0l3dataciklecikle,0l1cikle,215:ldi N,4:out PORTB,datawait_impuls1PORTB,nolwait_nol1NN,0l5dataciklecikle,0l4wait_long1oprosreg1

;*********************************************************************: cbi PORTD,PD1PORTD,PD0PORTD,PD2:ldi data,0b00000001cikle,20:ldi N,3:out PORTB,datawait_impuls2PORTB,nolwait_nol2NN,0l7dataN,4:out PORTB,datawait_impuls2PORTB,nolwait_nol2NN,0l8dataciklecikle,0l6cikle,215:ldi N,4:out PORTB,datawait_impuls2PORTB,nolwait_nol2NN,0l10dataciklecikle,0l9wait_long1oprosreg2

;*********************************************************************: cbi PORTD,PD2PORTD,PD0PORTD,PD1:ldi data,0b00000001cikle,20:ldi N,3:out PORTB,datawait_impuls3PORTB,nolwait_nol3NN,0l12dataN,4:out PORTB,datawait_impuls3

out PORTB,nol

rcall wait_nol3NN,0l13datacikle

cpi cikle,0l11

ldi cikle,215:ldi N,4:out PORTB,datawait_impuls3PORTB,nolwait_nol3NN,0l15dataciklecikle,0l14wait_long1opros

rjmp reg3

;*********************************************************************_impuls1:temp1,0b00000001TCCR1B,temp1 ; установка предварительного деления тактовой частоты счетчика на 1024waitH,$FFTCNT1H,waitH ; запись старшего байта в порт таймера длительности пачкиwaitH,$C4TCNT1L,waitH ; запись малого байта в порт таймера длительности пачкиtemp1,0b00100000MCUCR,temp1 ; разрешение режима пониженого энергопотребления

SLEEPtemp1,0b00000000TCCR1B,temp1 ; останов

ret

wait_nol1:temp1,0b00000001

out TCCR1B,temp1 ; установка предварительного деления тактовой частоты счетчика на 1024waitH,$FDTCNT1H,waitH ; запись старшего байта в порт таймера длительности пачкиwaitH,$48TCNT1L,waitH ; запись малого байта в порт таймера длительности пачкиtemp1,0b00100000MCUCR,temp1 ; разрешение режима пониженого энергопотребления

SLEEPtemp1,0b00000000TCCR1B,temp1 ; останов_impuls2:temp1,0b00000001

out TCCR1B,temp1 ; установка предварительного деления тактовой частоты счетчика на 1024waitH,$FFTCNT1H,waitH ; запись старшего байта в порт таймера длительности пачкиwaitH,$5FTCNT1L,waitH ; запись малого байта в порт таймера длительности пачкиtemp1,0b00100000MCUCR,temp1 ; разрешение режима пониженого энергопотребления

ldi temp1,0b00000000TCCR1B,temp1 ; останов_nol2:temp1,0b00000001

out TCCR1B,temp1 ; установка предварительного деления тактовой частоты счетчика на 1024waitH,$FDTCNT1H,waitH ; запись старшего байта в порт таймера длительности пачкиwaitH,$7FTCNT1L,waitH ; запись малого байта в порт таймера длительности пачкиtemp1,0b00100000MCUCR,temp1 ; разрешение режима пониженого энергопотребления

SLEEPtemp1,0b00000000TCCR1B,temp1 ; останов_impuls3:temp1,0b00000001

out TCCR1B,temp1 ; установка предварительного деления тактовой частоты счетчика на 1024waitH,$FFTCNT1H,waitH ; запись старшего байта в порт таймера длительности пачкиwaitH,$0FTCNT1L,waitH ; запись малого байта в порт таймера длительности пачкиtemp1,0b00100000MCUCR,temp1 ; разрешение режима пониженого энергопотребления

SLEEPtemp1,0b00000000TCCR1B,temp1 ; останов_nol3:

ldi temp1,0b00000001TCCR1B,temp1 ; установка предварительного деления тактовой частоты счетчика на 1024waitH,$FETCNT1H,waitH ; запись старшего байта в порт таймера длительности пачкиwaitH,$47TCNT1L,waitH ; запись малого байта в порт таймера длительности пачкиtemp1,0b00100000MCUCR,temp1 ; разрешение режима пониженого энергопотребления

SLEEPtemp1,0b00000000TCCR1B,temp1 ; останов_long1:temp1,0b00000101

out TCCR1B,temp1 ; установка предварительного деления тактовой частоты счетчика на 1024waitH,$E4TCNT1H,waitH ; запись старшего байта в порт таймера длительности пачкиwaitH,$88TCNT1L,waitH ; запись малого байта в порт таймера длительности пачкиtemp1,0b00100000MCUCR,temp1 ; разрешение режима пониженого энергопотребления

SLEEPtemp1,0b00000000TCCR1B,temp1 ; останов

ret

.EXIT


6. МОДЕЛИРОВАНИЕ И КОРРЕКТИРОВКА ПРОГРАММЫ


Проведем моделирование и отладку программы в программе VMLab.

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

После моделирования получаем такие параметры импульса:


По программеТребуемаяОшибкаДлительность импульса25,3 мкс20 мкс5,3 мксДлительность нуля186,2мкс180 мкс6,2 мкс

Вносим поправки в расчет

Рассмотрим 1-й случай:

Количество тактов для ?и=20 мкс-5,3 мкс /0,25мкс= 59;

Число вносимое в таймер счетчик 65535-59= 65476 $ FFC4

Количество тактов для ?0=180 мкс-6,2 мкс /0,25мкс= 695;

Число вносимое в таймер счетчик 65535-695= 64840 $FD48


Рисунок 6.1 - Длительность импульса внутри пачки после коррекции

Рисунок Длительность нуля внутри пачки после коррекции


Рисунок - результат моделирования 1 пачки импульсов


После коррекции длительностей единицы и нуля получаем искомую длительность пачки - 200 мс

Теперь зная корректировочные коэффициенты корректируем 2 и 3 режим работы

Рассмотрим 2-й случай:

Количество тактов для ?и=70 мкс-5,3 мкс /0,25мкс=259;

Число вносимое в таймер счетчик 65535-259= 65276 $ FEFC

Количество тактов для ?0=130 мкс-7,5 мкс /0,25мкс=490;

Число вносимое в таймер счетчик 65535-490= 65045 $FE15

Рассмотрим 3-й случай:

Количество тактов для ?и=90 мкс-5,3 мкс /0,25мкс=339;

Число вносимое в таймер счетчик 65535-339= 65196 $ FEAC

Количество тактов для ?0=110 мкс-7,5 мкс /0,25мкс=410;

Число вносимое в таймер счетчик 65535-410= 65125 $FE65


7. РАСЧЁТ ПОГРЕШНОСТЕЙ


При расчёте погрешностей нужно сопоставить длительность импульса, длительность нуля, длительность большого нуля с длительностями, получаемыми программно.

Так как мы при моделировании отладили программу и получили длительности импульсов равные заданным, можно считать, что устройство работает без существенных погрешностей. Но в реальной жизни будет разброс параметров кварца, температурный дрейф частоты генерации, что приведет к увеличению погрешности. Но все равно точность генерирования импульсов останется на порядок выше, чем требовалась по техническому заданию (0,5%), так как схема генерирует импульсы относительно тактовой частоты заданной кварцем. О точности генерирования амплитуды в техническом задании нет определенных указаний, поэтому считаем, что этот параметр неважен в конечном устройстве.


ЗАКЛЮЧЕНИЕ

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

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

Можно добиться работы устройства почти без погрешности путём корректировки программы.

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


ПЕРЕЧЕНЬ ССЫЛОК


1. Техническая документация перевод с английского Ю. Андриенко

. Солонин В. Ю. Преобразователь напряжения. Описание изобретения к авторскому свидетельству № 1368950. - Бюллетень "Открытия, изобретения," 1988,N 3.

. Солонин В.Ю. Преобразователь постоянного напряжения. Описание изобретения к авторскому свидетельству № 1379911. - Бюллетень "Открытия, изобретения, ...", 1988, N 9.

. Солонин В.Ю. Преобразователь напряжения. Описание изобретения к авторскому свидетельству № 1354360. - Бюллетень "Открытия, изобретения, ..." 1987,N 43.

. Радио книга в формате HTML.

. Журнал "Радио", N9, 1980г; N7, 1984г.; N9, 1985г.

. Лихциндер Б.Я., Кузнецов В.Н. Микропроцессоры и вычислительные устройства в радиотехнике: Учеб. пособие. - К. Выща шк. 1988.-272с., 211ил.

. Электронные промышленные устройства: учеб. для студ. вузов. В.И.Васильев, Ю.М.Гусев, В.Н.Миронов и др.- М.: Высш. шк., 1988.- 303с.:ил.

. Яковлев В.Н. Микроэлектронные генераторы импульсов. - К.:Техника, 1982. - 208с., ил. - Библиогр.:205 - 206.



РЕФЕРАТ Пояснительная записка: 47с., 19 рис., 6 табл., 9 ссыл., приложения. Цель работы - разработка программно управляющего задающего генератора паче

Больше работ по теме:

КОНТАКТНЫЙ EMAIL: [email protected]

Скачать реферат © 2017 | Пользовательское соглашение

Скачать      Реферат

ПРОФЕССИОНАЛЬНАЯ ПОМОЩЬ СТУДЕНТАМ