\chapter{Hardware}
\label{hardware}

Tato kapitola popisuje zapojení mikrokontroléru a pomocných obvodů, návrh desky plošných spojů s~mikrokontrolérem, připojení GSM modulu, displeje a klávesnice. Hned na začátku je třeba zdůraznit, že návrh nerespektuje požadavky, které by byly kladeny na přístroj využitelný v~praxi, například minimální velikost, hmotnost, cena, výdrž baterie, jednoduchost. Jedná se spíše o~univerzální desku s~mikrokontrolérem umožňující větší variabilitu. 

Celé zařízení se obsahuje kromě desky s~mikrokontrolérem další čtyři části: 
\begin{itemize}
  \item{napájecí zdroj,}
  \item{displej,}
  \item{klávesnice,}
  \item{GSM modul.}
\end{itemize}
Blokové schéma zařízení je na obrázku \ref{blok}. Čárkovaná oblast označuje desku s~mikrokontrolérem. Schéma zapojení mikrokontroléru a~podpůrných obvodů je v~příloze \ref{schema}. Zapojení vyhází z~\cite{GP32}. 

\begin{figure}[!h]
  \includegraphics[scale=1]{obrazky/blok.pdf}
  \caption{Blokové schéma zařízení. Čárkovaně je označena deska s~mikrokontrolérem.}
  \label{blok}
\end{figure}

\section{Ovládací prvky}

Na desce jsou tři přepínače a dvě tlačítka. Celé zařízení se zapíná a vypíná přepínačem S1. Při vypnutí se filtrační kondenzátory vybijí přes odpor $100\,\jedn{\Omega}$. Tím se docílí rychlého snížení napájecího napětí a uživatel tak má možnost vyvolat rychle \emph{power-on reset} a nemusí čekat, než se kondenzátory vybijí.

Přepínačem S3 se přepíná mezi normálním provozem a programováním/laděním. Při přepnutí do polohy programování se připojí napětí $V_{TST}$ na pin \verb|IRQ|. Tím se nastaví \emph{monitor mód}. Zároveň se připojí obvod resetu na pin \verb|RST|. Přepínač S2 přepíná mezi vnitřním a vnějším oscilátorem. Na programování je třeba vnější a při běžném provozu využívajícím sériovou komunikaci zase vnitřní. Při střídání programování a testování se tedy přepínají oba přepínače. 

Tlačítko S4 slouží k~vyvolání přerušení IRQ. Stisknutím tlačítka S5 se resetuje mikrokontrolér.

\section{Napájení}

Požadavky na napájení se odvíjejí z~potřeb napájení jednotlivých obvodů. Samotný mikrokontrolér může pracovat s~napájecím napětím 3 až $5\,\jedn{V}$. Obvody ICL232 a displej potřebují napájení $5\,\jedn{V}$. Použije se proto napájecí napětí $5\,\jedn{V}$. Proudová spotřeba je při kmitočtu sběrnice $f_{BUS} = 7\,372\,800\,\jedn{Hz}$ přibližně 13mA. \cite{GP32}. 

Zařízení může být napájeno z~$9\,\jedn{V}$ baterie nebo z~vnějšího zdroje napětí $5\,\jedn{V}$. Pro vnější zdroj je přímo na desce napájecí konektor. Konektor při slouží zároveň jako přepínač zdroje. Pokud je do zásuvky vsunuta vidlice, odpojí se baterie a zařízení je napájeno jen z~vnějšího zdroje. Pokud se použije baterie, napětí je sníženo na $5\,\jedn{V}$ spojitým regulátorem napětí 7805. Zapojení je podle doporučení výrobce \cite{7805}. Paralelně s~napájením mikrokontroléru a integrovaného obvodu 74HC04N jsou zapojeny filtrační kondenzátory o~kapacitě $100\,\jedn{nF}$ a to co nejblíže pouzdru. 

Jako indikátor zapnutí slouží svítivá dioda LED1. Ta je připojna přes odpor $150\,\jedn{\Omega}$. Jeho hodnota se vypočítá z~požadovaného proudu diodou ($20\,\jedn{mA}$) podle Ohmova zákona: 
\begin{equation}
R_{LED} = \frac{U_{cc} - U_{LED}}{I_{LED}} = \frac{5-2}{0,02} = 150\,\jedn{\Omega}.
\end{equation} 

\section{Hodinový signál}
Mikrokontrolér může pracovat s~exerním zdrojem hodinového signálu nebo může využít vnitřní oscilátor s~vnějším krystalem $32\,768\,\jedn{Hz}$ a filtrem smyčky. Vnější oscilátor je nutný pro \emph{monitor mód} a vnitřní je zase vhodné použít pro frekvence $f_{SCI}$, které jsou násobkem frekvence krystalu. Využívány jsou oba a přepínají se přepínačem S2. Zapojení obvodů pro vnitřní oscilátor je podle výrobce \cite{GP32}. 

Vnější oscilátor s~krystalem $4,9152\,\jedn{MHz}$ využívá integrovaný obvod 74HC84N. Jedná se o~logický obvod se šesti invertory. První invertor funguje jako zesilovač a druhý jako tvarovač signálu, aby se co nejvíce blížil obdélníku. Zapojení je převzato z~\cite{janus}.  

\section{Připojení k~PC}
Připojení k~počítači, kterým se mikrokontrolér programuje, je realizováno přes sériovou linku. K~převodu napěťových úrovní RS232 a TTL slouží převodník ICL232. Zároveň funguje jako zdroj napětí \emph{V\_{TST}}, potřebné k~uvedení mikrokontroléru do \emph{monitor módu}. Zápis i čtení probíhá přes jediný pin \verb|PTA0|. Obousměrný provoz umožňuje Schottkyho dioda D1. 

Mikrokontrolér je možné resetovat z~počítače. K~tomu slouží signál DTR sériové linky \cite{janus}. Napěťové úrovně jsou převedeny z~RS232 na TTL pomocí dvojice Schottkyho diody a Zenerovy diody. Pokud je vstpní napětí záporné (což odpovídá stavu \verb|1| u~RS232, Schottkyho dioda toto napětí sníží na téměř nulu. Kladné napětí sníží Zenerova dioda na 5V. Výsledkem je převodník napěťových úrovní a zároveň invertor. Ušetří se tak jeden obvod ICL232.

\section{Sériová linka a GSM modul}

Komunikace mikrokontroléru s~GSM modulem nebo telefonem probíhá sériově pomocí modulu SCI. Pin \verb|TxD| na straně mikrokontroléru je připojen na pin \verb|RxD| GSM modulu, Pin \verb|RxD| na straně mikrokontroléru je připojen na pin \verb|TxD| GSM modulu. Třetí vodič tvoří zem. Dvoubarevná svítivá dioda LD1 poskytuje optickou indikaci aktivity sériové linky. Červená barva ukazuje vysílání, zelená příjem. 

Aby se dal SCI používat na komunikaci GSM modulem, není potřeba převádět napěťové úrovně. Pro větší univerzálnost zařízení se ale úrovně převedou pomocí ICL232 na standardní RS232 a jsou vyvedeny na běžný devítipinový konektor. 

Levnější varianou než GSM modul je běžný mobilní telefon, který podporuje AT příkazy. V~této práci je používán typ Sony CMD-J70. Telefon je připojen komerčně dostupným sériovým kabelem. 

\section{Klávesnice}

Klávesnice má čtyři tlačítka: 

\begin{description}
  \item[Forward] -- {Pohyb mezi položkami menu vpřed.}
  \item[Backward] -- {Pohyb mezi položkami menu zpět.}
  \item[Enter] -- {Výběr položky nebo zobrazení menu.}
  \item[Cancel] -- {Zrušení volby.}
\end{description}

Klávesnice je připojena k~portu \verb|A| mikrokontroléru, konkrétně k~pinům \verb|PTA1|--\verb|PTA4|. Na těchto pinech se aktivují iterní pull-up rezistory. každé tlačítko pak při stisknutí spojí pin se zemí a tak sníží napětí na logickou úroveň 0.

\section{Displej}

Pro zobrazování položek menu a aktuálního stavu slouží dvouřádkový znakový LCD. Použit je běžně dostupný modul displeje s~řadičem Hitachi HD44780. Zapojení vychází z~\cite{dovedaLCD}. Data jsou posílána přes port \verb|B| (všech 8 pinů), řídicí signály přes port \verb|C| (piny \verb|PTC0|--\verb|PTC2|). Řídicí signály jsou \emph{Enable} (\verb|E|), \emph{Register Select} (\verb|RS|) a \emph{Read/Write} (\verb|R/W|). Kontrast displeje řídí napětím na pinu \verb|Vo|. Zde se používá odporový trimr připojený mezi napájecí napětí a zem.
