% vim:aw:textwidth=75
\documentclass[a4paper,12pt]{article}
\usepackage[T2A]{fontenc}
\usepackage[koi8-r]{inputenc}
\usepackage[russian]{babel}
\usepackage{indentfirst}
\usepackage{amsmath}
\usepackage[dvips]{graphicx}
\usepackage{wrapfig}
\usepackage[rflt]{floatflt}
%\setlength{\voffset}{-1in}
%\setlength{\topmargin}{1cm}
%\setlength{\textheight}{24.6cm}
%\setlength{\textwidth}{16cm}
\setlength{\hoffset}{0.5cm}
\sloppy
\setlength{\textheight}{625pt}
\begin{document}
%\pagestyle{empty}
%\section*{Титульная страница}
%\clearpage
%\section*{Задание}
%\clearpage
%\section*{Аннотация}
%\clearpage
%\section*{Annotation}
%\clearpage
%\pagestyle{plain}
\setcounter{page}{6}
%\enlargethispage{3\baselineskip}
\setlength{\textheight}{555pt}
\tableofcontents
\section{Введение}

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

В этой задаче были выделены следующие подзадачи:
\begin{itemize}
\item ознакомление с общими принципами устройства двигателей постоянного
тока;
\item ознакомление с методами регулирования скорости вращения ДПТ;
\item ознакомление с методами получения информации о реальной скорости
вращения ДПТ для организации замкнутой системы регулирования;
\item рассмотрение основных принципов построения импульсных усилителей
мощности (ИУМ), необходимых для управления ДПТ;
\item ознакомление с особенностями строения и использования
микроконтроллеров;
\item разработка методики реализации заданного алгоритма вращения;
\item проведение экспериментальной проверки этой методики.
\end{itemize}

\section{Общие сведения о двигателях постоянного тока}
\setlength{\textheight}{595pt}

В зависимости от рода потребляемого или отдаваемого в сеть тока
электрические машины подразделяются на машины переменного и постоянного
тока. Машины переменного тока делятся на синхронные, асинхронные и
коллекторные.

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

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

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

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

Среди существующих двигателей постоянного тока (ДПТ) можно выделить две
группы: коллекторные и бесколлекторные. 

\subsection{Коллекторные машины постоянного тока}
\begin{figure}
\begin{center}
\includegraphics{motor_overview.ps}
\caption{Двигатель постоянного тока серии 2П, \emph1~--- тахогенератор,
\emph2~--- траверса, \emph3~--- коллектор, \emph4~--- станина,
\emph5~--- якорь}
\label{motor_overview}
\end{center}
\end{figure}

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

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

Основными конструктивными элементами машин постоянного тока
являются станина с закрепленными на ней главными и добавочными полюсами,
вращающийся якорь с обмоткой и коллектором и щеточный аппарат
(рис.~\ref{motor_overview}). В машинах
малой и средней мощностей станина одновременно служит и корпусом, к
которому крепятся лапы для установки машины, и частью магнитопровода. По
ней замыкается магнитный поток.

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

\subsection{Бесколлекторные электродвигатели}
Бесконтактные электродвигатели
постоянного тока (БДПТ) представляют собой электрические машины с
возбуждением от постоянных магнитов, имеющие датчик углового положения
ротора и полупроводниковый коммутатор. 

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

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

Сфера применения БДПТ определила создание двух конструктивных
разновидностей:
\begin{itemize}
\item БДПТ обычного исполнения;
\item БДПТ герметизированного исполнения, в которых ротор и статор разделены
герметичной металлической гильзой.
\end{itemize}

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

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

Механические и рабочие характеристики силовых БДПТ имеют сходный характер с
аналогичными характеристиками коллекторных двигателей постоянного тока.

\subsection{Характеристики машин постоянного тока}
Характеристики машин постоянного тока определяются системой возбуждения:
независимой, параллельной, последовательной или смешанной (рис.~
\ref{ind_systems}).

\begin{figure}
\begin{center}
\includegraphics{induction_systems.ps}
\caption{Системы возбуждения машин постоянного тока: \emphа~--- независимая;
\emphб~--- параллельная; \emphв~--- последовательная;
\emphг~--- смешанная}
\label{ind_systems}
\end{center}
\end{figure}


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

В двигателях параллельного возбуждения размагничивающее действие реакции
якоря может вызвать неустойчивую работу, так как уменьшение потока с ростом
нагрузки из-за действия реакции якоря при малом суммарном сопротивлении
якорной цепи приводит к увеличению частоты вращения двигателя. Поэтому в
большинстве двигателей средней и во всех двигателях большой мощности помимо
параллельной устанавливается последовательная обмотка возбуждения,
стабилизирующая магнитный поток и придающая устойчивость механической
характеристике (рис.~\ref{ind_char},~\emphа).

Механические характеристики двигателей с последовательным возбуждением
имеют специфический <<падающий>> характер (рис.~\ref{ind_char},~\emphб).
Двигатели с
последовательным возбуждением используются в приводах, требующих больших
пусковых моментов и устойчивой работы при малых частотах вращения.
\cite{motors}

\section{Методы регулирования скорости вращения ДПТ}

\begin{wrapfigure}[20]{r}{5.2cm}
\includegraphics{induction_char.ps}
\caption{Механические характеристики двигателей постоянного тока:
\emphа~--- смешанного возбуждения; \emphб~--- последовательного
возбуждения}
\label{ind_char}
\end{wrapfigure}
Известно, что при моменте $M = const$ частота вращения якоря
\begin{equation}
n = \frac{U}{C_E \textrm{Ф}_\textrm{в}} - \frac{R_\textrm{я} + R_n}
	{C_E C_M \textrm{Ф}_\textrm{в}^2}M.
\label{e:n_}
\end{equation}

Частота вращения двигателя при
неизменной нагрузке может быть изменена регулированием питающего напряжения
$U$, включением последовательно с якорем дополнительного регулировочного
резистора и изменением магнитного потока машины (изменением
тока возбуждения). В практике применяются все три способа регулирования.

Коллекторные двигатели постоянного тока в зависимости от способа их
возбуждения имеют различную жесткость механической характеристики.
Двигатели с последовательным возбуждением обеспечивают наименьшую
стабильность частоты вращения, поскольку они имеют мягкую механическую
характеристику (рис.~\ref{ind_char},~\emphб).
Двигатели с параллельным возбуждением и с возбуждением от
постоянных магнитов вследствие повышенной жесткости механической
характеристики имеют более стабильную частоту вращения, а с применением
специальных устройств  регуляторов скорости (центробежно-вибрационных или
электронных) достигается стабильность частоты вращения от 5 до 0,5\% и выше
(рис.~\ref{ind_char},~\emphа).

На рис.~\ref{motor_serial_char_nm} показана зависимость механической
характеристики двигателя последовательного возбуждения от
сопротивления реостата. На рис.~\ref{motor_parallel_char_nm}~---
зависимость характеристики двигателя параллельного возбуждения, кривая
\emph1~--- естественная мехaническая характеристика, кривые \emph2,
\emph3~--- характеристики при пониженном напряжении цепи якоря, причем они
тем ниже, чем меньше подводимое напряжение, кривые \emph4, \emph5~---
характеристики при уменьшенном токе возбуждения (а следовательно, и
магнитном потоке), причем они проходят тем
выше и круче естественной кривой, чем меньше магнитный поток.
Рис.~\ref{motor_mixed_char_nm} показывает характеристику двигателя
смешанного возбуждения (кривая \emph1) в сравнении с последовательным
(кривая \emph2) и параллельным (кривая \emph3). \cite{lukich}
\begin{figure}
\centering
\parbox{6cm}{
\includegraphics{motor_serial_char_nm.ps}
\caption{Характеристики двигателей последовательного возбуждения}
\label{motor_serial_char_nm}}
\parbox{3cm}{
\includegraphics{motor_parallel_char_nm.ps}
\caption{Характеристики двигателей параллельного возбуждения}
\label{motor_parallel_char_nm}}
\parbox{3cm}{
\includegraphics{motor_mixed_char_nm.ps}
\caption{Характеристики двигателей смешанного возбуждения}
\label{motor_mixed_char_nm}}
\end{figure}

\subsection{Регулирование изменением подводимого напряжения}
Из выражения~(\ref{e:n_}) видно, что при изменении подводимого напряжения
механическая характеристика смещается параллельно
своему положению при $U = U_\textrm{ном}$.

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

\subsection{Регулирование потоком}
Как видно из выражения~(\ref{e:n_}) и показано на
рис.~\ref{motor_parallel_char_nm} (кривые \emph4, \emph5) при изменении
потока механическая характеристика не только смещается, но и меняет свою
жесткость, что обусловлено тем фактом, что зависимость
$n(\textrmФ_\textrmв)$ нелинейна.

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

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

\subsection{Регулирование резистором в цепи  якоря}
Из выражения~(\ref{e:n_}) видно, что увеличение сопротивления в цепи якоря
просто смещает характеристику параллельно вниз, не изменяя ее жесткости.

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

Для регулирования частоты вращения двигателей с параллельным возбуждением и
с возбуждением от постоянных магнитов применяется в основном якорное
управление, т.е. изменение напряжения питания якорной цепи, при этом
механическая характеристика, не изменяя жесткости, смещается параллельно
своему положению при $U = U_\textrm{ном}$.

Практические пределы регулирования частоты вращения двигателей постоянного
тока составляют от 1:5 до 1:20.

В современных системах регулирования частоты вращения двигателей
постоянного тока применяются тиристорные схемы, позволяющие осуществить
регулирование частоты вращения в широких пределах по заданной программе.
Датчиками частоты вращения для осуществления обратной связи при
регулировании могут быть тахогенераторы, размещенные на валу якоря
двигателя.
\cite{motors}

\section{Следящие системы на основе ДПТ}
\subsection{Общие сведения}
Всякий технологический процесс характеризуется определенными физическими
величинами. Для обеспечения требуемого режима работы эти величины
необходимо поддерживать постоянными или изменять по тому или иному закону.
Физические величины, определяющие ход технологического процесса, называются
параметрами технологического процесса. Параметрами технологического
процесса могут быть давление, температура, уровень жидкости, концентрация
вещества, расход вещества или энергии, скорость изменения какой  либо
величины и т.п. Параметр технологического процесса, который необходимо
поддерживать постоянным или изменять по определенному закону, называется
регулируемой величиной.

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

%}
%\parbox{4cm}{
%\vspace{0.5cm}
%\includegraphics{ir_sens.ps}
%\caption{ИК-датчик}
%\label{ir_sens}
%}
%\parbox{4cm}{
%\vspace{0.5cm}
%\includegraphics{ir_sens2.ps}
%\caption{ИК-датчик просветный}
%\label{ir_sens2}
%}
%\end{floatingfigure}

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

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

Рассогласование  служит источником  воздействия на систему,  причем система
работает  на  уничтожение или сведения  к допустимо малому значению
величины этого рассогласования, то есть  величины ошибки
системы.\cite{automa}

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

\subsection{Датчики оборотов ДПТ}
\begin{wrapfigure}{r}{4cm}
\includegraphics{tahog.ps}
\caption{Тахогенератор}
\label{tahog}
\end{wrapfigure}
Таким устройством
может быть тахогенератор (ТГ) постоянного тока (ТГП) (рис.~\ref{tahog}). 
Он предназначен для преобразования частоты вращения вала в пропорциональное
частоте выходное напряжение постоянного тока. Далее это напряжение может
быть подано на усилитель для вычитания из заданной величины или на АЦП для
последующей цифровой обработки.

Также могут применяться оптические датчики, в частности аналоговые
отражательные ИК датчики положения и скорости вращения
(рис.~\ref{ir_sens}).
Они представляют собой систему из ИК излучателя и ИК
фотоприемника (фототранзистор или составной фототранзистор), жестко
закрепленных в корпусе, оптические оси которых пересекаются под
определенным углом вне корпуса датчика.

\begin{wrapfigure}{r}{4cm}
\includegraphics{ir_sens.ps}
\caption{ИК-датчик}
\label{ir_sens}
\end{wrapfigure}
Когда детектируемый объект
находится в поле обзора датчика (пересечение оптических осей излучателя и
приемника), отраженный от него сигнал, формируемый излучателем, в точке
приема максимален.
 Этот факт вызывает резкое увеличение выходного тока
через фототранзистор.
 Основными параметрами оптических датчиков
отражательного типа являются точка оптимального обнаружения (оптимальное
расстояние объекта до апертуры фотоприемника датчика, при котором отклик на
выходе максимален) и чувствительность. Первый параметр зависит от взаимного
расположения излучателя и приемника, определяемого конструкцией датчика,
второй - от чувствительности фотоприемника. Также применяются просветные
датчики (рис.~\ref{ir_sens2}).

\begin{wrapfigure}{r}{4cm}
\includegraphics{ir_sens2.ps}
\caption{ИК-датчик просветный}
\label{ir_sens2}
\end{wrapfigure}
Для тех же целей можно использовать
бесконтактные датчики, основанные на эффекте Холла.
 В них
металлическая пластина проходит рядом с датчиком, создавая в нем
возмущение, регистрируемое контроллером.

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

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

\section{Методы построения усилителей мощности для управления ДПТ}

\newcommand{\nag}{\textrm{н}}
Для управления ДПТ в основном применяются устройства, называемые
импульсными усилителями мощности. В основе их работы лежит принцип,
согласно которому, изменяя времена включенного и выключенного состояний
ключа, можно изменять суммарную мощность, выделяющуюся в нагрузке, т.е.
усиливать входной управляющий сигнал. Это свойство обусловлено тем фактом,
что в используемых схемах коммутации (СК) включенному и выключенному
состояниям ключа соответствуют различные уровни мощности, отбираемой от
источника питания и рассеиваемой в нагрузке.

\begin{figure}
\begin{center}
\includegraphics{serial_sk.ps}
\caption{\emphа~--- последовательная схема коммутации на биполярном
транзисторе, \emphб~--- временная диаграмма изменения нагрузки, \emphг~---
зависимость $P_\nag$ от коэффициента заполнения}
\label{serial_sk}
\end{center}
\end{figure}

Рассмотрим более подробно вопросы, возникающие при построении данного
класса устройств. Для этого обратимся к последовательной СК, показанной на
рис.~\ref{serial_sk},~\emph{а}. По своей сути эта схема повторяет схему
простого аналогового усилителя электрического сигнала. Отличие состоит лишь
в способе управления регулирующим транзистором.

Для простоты будем полагать, что нагрузка имеет чисто активный характер.
Тогда мощность, выделяющаяся в ней,
\begin{equation}
P_\nag = U^2 / R_\nag,
\end{equation}
где $U$~--- действующее напряжение $u_\nag$.

Предположим, что на входе транзистора действует последовательность
управляющих импульсов длительностью $t_\nag$ и периодом следования $T$,
обеспечивающая его работу в ключевом режиме. Тогда на нагрузке будет
формироваться последовательность прямоугольных однополярных импульсов,
показанная на рис.~\ref{serial_sk},~\emph{б}, и действующее напряжение
\begin{equation}
U=\sqrt{\frac{1}{T}\int_0^{t_\textrm{и}} u_\nag^2\,\,dt} = 
U_\textrm{п}\sqrt{\frac{t_\textrm{и}}{T}} =
U_\textrm{п}\sqrt{K_\textrm{з}},
\end{equation}
где $U_\textrm{п}$~--- напряжение источника питания, включенного в цепь
нагрузки; $K_\textrm{з}$~--- коэффициент заполнения или относительная
длительность включенного состояния транзисторного ключа.

Тогда зависимость $P_\nag = F(K_\textrm{з})$ будет иметь вид
\begin{equation}
\label{e:p_nag}
P_\nag = (U_\textrm{п}\sqrt{K_\textrm{з}})^2/R_\nag = P_{max}K_\textrm{з},
\end{equation}

Графически эта зависимость имеет вид, показанный на рис.~\ref{serial_sk},~
\emphг.

Таким образом, изменяя относительную длительность включенного состояния
транзисторного ключа ($K_\textrm{з}$), можно регулировать мощность,
выделяющуюся в нагрузке.

\subsection{Основные требования к импульсным усилителям мощности}
Причиной широкого использования ИУМ в различных устройствах автоматики в
случаях, связанных с регулированием электрической мощности, является
возможность построения устройств, теоретически обладающих КПД равным 1. Эта
возможность вытекает из ранее полученного выражения (\ref{e:p_nag}),
согласно которому процесс импульсного регулирования не связан с потерями
мощности.

Действительно, если предположить, что используемый в схеме ИУМ, приведенной
на рис.~\ref{serial_sk}, транзисторный ключ является идеальным, т.е.
выполняются условия:
\begin{equation}
\label{e:ideal_key}
R_\textrm{кл.вкл}=0; R_\textrm{кл.выкл}=\infty; t_\textrm{пер}=0;
	P_\textrm{упр}=0,
\end{equation}
то мощность, отбираемая от источника питания, полностью выделяется в
нагрузке, а это и означает, что КПД такого устройства равен 1.

Для реальных устройств такой КПД, естественно, не достижим, что объясняется
невыполнением в реальных транзисторных ключах, используемых в ИУМ, условий
идеальности (\ref{e:ideal_key}). Однако реальный КПД ИУМ существенно выше,
чем у усилителей, использующих активный режим работы транзистора.

Основные требования, предъявляемые к ИУМ, обычно направлены на более полную
реализацию их потенциальных преимуществ, а именно на повышение КПД. К ним
можно отнести: уменьшение мощности, рассеиваемой в цепях управления при
включенном и выключенном состояниях транзисторного ключа; уменьшение
мощности в силовых цепях транзисторных ключей при их включенном и
выключенном состояниях; уменьшение мощности, связанной с конечным значением
времени перехода транзисторного ключа из включенного состояния в
выключенное и наоборот.

Следует отметить, что повышение КПД ИУМ не является самоцелью, а неразрывно
связано с основной тенденцией развития современной электроники, а именно с
комплексной миниатюризацией радиоэлектронного оборудования.

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

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

\subsection{Режимы импульсного регулирования мощности}
Рассмотрим случай импульсного регулирования в RL-нагрузке, т.к.
при использовании ИУМ для управления ДПТ нагрузку можно рассматривать как
RL-цепь. Для простоты будем полагать, что постоянная времени RL-нагрузки
$\tau_\nag = L_\nag / R_\nag$ существенно больше периода коммутации
транзистора, т.е.
\begin{equation}
\label{e:tau_g_T}
\tau_\nag \gg T.
\end{equation}
Это позволяет считать изменения тока индуктивности $i_{L_\nag}$ практически
линейными, а сами эти изменения существенно меньшими среднего значения ее
тока. На практике эти условия практически всегда выполняются.

При питании импульсного усилителя мощности от источника постоянного тока и
безразрывной коммутации цепи нагрузки, напряжение на последней имеет
прямоугольную форму. При этом возможны три режима регулирования
электрической мощности, называющиеся, соответственно первый, второй и
третий импульсные режимы. Общим для всех этих случаев, как отмечалось
ранее, является регулирование мощности нагрузки изменением относительной
длительности выходных импульсов, т.е. изменением коэффициента заполнения
$K_\textrm{з}$.

В первом импульсном режиме (1ИР) питание нагрузки осуществляется
последовательностью однополярных прямоугольных импульсов неизменной
амплитуды (рис.~\ref{serial_sk},~б).

Этот режим используется, как правило, для регулирования мощности в
нереверсивных RL-нагрузках (т.е. в нагрузках, для которых по условию работы
направление протекания тока не должно изменяться). При этом нагрузка может
содержать источник противоЭДС.

Средний ток нагрузки в этом режиме определяется выражением
\begin{equation}
I_0 = I_{max}(K_\textrm{з} - U_0 / U_\textrm{п}),
\end{equation}
где $U_0$~--- противоЭДС в цепи нагрузки; $I_{max} =
U_\textrm{п}/R_\textrm{н}$~--- максимальный установившийся ток нагрузки.
Действующий ток нагрузки
\begin{equation}
I_\nag = I_{max} K_\textrm{з}\sqrt{1+(T/\tau_\nag)^2(1-K_\textrm{з})^2/12}.
\end{equation}

Очевидно, что чем жестче выполняется условие (\ref{e:tau_g_T}), тем меньше
пульсации тока в индуктивности нагрузки и $I_\nag$ стремится к $I_0$.

Во втором импульсном режиме (2ИР) питание нагрузки осуществляется
прямоугольным переменным напряжением, причем импульсы чередующейся
полярности следуют непрерывно друг за другом. Данный режим, как правило,
применяется для регулирования мощности постоянного тока в реверсируемой
RL-нагрузке, как без, так и с противоЭДС.

В третьем импульсном режиме (3ИР) питание нагрузки, как и в режиме 2ИР,
осуществляется прямоугольным переменным напряжением. Однако в этом случае
существуют интервалы, на которых напряжение нагрузки равно нулю. Данный
режим имеет практическое значение для случая, когда постоянная составляющая
нагрузки равна нулю. При этом осуществляется регулирование мощности первой
гармоники переменного напряжения.

\subsection{Схемы транзисторных импульсных усилителей мощности}

\begin{floatingfigure}{5.5cm}
\includegraphics{scheme_diode.ps}
\caption{Схема с замыкающим диодом}
\label{scheme_diode}
\end{floatingfigure}

Реализация различных импульсных режимов регулирования мощности требует
вполне определенной структуры выходного каскада ИУМ. Причем эта структура
не зависит ни от типа используемых управляемых полупроводниковых приборов,
ни от способа управления этими приборами. Практическое значение имеют три
основные схемы выходных каскадов импульсных усилителей мощности. В своей
основе они являются реализацией последовательно-параллельной СК.

Схема с замыкающим диодом (рис.~\ref{scheme_diode})~---
простейшая нереверсивная схема,
осуществляющая на интервале включенного состояния транзисторного ключа
подключение нагрузки к источнику питания $U_\textrm{п}$ и шунтирование ее
диодом на интервале его выключенного состояния. В схеме может быть
реализован только 1ИР регулирования мощности.

Схема с включающим и замыкающим транзисторами (рис.~
\ref{schemes_tr},~\emphа) содержит два последовательно
включенных между выводами источника питания силовых ключа~--- транзисторы
VT1 и VT2. Каждый из транзисторов шунтирован обратным диодом VD1 и VD2.
Такое включение транзисторов обычно называют <<стойкой>>. К средней точке
транзисторов подключен один вывод нагрузки. В зависимости от того, куда
подключен второй вывод нагрузки и закона управления силовыми транзисторами,
в данной схеме может быть реализован любой из рассмотренных ранее режимов
импульсного усиления мощности. Если второй вывод нагрузки подключен к
одному из выводов источника питания ($+U_\textrm{п}$ или $0$), в схеме
реализуется 1ИР при положительной или отрицательной амплитуде выходных
импульсов. Если в качестве источника питания использован источник со
средней точкой и вывод подсоединить к средней точке этого источника, то в
схеме в зависимости от используемого закона управления силовыми
транзисторами может быть реализован любой из описанных выше импульсных
режимов усиления мощности.
\begin{figure}
\begin{center}
\includegraphics{schemes_trans.ps}
\caption{Схемы ИУМ: \emphа~--- с включающим и замыкающим транзисторами,
\emphб~--- мостовая}
\label{schemes_tr}
\end{center}
\end{figure}

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

В ряде случаев для создания средней точки применяют делитель на резистивных
или емкостных элементах.

Мостовая схема (рис.~
\ref{schemes_tr},~\emphб)
позволяет устранить основной недостаток схемы с замыкающим
транзистором, заключающийся в необходимости использования для реализации
изменения полярности выходных импульсов 1ИР (а также 2ИР и 3ИР) источника
со средней точкой. По существу она содержит две <<стойки>> (полумостовые
схемы), в диагональ между которыми включена нагрузка. Очевидно, что в этой
схеме можно реализовать все три режима регулирования мощности. К
достоинствам этой схемы следует отнести также и тот факт, что при
одинаковом напряжении питания амплитуда выходных импульсов в ней в 2 раза
выше амплитуды импульсов в схеме с включающим и замыкающим транзисторами.
Однако ее реализация требует удвоенного числа силовых транзисторных ключей
и более сложной схемы блока управления. Поэтому мостовая схема усилителя,
как правило, находит применение при управлении мощной нагрузкой.
\cite{apache}

\section{Основные характеристики микроконтроллеров}

\begin{figure}
\centering
\includegraphics{uc_struct.ps}
\caption{Структурная схема микроконтроллера}
\label{uc_struct}
\end{figure}
Микроконтроллер~--- вычислительно-управляющее устройство, предназначенное для
выполнения функций контроля и управления периферийным оборудованием.
Структурная схема дана на рис.~\ref{uc_struct}.

Уклон в сторону управления накладывает отпечаток на особенность архитектуры
микроконтроллеров. Основной из этих особенностей является то, что наряду с
процессорным ядром микроконтроллеры имеют в своём составе подсистему
ввода-вывода и, возможно, подсистему памяти. В последнем случае принято
говорить об однокристальных микро-ЭВМ.

Рассмотрим особенности организации каждой из подсистем микроконтроллеров.

\subsection{Процессорное ядро}
Современные микроконтроллеры могут быть построены как по Гарвардской
(MCS-51 Intel), так и по Фон Неймановской архитектуре (MCS-96 Intel, 80C166
Siemens). Все они имеют внешнюю системную магистраль для обмена данными с
внешней памятью и дополнительными периферийными устройствами. Классические
семейства микроконтроллеров (MCS-51) имеют, как правило, мультиплексные
шины адреса/данных, что было обусловлено необходимостью минимизировать
размер микросхемы. Однако современные быстродействующие микроконтроллеры
используют уже демультиплексную шину, что ускоряет работу системы.
Некоторые модели микроконтроллеров имеют возможность работать либо
мультиплексной либо с демультиплексной шиной, в зависимости от требуемой
конфигурации системы. В случае демультиплексной шины контроллер быстрее
обменивается данными по магистрали. При работе с мультиплексной шиной,
освободившиеся выводы используются как порты ввода-вывода. (MCS251 Intel,
80C166 Siemens).

Практически все микроконтроллеры выполняют только операции с фиксированной
точкой. Существуют 8-разрядные (MCS-51 Intel, MC6805 Motorola), 16-разрядные
(MCS-96 Intel, 80C166 Siemens, MC6816 Motorola), 32-разрядные(MC683
Motorola, MPC500 PowerPc) микроконтроллеры. Системы команд
микроконтроллеров поддерживает, как правило, широкий набор методов
адресации в т.ч. битовую адресацию.

\subsection{Подсистема памяти}

Существуют микроконтроллеры с аккумуляторной (MCS-51) и регистровой
(MCS-96) организацией. Количество регистров и их разрядность зависит от
конкретной модели. Зачастую микроконтроллеры имеют несколько банков
регистров (MCS-48, MCS-51, 80C166).

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

Варианты реализации внутренней памяти программ могут быть различными:
\begin{enumerate}
\item она может отсутствовать. В этом случае микроконтроллер выполняет
программу, считывая команды из внешней памяти программ через системную
магистраль;
\item она может быть выполнена в виде масочного ПЗУ. В этом случае
микроконтроллер не нуждается во внешней памяти программ. Однако в этом
случае программа во внутреннюю память записывается однократно на этапе
изготовления кристалла и не может быть изменена в дальнейшем. Как правило,
программа, записанная во внутреннюю память, выполняется быстрее, чем из
внешней памяти;
\item она может быть выполнена в виде однократно программируемого ППЗУ. В
этом случае пользователь сам может записать программу во внутреннюю память,
но лишь однажды. Для записи программы, как правило, необходим специальный
программатор. Однако существуют микроконтроллеры, способные программировать
сами себя (MCS-96) (программатор реализован внутри кристалла);
\item она может быть выполнена в виде ППЗУ с УФ стиранием. В этом случае
память программ может быть многократно перепрограммирована с помощью
программатора. Перед очередным программированием она должна быть очищена с
помощью УФ излучения;
\item она может быть выполнена в виде Flash  памяти. В этом случае память
программ может быть многократно перепрограммирована в процессе работы
системы;
\item она может быть реализована в виде ОЗУ. В этом случае для загрузки
программы после включения питания используется так называемый Boot Strap
загрузчик. Это механизм, позволяющий после включения питания загрузить
начальную программу функционирования по последовательному каналу связи,
либо по системной магистрали.
\end{enumerate}

\subsection{Подсистема ввода-вывода}
Подсистема ввода-вывода состоит из набора разнообразных устройств,
выполняющих специфические функции управления и контроля. К их числу
наиболее часто относятся:
\begin{figure}
\begin{center}
\includegraphics{ports_directional.ps}
\caption{Схемы портов ввода/вывода, \emphа~--- двунаправленный, \emphб~---
квазидвунаправленный}
\label{ports_dir}
\end{center}
\end{figure}
\begin{figure}
\begin{center}
\includegraphics{timer.ps}
\caption{Структурная схема модуля таймера/счетчика}
\label{timer}
\end{center}
\end{figure}
\begin{figure}
\begin{center}
\includegraphics{compare.ps}
\caption{Структурная схема модуля в выходном режиме (Compare)}
\label{compare}
\end{center}
\end{figure}
\begin{figure}
\begin{center}
\includegraphics{capture.ps}
\caption{Структурная схема модуля во входном режиме (Capture)}
\label{capture}
\end{center}
\end{figure}
\begin{figure}
\begin{center}
\includegraphics{pwm.ps}
\caption{Структурная схема блока ШИМ}
\label{pwm}
\end{center}
\end{figure}
\begin{figure}
\begin{center}
\includegraphics{sync_link.ps}
\caption{Временная диаграмма передачи данных по синхронной линии}
\label{sync_link}
\end{center}
\end{figure}
\begin{figure}
\begin{center}
\includegraphics{async_link.ps}
\caption{Временная диаграмма передачи данных по асинхронной линии}
\label{async_link}
\end{center}
\end{figure}
\begin{figure}
\begin{center}
\includegraphics{adc.ps}
\caption{Структурная схема блока АЦП}
\label{adc}
\end{center}
\end{figure}
\begin{enumerate}
\item Порты ввода-вывода. Они могут быть либо однонаправленными (выполняя
функции входа или выхода соответственно), либо
двунаправленными. Такие порты могут выполнять функции как входа, так
и выхода (в каждый конкретный момент времени либо вход, либо выход).
На рис.~\ref{ports_dir},~\emphа показана схема двунаправленного порта,
работающего как однонаправленный порт в режиме временного мультиплексирования
вывода адреса и данных для работы с внешней памятью, или как
двунаправленный, переходящий в Z-состояние, когда в защелке порта 1, что
позволяет использовать его для ввода. На рис.~\ref{ports_dir},~\emphб
показана схема квази-двунаправленного порта, где <<слабый>> подтягивающий
резистор также позволяет ввод данных при 1 в защелке порта.

\item Таймеры/счетчики. Они представляют собой специализированные счетчики
с коммутируемыми источниками синхронизации.
Структурная схема модуля представлена на рис.~\ref{timer}.

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

Во втором случае устройство выполняет функции счетчика событий
(отрицательных или положительных перепадов) на входе микросхемы. Счет может
производиться либо в одном, либо в обоих направлениях. В последнем случае
направление счета определяется уровнем сигнала на соответствующем входе
микросхемы. При переходе содержимого счетчика из наибольшего состояния в
наименьшее и наоборот могут генерироваться соответствующие внутренние
запросы на прерывание. Конкретные режимы работы и структура таймеров
зависят от конкретной модели микроконтроллера. 
\item Модули Захват/Сравнение. (Capture/Compare).
Эти модули, называемые ещё модулями быстрого ввода-вывода, предназначены
для быстрой генерации события на выходе микросхемы, либо быстрой реакции на
событие на её входе без участия процессора. Они имеют два основных режима
работы: входной и выходной.

Выходной режим Compare представлен на рис.~\ref{compare}.
В нем таймер модуля считает импульсы, поступающие с постоянной частотой,
соответствующей сигналу синхронизации (возможно деленной на предделителе).
В регистр времени события предварительно записывается по команде
определенное число. Компаратор сравнивает каждый момент времени содержимое
таймера и содержимое регистра времени события. В момент, когда их
содержимое становится равным друг другу, происходит заданное событие на
соответствующем выходе микросхемы и выставляется запрос на прерывание.
Таким образом, можно запрограммировать определённое выходное событие в
заданное время и осуществить его без участия процессора. Этот режим
используется в частности для генерации ШИМ.

Входной режим Capture представлен на рис.~\ref{capture}.
В нем таймер модуля считает импульсы системного синхросигнала, проходящие,
возможно, через предделитель частоты. В момент, когда на соответствующем
входе микросхемы происходит заданное событие, содержимое таймера
фиксируется в регистре времени события и вырабатывается запрос на
прерывание. Таким образом, запоминается время события, которое затем может
быть считано процессором по соответствующей команде. Этот режим
используется в частности для измерения частоты и длительности входного
сигнала.
\item Широтно-импульсный модулятор. Встроенный ШИМ предназначен для
генерации широтно-модулированного сигнала на выходе микросхемы без
участия процессора. Структурная схема представлена на рис.~\ref{pwm}.

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

При такой организации возможная разрядность ШИМ зависит от частоты сигнала.

В некоторых моделях микроконтроллеров используются специализированные
многоканальные модули ШИМ, в частности для управления приводом (80C196MC
Intel).

\item Модуль последовательного ввода-вывода.

Модуль последовательного ввода-вывода используется для обмена данными между
микроконтроллером и удаленным периферийным узлом. Данные передаются в
последовательном коде, то есть биты передаются во временной
последовательности друг за другом по одному каналу связи. Это даёт
возможность использовать один канал связи вместо нескольких в случае
параллельного кода. Однако при этом снижается быстродействие канала связи.
Различают полудуплексные и дуплексные каналы последовательной связи. В
случае полудуплексного канала данные передаются по одному и тому же каналу
в обе стороны, но в каждый конкретный момент времени только в одну сторону.

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

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

При синхронном методе передачи каждый передаваемый бит данных
синхронизируется импульсом в канале синхронизации (рис.~\ref{sync_link}).

При этом по каналу данных передаются только собственно данные. Такой
метод передачи позволяет обеспечить скорость передачи порядка 1Mbit/сек.
Однако, для его организации необходим дополнительный канал синхросигнала.

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

Первым в посылке передается <<СТАРТ-бит>> нулевого уровня. Приняв его,
приемная сторона подстраивает фазу своих синхросигналов в соответствии с
моментом прихода <<СТАРТ-бита>>. После него один за другим следуют биты
данных. В конце цепочки данных может следовать бит четности для проверки
правильности приема. Заканчивается посылка <<СТОП-битом>> единичного
уровня (рис.~\ref{async_link}).
Частота передачи, то есть время передачи одного бита заранее должны быть
согласованы на передающей и приемной сторонах. Такой метод передачи
позволяет обеспечить скорость передачи до 100 Kbit/сек.

Микроконтроллер может содержать либо отдельные синхронные и асинхронные
порты ввода-вывода, либо универсальный порт, способный работать в обоих
режимах.

\item Модуль АЦП.

Модуль АЦП предназначен для преобразования входной аналоговой информации в
цифровую и передачи ее в процессор для дальнейшей обработки
(рис.~\ref{adc}).
Микроконтроллеры имеют, как правило, несколько каналов АЦП. Преобразование
информации на том или ином канале инициализируются соответствующей
командой.

Преобразования начинаются выбором требуемого канала, который осуществляется
записью номера канала в специальный служебный регистр. Аналоговый
мультиплексор пропускает на выход сигнал выбранного канала. После этого
подается сигнал фиксации на устройство выборки-хранения. Оно фиксирует
уровень выбранного аналогового сигнала на весь период преобразования. Затем
подается сигнал начала преобразования. АЦП представляет собой, как правило,
АЦП последовательных приближений. Время преобразования составляет обычно
около 10ms. После окончания преобразования АЦП выдает сигнал готовности,
по которому его выходная информация записывается в буферный регистр, с
которого она затем может быть считана процессором по соответствующей
команде. При этом вырабатывается запрос на прерывание. Некоторые
микроконтроллеры имеют блоки АЦП, способные работать в автоматическом
режиме, опрашивая несколько каналов последовательно без участия
процессора(80C166, Intel).

\item Контроллер периферийных событий.

Этот контроллер предназначен для обеспечения некоторого блока событий в
заданное время без участия процессора. Заданные события выполняются на
микропрограммном уровне. Такими блоками событий могут быть:

\begin{itemize}
\item передача блока информации из одного места памяти (или устройства В/В)
       в другое;
\item последовательный опрос нескольких каналов АЦП;
\item передача информации по последовательному каналу связи.
\end{itemize}

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

Конкретный набор устройств В/В, их характеристики и возможные режимы работы
зависят от модели микроконтроллера. \cite{uclec}
\end{enumerate}

\section{Стенд для экспериментального исследования}
\begin{figure}
\vspace{10cm}
\caption{Общий вид стенда, \emph1~--- клеммник <<+27В>>, \emph2~--- тумблер
подачи напряжения 27В, \emph3~--- клеммник <<0В>>, \emph4~--- модуль
управления, \emph5~--- выходной вал редуктора, \emph6~--- клеммники для
подключения вольтметра, \emph7~--- клеммники для подключения амперметра}
\label{stand_photo}
\end{figure}
\begin{figure}
\vspace{10cm}
\caption{Модуль управления, \emph1~--- разъем для подключения блока питания
+9В, \emph2~--- ИС TTL--RS232 преобразователь, \emph3~--- разъем
последовательного интерфейса RS232, \emph4~--- НКСН, \emph5~---
микроконтроллер, \emph6~--- RESET, \emph7~--- PSEN, \emph8~--- <<желаемые>>
в тек. момент обороты, \emph9~--- текущие обороты, \emph{10}~--- текущий
коэффициент заполнения, \emph{11}~--- текущая секунда, \emph{12}~---
обороты <<полки>>, \emph{13}~--- время разгона, \emph{14}~--- время работы,
\emph{15}~--- время торможения, \emph{16}~--- кнопки управления (слева
направо) <<$-$>>, <<$+$>>, <<MODE>>}
\label{module_photo}
\end{figure}
\begin{figure}
\vspace{10cm}
\caption{Стенд, вид сзади, \emph1~--- ИС-драйвер ДПТ, \emph2~--- защитные
диоды}
\label{stand_back_photo}
\end{figure}

Стенд для экспериментального исследования состоит из модуля управления и
двигателя, закрепленные на пластине из оргстекла. Общий вид стенда
представлен на рис.~\ref{stand_photo}, модуль управления во время
работы~--- на рис.~\ref{module_photo}, вид на стенд сзади~--- на
рис.~\ref{stand_back_photo}.

\subsection{Основные характеристики используемого двигателя}
\begin{figure}
\begin{center}
\includegraphics{stand_scheme.ps}
\label{stand_scheme}
\caption{Схема стенда принципиальная}
\end{center}
\end{figure}
На стенде используется двигатель ДПМ-35Н1-О2, являющийся ДПТ с возбуждением
от постоянных магнитов, предназначен для работы при обоих направлениях
вращения, причем изменение направления вращения <<на ходу>>, без
предварительной остановки двигателя, не допускается. Напряжение питания~---
27~В, номинальная мощность~--- 5,39~Вт, ном. обороты~--- 3500~об/мин, ном.
момент~--- 14,7~мН/м, максимальный момент~--- 49~мН/м, ном. ток~--- 0,65~А,
пусковой ток~--- 2,5~А, КПД~--- 31\%. В качестве датчика оборотов применен
ИК просветный датчик, состоящий из ИК-светодиода и фототранзистора, и
металлическая шторка с прорезями, закрепленная на валу двигателя.

\subsection{Основные характеристики используемого микроконтроллера}
\begin{figure}[ht]
\begin{center}
\includegraphics{uc_bscheme.ps}
\caption{Блок-схема микроконтроллера}
\end{center}
\end{figure}
\begin{figure}
\begin{center}
\includegraphics{uc_pins.ps}
\caption{Назначение выводов}
\end{center}
\end{figure}
Основу лабораторного стенда составляет микроконтроллер {\bf AT89C51-ED2}. Он
был выбран, исходя из следующих соображений:
\begin{itemize}

\item Совместимость с Intel 8051 архитектурой. Распространенность этой
архитектуры позволила легко найти \emph{свободные} средства разработки
(включая компилятор ассемблера, линкер, компилятор C и эмулятор). Также
в интернете существует большое количество учебных пособий, примеров, схем и
т.д.;

\item Возможность внутрисхемного программирования через UART. Это
необходимо для упрощения отладки <<в железе>>, т.е. непосредственно на
стенде, так как позволяет легко перезаписать измененную версию микропрограммы
прямо через последовательный порт персонального компьютера (RS232), что, в
свою очередь, позволяет обойтись без дорогостоящих аппаратно-программных
комплексов, применяемых при отладке;

\item Существование исполнения микроконтроллера в корпусе, удобном для
макетирования (DIP или PLCC);

\item Наличие в розничной продаже в магазинах Москвы и доступная цена
($\sim$300р).

\end{itemize}

Ключевые характеристики этого микроконтроллера:
\begin{itemize}

\item Совместимость с 80C52:
\begin{itemize}
\item Совместимый с 8051 набор инструкций;
\item 6(4) 8-битных портов ввода/вывода для 64(44)-выводной версии;
\item 3 16-битных таймера/счетчика;
\item 256 байт ОЗУ;
\item 9 источников прерываний с 4 программируемыми уровнями приоритета;
\end{itemize}

\item Встроенный монитор питания (POR/PFD) для контроля внутреннего
источника питания;

\item Внутрисхемное программирование (ISP), используя стандартный источник
питания;

\item 2048 байт загрузочной ПЗУ содержат низкоуровневые подпрограммы
программирования EEPROM и загрузчик по умолчанию для последовательного
интерфейса;

\item Высокоскоростная архитектура:
\begin{itemize}
\item В стандартном режиме:
\begin{itemize}
\item 40 МГц (Vcc от 2.7В до 5.5В, исполнение внутреннего и внешнего кода);
\item 60 МГц (Vcc от 4.5В до 5.5В, исполнение только внутреннего кода);
\end{itemize}
\item В режиме X2 (6 тактовых импульсов на машинный такт):
\begin{itemize}
\item 20 МГц (Vcc от 2.7В до 5.5В, исполнение внутреннего и внешнего кода);
\item 30 МГц (Vcc от 4.5В до 5.5В, исполнение только внутреннего кода);
\end{itemize}
\end{itemize}

\item 64K встроенной электрически стираемой памяти для программ и данных:
\begin{itemize}
\item Запись и стирание как страницы (128 байт), так и отдельного байта;
\item $100\cdot10^3$ циклов записи;
\end{itemize}

\item 1792 байта встроенного дополнительного ОЗУ (XRAM):
\begin{itemize}
\item Программно настраиваемый размер (0, 256, 512, 768, 1024, 1792 байта);
\end{itemize}

\item 2048 байт встроенной EEPROM для хранения данных:
\begin{itemize}
\item $100\cdot10^3$ циклов записи;
\end{itemize}

\item Интерфейс клавиатурного прерывания;

\item SPI (режимы Master/Slave);

\item 8-битный делитель частоты;

\item 16-битный массив программируемых счетчиков (PCA):
\begin{itemize}
\item Высокоскоростной вывод;
\item Режимы сравнения/захвата;
\item Широтно-Импульсная Модуляция (PWM);
\item Возможности сторожевого таймера;
\end{itemize}

\item Полнодуплексное расширенное UART с отдельным внутренним генератором
частоты;

\item Аппаратный сторожевой таймер (с внешним выходом);

\item Режимы управления электропитанием (ждущий и выключенный);

\item Диапазон питания от 2.7В до 5.5В;

\item Промышленный температурный диапазон (-40 до +85$^\textrm{o}$C);

\item Исполнение PLCC44, VQFP44, PLCC68, VQFP64, PDIL40.

\end{itemize}

Выходное напряжение лог. 0 (порты 1, 2, 3, 4), макс: 0.3В
($I_{OL}=100\mu
A$), 0.45В ($I_{OL}=1.6mA$), 1В ($I_{OL}=3.5mA$); порт 0: 0.3В ($I_{OL}=200\mu
A$), 0.45В ($I_{OL}=3.2mA$), 1В ($I_{OL}=7mA$).

Выходное напряжение лог. 1 (порты 1, 2, 3, 4), мин: $V_{cc}-0.3$В
($I_{OH}=-10\mu A$), $V_{cc}-0.7$В ($I_{OH}=-30\mu A$), $V_{cc}-1.5$В
($I_{OH}=-60\mu A$); порт 0 с открытым стоком. \cite{ucds}

\subsection{Жидкокристаллический индикатор}
Для осуществления индикации на стенде применен жидкокристаллический модуль
MT-16S2D производства фирмы МЭЛТ (\emph{http://melt.com.ru}), который
состоит из БИС контроллера управления и ЖК панели. Контроллер управления
КБ1013ВГ6 производства ОАО <<АНГСТРЕМ>> (\emph{http://www.angstrem.ru})
аналогичен HD44780 фирмы HITACHI и KS0066 фирмы SAMSUNG. Модуль выпускается
в двух вариантах: со светодиодной подсветкой и без нее. Габаритные размеры
модуля представлены на рис.~\ref{mt_overview}; временные диаграммы чтения и
записи~--- на рис.~\ref{mt_read_diag},~\ref{mt_write_diag}; обмен по 4-х и
8-ми
битным интерфейсам~--- на рис.~\ref{mt_4bit_diag},~\ref{mt_8bit_diag}.
\cite{meltds}

\begin{figure}
\begin{center}
\includegraphics{mt_overview.ps}
\caption{Габаритные размеры LCD-модуля}
\label{mt_overview}
\end{center}
\end{figure}
\begin{figure}
\begin{center}
\includegraphics{mt_read_diag.ps}
\caption{Временная диаграмма чтения}
\label{mt_read_diag}
\end{center}
\end{figure}
\begin{figure}
\begin{center}
\includegraphics{mt_write_diag.ps}
\caption{Временная диаграмма записи}
\label{mt_write_diag}
\end{center}
\end{figure}
\begin{figure}
\begin{center}
\includegraphics{mt_4bit_diag.ps}
\caption{Временная диаграмма обмена по 4-х битному интерфейсу}
\label{mt_4bit_diag}
\end{center}
\end{figure}
\begin{figure}
\begin{center}
\includegraphics{mt_8bit_diag.ps}
\caption{Временная диаграмма обмена по 8-ми битному интерфейсу}
\label{mt_8bit_diag}
\end{center}
\end{figure}

Модуль позволяет отображать 2 строки по 16 символов в каждой. Символы
отображаются в матрице 5x8 точек. Между символами имеются интервалы шириной
в одну отображаемую точку.

Каждому отображаемому на ЖКИ символу соответствует его код в ячейке ОЗУ
модуля.

\clearpage
Модуль позволяет:
\begin{itemize}
\item программно переключать две страницы встроенного знакогенератора
(алфавиты: русский, украинский, белорусский, казахский и английский);
\item работать как по 8-ми, так и по 4-х битной шине данных;
\item принимать команды с шины данных;
\item записывать данные в ОЗУ с шины данных;
\item читать данные из ОЗУ на шину данных;
\item читать статус состояния на шину данных;
\item запоминать до 8-ми изображений символов, задаваемых пользователем;
\item выводить мигающий (или немигающий) курсор двух типов;
\item управлять контрастностью и подсветкой.
\end{itemize}

\clearpage

\section{Методика изучения}
\subsection{Программирование микроконтроллера}
Для программирования устройства управления стенда~--- микроконтроллера
можно применять как язык высокого уровня C, так и ассемблер. Возможна и
смешанная схема, при которой ассемблерные вставки пишутся внутри программы
на C, однако при этом следует соблюдать осторожность, связанную с
правильным объявлением меток, обращениям к переменным и сохранением
используемых регистров. Рекомендуется делать акцент на программировании на
C, так как это позволяет увеличить скорость и безошибочность разработки.

В качестве компилятора можно применить любой MCS-51-совместимый, однако
рекомендуется использовать Small Device C Compiler (SDCC,
\emph{http://sdcc.sourceforge.net/}), обладающий рядом преимуществ:
\begin{itemize}
\item Это средство разработки является свободным, т.е. исходный код самого
компилятора доступен для изучения, модификации и распространения;
\item Наличие как обычных (оптимизация подвыражений, циклов, копирования
констант и т.д.), так и специфичных для конкретного микроконтроллера;
\item ANSI-C-совместимость, позволяющая использовать уже имеющиеся навыки
программирования на C;
\item Наличие в комплекте отладчика и симулятора;
\item Полная функциональность под стандартными (POSIX-совместимыми)
системами.
\end{itemize}

Для непосредственно процесса записи микропрограммы в микроконтроллер по
последовательному интерфейсу можно использовать фирменную утилиту Atmel
FLAC, однако это не рекомендуется, т.к. она выпущена под проприетарной
(несвободной) лицензией. Вместо этого используется написанная
самостоятельно утилита, реализующая протокол, описанный в \cite{ucds}.

Примерный порядок действий при написании и компиляции программы:
\begin{enumerate}
\item Отредактировать исходные файлы программы:

\$ vim main.c ...

\item Откомпилировать с помощью SDCC (в большинстве случаев вызов
ассемблера и линкера осуществляется автоматически).

\$ sdcc main.c ...

\item Оптимизировать полученный файл для процесса программирования:

\$ packihx -o 128 -b 128 main.ihx >mainp.ihx

\item Удерживая на стенде кнопку Reset, нажать на PSEN, отпустить Reset,
отпустить PSEN (см. рис.~\ref{module_photo});

\item Записать полученную программу в микроконтроллер:

\$ ucisp mainp.ihx
\end{enumerate}
Для оптимизации этих действий рекомендуется использовать make-файл.
\cite{sdccg}

\subsubsection{Особенности работы с LCD}
Для работы с LCD по 4-х битному интерфейсу следует использовать следующую
схему: для вывода полубайта на шину данных надо перевести E в состояние
лог.~1, вывести полубайт на шину, выполнить nop (для небольшой задержки),
перевести E в состояние лог.~0. При инициализации надо подождать как
минимум 20 мс после включения питания, после этого выводить полубайты
\emph{3, 3, 3, 2}, ожидая после каждого не менее 40 микросекунд. После
этого уже можно выводить обычные команды из руководства \cite{meltds},
ожидая после каждой отсутствие флага занятости, например \emph{0x28, 0x0С,
0x01, 0x06}.

Для вывода символа в позицию N можно вывести на шину данных старший, а
затем младший полубайты N (в старшем полубайте старший бит должен быть
установлен), дождаться незанятости модуля, 
после этого перевести A0 в состояние лог.~1, вывести старший и
младший полубайты символа, перевести A0 в состояние лог.~0, дождаться
незанятости модуля.

Назначение внешних выводов модуля дано в таблице~\ref{lcd_pins}.

\begin{table}
\caption{Назначение внешних выводов LCD модуля}
\begin{tabular}{|c|c|l|}
\hline
1 & GND & Общий вывод (0В) \\\hline
2 & Vcc & Напряжение питания (5В) \\\hline
3 & Vo  & Управление контрастностью \\\hline
4 & A0  & \parbox{8.5cm}{Адресный сигнал~--- выбор между передачей данных
 и команд управления} \\\hline
5 & R/$\overline{\textrm{W}}$&Выбор режима записи или чтения \\\hline
6 & E   & Разрешение обращений к модулю (и строб данных) \\\hline
7 & DB0 & Шина данных (младший бит в 8-ми битном режиме) \\\hline
8 & DB1 & Шина данных \\\hline
9 & DB2 & Шина данных \\\hline
10& DB3 & Шина данных \\\hline
11& DB4 & Шина данных (младший бит в 4-х битном режиме) \\\hline
12& DB5 & Шина данных \\\hline
13& DB6 & Шина данных \\\hline
14& DB7 & Шина данных (старший бит) \\\hline
15& +LED& <<+>> питания подсветки \\\hline
16& $-$LED& <<$-$>> питания подсветки \\\hline
\end{tabular}
\label{lcd_pins}
\end{table}

\subsubsection{Приемы составления микропрограмм}
Применение микроконтроллера в качестве устройства управления накладывает
свои особенности на методы составления программ (в сравнении с <<большими>>
компьютерами), в частности, программист
должен учитывать скоростные ограничения; архитектуру (8-ми битную), причем
тип int языка C 16-битный; отсутствие ОС и многозадачности; необходимость
ручной обработки прерываний и многое другое. На примере, приведенном в
приложении~\ref{source_code} можно рассмотреть некоторые конкретные приемы
составления микропрограмм.

Аппаратные ресурсы микроконтроллера используются следующим образом:
таймер~0 является источником для программируемого массива счетчиков, один
из которых, в свою очередь, выдает ШИМ-сигнал на внешний вывод; таймер~1
используется как счетчик внешних событий (а именно перекрытия оптического
датчика); таймер~2 применяется для отсчета секунд, генерирует прерывание,
\emph{причем флаг TF2 должен сбрасываться пользователем (!)}; клавиатурный интерфейс
используется для генерации прерывания, связанного с нажатием одной из
кнопок управления.

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

\subsection{Реализация требуемых алгоритмов}
Для реализации следящего режима выбран следующий способ: в начале работы
задаются параметры функции, согласно которой должно осуществляться
регулирование; далее после начала работы раз в полсекунды определяется
число срабатываний оптического датчика оборотов (по два срабатывания на
оборот), отклонение реального числа срабатываний от желаемого прибавляется к
текущему коэффициенту заполнения, выраженному в процентах. Таким образом,
если реальные обороты меньше желаемых в данный момент времени, коэффициент
заполнения увеличивается, а если больше, то, наоборот, уменьшается. Подбор
коэффициента для корректировки отклонения позволяет влиять на время реакции,
амплитуду перерегулирования, устойчивость и т.д.

\subsubsection{Последовательность действий при работе со стендом}
После запуска стенда с помощью кнопок <<$+$>> и <<$-$>>
(рис.~\ref{module_photo}) устанавливаются желаемые обороты, 
время разгона, работы и торможения. После каждого введенного значения следует
нажимать MODE, последнее нажатие приведет к старту процесса регулирования.
После окончания модуль вернется в состояние установки оборотов.

\section{Заключение}
Проведенная работа позволила освоить базовые навыки работы с
микроконтроллерами (а именно разработка схемы микроконтроллерного
устройства, составление и запись программ), подключения и регулирования
оборотов ДПТ, использования интегрального
импульсного усилителя мощности для управления ДПТ, применения оптических
датчиков для получения информации о вращении ДПТ, реализации замкнутой
автоматической системы.

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

\appendix
\section{Приложение: исходный текст микропрограммы управления}
\label{source_code}
\input{./motor.c}

\begin{thebibliography}{99}
\bibitem{motors} И.П.Копылов, Б.К.Клоков: \emph{Справочник по электрическим
машинам. тт.1,2}~--- М.Энергоатомиздат, 1988.
\bibitem{lukich} Беневоленский С.Б., Марченко А.Л.: \emph{Основы
электротехники. Учебное пособие для втузов}~--- М.: Издательство
Физико-математической литературы, 2006.
\bibitem{apache} Опадчий Ю.Ф., Глудкин О.П., Гуров А.И.:
	\emph{Аналоговая и цифровая электроника (полный курс): Учебник для
	вузов. Под ред. О.П. Глудкина.}~--- М.: Горячая линия-Телеком, 2005.
\bibitem{uclec} Денисов Константин Михайлович, ст. преподаватель каф. ЭТ и
	ПЭМС СПбГУ ИТМО: \emph{Конспект лекций}~--- \emph{http://ets.ifmo.ru:8101/denisov/lec/oglavlen.htm}.
\bibitem{automa} И.И.Иванов: \emph{Автоматическая система регулирования.
	Курсовой проект}:~--- Северск, 2003.
\bibitem{ucds} Atmel Corporation: \emph{8-bit Flash Microcontroller
	AT89C51RD2/AT89C51ED2}~--- 2005.
\bibitem{meltds} МЭЛТ: \emph{Жидкокристаллический модуль MT-16S2D}~--- 2004.
\bibitem{sdccg} Sandeep Dutta and others: \emph{SDCC Compiler User
Guide}~--- 2006.
\end{thebibliography}
\end{document}

