VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY
FAKULTA ELEKTROTECHNIKY A KOMUNIKAČNÍCH TECHNOLOGIÍ ÚSTAV
FACULTY OF ELECTRICAL ENGINEERING AND COMMUNICATION DEPARTMENT OF
ZESILOVAČ AUDIO SIGNÁLŮ ŘÍZENÝ POMOCÍ IP PROTOKOLU AUDIO AMPLIFIER CONTROLLED BY THE IP PROTOKOL
BAKALÁŘSKÁ PRÁCE BACHELOR´S THESIS
AUTOR PRÁCE
PETR DVOŘÁK
AUTHOR
VEDOUCÍ PRÁCE SUPERVISOR
BRNO 2007
ING. JIŘÍ KOUŘIL
VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ Fakulta elektrotechniky a komunikačních technologií Ústav telekomunikací
Bakalářská práce bakalářský studijní obor Teleinformatika Student: Ročník:
Petr Dvořák 98679 3
ID: Akademický rok: 2008/2009
NÁZEV TÉMATU:
Zesilovač audio signálů řízený pomocí IP protokolu POKYNY PRO VYPRACOVÁNÍ: Navrhněte a realizujte audio zesilovač s komunikačním rozhraním, který bude moţno řídit pomocí IP paketů vysílaných z ethernetového rozhraní osobního počítače. Snaţte se celé zařízení koncipovat jako univerzální modul, který by bylo moţno připojit k libovolnému audio zařízení. V práci se dále zaměřte na vytvoření vhodné struktury řídících dat, která budou odesílána ve struktuře IP paketu. Vytvořte jednoduchý program s grafickým rozhraním, pomocí kterého bude moţno ovládat jednotlivé funkce/parametry audio zesilovače (zesílení, zapnutí a vypnutí audio zesilovače, odpojení vstupu (MUTE), 8 řízených volitelně pouţitelných spínačů). Zařízení musí umoţňovat nastavení poţadované IP adresy a masky sítě. Jako vývojové prostředí je moţno pouţít např. C++Builder. DOPORUČENÁ LITERATURA: [1] PIRKL, J. Síťové programování pod Windows a programování Internetu. Nakladatelství Kopp, České Budějovice, 2001. ISBN 80-7232-145-5. [2] PUŢMANOVÁ, R. TCP/IP v kostce. Kopp, České Budějovice 2004. 607 s. ISBN 80-7232-236-2 [3] OSTERLOH, H. TCP/IP - Kompletní průvodce. SoftPress, 2002. 512 s.ISBN 80-86497-34-8 Termín zadání:
9.2.2009
Vedoucí práce:
Ing. Jiří Kouřil
Termín odevzdání:
2.6.2009
prof. Ing. Kamil Vrba, CSc. Předseda oborové rady UPOZORNĚNÍ: Autor bakalářské práce nesmí při vytváření bakalářské práce porušit autorská práva třetích osob, zejména nesmí zasahovat nedovoleným způsobem do cizích autorských práv osobnostních a musí si být plně vědom následků porušení ustanovení § 11 a následujících autorského zákona č. 121/2000 Sb., včetně moţných trestněprávních důsledků vyplývajících z ustanovení § 152 trestního zákona č. 140/1961 Sb.
Anotace Bakalářská práce je zaměřena na návrh a realizaci zařízení schopného komunikovat se vzdáleným klientem pomocí rozhraní Ethernet vyuţívající sadu protokolů TCP/IP. Tato komunikace bude vyuţita pro řízení analogových a digitálních výstupů zařízení, na které je moţno připojit libovolný zesilovač audio signálů. Jako jeden z protokolů je zde pouţit UDP. Tento protokol je podrobně popsán, jelikoţ je vyuţit pro přenos dat pro řízení výstupů. Celé zařízení je řízeno mikroprocesorem ATmega32, který obsluhuje komunikaci s ethernetovým rozhraním přes kontrolér ENC28j60, komunikaci s D/A převodníky MCP4922 a řízení digitálních výstupů a displeje. Zařízení má vlastní IP a MAC adresu k identifikaci v síti. Obě dvě adresy je moţno libovolně editovat v menu přístroje za pomoci modulu LCD displeje 2x16 znaků a čtyř tlačítek. K tomuto zařízení je připojen audio zesilovač, osazený napětím řízenými operačními zesilovači SSM2018T. Zesilovač je navrţen jako šestikanálový se symetrickými vstupy přes konektory XLR a nesymetrickými výstupy přes konektory CINCH. Pro vzdálené ovládání zařízení po síti je nezbytný ovládací program, který je moţné spustit na PC s operačním systémem Windows a řídí se jím veškeré funkce zařízení. Po zadání IP adresy cílového zařízení a po navázaní komunikace umoţňuje tento program zařízení ovládat. Řídící část je řešena jako univerzální modul, který má k dispozici aţ 6 analogových výstupů s rozsahem řídícího napětí 0 – 5 V a aţ 21 binárních vstupů/výstupů. Klíčová slova: Ethernet, řízení přes IP, audio zesilovač, mikroprocesor
Abstract The bachelor thesis is intent on projection and realization of a device whitch is capable of communicate with a remote client through the Ethernet making use of the protocol set TCP/IP. This communication will be used for the control of analog and digital outputs of the device, which is able to be attached to any amplifier of audio signals. One of used protocols is UDP. This protocol is closely described, because it is used for transfer of data controlling outputs. The whole device is controlled by microprocessor ATmega32, which operates the communication with the ethernet interface through the controller ENC28j60, the communication with the D/A converters MCP4922 and controlling of digital outputs and a display. The device has its own IP and MAC address for identification in the network. It is possible to edit both addresses in the menu of the device with the help of the module LCD, the display of 2x16 characters with fours buttons. The audio amplifier staffed by the voltage controlled by the computing amplifiers SSM2018T is connected to this device. The amplifier is proposed as six-channel with symmetric inputs through the connectors XLR and unsymmetric outputs through the connectors CINCH. The operating programme which is able to be run on PC with the operating system Windows is necessary for the remote control of the device in the network and all functions of the device are controlled by this programme. This programme enables to control the device after setting the IP address of the destination device and the communication establishment. The motherboard is proposed as a universal module which keeps at disposal up to 6 analog outputs with the range of the control voltage 0 – 5 V and up to 21 binary inputs/outputs. Keywords: Ethernet, control over IP, audio amplifier, microprocessor
DVOŘÁK, P. Zesilovač audio signálů řízený pomocí IP protokolu. Brno: Vysoké učení technické v Brně, Fakulta elektrotechniky a komunikačních technologií, 2009. 47 s. Vedoucí bakalářské práce Ing. Jiří Kouřil.
Prohlášení Prohlašuji, ţe svůj bakalářskou práci na téma Zesilovač audio signálů řízený pomocí IP protokolu jsem vypracoval samostatně pod vedením vedoucího bakalářské práce a s pouţitím odborné literatury a dalších informačních zdrojů, které jsou všechny citovány v práci a uvedeny v seznamu literatury na konci práce. Jako autor uvedené bakalářské práce dále prohlašuji, ţe v souvislosti s vytvořením tohoto projektu jsem neporušil autorská práva třetích osob, zejména jsem nezasáhl nedovoleným způsobem do cizích autorských práv osobnostních a jsem si plně vědom následků porušení ustanovení § 11 a následujících autorského zákona č. 121/2000 Sb., včetně moţných trestněprávních důsledků vyplývajících z ustanovení § 152 trestního zákona č. 140/1961 Sb. V Brně dne .................
............................................... podpis autora
Poděkování
Děkuji tímto Ing. Jiřímu Kouřilovi a Michalu Zapletalovi za cenné připomínky a rady při vypracování bakalářské práce.
V Brně dne ………………
……………………………………
podpis autora
OBSAH SEZNAM OBRÁZKŮ ............................................................................................................10 SEZNAM TABULEK .............................................................................................................11 SEZNAM ZKRATEK ............................................................................................................12 ÚVOD .......................................................................................................................................13 1
SÍTĚ LAN ........................................................................................................................14
1.1
Rozhraní Ethernet ......................................................................................................14
1.2
Komunikace přes IP ...................................................................................................14
1.3
Protokol UDP ..............................................................................................................15
1.4
Protokol ICMP ............................................................................................................15
1.5
Protokol ARP ..............................................................................................................16
1.6
Soket .............................................................................................................................16
2 2.1
NÁVRH KONSTRUKCE ZAŘÍZENÍ A POPIS POUŢITÝCH SOUČÁSTÍ ..........17 Integrovaný obvod ENC28j60 ...................................................................................18
2.2 Rozhraní SPI ...............................................................................................................19 2.2.1 Inicializace ...............................................................................................................20 2.2.2 Přijetí paketu ...........................................................................................................20 2.2.3 Vyslání paketu .........................................................................................................21 2.3
Mikroprocesor ATmega32–16AU .............................................................................21
2.4
Integrovaný obvod MCP4922 ....................................................................................23
2.5
Integrovaný obvod SSM2018T ..................................................................................24
3
OVLÁDACÍ PROGRAM ...............................................................................................25
3.1
Uţivatelské rozhraní ...................................................................................................25
3.2
Funkce programu........................................................................................................25
4 4.1
PROGRAM PRO MIKROPROCESOR ATMEGA32 ...............................................27 Stručný popis ...............................................................................................................27
4.2
Funkce programu........................................................................................................27
4.3
Inicializace ...................................................................................................................28
4.4
Nastavení a ovládání ...................................................................................................28
4.5
Příjem zprávy ..............................................................................................................29
4.6 Zpracování a odeslání zprávy ....................................................................................29 4.6.1 Výpočet kontrolního součtu ...................................................................................29 4.6.2 Zpráva obsahující ARP ..........................................................................................30 4.6.3 Zpráva obsahující ICMP ........................................................................................30 4.6.4 Zpráva obsahující UDP ..........................................................................................30 5
MĚŘENÍ ..........................................................................................................................31
ZÁVĚR.....................................................................................................................................34 LITERATURA ........................................................................................................................35 SEZNAM PŘÍLOH .................................................................................................................36
Seznam obrázků Obr. 2.1: Blokové schéma zapojení zesilovače řízeného pomocí IP protokolu...................... 18 Obr. 2.2: Blokové schéma zapojení integrovaného obvodu ENC28J60 ................................. 19 Obr. 2.3: Blokové schéma zapojení mikroprocesoru ATmega32–16AU ............................... 22 Obr. 2.4: Blokové schéma zapojení integrovaného obvodu MCP4922 .................................. 24 Obr. 3.1: Vzhled ovládacího programu................................................................................... 27 Obr. 4.1: Schéma pohybu v konfiguračním menu .................................................................. 29 Obr. 5.1: Grafické znázornění závislosti zesílení na řídícím napětí pro Au >1 ...................... 33 Obr. 5.2: Grafické znázornění závislosti zesílení na řídícím napětí pro Au < 1 ..................... 33
Seznam tabulek Tab. 1.1 : Struktura Ethernet rámce ..........................................................................................14 Tab. 1.2: Struktura IP paketu ....................................................................................................15 Tab. 1.3: Struktura UDP segmentu ...........................................................................................15 Tab. 1.4 : Struktura ICMP paketu .............................................................................................16 Tab. 1.5 : Struktura ARP paketu ...............................................................................................16 Tab. 2.1: Příkazy pro řízení kontroléru ENC28j60 přes rozhraní SPI ......................................20 Tab. 2.2: Formát dat přijatých převodníkem přes rozhraní SPI ................................................23 Tab. 3.1: Struktura přenášených dat .........................................................................................25 Tab. 4.1: Příklad výpočtu kontrolního součtu ..........................................................................30 Tab. 5.1: Naměřené a vypočítané hodnoty závislosti zesílení na řídícím napětí první části zesilovače ..................................................................................................................................31
Seznam zkratek API AVR BFC BFS CRC CS DIP DMA DNL FIFO INL IP JTAG LSB MAC MISO MOSI PHY PWM RBM RCR RISC SCK SMD SPI SRAM SRC USART
Application Programming Interface
WBM WCR
Rozhraní pro programování aplikací
Advanced Virtual RISC Bit Field Clear
Bitové vymazání pole
Bit Field Set
Bitové nastavení pole
Cyclic Redundancy Check
Kontrolní součet
Chip Select
Výběr podřízeného zařízení
Dual In-Line Package
Typ pouzdra integrovaných obvodů
Direct Memory Access
Přímí přístup do paměti
Diferenciál Non Linearity
Diferenciální nelinearita
First In / Fisrt Out
Paměť typu zásobník
Intergral Non Linearity
Integrální nelinearita
Internet Protokol Joint Test Action Group
Rozhraní pro testování a ladění obvodů
Least Significant Bit
Bit s nejmenší hodnotou
Medium Access Control
Přístup k médiu
Master In / Slave Out
Datový vstup/výstup
Master Out / Slave In
Datový vstup/výstup
Physical Layer
Fyzická vrstva
Pulse-Width Modulation
Pulzně-šířková modulace
Read Buffer Memory
Čtení dat ze zásobníku
Read Control Register
Čtení z kontrolního registru
Reduced Instruction Set Controlers
Redukovaná instrukční sada
Serial Clock
Hodinový signál
Surface Mount Device
Povrchová montáţ součástek
Serial Peripheral Interface
Sériové rozhraní
Static Random Access Memory
Statická paměť s náhodným přístupem
Software Reset Command
Reset
Universal Synchronous Asynchronous Receiver Transmitter
Rozhraní sériové linky
Write Buffer Memory
Zápis dat do zásobníku
Write Control Register
Zápis do kontrolního registru
ÚVOD Rozhraní Ethernet bylo původně vyvinuto a určeno výhradně pro přenos dat mezi počítači, ovšem postupem času se rozšířilo natolik, ţe se začalo uvaţovat o jeho dalším vyuţití. Zejména díky celosvětové síti Internet se dnes nabízí velké mnoţství aplikací, kde lze vyuţít Ethernetu nejen ke klasickému přenosu dat, ale téţ k měření a řízení. Ethernet dnes proniknul za hranice domácností nebo kanceláří a je hojně vyuţíván i k průmyslové komunikaci v podobě několika protokolů, vyuţívajících jako základ právě rozhraní Ethernet a sadu protokolů TCP/IP. Myšlenka vyuţití Ethernetu (potaţmo Internetu) k dálkovému řízení není nikterak nová, ale aţ nyní díky pokroku technologií a dostupnosti specializovaných integrovaných obvodů je moţno velmi snadno realizovat aplikace, které by dříve díky relativní sloţitosti komunikačního rozhraní a následně komplikovanému návrhu zapojení byly obtíţně realizovatelné. Tato bakalářská práce má za úkol demonstrovat moţnosti pouţití Ethernetu mimo rozsah jeho původního určení. První část práce se věnuje popisu komunikace na rozhraní Ethernet. Ve druhé části je uveden návrh konstrukce zařízení, návrh zapojení integrovaných obvodů a desky plošných spojů v návrhovém prostředí Eagle a popis pouţitých integrovaných obvodů. Třetí část je zaměřena na ovládací program na straně klienta a program napsaný pro mikroprocesor pouţitý v zařízení. Poslední část práce je spíše praktického charakteru a tím je realizace desky plošných spojů spolu s osazením součástek a oţivení zařízení. Na závěr je funkční zařízení podrobeno testům a měřením na kterých je ověřeno předpokládané chování programových částí a zapojených integrovaných obvodů.
13
1 Sítě LAN Sítě LAN jsou počítačové sítě určené pro přenos dat mezi koncovými uzly sítě. Svou rozlohou pokrývají oblasti řádově stovek metrů aţ desítek kilometrů. Pro přenos dat zde pouţívají koncové uzly sdíleného média, na které přistupují jednotlivě. Toto medium musí mít dostatečně velkou šířku pásma a pokud moţno minimální zpoţdění pro přenos dat v reálném čase. Pro budování sítí LAN se nejčastěji vyuţívá skupiny standardů IEEE 802.X, mezi které patří i Ethernet.
1.1 Rozhraní Ethernet Ethernet je definovaný skupinou standardu IEEE 802.3xx1. V modelu TCP/IP se nachází na vrstvě síťového rozhraní a popisuje tak přístup k mediu a hlavičku následovanou daty. V dnešní době nejpouţívanějším typem Ethernetu je 100Base-TX tzv. stomegabitový a 1000Base-TX tzv. gigabitový Ethernet. Velké rozšíření těchto standardů bylo způsobeno hlavně jednoduchostí pouţité technologie, nízkou cenou a kompatibilitou zařízení různých výrobců [2]. Tab. 1.1 : Struktura Ethernet rámce 0 - 15 Cílová MAC adresa Zdrojová MAC adresa Protokol vyšší vrstvy
16 - 31
Data
1.2 Komunikace přes IP IP protokol je základem dnešní celosvětové sítě. Jedná se o protokol pouţívaný pro přenos dat paketovou sítí, který je nespolehlivý a nespojově orientovaný, coţ znamená, ţe neručí za správné doručení dat a pro vyslání dat není zapotřebí vybudovat spojení. Na základě jednoduchosti tohoto protokolu byla vybudována síť Internet, postavená na 4 vrstvovém modelu TCP/IP. IP protokol se vyuţívá na síťové vrstvě, která přijímá TCP nebo UDP segmenty z vyšší vrstvy nazvané transportní. Před přijatý segment přiřadí IP hlavičku a takto vytvořený IP paket pošle vrstvě síťového rozhraní. Hlavička IP protokolu má velikost 20 aţ 60 byte, při čemţ prvních 20 byte jsou povinné poloţky a zbylých 40 byte jsou volitelné poloţky [4]. Strukturu IP záhlaví zobrazuje Tab. 1.2: Struktura IP paketu.
1
xx – značí typ rozhraní Ethernet pro různé přenosové rychlosti
14
Tab. 1.2: Struktura IP paketu 0–3
4-7
8 - 15
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
Verze IP
Délka záhlaví
Typ sluţby
Celková délka IP datagramu
Identifikace IP datagramu Protokol vyšší Doba ţivota vrstvy
Příznaky
Posunutí fragmentu od počátku Kontrolní součet hlavičky
Zdrojová IP adresa Cílová IP adresa Volitelné poloţky záhlaví (nepovinné) Přenášená data
1.3 Protokol UDP Jedná se vlastně o jednoduchý protokol poskytující přenos dat nespolehlivou a nespojově orientovanou cestou pracující na transportní vrstvě. Je-li pouţito tohoto protokolu, je před data zařazena UDP hlavička o velikosti 20 byte, čímţ vznikne tzv. UDP datagram popsaný v Tab. 1.3: Struktura UDP segmentu. Před vysláním dat se nesestavuje ţádné spojení a data jsou vyslána hned, jakmile je paket sestaven. Po odeslání se jiţ zdrojová stanice o doručení paketu nestará a data nemusí být doručena do cíle nebo mohou dojít poškozená. Hlavička UDP protokolu obsahuje zdrojový a cílový port identifikující aplikaci, které data patří, délku hlavičky, délku dat a kontrolní součet. Ten je počítaný z pseudohlavičky IP (cílová a zdrojová adresa, protokol a celková délka), hlavičky UDP paketu a dat [4]. Tab. 1.3: Struktura UDP segmentu 0 - 15
16 - 31
Zdrojový port Celková délka hlavičky a dat
Cílový port Kontrolní součet Data
1.4 Protokol ICMP Tento protokol byl definován pro to, aby byla moţná kontrola přenosu dat sítí. Při přenosu dat po síti zaloţené na modelu TCP/IP se vyuţívá protokolu IP, který je ovšem nespolehlivý. V případě, ţe opravdu dojde nějakým způsobem k poškození dat a následnému zahození, vyuţije se protokol ICMP k oznámení vzniklé chyby zdroji dat. Jde o sluţební protokol, který je vyuţíván převáţně na síťové vrstvě a jen málokdy na vrstvě aplikační. Příkladem takového pouţití je program ping generující zprávy Echo Request, na kterou čeká odpověď od cílové stanice zprávou Echo Replay [4].
15
Tab. 1.4 : Struktura ICMP paketu 0-7
8 - 15
Typ zprávy
Kód
16 - 31 Kontrolní součet hlavičky Data
1.5 Protokol ARP Komunikace mezi dvěma uzly v síti probíhá pomocí fyzických adres tzv. MAC adres. Tato adresa je jedinečná pro kaţdé zařízení určené pro připojení do sítě. Má velikost šest byte z toho první tři určují výrobce a další tři identifikují konkrétní zařízení [5]. Při vyslání dat je zapotřebí přiřadit příslušné IP adrese MAC adresu zařízení. Kaţdé zařízení má také svojí ARP tabulku, kde jsou uloţeny záznamy o přiřazení MAC adres k IP adresám a to buď staticky nebo dynamicky. Dynamické záznamy jsou v tabulce vybudovány pomocí protokolu ARP a jsou zde drţeny po určitou dobu danou četností komunikace s konkrétním zařízením. Vybudování dynamického záznamu probíhá při nenalezení záznamu v ARP tabulce vysláním poţadavku ARP Request ve tvaru uvedeném v Tab. 1.5 : Struktura ARP paketu. Při zasílání ţádosti o odpověď se vyplní pole pro MAC adresu cíle nulami a pošle se všesměrově na adresu ff:ff:ff:ff:ff:ff. Všechny stanice, které tento paket přijmou a jejich IP adresa nekoresponduje s polem IP adresy cíle, tento paket zahodí. Pokud se najde stanice, která pouţívá danou IP adresu, doplní do zprávy svojí MAC adresu a vyšle paket nazpět jako ARP Reply s cílovou adresou ţadatele. Ţadatel si tento záznam uloţí na určitou dobu do ARP tabulky a pokud jiţ více nebude komunikovat s tímto zařízením, záznam smaţe. Pokud ovšem proběhne do vypršení limitu jakákoliv komunikace, doba udrţení záznamu v tabulce se prodlouţí. Tab. 1.5 : Struktura ARP paketu 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 Hardwarová adresa Délka hardwarové adresy Délka adresy protokolu Zdrojová hardwarová adresa Zdrojová adresa nastaveného protokolu Cílová hardwarová adresa Cílová adresa nastaveného protokolu Data
16 - 31 Typ protokolu Typ zprávy
1.6 Soket Soket je mechanismus, pomocí kterého je moţno uskutečnit lokální nebo vzdálenou komunikaci dvou uzlů typu klient-server. Tato komunikace je zahájena na straně serveru vytvořením soketu pro odposlech poţadavků na vytvoření spojení. Tomuto soketu je přiřazeno jméno a fronta, do které se ukládají poţadavky o spojení na daný port. Poţadavky jsou serverem cyklicky vyřizovaný a pokud server příjme poţadavek o spojení, je mu přiřazen vţdy jeden nový soket pro jednu komunikaci s klientem. Na straně klienta je pro komunikaci zapotřebí také vytvořit nový soket, kterému je přirazen port. Tento soket je nasměrován pomocí adresy a cílového portu k serveru, od kterého čeká odpověď na přijmutí poţadavku o spojení, pokud se jedná o protokol TCP. 16
Po vytvořeném spojení je moţno komunikovat pomocí příslušného soketu se serverem do doby, neţ jedna ze stran soket uzavře. K uzavření soketu by mělo dojít na obou stranách. Při komunikaci protokolem UDP se spojení se serverem nevytváří, a data jsou vyslána, aniţ by klient věděl, jestli server bude data očekávat [6].
2 Návrh konstrukce zařízení a popis použitých součástí Celé zařízení je rozděleno na dva funkční bloky, na dvou samostatných dvoustranných plošných spojích se smíšenou technikou montáţe součástek. Na první desce se nachází řídicí část, která obsahuje mikroprocesor, obvody ethernetového rozhraní a D/A převodníky. K této desce je připojen ovládací panel s LCD displejem a tlačítky. Na druhé desce je analogová část, která obsahuje šest napětím řízených zesilovačů. Obě desky jsou navzájem propojeny plochým kabelem. Návrh schémat zapojení a desek plošných spojů je umístěn v příloze. Základní částí zařízení je naprogramovaný mikroprocesor ATmega32. Ten se stará o řízení komunikace přes IP, nastavení analogových výstupů D/A převodníků a digitálních výstupů. Komunikace přes IP se uskutečňuje přes rozhraní SPI pomocí kontroléru ENC28j60. Ten se stará o přístup k médiu na vrstvě síťového rozhraní. Jako D/A převodníky zde byly pouţity integrované obvody MCP4922 firmy Microchip s rozlišením dvanáct bitů. Pomocí těchto převodníků je moţné plynule regulovat zesílení připojeného audio zesilovače, realizovaného integrovaným obvodem SSM2018. Pro napájení integrovaných obvodů řídící části je přivedeno napájecí napětí +5 V a pro obvody audio zesilovače ±15 V. Integrovaný obvod ENC28j60 vyţaduje napájení +3,3 V, které je z větve +5 V vytvořeno stabilizátorem. Všechny napájecí hladiny jsou filtrovány kondenzátory 100 F a proti rušivým napětím jsou pouţity blokovací kondenzátory o velikosti 100 nF umístěné co nejblíţe integrovaným obvodům. Připojení k síti Ethernet je provedeno konektorem RJ45 s vestavěnými LED indikátory stavu a ethernetovým transformátorem. Ten zde spolu s paralelně připojenými rezistory na zem slouţí pro impedanční přizpůsobení. Obvod ENC28j60 vyţaduje pro svou funkci pouze minimum externích součástek a je zapojen podle doporučení výrobce. Základní zapojení mikroprocesoru vychází z katalogového listu výrobce. Pro taktování je vyuţit externí signál, který je dostupný na výstupu CLKOUT integrovaného obvodu ENC28j60. Na tomto výstupu je po zapnutí napájení k dispozici signál obdélníkového průběhu o kmitočtu 6,25 MHz, po inicializaci mikroprocesorem se změnou vnitřního dělení zvýší tento kmitočet na provozních 12,5 MHz. Porty A a C, společně se signály přerušení INT0 a INT1 na portu D slouţí k připojení ovládacího panelu, který se skládá z LCD displeje a čtyř tlačítek. Displej je alfanumerický, řízený standardním řadičem HD44780 firmy Hitachi, s moţností zobrazení šestnácti znaků na dvou řádcích. Port B je vyhrazený k řízení sběrnice SPI, přes kterou probíhá komunikace s obvodem ethernetového rozhraní ENC28j60 a s D/A převodníky MCP4922. Na tuto sběrnici je taktéţ připojen konektor ISP, který slouţí k programování mikroprocesoru přímo v aplikaci. Na port D jsou připojena signální relé. Proudový odběr těchto relé je při 5 V cca 30 mA a maximální výrobcem povolený proud portem mikroprocesoru je 40 mA. Proto je moţné připojit tato relé přímo bez posilovacího prvku. Jelikoţ se jedná o induktivní zátěţ, je pro ochranu portu mikroprocesoru ke kaţdé cívce relé připojena paralelně dioda v závěrném směru omezující napěťové špičky, které vznikají při vypnutí a mohly by poškodit výstupní port mikroprocesoru. A/D převodníky MCP4922 jsou zapojeny dle doporučení výrobce a nevyţadují ţádné další externí součástky. Pouze na výstupu kaţdého převodníku je vytvořen odporový dělič, jehoţ jedna část je připojena na napětí 15 V. Tato úprava je nutná z důvodu specifického řízení integrovaného obvodu SSM2018T. Jelikoţ tento obvod mění zesílení vyšší jak jedna
17
změnou záporného napětí a obvod MCP4922 neumoţňuje získání záporného napětí na svém výstupu, bylo nutno vztáhnout odporový dělič k hladině 15 V, čímţ bylo dosaţeno poţadovaného rozsahu řídícího napětí od 1,3 V do 2,8 V. Jako mikrofonní předzesilovač je pouţit integrovaný obvod SSM2018T. Vstupní symetrický signál je přiveden na konektory typu XLR, odkud je přes oddělovací kondenzátory a odpory veden na vstup operačního zesilovače. Změnou řídícího proudu do vstupu MODE je moţné změnit pracovní bod zesilovače mezi třídou A (nízké zkreslení, avšak vyšší šum) nebo AB (nízký šum, vyšší zkreslení). Díky vnitřní kompenzaci zkreslení dosahuje obvod dobrých parametrů zkreslení i šumu ve třídě AB, a proto je rezistorem R192 nastaven pracovní bod zesilovače do třídy AB. Signál z výstupu zesilovače je veden přes oddělovací kondenzátor C28 na kontakt relé K1, které realizuje funkci umlčení výstupu (Mute). Zesílený signál z mikrofonu je k dispozici na konektoru X2 typu CINCH. Výstup je zatíţen rezistorem R46. Rezistory R20 a R21 tvoří dělič řídícího napětí z D/A převodníku MCP4922. Kondenzátor C32 slouţí k vnější kmitočtové kompenzaci operačního zesilovače a rezistorem R18 spolu s paralelně zapojeným kondenzátorem C33 je tvořena zpětná vazba.
Obr. 2.1: Blokové schéma zapojení zesilovače řízeného pomocí IP protokolu
2.1 Integrovaný obvod ENC28j60 Pro připojení mikroprocesoru do sítě Ethernet je pouţit ethernetový kontrolér ENC28J60 od firmy MICROCHIP, který je kompatibilní s normou IEEE 802.3 a obsahuje integrovaný MAC a 10Base-T3 PHY. Kontrolér pracuje s taktovacím kmitočtem 25 MHz a napájecím napětím 3,3 V. Má vyvedený výstupní port pro vyvolání přerušení, hodinový port s nastavitelným taktem a sadu vstupně/výstupních portů pro připojení ethernetového transformátoru. Ethernetový výstup disponuje automatickou detekcí polarity a korekcí, můţe
2 3
Součástky jsou uvedeny pro první blok zapojení audio zesilovače. Ostatní jsou totoţná. 10Base-T – norma pro připojení do sítě Ethernet o rychlosti 10Mbit/s
18
pracovat v plném nebo polovičním duplexu, stará se o synchronizaci, opětovné vyslání paketu při kolizi nebo generování CRC. Pro předávání dat pouţívá zabudované rozhraní SPI s taktovacím kmitočtem aţ 20 MHz. Jako vyrovnávací paměť pro vysílaná a přijatá data je zde pouţita paměť SRAM typu FIFO o velikosti 8 kB s libovolně definovatelným rozdělením velikosti a interním DMA pro rychlý přesun dat. Přístup k datům se provádí přes rozhraní SPI v podřízeném reţimu s náhodným nebo sekvenčním přístupem s automatickou inkrementací. Pro přijaté pakety lze uplatňovat filtr s logikou AND nebo OR. Tento filtr se dokáţe postarat o unicastové4, broadcastové5 nebo multicastové6 vysílání, kontrolní součet, CRC nebo o zachycení poţadavku na probuzení, tzv. Magic Paket. Veškeré nastavení kontroléru se děje pomocí PHY registru a Control registru, který je rozdělen do čtyř bank o velikosti 32 byte, z toho první dvě banky jsou registry patřící nastavení Ethernetu a ve zbylých dvou bankách jsou registry patřící MAC. PHY registr poskytuje nastavení, kontrolu a stav modulu fyzické vrstvy.
Obr. 2.2: Blokové schéma zapojení integrovaného obvodu ENC28J60
2.2 Rozhraní SPI Rozhraní SPI je určeno k připojování externích pamětí, převodníků a dalších obvodů k mikroprocesoru. V systému pouţívajícím SPI můţe být připojeno více obvodů, přičemţ jeden je typu master7, ostatní typu slave8. Komunikace obvykle probíhá po čtyřech a více 4
Unicast – jedinečná adresa v síti Broadcast – všesměrová adresa 6 Multicast – výběrová adresa 7 Master – řídící obvod 8 Slave – řízený obvod 5
19
signálových vodičích (CSx, SCK, SI, SO). V našem případě jsou pouţity signály CS1-CS4, které slouţí k výběru čipu, s nímţ se má komunikovat, signál SCK slouţící k synchronizaci sběrnice a signály SI a SO pro sériový vstup a výstup dat. Obvod ENC28J60 má definováno několik instrukcí pro nastavení, zápis nebo čtení paměti. Typ instrukce je identifikován prvními třemi bity, ostatních pět bitů je argument, který je pevně definován, nebo se zde nachází adresa registru. Pro nastavování kontroléru se pouţívá instrukce WCR, pomocí které se zapíše první byte dat na příslušnou pozici Control registru v aktuálně vybrané bance. Přístup do zásobníku kontroléru je řešen pomocí instrukce RBM a WBM, kde argument je rezervovaná adresa 1Ah, následuje příjem nebo vysílání dat do doby, dokud je signál CS v log. 0. Další z instrukcí jsou BFS a BFC, kterých se dá vyuţít k bitové změně v Control registru. Výpis příkazů je uveden v následující tabulce. Tab. 2.1: Příkazy pro řízení kontroléru ENC28j60 přes rozhraní SPI Byte 0 Instrukce nastaveni argument čtení z Control registru 0 0 0 aaaaa čtení z paměti dat 0 0 1 11010 zápis do Control registru 0 1 0 aaaaa zápis do pamětí dat 0 1 1 11010 bitové nastavení pole 1 0 0 aaaaa bitové vymazání pole 1 0 1 aaaaa software reset 1 1 1 11111
Byte 1 data – – dddddddd dddddddd dddddddd dddddddd –
Legenda: a = adresa, d = data 2.2.1 Inicializace Po připojení mikroprocesoru ke kontroléru s ethernetovým rozhraním je potřeba zajistit výchozí nastavení kontroléru, proto se provádí softwarový reset. Po dobu 50 s po restartu není moţné komunikovat s kontrolérem. Při inicializaci je nutné nastavit základní konfiguraci kontroléru s jakou by měl pracovat po dobu jeho provozu. Provádí se zde nastavení rozloţení paměti pro příjem a vysílání dat na Ethernet, nastavení MAC, kde se definuje, jakým způsobem se bude přistupovat k médiu, jakým způsobem se bude zacházet s CRC a v neposlední řadě také zápis MAC adresy, pod kterou zařízení vystupuje v síti na linkové vrstvě. Další konfigurace je moţná na fyzické vrstvě ethernetového rozhraní, která se provádí v PHY registrech, které spíše slouţí jako stavové a přistupuje se k nim přes zvláštní registr MIREGADR. Zde se dá definovat funkce LED kontrolek. 2.2.2 Přijetí paketu Integrovaný obvod ENC28J60 disponuje 8 kB SRAM paměti, která je při inicializaci rozdělena na část pro příchozí data a část pro odesílaná data. Při příchodu dat se začíná zapisovat od adresy 0000h, na první dvě pozice je po přijetí paketu uloţena pozice dalšího paketu v paměti, v dalších čtyřech byte jsou uloţeny stavové informace jako např.: délka paketu, stav příjmu, indikace broadcast nebo multicast adresy atd. Následuje přijatý paket zakončený čtyřmi byte CRC. Počet takto přijatých paketů se zaznamenává inkrementací registru EPKTCNT. Na základě hodnoty v tomto registru se uskutečňuje přenos dat přes rozhraní SPI. V případě, ţe je hodnota registru EPKTCNT nenulová, zapíše se do registru ERDPT první pozice paketu, odkud se začínají číst data. Po přečtení dat je zapsána do
20
registru ERXPDPT pozice následujícího paketu pro uvolnění místa zabraného přečteným paketem. 2.2.3 Vyslání paketu Vytvořený paket přijatý přes rozhraní SPI se ukládá do paměti kontroléru od pozice stanovené rozdělením paměti. Pro označení začátku a konce paměti obsazené daty slouţí registry ETXST a ETXND. Na první pozici se zapisuje byte značící nastavení pro odeslání dat, následují data obsahující cílovou a zdrojovou MAC adresu typ nebo délku a samotná data paketu. Na poslední byte dat ukazuje registr ETXND. Za konec dat se opět přidávají stavové informace o paketu o velikosti sedm byte.
2.3
Mikroprocesor ATmega32–16AU
Základní částí zařízení je 8-mi bitový mikroprocesor ATmega32 zaloţený na jádře AVR. Jedná se o mikroprocesor s redukovanou sadou instrukcí (RISC). ATmega32 podporuje 121 instrukcí, z nichţ většina je jednocyklových. Základem jádra je 32 stejných osmibitových registrů, které mohou obsahovat jak data, tak adresy. Posledních 6 registrů lze pouţít po dvou jako ukazatele adresy pro nepřímé adresování paměti dat a jsou pojmenovány jako X, Y, Z. Procesor je zaloţen na harvardské koncepci, coţ znamená, ţe má oddělenou paměť pro program a data. Obsahuje 32 kB Flash paměti pro program, programovatelné sériově i paralelně, 1024 byte EEPROM a 2 kB SRAM pro data. Napájení procesoru je přípustné od 2.7 V do 5.5 V při frekvenci do 8 MHz a 4.5 V aţ 5.5 V do frekvence 16 MHz. Typická spotřeba mikroprocesoru při napájení 3 V a kmitočtu 1 MHz je 1,1 mA. Důleţitou vlastností je moţnost volby zdroje hodinového kmitočtu. Mikroprocesor disponuje interním kalibrovaným RC oscilátorem, s moţností volby kmitočtu při programování 1,2,4, nebo 8MHz, který je moţno ještě jemněji nastavit hodnotou v registru OSCCAL. Dále umoţňuje pouţít externí zdroj hodinového signálu, externí RC oscilátor, či klasický krystal. Mezi další přednosti patří integrovaný Watchdog9 společně s Brown-out10 detektorem, které zvyšují spolehlivost systému. Mikroprocesor je vybaven řadou funkcí a periferií jako např.: Dva 8-bitové časovače/čítače Jeden 16-bitový časovač/čítač Čtyři PWM kanály Sériové rozhraní USART SPI interface podporující módy MASTER a SLAVE Analogový komparátor Osmikanálový, desetibitový A/D převodník Programovatelný Watchdog s odděleným oscilátorem Interní RC oscilátor Externí a interní přerušení Šest úsporných módů JTAG rozhraní
9
Watchdog – časovač, generující signál reset při neočekávaném zastavení běhu programu Brown-out – stav při poklesu napájecího napětí, při němţ mikroprocesor generuje signál reset
10
21
Obr. 2.3: Blokové schéma zapojení mikroprocesoru ATmega32–16AU
22
2.4 Integrovaný obvod MCP4922 Integrovaný obvod MCP4922 je dvoukanálový D/A převodník s rozlišením 12 bitů a maximální chybou ±0.2 LSB DNL a ±2 LSB INL. Napájecí napětí obvodu můţe být 2,7 V aţ 5,5 V a výstupní napětí se můţe pohybovat v rozsahu od 0 V aţ do hodnoty napájecího napětí. Řízení převodníku probíhá pomocí rozhraní SPI. Při příchodu dat zapíše logika převodníku nastavení do jednoho ze vstupních registrů, aktivací signálu LDAC do log. 0 se nastavení přesune do registrů převodníku, podle kterých je nastavena výstupní úroveň napětí. Tab. 2.2: Formát dat přijatých převodníkem přes rozhraní SPI bit 15 – A/B: část převodníku 1 = zapisuje do části B 0 = zapisuje do části A bit 14 – BUF: referenční napětí přes vyrovnávací paměť 1 = pouţití vyrovnávací paměti 0 = bez vyrovnávací paměti bit 13 – GA: násobení výstupního napětí 1 = 1x (Vout Vref * D / 4096) 0 = 2x (Vout 2 *Vref * D / 4096) bit 12 – SHDN: stav výstupu 1 = výstupní napětí nastavené převodníkem 0 = stav vysoké impedance bit 11 – 0 – D11:D0: data 12-bitové číslo s hodnotou od 0 do 4095
23
Obr. 2.4: Blokové schéma zapojení integrovaného obvodu MCP4922
2.5 Integrovaný obvod SSM2018T Jedná se o napětím řízený operační zesilovač, který se svými parametry řadí do kategorie high-end11. K základním vlastnostem obvodu patří velmi nízké celkové harmonické zkreslení 0,006 % (při 1 kHz), široký rozsah napájecího napětí ±5 V aţ ±18 V, rozsah řízení zesílení aţ 140 dB a vysoká vstupní impedance řídícího vstupu (typicky 1 MΩ).
11
High-end – vysoká kvalita
24
Krok napětí pro řízení zesílení je 30 mV/dB. Obvod vyţaduje pro svou funkci minimum externích součástek.
3 Ovládací program 3.1 Uživatelské rozhraní Ovládací program je napsán v jazyce C++ ve vývojovém prostředí C++Builder v. 6.0 firmy Borland. Jde o velmi jednoduchý program přímo spustitelný pod systémem Windows. Tento program je jednoúčelový a lze jej pouţít pouze se zařízením Audio zesilovač řízený pomocí IP protokolu. V okně programu je obsaţeno několik ovládacích prvků, ty slouţí pro nastavení hodnot, které budou odeslány vzdálenému zařízení. Po levé straně se nachází sada osmi Checkboxů12 pro nastavení digitálních výstupů mikroprocesoru. Na hlavním panelu Audio je umístěno šest Trackbarů13 nastavitelných od 0 do 273. Aktuální nastavená hodnota je násobena patnácti, aby odpovídala hodnotám nastavovaným na dvanáctibitových převodnících. S posuvníkem je svázán Checkbox Mute. Při pouţití je aktuální hodnota uloţena a posuvník je staţen na nulu. Po zrušení je vrácen zpět do původní polohy. Nastavení IP adresy cílového uzlu se provádí ve čtyřech editačních oknech pod nápisem „IP příjemce“. Adresa se zadává v decimálním tvaru a načítá se po aktivaci vysílání. Aktivace vysílání se provádí tlačítkem On.
3.2 Funkce programu Data jsou odesílána s intervalem desetiny sekundy, generovaným časovačem, který volá funkci pro načtení hodnot z ovládacích prvků a odeslání v podobě UDP datagramu obsahující ve své datové části rámec uvedený v následující tabulce. Tab. 3.1: Struktura přenášených dat Pořadí byte
1
2
Data
Digitální výstup
D/A převodníky H1 L1 H2 L2
Legenda: Data – XY
3
4
5
6
7
8
9
10
11
12
13
H3
L3
H4
L4
H5
L5
H6
L6
X – H/L – horní/spodní byte dat Y – pořadí D/A převodníku
Komunikace přes IP je zde vytvářena pomocí soketů implementovaných v knihovně winsock.h. Tato knihovna umoţňuje úplnou komunikaci pomocí soketů pod operačním systémem Windows. Po spuštění programu je zapotřebí nastavit IP adresu a aktivovat odesílaní dat. Jako první se zavolá funkce pro vytvoření soketu. Zde se inicializuje knihovna soketů funkcí WSAStartup14. Tato funkce naplní strukturu data typu WSADATA a je zapotřebí volat ji při kaţdém vytváření soketu. Následuje funkce gethostbyname pro překlad IP adresy, která vrací strukturu odkud se bere IP adresa a délka adresy pro vytvořený soket. Soket vytvoříme
12
Checkbox – zaškrtávací pole Trackbar – posuvný jezdec 14 WSA – Windows Socket API 13
25
voláním funkce socket, do které jako parametry zasíláme informace o tom, ţe se jedná o datagramovou komunikaci, pouţívající IP a UDP. Po vytvoření soketu je nutno definovat protokol, port a adresu cílového serveru zaplněním struktury sockaddr_in. Tato struktura je následně předána do funkce connect, která zajistí trvale nastavený cílový uzel a pro odesílání dat jiţ můţe být pouţívana funkce send. Jako parametry budou do funkce send vloţeny vytvořený soket, pole dat, délka dat a příznak. Odesílání paketu probíhá pomocí časovače kaţdých 0.1 s. Ve spodní části okna programu je umístěna stavová lišta informující o běhu programu. Za normálních podmínek, kdy k vytvoření či inicializaci soketu dojde bez jakýchkoliv potíţí je zde vypsán stav „OK“. Můţe se zde ovšem objevit i některé z chybových hlášení v případě, ţe nastane nějaký problém. Pokud se vyskytne chyba v podobě špatně zadaného tvaru adresy vypíše se zde chybové hlášení „Chybně zadaná IP“. Další problém můţe nastat při nedostupnosti jediného síťového adaptéru. V tom případě program vypíše hlášení „Nedostupný síťový adaptér“. Jestliţe nastane jakákoliv jiná chyba, ať uţ při vytváření nebo při inicializaci socketu, je vypsáno chybové hlášení „Error“. Jestliţe nastane některý z chybových stavů, je zapotřebí vypnout odesílání dat tlačítkem Off, odstranit problém a pokus znovu opakovat.
26
Obr. 3.1: Vzhled ovládacího programu
4 Program pro mikroprocesor ATmega32 4.1 Stručný popis Úkolem programu pro ATmega32 je řízení procesoru tak, aby byl schopen ovládat všechny potřebné periferie a mohl komunikovat se zařízeními k němu připojenými jako jsou D/A převodníky nebo kontrolér ENC28J60. Pokud program dokáţe ovládat tento kontrolér můţe jiţ komunikovat přes IP s kterýmkoliv uzlem v síti a přijímat informace od řídicího programu k tomu určenému. Napsaný je v jazyce C, ve vývojovém prostředí CodeVisionAVR v. 1.24.6 Prof. a odladěn ve vývojovém prostředí AVR Studio 4.
4.2 Funkce programu Pro správnou funkčnost zařízení program začíná inicializací mikroprocesoru a jeho periferií. Po inicializaci provádí cyklické načítání zpráv z kontroléru připojeného na rozhraní
27
SPI. Jakmile je zjištěna alespoň jedna nepřečtená zpráva v paměti kontroléru, zahájí se přenos zprávy do mikroprocesoru, kde je dekódována a na základě pouţitého protokolu v přijaté zprávě se rozhoduje o volaní příslušné funkce. Program dokáţe rozpoznat na síťové vrstvě protokoly ARP a IP. Jestliţe se jedná o IP, je schopen rozpoznat na transportní vrstvě protokoly ICMP pro poţadavek o odpověď a UDP pro příchozí data.
4.3 Inicializace Inicializace se provádí hned po startu mikroprocesoru a jedná se o prvotní nastavení všech registrů na poţadovanou hodnotu tak, aby všechna potřebná zařízení byla schopna správně pracovat. Jako první se provede inicializace mikroprocesoru, kde se nastaví pouze registry portů a rozhraní SPI, za kterou následuje inicializace připojeného kontroléru ENC28J60 přes toto rozhraní. Zde je nejprve nutné provést softwarový reset, který zajistí výchozí nastavení registrů kontroléru. Po resetu kontroléru program vyčká minimálně 1 ms, neţ je moţné začít s inicializací. Jakmile kontrolér nastartuje do výchozího nastavení, začíná program s inicializací na rozdělení paměti v ethernetové části kontroléru na část pro příjem dat a část pro odchozí data. Tyto části je moţné libovolně nastavit a jsou omezeny pouze velikostí paměti. Následuje nastavení přijímacích filtrů a vrstvy MAC. Tato vrstva se stará o přístup k médiu, proto pro svou funkci vyţaduje nastavení MAC adresy.
4.4 Nastavení a ovládání Komunikace v síti probíhá na základě IP adres. Kaţdá síť můţe vyuţívat různého rozsahu adres ať jiţ privátních nebo veřejných. Aby bylo moţné toto zařízení pouţívat v sítích s různým adresováním byla zapotřebí moţnost změny této IP adresy. K tomuto účelu byl navrhnut jednoduchý modul displeje se čtyřmi tlačítky. Zařízení má v programu integrované jednoduché menu, díky kterému je moţná změna IP adresy, masky, výchozí brány nebo MAC adresy. Pro nastavení IP adresy jsou zde dvě moţnosti a to statická, definovaná uţivatelem, která je uloţena v paměti EEPROM a zůstává uloţena i po odpojení napájení nebo výchozí nastavení, které je zahrnuto v paměti programu, je zde nastaven nejčastěji pouţívaný privátní rozsah a nelze jej měnit. V současné verzi software se ovšem maska a výchozí brána nevyuţívá a je zde pouze pro případ budoucího rozšíření. Z důvodu nutnosti inicializovat displej si program hlídá připojení tohoto displeje na základě stavu na portu A. Pokud jsou horní čtyři piny z tohoto portu uzemněny povaţuje modul za připojený a provede jeho inicializaci a výpis aktuálního stavu nastavení. Dále je jiţ moţné vstoupit do menu pomocí tlačítek. Ta jsou pojmenována podle směru pohybu v menu jak ukazuje obrázek a to UP, DOWN, LEFT, RIGHT. Pro vstup do menu je nutno podrţet tlačítko LEFT. Nyní se na displej vypisují jednotlivé poloţky menu. 1, Static – Uţivatelské nastavení adres 2, DHCP – Pro budoucí rozšíření o protokol DHCP 3, Default – Výchozí nastavení adres definované v paměti programu 4, MAC – Změna adresy MAC Na posledním znaku prvního řádku displeje je umístěna šipka pro lepší orientaci při výběru nastavení. Výběr daného nastavení se uskutečňuje tlačítky UP/DOWN a pro potvrzení volby pouţijeme tlačítko RIGHT. Pro volbu Static a Default si nyní můţeme prohlíţet nastavení uloţených adres. Při volbě Static můţeme provádět dále editaci
28
jednotlivých poloţek opět tlačítkem RIGHT. Před názvem vybrané poloţky se objeví mříţka, která indikuje konfigurační reţim. Zde je jiţ moţná změna jednotlivých částí adres, mezi kterými se pohybujeme tlačítky LEFT/RIGHT a změnu provedeme buď krátkým stlačením tlačítka UP/DOWN, čímţ se hodnota čísla inkrementuje/dekrementuje, nebo dlouhým podrţením pro rychlejší změnu čísla. Jakékoliv změny adres jsou okamţitě ukládány do paměti, z čehoţ plyne nemoţnost vrátit nastavení do předchozího stavu. V případě nastavení IP adres je zde poloţka „Apply change“ která dovoluje změnu adres bez nutnosti restartu zařízení. Pokud se ovšem jedná o změnu MAC adresy je nutno zařízení restartovat, z důvodu opětovné inicializace ethernetového kontroléru. Zpět na výchozí pozici displeje se dostaneme několikanásobným stlačením tlačítka LEFT. Jelikoţ je komunikace s ethernetovým kontrolérem časově náročná, je při procházení poloţkami v menu a konfiguraci adres přerušena komunikace a mikroprocesor tak nepřijímá ani neodesílá ţádná data. Komunikace se obnoví po vystoupení z menu.
Obr. 4.1: Schéma pohybu v konfiguračním menu
4.5 Příjem zprávy Příjem zprávy se zjišťuje pomocí cyklického čtení stavu pamětí kontroléru. Jakmile je indikován stav přijetí zprávy, dojde k volání dalších funkcí pro načtení dat z kontroléru. Nejprve je zapsáno místo, kde se nachází počátek přijatého paketu v paměti kontroléru, tato hodnota je jako výchozí nula a začíná se od místa 0000h v paměti. Následuje čtení místa, kde se nachází informace o začátku dalšího paketu. Místo v paměti, které je označeno jako jeden paket se přenese do paměti mikroprocesoru ke zpracování.
4.6 Zpracování a odeslání zprávy 4.6.1 Výpočet kontrolního součtu Výpočet kontrolního součtu se provádí jako součet šestnáctibitových slov. Při výpočtu se prochází pole, na které se kontrolní součet vztahuje, přičemţ samotné pole kontrolního součtu při výpočtu je nulové a rozměr pole musí mít sudý počet byte. Jestliţe obsahuje lichý počet, doplní se poslední místo nulovým byte. Pokud má výsledek výpočtu větší rozsah neţ šestnáct bitů, jsou hodnoty od šestnáctého bitu výš převedeny na nové šestnáctibitové číslo
29
a opět se provede součet s výsledkem. Takto se postupuje dokud není výsledkem jediné šestnáctibitové číslo. Tab. 4.1: Příklad výpočtu kontrolního součtu [7] Šířka slova [bit] Byte 0/1 Byte 2/3 Byte 4/5 Byte 6/7 Součet
8 00 f2 f4 f6 2dc
8 01 03 f5 f7 1f0
16 0001 f203 f4f5 f6f7 2ddf0
Vyšší bity Výsledek
dc 1 dd
f0 2 f2
ddf0 2 ddf2
4.6.2 Zpráva obsahující ARP Aby bylo moţné odeslat paket k cíli, musí znát zdroj nejen cílovou IP adresu ale i MAC adresu zařízení, se kterým chce komunikovat. K účelu zjišťování MAC adresy slouţí protokol ARP. Při příchodu ARP dotazu na IP adresu musí být schopno zařízení odpovědět, jestliţe se jedná o jeho IP adresu. Hledaná IP adresa se nejprve porovná s adresou zařízení, jestliţe odpovídá, vytvoří se odpověď a to tak, ţe je zaměněna cílová a zdrojová MAC adresa v ethernetové hlavičce a IP a MAC adresa v ARP hlavičce, přičemţ místo zdrojové MAC adresy je nastavena adresa zařízení, které dotaz přijalo. Jako poslední se změní typ ARP paketu z ţádosti na odpověď a ten je odeslán zpět ke zdroji. 4.6.3 Zpráva obsahující ICMP Příjem zpráv obsahující ICMP zde slouţí pouze k ověření dostupnosti zařízení v síti prostřednictvím programu ping. Po příjmu paketu obsahující ICMP je porovnávána cílová IP adresa, jestliţe vyhovuje zařízení, pak je provedeno prohození cílové a zdrojové IP a MAC adresy a výpočet kontrolního součtu. Jestliţe je kontrolní součet v pořádku provede se změna typu ICMP zprávy na odpověď, opět se provede výpočet kontrolního součtu a výsledek se zapíše do paketu. Výsledný paket se odešle na cílovou adresu. 4.6.4 Zpráva obsahující UDP Řídicí data jsou zde přenášena pomocí UDP. Jestliţe je doručen paket obsahující UDP, je zkontrolována cílová adresa, zda-li souhlasí s adresou zařízení. Proběhne kontrola kontrolního součtu výpočtem nového a porovnáním s přijatým. Pokud jsou obě hodnoty stejné je velká pravděpodobnost, ţe jsou přijatá data v pořádku. Na základě přijatých dat popsaných v Tab. 3.1 jsou nastaveny digitální výstupy a výstupy D/A převodníků. Nastavení D/A převodníku probíhá pomocí funkce WriteDA přes rozhraní SPI. Vysílají se zde po sobě dva byte s informaci o nastavení převodníku a daty pro nastavení výstupní úrovně z převodníku. Kaţdý převodník má přiřazený svůj výstupní port procesoru. Při nastavení D/A převodníku na nulovou hodnotu je zároveň port nastaven na logickou nulu.
30
5 Měření Realizace elektronického zařízení s sebou nese i ověření správné funkčnosti. V případě navrţeného zesilovače bylo provedeno měření závislosti zesílení na řídícím napětí. Podle katalogového listu tato teoretická hodnota udávaná pro pokojovou teplotu činí 28,8 mV/dB. Jelikoţ je ale integrovaný obvod napájen ±15 V při proudu 11 mA, je jeho spotřeba cca. 330 mW, coţ způsobí ohřev jádra integrovaného obvodu a tím i zvýšení závislosti zesílení na řídícím napětí. Podle katalogového listu by tato hodnota měla být přibliţně 30 mV/dB. Měření bylo rozděleno na dvě části a to na měření pro napěťové zesílení větší jak 1 s nízkou hodnotou vstupního signálu a menší jak 1 s vysokou hodnotou vstupního signálu. Při měření bylo vyuţito zdroje nesymetrického signálu a obvodu TL072 pro převod signálu na symetrický. Tab. 5.1: Naměřené a vypočítané hodnoty závislosti zesílení na řídícím napětí první části zesilovače pro Au < 1, U1 = 1,17 V
pro Au > 1, U1 = 24,7 mV
Ug [mV] 3,9 19,5 34,9 50,5 65,5 80,7 96,3 112,4 159,4 219,7 301,4 410,0
U2 [mV] 2227,1 2103,3 1979,6 1873,6 1767,5 1661,5 1590,8 1484,7 1237,3 989,8 742,4 494,9
Au [-] 0,955 0,902 0,848 0,803 0,758 0,712 0,682 0,636 0,530 0,424 0,318 0,212
Au [dB] - 0,404 - 0,901 - 1,427 - 1,905 - 2,411 - 2,949 - 3,327 - 3,926 - 5,510 - 7,448 - 9,946 -13,468
503,0 613,0 708,0 802,0 1007,0 1304,0 1600,0 2023,0
339,4 226,2 159,1 113,1 53,0 15,6 5,3 1,4
0,145 0,097 0,068 0,048 0,023 0,007 0,002 0,001
-16,745 -20,267 -23,327 -26,288 -32,869 -43,522 -52,869 -64,350
Ug [mV] -1302 -1286 -1254 -1207 -1129 -1035 - 896 - 754 - 508 - 326 - 138 - 13
31
U2 [mV] 6539,8 6009,5 5302,5 4595,5 3499,7 2368,5 1414,0 848,4 339,4 176,8 84,8 53,0
Au [-] 132,14 121,43 107,14 92,86 70,71 47,86 28,57 17,14 6,86 3,57 1,71 1,07
Au [dB] 42,421 41,686 40,599 39,356 36,990 33,599 29,119 24,682 16,723 11,057 4,682 0,599
Výpočet kroku zesílení Ug k 2 [dB ; V ; – ; mV/dB ; –] k1 2n 4,1 15 Au 0,4649 dB 0,0323 212 kde je: n..............rozlišení D/A převodníku 12 bitů Ug ........rozdíl řídícího napětí k1.............konstanta závislosti řídícího napětí na zesílení k2.............konstanta kroku ovládacího programu Au
( 5.1) ( 5.2)
Ovládací program odesílá informace o nastavení převodníku v hodnotách od 0 do 4095 v násobcích 15. Napětí z převodníku se pohybuje v rozmezí od 1,3 V do 2,8 V, coţ znamená, ţe rozdíl řídícího napětí činí 4,1 V. Jestliţe z měření vyplývá, ţe je závislost řídícího napětí na zesílení vyjádřena konstantou k1 rovna 0,0323 mV/dB, krok výsledného zesílení odpovídá hodnotě 0,4649 dB.
32
45
Au [dB]
40 35 30 25 20 15 10 5 0 -1400
-1200
-1000
-800
-600
-400
-200
0
Ug [mV]
Obr. 5.1: Grafické znázornění závislosti zesílení na řídícím napětí pro Au >1 Ug [mV] 0
500
1000
1500
2000
0
-10
-20
-30
-40
-50
-60
Au [dB] -70
Obr. 5.2: Grafické znázornění závislosti zesílení na řídícím napětí pro Au < 1
33
2500
Závěr Navrţené zařízení bylo postupně realizováno na plošném spoji. Jako první byl otestován hlavní modul ovládání. Oba zde uvedené programy byly plně funkční a při realizaci spojení se stolním počítačem pomocí kříţeného kabelu se podařilo realizovat ovládání výstupních portů i výstupu z jednoho analogového převodníku. Pomocí programu ping byla testována i odezva na ţádost s výsledkem přibliţně 1 ms. Test funkčnosti proběhl i se vzdáleným ovládáním přes síť Internet. Cesta zjištěná pomocí programu tracert obsahovala 9 uzlů. Zde se jiţ začala projevovat nespolehlivost protokolu UDP, jelikoţ pakety docházely asi z 90 % a ne vţdy přišly v pořadí, v jakém byly vyslány. Veškeré ověření komunikace na síti byla prováděna za pomocí odposlechu a následné analýzy dat s vyuţitím programu Wireshark. Jelikoţ disponuje zařízení několika analogovými i digitálními vstupy/výstupy je moţno zařízení vyuţít i pro jiné účely. Tímto se podařila splnit podmínka univerzálnosti modulu, který tak můţe po jednoduché úpravě programu být vyuţit v jakékoliv jiné aplikaci. Dalším krokem byla konstrukce a oţivení audio zesilovače. Pro ověření funkce proběhlo měření závislosti zesílení na řídícím napětím, z kterého byla zjištěna konstanta 32,3 mV/dB odpovídající katalogové hodnotě.
34
Literatura [1] DOSTÁLEK, L., KABELKOVÁ, A., Velký průvodce protokoly TCP/IP a systémem DNS. 2. vyd. Praha: Computer Press, 2000. 435s. ISBN 80-7226-323-4. [2] NOVOTNÝ, V., Architektura sítí. 1. vyd. Brno: Fakulta elektrotechniky a komunikačních technologií, Vysoké učení technické v Brně, 136s. [3] VÁŇA, V., Mikrokontroléry ATMEL AVR – Programování v jazyce C – Popis a práce ve vývojovém prostředí CodeVisionAVR C. 1. vyd. Praha: BEN – technická literatura. 2003. 216s. ISBN 80-7300-102-0. [4] Network Sorcery [online]. Dostupné z:
. [5] Vyukové materiály Cisco Network Academy [online]. Dostupné z: . [6] DOSTÁL, R., Builder – Sockety a C++ [online]. 4.11.2002, [cit. 10.11.2008]. Dostupné z: . [7] Braden, R., Borman, D., Partridge, C., Computing the Internet Checksum, RFC 1071, ISI, Cray Research, BBN Laboratories, 1988.
35
Seznam příloh
A. SCHÉMATA PLOŠNÝCH SPOJŮ, OSAZOVACÍ PLÁNY A VÝKRESY DESEK PLOŠNÝCH SPOJŮ ................................................................................................37 A.1.
Schéma zapojení desky ovládání ...............................................................................37
A.2.
Osazovací plán desky ovládání ..................................................................................38
A.3.
Osazovací plán desky ovládání ..................................................................................38
A.4.
Výkres plošných spojů desky ovládání .....................................................................39
A.5.
Výkres plošných spojů desky ovládání .....................................................................39
A.6.
Schéma zapojení displeje ............................................................................................40
A.7.
Osazovací plán displeje...............................................................................................40
A.8.
Výkres plošných spojů displeje ..................................................................................40
A.9.
Schéma zapojení zesilovače ........................................................................................41
A.10. Osazovací plán zesilovače ...........................................................................................42 A.11. Výkres plošných spojů zesilovače ..............................................................................43 A.12. Výkres plošných spojů zesilovače ..............................................................................44 B.
SEZNAMY POUŢITÝCH SOUČÁSTEK................................................................45
B.1.
Seznam pouţitých součástek pro desku ovládání ....................................................45
B.2.
Seznam pouţitých součástek pro desku displeje ......................................................45
B.3.
Seznam pouţitých součástek pro desku zesilovače ..................................................46
C.
OBSAH PŘILOŢENÉHO CD ...................................................................................47
36
A. SCHÉMATA PLOŠNÝCH SPOJŮ, OSAZOVACÍ PLÁNY A VÝKRESY DESEK PLOŠNÝCH SPOJŮ A.1.
Schéma zapojení desky ovládání
37
A.2.
Osazovací plán desky ovládání
A.3.
Osazovací plán desky ovládání
38
A.4.
Výkres plošných spojů desky ovládání
A.5.
Výkres plošných spojů desky ovládání
39
A.6.
Schéma zapojení displeje
A.7.
Osazovací plán displeje
A.8.
Výkres plošných spojů displeje
40
A.9.
Schéma zapojení zesilovače
41
A.10.
Osazovací plán zesilovače
42
A.11.
Výkres plošných spojů zesilovače
43
A.12.
Výkres plošných spojů zesilovače
44
B. Seznamy použitých součástek Seznam použitých součástek pro desku ovládání
B.1. Počet 1 1 1 1 1 1 2 1 2 1 1 2 4 1 4 1 2 6 1 1 3 1 1 B.2.
Hodnota
2,2uF 2k4 4k7 10uF 10uH 15k 25MHz 33pF 50R 100nF 100nF 100uF/25V 270R 820R ENC28J60 LF33 MCP4922 MEGA32-A RJ45_PCB
Název 14V 20V AK500/2 ML10 CPOL-EUE2.5-6 R-EU_R1206 R-EU_R1206 CPOL-EUE2.5-6 L-EUL3225M RN06 CRYSTALHC49S C-EUC1206 R-EU_R1206 C-EU025-025X050 C-EUC1206 CPOL-EUE2.5-7 R-EU_R1206 R-EU_0207/7 ENC28J60 LF33-DPACK MCP4922 MEGA32-A RJ45_PCB
Označení PL1-AMP PL2-DISPLEJ X1 ISP C9 R7 R8, R16 C7 L1, L2 RN1 Q1 C3, C4 R1, R2, R3, R4 C11 C1, C2, C5, C6 C8 R5, R6 R9, R10, R11, R12, R13, R14 U$1 LF33 U$2, U$8, U$9 IC2 RJ1
Seznam použitých součástek pro desku displeje Počet Hodnota 4 1 1 4k7 1 LCD_DISPLEJ_16X2
Název 10-XX 20VS R-EU_0207/10 LCD_DISPLEJ_16X2
45
Označení S1, S2, S3, S4 PL1 R1 U$1
B.3.
Seznam použitých součástek pro desku zesilovače
Počet Hodnota 1 1 6 1N4148 18 6 24 12 12 2 6 6 6 6 6 6
Název 14V AK500/3 1N4148 C-EU025040X050 CPOL-EUE2.5-6
Označení PL1 X13 D1, D2, D3, D4, D5, D6 C6, C24, C27, C28, C30, C31, C35, C36, C39, C41, C42, 1uF C45, C47, C48, C51, C53, C54, C57 1uF C5, C29, C34, C40, C46, C52 R9, R10, R11, R12, R17, R18, R22, R23, R24, R25, R29, 18k R-EU_0207/10 R30, R31, R32, R36, R37, R38, R39, R43, R44, R45, R46, R47, R51 C-EU025C25, C26, C32, C33, C37, C38, C43, C44, C49, C50, 47pF 024X044 C55, C56 C-EU025C13, C14, C15, C16, C17, C18, C19, C20, C21, C22, 100nF 025X050 C23, C58 100uF/25V CPOL-EUE2.5-7 C9, C10 150k R-EU_0207/10 R13, R19, R26, R33, R40, R48 820R R-EU_0207/10 R15, R21, R28, R35, R42, R50 G5V1 G5V1 K1, K2, K3, K4, K5, K6 MC3FAH-0 MC3FAH-0 X1, X3, X5, X7, X9, X11 SSM2018T SSM2018T IO6, U$5, U$6, U$7, U$10, U$11 TOBU3 TOBU3 X2, X4, X6, X8, X10, X12
46
C. Obsah přiloženého CD Na přiloţeném CD jsou obsaţeny všechny projekty týkající se bakalářské práce, a to projekt řídícího programu pro mikroprocesor ATmega32 ve vývojovém prostředí CodeVisionAVR v. 1.24.6 Prof., projekt ovládacího programu vytvořený ve vývojovém prostředí C++Builder v. 6.0 spustitelný pod operačním systémem Windows a projekty návrhu zapojení a plošných spojů vytvořené v prostředí Eagle 4.16. Tato sloţka obsahuje tři projekty navrţených zapojení popisovaných v předcházejícím textu. Metrika kódu pro mikroprocesor: Počet souborů:
8
Počet řádků zdrojového textu:
2571
Velikost statických dat:
1582B
Velikost binárního souboru:
22906 B
Metrika kódu ovládacího programu: Počet souborů:
7
Počet řádků zdrojového textu:
481625
Velikost statických dat:
40960 B
Velikost spustitelného souboru:
599040 B
47