скачать рефераты

скачать рефераты

 
 
скачать рефераты скачать рефераты

Меню

Программно-управляемый генератор прямоугольных импульсов инфранизких частот скачать рефераты

p align="left">Генератор пачек прямоугольных импульсов на микроконтроллере позволяет получать пачки импульсов любой длительности с большой точностью, при этом частота следования пачек может иметь любые значения. Такой генератор позволяет получать частоты инфранизкого диапазона, что трудно обеспечить в любом другом генераторе. Программное управление даёт возможность перестройки частоты пачек и длительности импульсов в больших пределах, что не всегда возможно в обычных генераторах на RC -элементах или КМОП - микросхемах. Устройства, построенные на базе микроконтроллеров PIC16C84, характеризуются простотой схемы и дешевизной в изготовлении.

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

В основе работы генератора пачек прямоугольных импульсов лежит формирование временных задержек. Задержка логической единицы на выходе микроконтроллера соответствует положительному импульсу необходимой длительности, задержка логического нуля - паузе между импульсами. Пачка импульсов получается в результате формирования циклов, то есть однократное появление на выходе контроллера единицы-нуля является периодом импульсов, необходимое количество импульсов в пачке можно получить, формируя определённое число периодов. Пауза между пачками импульсов формируется по такому же принципу, что и пауза между импульсами, только большей длительности. Всё это легко выполняется посредством программируемого микроконтроллера PIC16C84. Блок-схема алгоритма работы устройства представлена в приложении A на формате A4 (ГЮИК 485.007).

Работа микропроцессора начинается с загрузки начального адреса программы (блок 1). По которому осуществляется вызов программы из ПЗУ.

Затем выполняется конфигурация портов контроллера на ввод\вывод (блок 2), для этого переходят на первую страницу памяти, установив бит RP0 в единицу. Загружая в регистры портов TRIS A и TRIS B двоичные числа 00111 и 1110000 соответственно, получаем, что первые 3 вывода порта A сконфигурированы на ввод, а первые 4 вывода порта B - на вывод. К выводам RA0, RA1, RA2 порта A подключаются кнопки выбора длительности импульсов в пачке 9мс, 10мс и 11мс соответственно. Вывод RB0 порта B является выходным, с него снимается последовательность пачек. К выводам RB1, RB2, RB3 подсоединены индикаторные светодиоды, которые зажигаются при нажатой кнопке для 9мс, 10 мс и 11мс соответственно. По окончанию выполняется возврат на нулевую страницу памяти.

Для изменения длительности импульсов контроллер должен реагировать на изменения состояния кнопок, для этого используется программа опроса клавиатуры (блок3). Если какая-то кнопка нажата (блок 4), т.е. состояние порта RA0 (RA1, RA2) сменилось на нуль, происходит переход программы на участок загрузки соответствующих констант для формирования нужных временных задержек (блок 5).

В начале порт RB1 устанавливается в единицу, светодиод загорается - так осуществляется индикация нажатой кнопки, соответствующей 9мс (для двух других режимов индикация осуществляется аналогично, управляя портами RB2, RB3). Затем в регистры общего назначения A, B, C и D загружаются константы в десятичной форме для формирования импульса, паузы между импульсами, и паузы между пачками соответственно, для длительности импульса 9мс. В регистр E загружается константа, определяющая количество импульсов в пачке (периодов следования импульсов), в данном случае это число 5 для любой длительности импульсов. Для получения на выходе контроллера импульса на порт RB0 выводится логическая единица (блок 6). Задержка единицы получается в результате декремента содержимого регистра A (блок 7). После каждого раза вычитания результат проверяется на нуль (блок 8): если результат не равен нулю, декрементирование повторяется , равен - программа выполняется далее. Вывод на порт RB0 логического нуля (блок 9) соответствует паузе между импульсами, для получения необходимой длительности выполняется задержка, декрементируя содержимое регистра B (блок 10) до получения нулевого результата (блок 11), при неравенстве нулю снова происходит вычитание. Декрементируя содержимое регистра E (блок 13), формируется последовательность из пяти импульсов: если результат вычитания не равен нулю, формирование задержки единицы-нуля повторяются снова.

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

Длительность интервала между пачками импульсов имеет большую длительность по сравнению с интервалом между импульсами, то есть необходимо организовать большую временную задержку, поэтому в этом случае используются два регистра. Для этого содержимое регистра D пересылается в регистр F (блок 14), который является вспомогательным. Его содержимое декрементируется (блок 15) до нулевого результата (блок 16), после чего выполняется декремент содержимого регистра C (блок 17) и при равенстве результата нулю (блок 18) происходит переход программы на участок опроса клавиатуры. Для каждой длительности программа выполняет те же операции, разница состоит в том, что при трёх случаях в регистры разгружаются различные константы, что обеспечивается переходом программы на соответствующие участки программы при изменении состояния кнопок.

При формировании импульсов и пауз между ними перед декрементированием содержимого регистров A и B используется так называемая «пустая» операция (команда NOP). Это позволяет получить более точные временные задержки, которые определяются количеством тактов, выполняемых микроконтроллером и его тактовой частотой. Это является одним из достоинств программно-управляемого генератора пачек прямоугольных импульсов на микроконтроллере: изменяя константы, загружаемые в регистры и подбирая тактовую частоту контроллера можно получить последовательности импульсов любой длительности.

Рабочая программа для микроконтроллера PIC16C84 написана на языке ASSEMBLER и приведена в приложении Б.

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

Схема электрическая принципиальная генератора приведена на чертеже (формат А3).

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

К ножкам 17, 18 и 1 микросхемы, которые являются выводами порта A(данный порт сконфигурирован на ввод), подключены выключатели S2, S3 и S1 соответственно. Данные выводы через резисторы R1,R2 и R3 подключены к шине питания, это позволяет установить на соответствующих выводах логическую единицу. При нажатии кнопки происходит замыкание вывода не общий провод, что вызывает сброс единицы в логический нуль. На это изменение состояния, на каком либо выводе, микроконтроллер реагирует, выполняя те или иные операции. Нажатию кнопки S2 соответствует установка на выходе генератора пачек с длительностью импульсов 9мс, S3 - 10мс, S1-11мс. Выводы 6, 7, 8 и 9 микросхемы DA1 являются выводами порта B, которые сконфигурированы на вывод. К ножкам 7,8 и 9 подключены светодиоды HL1, HL2 и HL3 соответственно. Светодиоды служат для индикации режимов работы генератора. При нажатии кнопки S2(длительность импульса 9мс) микроконтроллер выдает на вывод 7 логическую единицу, что вызывает свечение светодиода HL1. При нажатии кнопки S3(10мс) загорается светодиод HL2, S2(11мс) - светодиод HL3. Ножка 6 является выходом микроконтроллера, на который он выводит последовательность пачек импульсов.

К ножкам 10 и 15 подключён кварц QZ1, который задает тактовую частоту процессора, в данном случае частота кварца составляет 100кГц, соответственно процессор выполняет 100000 операций в секунду. Конденсаторы C1 и C2 применены для повышения стабильности генератора. Увеличение ёмкости конденсаторов C1,C2 будет увеличивать стабильность генератора, но также будет увеличиваться время запуска. Поэтому ёмкости конденсаторов выбраны набольшими значениями, в виду повышения быстродействия устройства.

Для преобразования выходного сигнала микроконтроллера из уровня TTL в более мощный сигнал, а также для согласования устройства с нагрузкой (генератор работает на низкоомную нагрузку), используется выходной каскад. В качестве выходного каскада применён транзистор VT1. При появлении на выводе 6 импульса, он поступает через резистор R4 на базу VT1. В связи с тем, что величина импульса значительно меньше напряжения на эмиттере, т.е. база имеет менее положительный потенциал, транзистор открывается на время, равное длительности импульса. Резистор R4 ограничивает выходной сигнал микроконтроллера до значения, необходимого для нормальной работы транзистора VT1. В то время, когда открыт транзистор, в нагрузке протекает ток источника питания, т.ё. на нагрузке появляется импульс с амплитудой, равной амплитуде напряжения питания. Таким образом, осуществляется усиление последовательности импульсов. Так как выходом является коллектор, а такая схема включения имеет низкое выходное и достаточно высокое входное сопротивление, то этот каскад успешно выполняет функцию согласования выхода микроконтроллера с нагрузкой, так как по ТЗ генератор должен работать на низкоомную нагрузку.

Генератор питается от сети 220 B переменного тока, встроенный блок питания обеспечивает напряжение 5 B для питания микроконтроллера и 8 B для усилительного каскада. В блоке питания применёны интегральные стабилизаторы DA2 (стабилизация напряжения питания микроконтроллера) и DA3 (стабилизация напряжения питания выходного транзистора). Электролитический конденсатор C3 выполняет фильтрацию переменной составляющей напряжения питания. Так как электролитические конденсаторы большой ёмкости имеют большие индуктивности, это приводит к появлению колебательных процессов, что очень нежелательно в цепях питания. Для компенсации паразитной индуктивности конденсатора C3 применён неполярный конденсатор небольшой ёмкости C4.

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

Применены непроволочные тонкослойные металлодиэлектрические резисторы марки C2-23 постоянного сопротивления. У данных резисторов в качестве резистивного элемента используется тонкая плёнка слоя проводящего металла, поэтому они характеризуются повышенной теплостойкостью. Резисторы имеют невысокую стоимость.

В качестве электролитического конденсатора C3 использован конденсатор марки K50-35. Это электролитический фольговый алюминиевый конденсатор, который отличается малой удельной емкостью, малыми токами утечки, небольшими потерями и относительной дешевизной. Конденсаторы C1, C2 - керамические марки КМ-6, обладают хорошими параметрами и малыми габаритами. C3 - керамический конденсатор марки К10-17.

Интегральные стабилизаторы марки KP142EH5Б и KP142EH8Б.

В качестве выпрямительного моста используется диодная сборка КЦ402Е, что упрощает схему устройства.

5 АНАЛИЗ ВРЕМЕННЫХ СООТНОШЕНИЙ И РАСЧЁТ ПОГРЕШНОСТЕЙ

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

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

Частоту следования пачек можно определить, подсчитав период следования пачек, т.е. длительность пачки и паузы между пачками импульсов, а затем перевести в частоту, разделив единицу на период:

Длительность пачки определяется по формуле:

,

где - длительность импульса в пачке;

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

Период следования пачек равен:

,

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

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

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

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

Временные задержки определяются умножением количества тактов, выполняемых контроллером, на значение тактовой частоты (100 кГц) и в формулу для частоты подставляются уже в единицах отсчёта времени.

Погрешность определяется по формуле:

,

где - фактическая частота генератора;

- заданная в ТЗ частота генератора.

При нажатии кнопки 1 имеем реальные значения времени:

=8,96мс

=13,72мс

=899,44мс

=0,12мс

=0,54мс

Тогда частота следования пачек прямоугольных импульсов в этом случае будет:

Погрешность будет составлять:

При нажатии кнопки 2 имеем реальные значения времени:

=9,92мс

=12,44мс

=899,28мс

=0,16мс

=0,54мс

Тогда частота следования пачек прямоугольных импульсов в этом случае будет:

Погрешность будет составлять:

При нажатии кнопки 3 имеем реальные значения времени:

=10,88мс

=11,32мс

=899,12мс

=0,36мс

=0,54мс

Тогда частота следования пачек прямоугольных импульсов в этом случае будет:

Погрешность будет составлять:

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

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

СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ

1. Ю.П. Гришин, Ю.М. Казаринов, В.М. Катиков. Микропроцессоры в радиотехнических системах - Москва «Радио и связь» 1982

2. Б.П. Балашов, Д.В. Пузанков. Микропроцессоры и микропроцессорные системы - Москва «Радио и связь» 1981

3. Л.И. Ридико. Микроэлектронные проекты. Генератор пачек импульсов на основе AVR. «Телесистемы» - www.Telesys.ru

4. В.Н. Яковлев. Микроэлектронные генераторы импульсов - Киев «Техника» 1982

Страницы: 1, 2