Compare commits

...

4 Commits

Author SHA1 Message Date
caa7c5b656 Очепятки 2025-01-14 13:36:31 +03:00
4998eecbd4 Площадь микросхемы 2025-01-14 13:29:36 +03:00
5fb2e35a75 Общая функциональная схема 2025-01-14 12:58:03 +03:00
70305aa861 Звуковая сигнализация 2025-01-14 11:50:57 +03:00
2 changed files with 68 additions and 5 deletions

BIN
coursework/img/alarm.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

View File

@@ -610,7 +610,7 @@
\subsection{Анализ схемотехнической реализации}
Схема часов была реализована в программе Multisim 14~\cite{multisim}.
Функциональная схема часов была реализована в программе Multisim 14~\cite{multisim}.
\subsubsection{Индикаторный преобразователь}
Индикаторный преобразователь - функциональный преобразователь, который по двоичному коду десятичной цифры вырабатывает сигналы, управляющие индикаторами. Он используется для преобразования двоичных чисел в счётчиках в десятичные цифры на дисплеях часов.
@@ -713,7 +713,7 @@
Блок элементов памяти реализован в пользовательской схеме \texttt{memory}, представленной на Рис.~\ref{fig:memory}. Для каждого разряда кода состояния применяются два D-триггера~--~\texttt{D\_FF}, соединённые последовательно. Такая конфигурация позволяет сохранить новое состояние на выходе схемы \(F\) в момент одного переключения автомата и использовать его в качестве входных данных для схемы \(F\) при следующем переключении.
У схемы три выхода -- разряды состояни, и четыре входа -- три для разряда состояния и один для синхроимпульс, в момент прихода которого триггеры должны изменять своё состояние.
У схемы три выхода -- разряды состояний, и четыре входа -- три для разряда состояния и один для синхроимпульса, в момент прихода которого триггеры должны изменять своё состояние.
\newpage
\phantom{text}
@@ -760,7 +760,7 @@
i-формирователь отвечает за генерацию импульсных микрокоманд на основе синхроимпульса и выходов управляющего автомата в соответствии с таблицей~\ref{tbl:impuls}.
i-формирователь реализован в пользовательской схеме \texttt{i-shaper}, которая представляет собой обёртку на готовым дешифратором \texttt{74LS138D}. У схемы четыре входа: y1, y2 и y3 -- разряды кода выхода автомата, s -- синхроимпульс. Четыре выхода, каждый из которых соответствует импульсной микрокоманде. Схема \texttt{74LS138D} выдаёт сигнал, только когда на вход G1 подаётся логическая единица, к этому входу и подключен синхроимпульс.
i-формирователь реализован в пользовательской схеме \texttt{i-shaper}, которая представляет собой обёртку над готовым дешифратором \texttt{74LS138D}. У схемы четыре входа: y1, y2 и y3 -- разряды кода выхода автомата, s -- синхроимпульс. Четыре выхода, каждый из которых соответствует импульсной микрокоманде. Схема \texttt{74LS138D} выдаёт сигнал, только когда на вход G1 подаётся логическая единица, к этому входу и подключен синхроимпульс.
\begin{figure}[h!]
\centering
@@ -770,11 +770,72 @@
\end{figure}
\subsubsection{Звуковая сигнализация}
По заданию курсовой работы, необходимо было реализовать звуковую сигнализацию, которая бы работала каждый час в течение четырёх секунд. Схема управления этой сигнализацией представлена на Рис.~\ref{fig:alarm}. У схемы два входа: su\_2 -- второй разряд единиц секунд текущего времени в двоичном виде, mt\_3 -- третий (старший) разряд десятков минут текущего времени. Выход один -- is\_on -- сигнал контролирующий работу сигнализации. Схема основана на нескольких логических элементах, с помощью которых определяется момент, в который нужно изменить состояние сигнализации, JK триггере, который хранит текущее состояние сигнализации (вкл/выкл), и укорачивающей RC цепи, которая нужна для генерации импульсного сигнала для переключения состояния JK триггера.
\begin{figure}[h!]
\centering
\includegraphics[width=1\linewidth]{img/alarm.png}
\caption{Схема управления звуковой сигнализацией.}
\label{fig:alarm}
\end{figure}
\subsubsection{Общая функциональная схема}
На Рис.~27 представлена общая функциональная схема часов. За счёт использования пользовательских схема, она получилась достаточно понятной и похоже на структурную схему часов.
На функциональной схеме видно, что линии с потенциальными микрокомандами L1-L3 подключены ко входам CA дисплеев \texttt{SEVEN\_SEG\_COM\_A\_BLUE}. Дисплеи работают только когда на этот вход подаётся логическая единица. Линия с потенциальной микрокомандой L4 подаётся на управляющий вход A/B мультиплексоров \texttt{74LS157D}. Линия с потенциальной микрокомандой L5 через логический элемент <<И>> управляет подачей тактового сигнала на счётчики секундомера.
Помимо основных 5 дисплеев (один для вывода номера дня недели, два для вывода часов и два для вывода минут), на схеме присутствуют ещё два <<отладочных>> дисплея для вывода секунд. Также для упрощения отладки и демонстрации работы схемы, был добавлен ещё один переключатель, с помощью которого можно увеличивать десятки минут на единицу.
\addtocounter{figure}{1}
\includepdf[pages={1}, fitpaper, pagecommand={
\thispagestyle{empty}
\begin{tikzpicture}[remember picture, overlay]
\node at (current page.south) [anchor=north, yshift=45pt] {\large{Рис 27. Функциональная схема часов}};
\end{tikzpicture}
}]{pdf/func-scheme.pdf}
\subsection{Расчёт площади схемы}
В таблице~\ref{tbl:count} представлена некоторая статистика по количеству элементов и транзисторов в них в полученной функциональной схеме.
\begin{table}[h!]
\centering
\caption{Колечество транзисторов в функциональной схеме часов.}
\label{tbl:count}
\footnotesize
\begin{tabularx}{\textwidth}{|X|X|X|X|}
\hline
\textbf{Элемент} & \textbf{Число транзисторов} & \textbf{Число элементов} & \textbf{Всего транзисторов} \\
\hline
Элемент И & 4 & 54 & 216 \\
\hline
Элемент НЕ & 4 & 17 & 68 \\
\hline
Элемент ИЛИ & 6 & 18 & 108 \\
\hline
Элемент XOR & 10 & 11 & 110 \\
\hline
D-триггер & 20 & 6 & 120 \\
\hline
Счётчик 74LS90D & 120 & 11 & 1320 \\
\hline
Мультиплексор 74LS157D & 50 & 4 & 200 \\
\hline
Преобразователь 74LS47N & 400 & 5 & 2000 \\
\hline
\end{tabularx}
\end{table}
Для реализации всей функциональной схемы потребуется 4142 транзистора. Исходя из расчёта, что на 1 квадратный миллиметр приходится примерно 1000 транзисторов, функциональная схема реализованных часов должна занимать примерно \textbf{4.142 ${\text{мм}}^2$}.
\newpage
\section*{Заключение}
\addcontentsline{toc}{section}{Заключение}
В ходе выполнения курсовой работы были построен граф управляющего автомата и общая структурная схема часов, проведено кодирование входных и выходных воздействий и состояний автомата, функции блоков управления были минимизированы с помощью карт Карно и сервиса~\cite{karno}, а также разработана их функциональная схема в программе Multisim 14~\cite{multisim}. В соответствии с вариантом курсовой работы, был реализован следующий функционал:
В ходе выполнения курсовой работы были построены граф управляющего автомата и общая структурная схема часов, проведено кодирование входных и выходных воздействий и состояний автомата, функции блоков управления были минимизированы с помощью карт Карно и сервиса~\cite{karno}, а также разработана их функциональная схема в программе Multisim 14~\cite{multisim}. В соответствии с вариантом курсовой работы, был реализован следующий функционал:
\begin{itemize}
\item Отображение и корректировка (в дополнение к часам и минутам): дня недели;
@@ -784,11 +845,13 @@
\item Звуковая сигнализация: каждый час в течение четырёх секунд.
\end{itemize}
Также была приблизительно определена площадь микросхемы, реализующей построенную функциональную схему при современной плотности компоновки транзисторов. Получилась площадь около 4.142 ${\text{мм}}^2$.
Можно выделить несколько преимуществ созданной функциональной схемы часов. Во-первых, функциональная схема разбита на пользовательские схемы, что сделало её гораздо более структурированной и похожей на общую структурную схему. Во-вторых, при минимизации функций блоков управления использовалась их неопределенность на некоторых наборах переменных, что позволило значительно уменьшить количество логических элементов в итоговой схеме.
Также можно выделить несколько недостатков созданной функциональной схемы часов. Во-первых, для упрощения преобразователя входных воздействий было решено сделать три кнопки на часах, в то время как вместо третьей кнопки можно было использовать комбинацию кнопок. Во-вторых, при редактировании времени, пользователь может увеличивать часы и минуту только на единицу, что может доставлять дискомфорт, в случае если нужно выставить сильно отличающееся время, также это плохо сказывается на долговечности кнопок.
Функциональную схему можно достаточно просто масштабировать. Во-первых, можно добавить отображение дня недели с помощью сочетаний букв. Во-вторых, достаточно просто переделать схему так, чтобы можно было с возможность просмотра текущего времени с работающим секундомером. Во-третьих, можно использовать схему как основу и добавить функционал будильника.
Функциональную схему можно достаточно просто масштабировать. Во-первых, можно добавить отображение дня недели с помощью сочетаний букв. Во-вторых, достаточно просто переделать схему так, чтобы была возможность просмотра текущего времени с работающим секундомером. Во-третьих, можно использовать схему как основу и добавить функционал будильника.
\newpage