После получения необходимого числа импульсов выполняется формирование паузы между пачками импульсов.
Длительность интервала между пачками импульсов имеет большую длительность по сравнению с интервалом между импульсами, то есть необходимо организовать большую временную задержку, поэтому в этом случае используются два регистра. Для этого содержимое регистра D пересылается в регистр F (блок 14), который является вспомогательным. Его содержимое декрементируется (блок 15) до нулевого результата (блок 16), после чего выполняется декремент содержимого регистра C (блок 17) и при равенстве результата нулю (блок 18) происходит переход программы на участок опроса клавиатуры. Для каждой длительности программа выполняет те же операции, разница состоит в том, что при трёх случаях в регистры разгружаются различные константы, что обеспечивается переходом программы на соответствующие участки программы при изменении состояния кнопок.
При формировании импульсов и пауз между ними перед декрементированием содержимого регистров A и B используется так называемая «пустая» операция (команда NOP). Это позволяет получить более точные временные задержки, которые определяются количеством тактов, выполняемых микроконтроллером и его тактовой частотой. Это является одним из достоинств программно-управляемого генератора пачек прямоугольных импульсов на микроконтроллере: изменяя константы, загружаемые в регистры и подбирая тактовую частоту контроллера можно получить последовательности импульсов любой длительности.
Рабочая программа для микроконтроллера PIC16C84 написана на языке ASSEMBLER и приведена в приложении Б.
Схема электрическая принципиальная генератора приведена на чертеже (формат А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 АНАЛИЗ ВРЕМЕННЫХ СООТНОШЕНИЙ И РАСЧЁТ ПОГРЕШНОСТЕЙ
В связи с тем, что генерация пачек прямоугольных импульсов осуществляется по принципу формирования задержек логической единице и нуля на выходе микроконтроллера, а временные задержки определяются количеством тактов, выполняемых микроконтроллером, и значениями констант, загружаемых в регистры, то имеют место временные задержки, которые не на сто процентов соответствуют требуемым значениям – появляется погрешность. Погрешность частоты импульсов в пачке и погрешность временной задержки, соответствующей паузе между пачками импульсов, определяют погрешность частоты следования пачек прямоугольных импульсов.
Для выявления соответствия реальной погрешности частоты следования пачек, которую имеет проектируемый генератор, допустимой погрешности (заданной по техническому заданию) проанализируем, какие реальные параметры выдаёт генератор при трёх значениях длительности импульсов.
Частоту следования пачек можно определить, подсчитав период следования пачек, т.е. длительность пачки и паузы между пачками импульсов, а затем перевести в частоту, разделив единицу на период:
Длительность пачки определяется по формуле:
,где
- длительность импульса в пачке; - длительность паузы между импульсами.Период следования пачек равен:
где
- длительность паузы между пачками.В длительность паузы между пачками импульсов входит собственно формируемая контроллером временная задержка, время опроса клавиатуры, время загрузки необходимых констант, т.е.: