Dálkové ovládání měřicích přístrujů v SRD pásmu
Remote Control of Measurement Devices in SRD Band
Summary: The thesis deals with developement of radiomodems for low rate data communication between computer and device connected via RS-232 standard line. The wireless connection is based on OEM modules by Aurel Wireless, working on SRD band at 868 MHz. The main Atmel AVR microcontroller includes algorithms for Manchester code processing (receiving and transmitting at the speed of 1200 Bd) and implementation of forward error correcting Hamming code (12,8).
Designed system is described in three main chapters: hardware (components selection, circuit diagram design, printed circuit board design), firmware (AVR microcontroller code), and application software (computer program controlling the MASTER modem). PC software is able to control the Elsy SG2000 signal generator and the Yaesu VR-5000 communication receiver. When connected together, zone measurement (i. e. attenuation of environment between generator and receiver as a function of frequency) can be realized. Results of experimental measurements can be found in the attachement of the thesis.
The prototype pair of modems is able to estabilish reliable connection on the distance of up to tens of meters, depending on environment. The PC software can be modified to allow the usage of modems for generic telemetry transfers, if there is no demand on high speed and large data quantity.
Abstrakt: Tato práce se zabývá vývojem radiomodemů pro nízkorychlostní komunikaci mezi počítačem a zařízením, připojeným po lince standardu RS-232. Pro bezdrátový spoj jsou využity OEM moduly firmy Aurel Wireless, pracující v pásmu SRD 868 MHz. Mikroprocesor Atmel AVR, řídící chování modemu, obsahuje mimo jiné algoritmy pro zpracování linkového kódu Manchester o rychlosti 1200 Bd (vysílání, příjem) a implementaci samoopravného Hammingova kódu (12,8).
Navržený systém je popisován ve třech hlavních částech: hardware (výběr součástek, návrh zapojení modemu, návrh desky s plošnými spoji), firmware (obslužný kód pro mikroprocesor AVR na modemu) a software (ovládací program pro PC, obsluhující MASTER modem). Software pro PC umožňuje ovládání signálního generátoru Elsy SG2000 a komunikačního přijímače Yaesu VR-5000. Po připojení těchto dvou přístrojů spolu s počítačem k páru modemů je možné realizovat zónové měření, tj. měření závislosti přenosových vlastností prostředí mezi generátorem a přijímačem v závislosti na kmitočtu. Výsledky experimentálních měření jsou zaneseny v příloze této práce.
Realizovaný pár modemů umožňuje v závislosti na prostředí spolehlivé spojení na vzdálenost řádově desítek metrů. Po úpravě ovládacího programu pro PC mohou být modemy použity pro přenos libovolných telemetrických údajů, není-li vyžadována vysoká rychlost a velké objemy přenášených dat.
Tato webová stránka vznikla převážně konverzí mírně upraveného textového zdroje práce v LaTeXu pomocí TtH v3.77. Tomu odpovídá i její design a kvalita HTML. Originální PDF generovaný pdfCSLaTeXem je přístupný ke stažení spolu s veškerým programovým vybavením. Schéma zapojení a podklady k výrobě a osazení DPS jsou v PDF ve vektorové formě s měřítkem 100%.
Dálkové ovládání měřicích přístrojů v SRD pásmu (PDF, 1.74 MB)
Firmware mikroprocesoru (ZIP, 19 kB) (kompilováno balíkem WinAVR 20060421)
Software pro PC v Borland C++ Builderu (ZIP, 290 kB) (kompilováno C++ Builderem 6)
Knihovna TComPort nutná pro kompilaci SW pro PC
Obsah
1 Úvod
2 Komunikace v ISM pásmech
2.1 Pásmo SRD
2.2 Modulační techniky
3 Hardware modemu
4 Firmware modemu
4.1 Komunikační protokol
4.2 Linkové kódování Manchester
4.3 Algoritmy modemu
4.3.1 Vysílání
4.3.2 Příjem
4.3.3 Hammingův kód (12,8)
4.4 Funkce jednotky MASTER
4.5 Funkce jednotky SLAVE
5 Ovládací program pro PC
5.1 Testování spojení
5.1.1 Výsledky měření dosahu a spolehlivosti
5.2 Dálkové ovládání přístrojů
5.2.1 Signální generátor Elsy SG2000
5.2.2 Komunikační přijímač Yaesu VR-5000
5.3 Zónová měření
6 Závěr
A Schéma zapojení
B Výkresová dokumentace
B.1 Strana spojů
B.2 Strana součástek
C Seznam součástek
D Algoritmy mikroprocesoru
D.1 Vysílač
D.2 Přijímač
D.3 Hammingův kód (12,8)
E Grafy zónových měření
Projekt Dálkové ovládání měřicích přístrojů v SRD pásmu je zaměřen na vývoj univerzální dvojice modulů, které budou umožňovat komunikaci mezi osobním počítačem a inteligentními měřicími přístroji vybavenými sériovým rozhraním standardu RS-232. V dalším textu jsou tyto moduly značeny jako MASTER (řídící modul propojený s osobním počítačem) a SLAVE (řízený modul komunikující s dalším zařízením, např. měřicím přístrojem).
Obrázek 1.1: Koncepce systému dálkového ovládání měřicích přístrojů
Kapitola 2 otevírá problematiku využití ISM pásem pro přenos telemetrických dat a zmiňuje základní modulační techniky. Následující dvě kapitoly se věnují vyvinutému páru modemů po stránce hardwaru (použité součástky a moduly, zapojení elektroniky) a firmwaru (kód řídícího mikroprocesoru modemu). V kapitole 5 je popsán vytvořený komunikační program pro osobní počítač, který je připojený k MASTER modemu a umožňuje v současné verzi dálkové ovládání několika různých přístrojů připojených k modemu SLAVE. Také umožňuje realizovat jednoduchá zónová měření.
V příloze je obsaženo celkové schéma zapojení modemu, podklady pro výrobu a osazovací plán plošných spojů, výpisy algoritmů zpracování linkového kódu a ukázkové grafy zpracované z experimentálního zónového měření.
Oproti systému popsaném v [1], ze kterého tento projekt volně vychází, byla realizována řada změn. Mezi nejdůležitější patří:
- přímá komunikace SLAVE modemu s připojeným přístrojem - SLAVE jednotka ke svému spojení s přístrojem nepotřebuje další PC jako interface
- rozšíření počtu rozhraní SLAVE modemu - přibyly mimo jiné dva sériové kanály standardu RS-232
- možnost přímé komunikace se zařízením připojeným k MASTER modemu
- návrh zapojení a desek s plošnými spoji - zvolena kombinovaná montáž (částečně klasické součástky, částečně technologie povrchové montáže SMT)
- realizace s dostupnými bezdrátovými moduly firmy Aurel Wireless (viz kap. 3)
- komplexní firmware v jazyce C se zpracováním linkového kódu typu Manchester
- vytvoření nového komunikačního protokolu - podpora více rozhraní obou jednotek, silnější zabezpečení proti chybám přenosu (kontrolním součtem CRC a samoopravným Hammingovým kódem)
- vytvoření nového software pro osobní počítač připojený k MASTER modemu
Kapitola 2
Komunikace v ISM pásmech
Přenosová datová rychlost v pásmech ISM je daná modulační metodou a přidělenou šířkou pásma (resp. kmitočtovou roztečí jednotlivých kanálů) a je obecně nízká. Např. modulační metoda AFSK podle standardu V23 nabízí přenosovou rychlost pouze 1200 b/s.
Podle povolovacích podmínek [5] je v současné době prakticky celosvětově podporováno několik bezlicenčních ISM pásem. Jejich výhody a nevýhody z hlediska aplikace shrnuje tab. 2.1. Je zřejmé, že pásmo SRD, zadané pro realizaci projektu, převažuje výhodami nad ostatními zmiňovanými ISM pásmy, zejména svým nízkým provozním využitím.
Tabulka 2.1: Srovnání vlastností bezlicenčních ISM pásem
ISM pásmo | výhody | nevýhody |
|
150/160 MHz | velký dosah i v zastavěné oblasti | pásmo vytížené mnoha aplikacemi (ovládání zařízení, zabezpečení v železniční dopravě) |
433/450 MHz | středně velký dosah i v zastavěné oblasti | pásmo vytížené aplikacemi (dálkové ovládání dveří automobilů, garáží apod.) |
868 MHz | středně velký dosah, v zastavěné oblasti obdobné vlastnosti jako u GSM pásma 900 MHz, málo obsazené pásmo (způsobeno poměrně novým uvolněním pásma v ČR od roku 2000) | menší dostupnost hardware |
2400 MHz
(WiFi systémy)
a vyšší pásma | nízká cena, jednoduché připojení k počítači (nejčastěji Ethernet nebo PCI), široký rozsah hardwarové a softwarové podpory | menší dosah, pro dosažení většího dosahu nutno použít směrových antén, omezený dosah v zastavěné oblasti, v pásmu 2400 MHz velká hustota provozu |
2.1 Pásmo SRD
V ČR bylo pásmo SRD uvolněno teprve v roce 2000 a jeho hlavní určení je pro dálkové ovládání v průmyslových aplikacích, automatizaci (ovládání strojů, jeřábů apod.), alarmech a signalizaci. V celém SRD pásmu je pro tyto aplikace uvolněno 80 kanálů s kmitočtovým rozestupem 25 kHz (to je podstatně více oproti pásmům 150/160 MHz a 433/450 MHz). Nepříliš velké rozšíření a velké množství kanálů v SRD pásmu dává předpoklad výraznému omezení interferencí s jinými uživateli. I v současné době se provoz v tomto pásmu příliš nezvyšuje. Zřejmě je to důsledek výrazné expanze bezdrátové komunikace v pásmu 2400 MHz, které je přístupné nízkou cenou potřebné technologie a velkou softwarovou podporou. Podle standardních licenčních podmínek ITU je pásmo SRD prakticky celosvětově (země ve společenství CEPT) přiděleno pro nezpoplatněný bezdrátový přenos telemetrie (General Telemetry and Telecommand) a výstražnou signalizaci (Alarms). Maximální povolený výkon v tomto pásmu je od 5 do 500 mW EIRP, definováno podle subpásem. Nejvyšší výkon (500 mW EIRP) je povolen v subpásmu CEPT SRD 1i, tj. 869,4 až 869,65 MHz 10 kanálů, při dodržení podmínky poměru doby klíčování k celkové době provozu maximálně 10% (viz tab. 2.2).
Tabulka 2.2: Rozdělení kanálů v pásmu SRD 868 870 MHz
Kanál | Kmitočet | Max. výkon | Klíč. poměr | Aplikace |
| od - do | EIRP [mW] | TX/RX [%] | |
| [MHz] | | | |
|
0 - 23 | 868,0125 | 25 | < 1 | obecné využití |
| 868,5875 | | | |
24 - 27 | 868,6125 | 10 | < 0,1 | obecné využití |
| 868,6875 | | | |
28 - 47 | 868,7125 | 25 | < 0,1 | obecné využití |
| 869,1875 | | | |
48 - 51 | 869,2125 | 10 | < 0,1 | bezpečnostní alarmy |
| 869,2875 | | | |
52 - 55 | 869,3125 | 10 | < 10 | domácí automatizace |
| 869,3875 | | | |
56 - 66 | 869,4125 | 500 | < 10 | obecné využití |
| 869,6500 | | | |
67 | 869,6875 | 25 | < 0,1 | všeobecné alarmy |
68 - 79 | 869,7125 | 5 | 100 | obecné využití |
| 869,9875 | | | |
2.2 Modulační techniky
Mezi nejzákladnější modulační techniky užívané v modemech patří FSK (Frequency Shift Keying), AFSK (Audio Frequency Shift Keying) a FFSK/MSK (Fast Frequency Shift Keying, také známé jako Minimum Frequency Shift Keying).
Modulace FSK je svým principem nejjednodušší. Digitální signál je použit pro přímou modulaci nosné. Její střední frekvence se tak podle příchozích dat. Jednoduchost je vykoupena některými problémy, pro spoje na krátkou vzdálenost je však FSK dobře použitelná. Do FSK modulátoru nesmí přicházet dlouhé řady jedniček ani nul následujících po sobě.
Často používaná je také modulace AFSK. Příchozí data jsou konvertována na audio tóny, jednička je standardně představována frekvencí 1200 Hz, nula frekvencí 2400 Hz. Střední hodnota takto modulovaného signálu bude nulová. Tato technika se využívala v prvních modemech pro telefonní sítě. Její velkou výhodou je vysoká citlivost. Mezi další modulace lze řadit např. MSK, jedná se v podstatě o synchronizovanou verzi FSK. Základní parametry popsaných modulací shrnuje tab. 2.3 převzatá z [4].
Tabulka 2.3: Porovnání základních modulačních technik
Druh modulace | Citlivost [dBm] | Max. přenosová |
| | rychlost [Bd] |
|
přímá FSK | −100 | 6000 |
AFSK (V23) | −118 | 1200 |
FFSK/MSK | −115 | 4800 |
Bezdrátové moduly Aurel popisované v následující kapitole podporují pouze modulaci OOK (On-Off Keying), tedy základní variantu modulace ASK (Amplitude Shift Keying). Při přítomnosti log. 1 na datovém vstupu vysílá modul nemodulovanou nosnou, pro log. 0 nevysílá. Pro komunikaci je tedy nutné zavést vhodné linkové kódování dat s konstantní střední hodnotou modulovaného signálu.
Hardware systému dálkového ovládání měřicích přístrojů volně vychází z [1]. Obě jednotky (MASTER a SLAVE) obsahují dvojici bezdrátových modulů firmy Aurel Wireless (pro příjem a vysílání, [9] a [10]), řídící mikroprocesor Atmel AVR, obvody komunikačních rozhraní, podpůrné obvody a napájecí část. Blokové schéma modemu je na obr. 3.1, kompletní schéma zapojení je obsaženo v příloze A.
Obrázek 3.1: Blokové schéma modemu
Srdcem řídící části je mikroprocesor Atmel typu ATmega8 (IC4). Rodina mikrokontrolérů ATmega disponuje poměrně velkou vnitřní pamětí typu Flash, kterou je možné programovat přímo v aplikaci. Takový způsob programování je označován jako In-System Programming (ISP). Na čipu je dále integrovaná paměť RAM nutná pro běh firmware a paměť EEPROM pro ukládání nastavení při vypnutí napájení. Mikroprocesory disponují až třemi časovači, watchdogem, sběrnicemi I2C a SPI, hodinami reálného času, A/D převodníkem, modulátorem PWM a řadou dalších vylepšení. Navíc jsou běžně dostupné a existují k nim zdarma kvalitní vývojové prostředky, a to jak assembler, tak kompilátor jazyka C.
Pro komunikaci s okolím je využit sériový kanál mikroprocesoru (USART), který je následně přepínán multiplexerem - obvodem typu 4052 (IC5). Obvod 4052 je dvoukanálový analogový obousměrný multiplexer. V závislosti na kombinaci logických úrovní jeho vstupů A a B jsou linky X (TXD) a Y (RXD) propojeny s jedním z maximálně čtyř připojitelných rozhraní.
Dvě z těchto rozhraní využívá dvojitý převodník úrovní RS-232, obvod MAX232 (IC3). Linky RS-232 jsou vyvedeny na standardní konektory. Dále je modem možné připojit přes rozhraní USB (konektor typu B), k čemuž se využívá modul M4 kompatibilní s UMS2 firmy Asix [11]. Čtvrté rozhraní může být osazeno modulem Lantronix XPort (M3) [12]. Jedná se o miniaturní embedded server zabudovaný v krytu konektoru, který umožňuje konverzi sériového kanálu na Ethernetové rozhraní (LAN).
Zapojení modemu dále obsahuje modul Aurel RX-8L50SA70SF (M1) pro příjem a Aurel TX-8LAVSA05 (M2) pro vysílání na kmitočtu 868,3 MHz. Tato dvojice modulů byla zvolena jako náhrada OEM transcieveru SX800 firmy Wood&Douglas, jehož použití bylo původně navrhováno v [2]. Základní parametry modulů Aurel shrnují tab. 3.1 a 3.2.
Tabulka 3.1: Parametry přijímacího modulu Aurel RX-8L50SA70SF
Údaj | Min | Typ | Max | Jednotka |
|
Pracovní frekvence | | 868,3 | | MHz |
Napájecí napětí | 4,75 | 5 | 5,25 | V |
Proudový odběr | | 7 | 9 | mA |
VF citlivost | −98 | −100 | −104 | dBm |
Impedance antény | | 50 | | Ω |
VF šířka pásma pro −3 dB | | 600 | | kHz |
MF šířka pásma pro −3 dB | | 300 | | kHz |
Frekvence na výstupu | | | 3 | kHz |
VF vyzařování do antény | | | −80 | dBm |
Doba náběhu po zapnutí | | | 0,2 | s |
Tabulka 3.2: Parametry vysílacího modulu Aurel TX-8LAVSA05
Údaj | Min | Typ | Max | Jednotka |
|
Pracovní frekvence | | 868,3 | | MHz |
Napájecí napětí | 2,7 | 3 | 5 | V |
Proudový odběr | 20 | 25 | 50 | mA |
VF výstupní výkon (E.R.P.) | +4 | +5 | +7 | dBm |
Impedance antény | | 50 | | Ω |
Modulační frekvence | | | 3 | kHz |
Vzhledem k nutnosti využít samostatné moduly pro RX a TX muselo být vyřešeno jejich přepínání do společné antény. K tomu slouží P-MOSFET tranzistory BSS84 (Q1, Q2), které spínají PIN diody BA479G (D1, D2). Odpor rezistoru R2 je spočítán pro optimální proud diodami podle [7], tj. R2 = (Unap − Uf) / If = (5 − 0,8) / 0,01 ≈ 390 Ω. Kromě PIN diod je k tranzistorům připojeno také napájení modulů, zapínají se tedy zároveň s připojením své antény. Modul TX má použité napájecí napětí 5 V v parametrech označeno jako maximální, proto je snižováno dvojicí diod 1N4007 SMD (D3, D4) na hodnotu (Unap − 2Uf) = (5 − 2 ·0,7) ≈ 3,6 V.
Napájení celého zařízení je řešeno lineárním stabilizátorem 78M05 (IC2) v klasickém katalogovém zapojení [8]. Modul XPort vyžaduje napájecí napětí 3,3 V a jeho odběr je poměrně vysoký (dle [12] přibližně 0,2 A), proto je pro něj využitý samostatný stabilizátor LF33AB (IC1).
Modem obsahuje konektory pro připojení napájení v rozsahu 8 až 15 V (J2), ISP programování mikroprocesoru (JP1) a komunikační rozhraní - RS-232 (X1, X2), USB (X3) a LAN (XPort modul M3). U mikroprocesoru je na DPS umístěn spínač S1, realizovaný jako dvě pájecí plošky vedle sebe. Slouží k výběru režimu modemu (MASTER / SLAVE), čímž je umožněno, aby byl ovládací program společný pro oba druhy jednotek. Rozpojením spínače S2 je možné odpojit napájení od stabilizátoru modulu XPort. Na desce jsou dále programovatelné svítivé diody (LED1, LED2, LED3) a diody, indikující aktuální stav přepnutí multiplexeru (LED4, LED5). Žlutá LED1 indikuje testování modemu (příkazem CMD_LPING nebo CMD_WPING), zelená LED2 svítí při příjmu z bezdrátového rozhraní a červená LED3 signalizuje probíhající vysílání. Celkový pohled na konstrukci zachycují fotografie na obr. 3.2, obr. 3.3 a obr. 3.4.
Obrázek 3.2: Fotografie modemu - celkový pohled
Obrázek 3.3: Fotografie modemu - detail rozhraní
Obrázek 3.4: Fotografie modemu - pohled na DPS
Konstrukce je realizována technologií kombinované montáže, většina součástek je použita v provedení SMD a osazena na spodní straně DPS, několik málo dalších součástek a všechny moduly a konektory jsou umístěny na horní straně. Výkresy DPS a rozložení součástek lze nalézt v příloze B.
Obslužný program mikroprocesoru modemu byl vytvořen v jazyce C. Pro překlad je využit balík WinAVR, tedy kompilátor AVR-GCC s knihovnou AVR Libc. Funkce obsažené v jednotlivých souborech projektu popisuje tab. 4.1. Revize označuje číslo verze souboru v systému Subversion.
Tabulka 4.1: Soubory projektu firmware modemu
Soubor | Revize | Popis |
|
Makefile | 94 | Makefile |
global.c | 93 | Globální funkce (čekání, CRC, časovače) |
hamming.c | 102 | Implementace systematického Hammingova kódu (12,8) |
main.c | 108 | Hlavní program, obsluhy chování MASTER a SLAVE jednotek |
uart.c | 94 | Komunikační funkce - rozhraní UART; funkce pro výběr vstupu multiplexeru, odesílání a příjem dat, odesílání a příjem paketů |
wireless.c | 113 | Komunikační funkce - bezdrátové rozhraní; od rev. 110 funkce příjmu a vysílání v Manchester kódu (dříve algoritmy pro zpracování AFSK) |
comm.h | 95 | Hlavičkový soubor popisující strukturu paketu a ID jednotlivých příkazů modemu |
global.h | 123 | Globální definice - přiřazení V/V mikroprocesoru; hlavičkový soubor pro global.c |
hamming.h | 102 | Hlavičkový soubor pro hamming.c |
uart.h | 93 | Hlavičkový soubor pro uart.c |
wireless.h | 112 | Hlavičkový soubor pro wireless.c |
modem.ppr | | Projektový soubor editoru PSPad |
4.1 Komunikační protokol
Protože mezi MASTER a SLAVE jednotkou je rádiové prostředí, které může být silně zarušené, bylo nezbytné navrhnout protokol s dostatečnou ochranou proti chybám při přenosu. Jeden paket musí umožňovat zapouzdření přenášených dat, v hlavičce pak nést řadu řídících informací. Celek musí být chráněn kontrolním součtem.
Tabulka 4.2: Struktura komunikačního paketu modemu
Offset | Délka | Pole | Popis |
|
0 | 1 | length | Délka paketu |
1 | 1 | command | Příkaz |
2 | 3 | port | Identifikace rozhraní (struktura INTERFACE) |
5 | 1 | timeout | Časový limit čekání na odpověď (v desítkách milisekund) |
6 | 0-64 | data[ ] | Přenášená data |
... | 2 | crc16 | Kontrolní součet typu CRC16 |
Tabulka 4.3: Struktura INTERFACE pro předání parametrů rozhraní (tučné hodnoty jsou výchozí)
Offset | Délka | Pole | Popis |
|
0 | 2/8 | mux:2 | Číslo rozhraní (0 až 3) |
| 1/8 | slave:1 | Rozhraní na jednotce MASTER/SLAVE |
| 5/8 | dummy:5 | Nevyužito |
1 | 1 | baudrate | Rychlost přenosu (2, 4, 9, 14, 19, 28, 38, 57, 76, 115, 230) |
2 | 4/8 | databits:4 | Počet datových bitů (5, 6, 7, 8) |
| 2/8 | stopbits:2 | Počet stopbitů (1, 2) |
| 2/8 | parity:2 | Parita (žádná 0, lichá 1, sudá 2) |
Navržená struktura paketu je popsána v tab. 4.2. Pro zjednodušení se používá stejný formát paketu pro komunikaci MASTER jednotky s počítačem a pro rádiovou komunikaci mezi MASTER a SLAVE jednotkami, přestože při komunikaci s počítačem by nebylo zabezpečení paketu kontrolním součtem nezbytné. Liší se pouze prefixy paketů.
Ve starší verzi firmware modemu [3] byla pro komunikaci rádiovým prostředím zvolena modulace AFSK. Při modulaci byly tóny 1200 Hz (log. 0) a 2400 Hz (log. 1) generovány mikroprocesorem, který se staral také o demodulaci. Současná verze firmware pracuje s linkovým kódem Manchester, který je následně vysílán pomocí OOK modulátoru modulu Aurel.
Přestože výrobce RX modulu uvádí dobu náběhu od zapnutí 0,2 sekundy (viz tab. 3.1), bylo měřením zjištěno, že je modul připravený k příjmu již po několika milisekundách. Modul obsahuje výstup digitálního demodulovaného signálu, který je zřejmě připojen na výstup komparátoru. Ten porovnává okamžitou hodnotu signálu s hodnotou vyfiltrovanou dolní propustí. Tento princip vyžaduje pro svou funkci konstantní střední hodnotu signálu, která je zajištěna použitým linkovým kódem Manchester. Protože má dolní propust RX modulu poměrně vysokou časovou konstantu, je nezbytné, aby samotnému datovému přenosu předcházelo vysílání pilotního signálu, ze kterého RX modul získá střední hodnotu signálu pro komparátor.
Komunikace mezi jednotkami probíhá rychlostí 1200 Bd. Aktivování TX modulu je okamžité, před odesláním paketu je vždy vysílán po dobu cca 200 ms pilotní signál (sled log. 1 v kódu Manchester, představovaný tónem 1200 Hz). U modulu RX byla přidána prodleva 15 ms před startem algoritmu zasynchronizování datového toku. Příklad paketu přijatého jednotkou SLAVE ukazuje obr. 4.1.
Obrázek 4.1: Příklad kompletního paketu (1 = analogový signál - výstup RX TEST, 2 = DATA, 3 = aktivní příjem)
Pro komunikaci MASTER jednotky s řídícím počítačem byla zvolena standardní rychlost 19200 Bd, 8 datových bitů, 1 stopbit, parita žádná. Protože MASTER jednotka nedokáže předvídat, z kterého rozhraní připojeného k multiplexeru přijde požadavek ke zpracování, jsou vstupy multiplexeru přepínány s periodou 20 μs a vyhledávána nízká úroveň na vstupu RXD. Při jejím nalezení se program zastaví na zvoleném vstupu multiplexeru a počká na vzestupnou hranu signálu RXD. Poté aktivuje rozhraní USART mikroprocesoru pro příjem. Tato metoda umožňuje využít jediný hardwarový kanál USARTu mikroprocesoru pro příjem z více rozhraní. Daní za jednoduchost je zahození prvního přijatého znaku, v případě pomalého přepínání multiplexeru i více znaků. Proto struktuře paketu pro komunikaci mezi MASTER jednotkou a počítačem předchází prefix, obsahující několik nul. Výběr vstupu multiplexeru ukazuje obr. 4.2. Pro přepínání vstupu multiplexeru se využívá dvoubitová varianta Grayova kódu (00 → 01 → 11 → 10).
Obrázek 4.2: Přepínání RXD signálu MASTER jednotky (1 = RXD, 3 = MUXA, 4 = MUXB)
Jednotky umožňují komunikovat se všemi běžně používanými parametry sériového kanálu. Jelikož byla cílem univerzálnost modemů, přenášejí se komunikační parametry v hlavičce každého paketu. Tím je umožněn rychlý a snadný přístup k více připojeným zařízením s různými komunikačními parametry, který je nutný pro realizaci zónových měření (viz kap. 5.3).
Tab. 4.4 shrnuje příkazy MASTER jednotky modemu, v současné verzi je jedná o povel pro odeslání dat a příkazy pro testování spojení s potvrzením.
Tabulka 4.4: Příkazy modemu
Příkaz | ID | Popis |
|
CMD_SEND | 0x10 | Odeslání dat na jednotku, adresát zvolen v hlavičce paketu |
CMD_LPING | 0x90 | Požadavek na odezvu MASTER (lokální) |
CMD_WPING | 0x91 | Požadavek na odezvu SLAVE (vzdálený) |
CMD_ACK | 0xA0 | Potvrzení příkazu, odezva na PING |
4.2 Linkové kódování Manchester
Vzhledem k nutnosti stálé střední hodnoty modulačního signálu bylo třeba pro přenos dat využít vhodný linkový kód, zvolen byl kód zřejmě nejběžnější - Manchester. Log. 0 se kóduje jako vzestupná hrana uprostřed bitového intervalu (posloupnost 01), log. 1 jako sestupná hrana (posloupnost 10). Princip modulace je zřejmý z obr. 4.3.
Implementace v modemech dále obsahuje definovanou značku (mark) pro počátek datového toku (posloupnost 11) a pro konec datového toku (posloupnost 00). Tyto dvě značky sice poruší konstantní střední úroveň modulovaného signálu, ale pouze v zanedbatelné míře.
4.3 Algoritmy modemu
V následujících podkapitolách jsou popsány algoritmy pro zpracování linkového kódu Manchester, implementované v mikroprocesoru. Výpis relevantních částí zdrojového kódu přijímače a vysílače lze nalézt v přílohách D.1 a D.2.
Pro kódování signálu se využívá časovač TIMER1 mikroprocesoru v režimu CTC (mode 4) s předděličkou. K jeho naplnění dochází s frekvencí 2400 Hz, tj. s periodou 1 / 2400 ≈ 417 μs.
Přenos paketu začíná přenosem pilotního signálu o délce cca 250 ms, představovaného sledem log. 1, jenž je zakódován na souvislý tón 1200 Hz. Tento signál je nutný pro nastavení střední úrovně signálu komparátoru RX modulu a také pro zachycení synchronizace, jak popisuje následující kapitola. Následuje značka počátku přenosu (11), poté je přenesena datová část paketu. Přenos je zakončen značkou konce přenosu (00).
Obrázek 4.3: Funkce kodéru Manchester (1 = vstupní data, 2 = výstupní signál)
Algoritmus demodulace je - vzhledem k možnosti zkreslení a rušení signálů v rádiovém prostředí - nejkomplikovanější. Oproti starším verzím, které využívaly detekci hrany signálu výstupu RX modulu, provádí současný přijímací algoritmus obnovení synchronizace časování symbolů z pilotního signálu, následované synchronním příjmem. Algoritmus popisovaný v následujících odstavcích je ve formě vývojového diagramu zachycen na obr. 4.4.
Obrázek 4.4: Vývojový diagram algoritmu příjmu kódu Manchester
Obnovení synchronizace pracuje na principu digitálního fázového závěsu (Digital Phase Locked Loop - DPLL). Časovač TIMER1 v režimu CTC se nejdříve nastaví na generování vzorkovací frekvence 9600 Hz, tedy osminásobku symbolové rychlosti. Provádí vzorkování signálu výstupu RX modulu a jeho ukládání do 16-bitového posuvného registru. V registru se vyhledává posloupnost dvou jedniček kódovaných Manchester kódem jako 1010, při násobné vzorkovací frekvenci tedy jako posloupnost 1111000011110000. Pro zvýšení pravděpodobnosti zachycení synchronizace v zarušeném prostředí jsou bity kolem hran ignorovány - viz tab. 4.5. Postup zachycení synchronizace na reálném signálu je vidět na snímku z osciloskopu na obr. 4.5. Svislé čáry ukazují momenty vzorkování signálu procesorem.
Obrázek 4.5: Synchronizace pomocí digitálního fázového závěsu
Po prvním zasynchronizování na dvojici kódovaných jedniček počká mikroprocesor 40 ms a spustí znovu synchronizační algoritmus DPLL. Během čekání se dostatečně ustálí výstup komparátoru TX modulu, druhé zasynchronizování je tedy mnohem méně poznamenáno šumem, způsobujícím náhodné překlápění komparátoru (oblast log. 0 na obr. 4.5). Po druhé synchronizaci počká procesor dvě periody časovače, aby se okamžik vzorkování posunul do středu symbolu, kde lze očekávat nejvyšší pravděpodobnost správného vyhodnocení.
Tabulka 4.5: Obnovení synchronizace pomocí digitálního fázového závěsu
Žádaná posloupnost | 1 | 1 | 1 | 1 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 1 | 0 | 0 | 0 | 0 |
|
Maskování (AND) | 0 | 1 | 1 | 1 | 0 | 1 | 1 | 1 | 0 | 1 | 1 | 1 | 0 | 1 | 1 | 1 |
Porovnáváno s ... | 0 | 1 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 0 | 0 | 0 | 0 |
|
Postačující posloupnost | x | 1 | 1 | 1 | x | 0 | 0 | 0 | x | 1 | 1 | 1 | x | 0 | 0 | 0 |
Následuje přenastavení frekvence časovače TIMER1 na 2400 Hz, tedy dvojnásobek symbolové rychlosti. Přijímač ve smyčce přečte 16 bitů - vzorkuje s každým druhým přetečením časovače, tedy s efektivním kmitočtem 1200 Hz. Vyhodnocuje se první polovina kódovaného symbolu (vzestupná hrana 01 → log. 0, sestupná hrana 10 → log. 1). Pokud není z 16 přečtených bitů alespoň 14 log. 1, považuje se synchronizace za neplatnou a algoritmus pokračuje znovu od úplného začátku. K tomuto případu může dojít např. při spuštění příjmu během již probíhajícího přenosu - algoritmus se zasynchronizuje na sekvenci dvou log. 1 v datovém toku (ty se vyskytnou s velkou pravděpodobností), ale nenalezne delší sekvenci.
Po nalezení platné sekvence log. 1 je přijímač zasynchronizován na datový tok vysílače (který stále vysílá pilotní sekvenci log. 1) a začne vyhledávat značku počátku (11). Po jejím nalezení provádí příjem dat až po detekci značky konce (00), resp. zaplnění přijímacího bufferu, pokud nebyla značka konce nalezena kvůli poškození.
Při příjmu se vyhodnocuje střed první poloviny kódovaného symbolu (tj. opět vzestupná hrana 01 → log. 0, sestupná hrana 10 → log. 1). Pouze u prvního bitu každého přenášeného slova se kontrolují obě poloviny kódovaného symbolu za účelem detekce značky konce.
Ukázka příjmu je zobrazena na obr. 4.6. První dva symboly (1 a 1, kódované jako dvě sestupné hrany 10 10) patří do pilotní sekvence jedniček pro synchronizaci přijímače. Následuje značka počátku (11) následovaná bitovým tokem (0 1 0 0 0 0 0) v kódu Manchester (01 10 01 01 01 01 01).
Obrázek 4.6: Funkce dekodéru Manchester
Datová slova mohou být dlouhá 8 nebo 12 bitů, v závislosti na tom, zda je aktivní Hammingovo kódování přenášených dat. Všechny smyčky přijímacího algoritmu dále kontrolují, zda nedošlo k vypršení timeoutu časovače.
4.3.3 Hammingův kód (12,8)
Hammingův kód (dále HK) je lineární kód pro opravu jedné chyby v kódovaném datovém slově. Zvolený systematický HK (12,8) kóduje 8-mi bitové slovo na 12-bitové přidáním čtyř kontrolních bitů. V každém slově tedy může být při přenosu poškozen jeden bit, který je algoritmem opraven.
Pro generování HK (12,8) byla využita generující matice G:
G = | / | | | |
| | | | | \
|
|
| \ | | | |
| | | | | /
|
|
|
Z důvodu rychlosti a paměťové náročnosti výpočtu v mikroprocesoru byla vypočítána look-up tabulka pro všech 28 = 256 možných vstupních hodnot, realizace vychází z [13]. Kód v jazyce C pro generování a opravu HK přizpůsobený překladači AVR-GCC lze nalézt v příloze D.3.
Standardní algoritmus kontroly přijatého slova lineárního kódu, popsaný např. v [14], využívá kontrolní matici H. Po vynásobení matice kontrolovaným slovem získáme vektor, tzv. syndrom. Je-li syndrom nulový, nedošlo při přenosu k chybě. V opačném případě lze ze syndromu určit pozici chyby ve slově.
Zvolený algoritmus implementuje jednodušší metodu kontroly, kdy se určení syndromu provede modulo 2 součtem (operace XOR) přijatého HK a HK vypočteného z přijatých dat. Z vypočteného syndromu je opět možné určit pozici případné chyby ve slově a následně ji opravit.
Všechna data přenášená modemem jsou implicitně zabezpečena pomocí HK. Pro účely testování je možné HK zakázat uzemněním pinu PB3 řídícího mikroprocesoru, což lze snadno realizovat propojkou () na ISP konektoru v pozici 4 - 6 (nainstalovaná propojka je vidět na obr. 3.2).
Použitý HK (12,8) zavádí 33% redundanci datového toku (na 8 bitů dat připadají 4 kontrolní bity), čímž snižuje efektivní přenosovou rychlost na 2/3 ·1200 = 800 Bd. Zároveň však umožňuje, aby byl až každý dvanáctý bit přijat chybně.
4.4 Funkce jednotky MASTER
Hlavní obslužný program jednotky MASTER ve smyčce přepíná multiplexer a vyhledává příchozí data od řídícího počítače (viz kap. 4.1). Po zachycení příchozích dat provede jejich příjem, zkontroluje platnost paketu (délka, kontrolní součet) a pokračuje dne zadaného povelu:
- CMD_SEND na SLAVE, CMD_WPING - Paket se beze změn zapouzdřených dat odešle na jednotku SLAVE. Po dobu předanou v hlavičce paketu se vyčkává na odpověď (je aktivován RX). Pokud odpověď přijde a je platná, odešle se zpět řídícímu počítači přes rozhraní, ze kterého přišel požadavek.
- CMD_SEND na MASTER - Jednotka přepne multiplexer na požadované rozhraní a nastaví jeho komunikační parametry. Odešle datovou část přijatého paketu a očekává odpověď. Tu po uplynutí zadaného timeoutu přečte, přepne zpět na rozhraní, ze kterého přišel původní požadavek, nastaví výchozí komunikační parametry a zapouzdřenou odpověď odešle řídícímu počítači.
- CMD_LPING - Na paket se odpoví řídícímu počítači přes rozhraní, ze kterého přišel požadavek. Odpovídá se paketem CMD_ACK, zapouzdřená data jsou předána beze změn.
Po zpracování příkazu pokračuje hlavní program dalším vyhledáváním příchozích dat od počítače.
4.5 Funkce jednotky SLAVE
Obslužný program jednotky SLAVE aktivuje RX a čeká na přijetí platného paketu z bezdrátového rozhraní. V něm rozeznává následující povely:
- CMD_SEND - Po přijetí paketu se multiplexerem zvolí požadované rozhraní, nastaví jeho komunikační parametry a odešlou se přijatá zapouzdřená data. V případě, že odesílatel očekává odpověď (timeout > 0), se spustí příjem USARTu po zadanou dobu. Poté se data přijatá po sériovém kanálu zapouzdří do paketu CMD_SEND a odešlou přes bezdrátové rozhraní jednotce MASTER, která je předá dál.
- CMD_WPING - Na paket se odpoví odesílateli přes bezdrátové rozhraní. Odpovídá se paketem CMD_ACK, zapouzdřená data jsou předána beze změn.
Po zpracování příkazu pokračuje hlavní program příjmem z bezdrátového rozhraní a čekáním na další platný paket.
Kapitola 5
Ovládací program pro PC
Program pro ovládání jednotky MASTER z osobního počítače byl vytvořen v prostředí Borland C++ Builder 6.
Současná verze má implementovány funkce dle tab. 4.4, tj. testování spoje pomocí CMD_LPING a CMD_WPING a přenosy dat (CMD_SEND). Software déle umožňuje ovládání signálního generátoru Elsy SG2000 a komunikačního přijímače Yaesu VR-5000. Každé podporované zařízení se ovládá na zvláštní záložce programu. Tyto dva přístroje jsou také použity pro realizaci zónových měření.
5.1 Testování spojení
Obr. 5.1 ukazuje základní okno ovládacího programu. Ve společné horní části se nastavuje, na kterém sériovém portu počítače se nachází MASTER modem. Pro připojení prostřednictvím USB a LAN se využívá ovladačů virtuálních sériových portů.
Obrázek 5.1: Testování spojení
V boxu Parametry paketu lze nastavit obsah datové části paketu, který bude zaslán modemu - jeho délku a obsah. Obsah je také možné vygenerovat automaticky stiskem příslušného tlačítka - velká písmena abecedy, číslice či náhodný ASCII obsah.
Box Jednorázové testy obsahuje tlačítka pro kontrolu spojení mezi počítačem a MASTER modemem (CMD_LPING) a na trase počítač - MASTER modem - SLAVE modem (CMD_WPING). V Kontinuálních testech je možné aktivovat periodické posílání požadavku na odezvu s nastaveným timeoutem intervalu. Poslední verze umožňuje i omezení počtu testovacích paketů, které se mají odeslat. Ovládací program počítá odeslané a přijaté pakety a ukazuje procentuální úspěšnost přenosu.
Pomocí prvků v boxu Přenos dat je možné odeslat paket CMD_SEND, tedy poslat data na vybrané rozhraní MASTER či SLAVE jednotky. Položka Timeout udává dobu, po kterou modemy čekají na odpověď z připojeného zařízení. Je-li nulová, SLAVE pouze potvrdí příjem paketu a na odpověď se nečeká.
Datová část a důležité údaje o přijatých paketech se vypisují ve spodní části okna programu. Jedná se o délku přijatého paketu, identifikátor příkazu a rozhraní.
5.1.1 Výsledky měření dosahu a spolehlivosti
Kmitočet 868 MHz, na kterém modemy komunikují, patří do oblasti decimetrových vln. S tím jsou spjaty vlastnosti šíření signálu mezi modemy. Maximální vzdálenost, na kterou modemy dokáží spolehlivě komunikovat, velmi závisí na prostředí.
V budově ze železobetonové konstrukce (UREL) byla ověřena bezproblémová funkčnost při komunikaci mezi dvěma patry a dvěmi místnostmi přes chodbu. V těchto případech fungovalo spojení vždy. Při umístění modemů na opačné konce chodby o délce cca 30 m se již plně projevily vlastnosti decimetrových vln, zejména únik signálu - modemy byly extrémně citlivé na umístění, posun o 5 cm mnohdy představoval rozdíl mezi 100% spojem a stavem, kdy nebylo možno zachytit synchronizaci. Přesto při pečlivém zvolení polohy bylo možné docílit v budově dosahu cca 30 m při spolehlivé funkci.
Další testy dosahu probíhaly v nezastavěné oblasti. Modemy byly umístěny do referenční výšky 30 cm nad zemí. Výsledky shrnuje tab. 5.1. Vzdálenost modemů byla měřena pomocí přijímače GPS.
Tabulka 5.1: Výsledky testování komunikace na volném prostranství
Velikost | Vzdálenost | Hammingova | Počet | Přijatých | Úspěšnost |
paketu [B] | modemů [m] | korekce | paketů | paketů | [%] |
|
4 | 100 | vypnuta | 300 | 299 | > 99 |
16 | 100 | vypnuta | 200 | 199 | > 99 |
64 | 100 | vypnuta | 100 | 100 | 100 |
16 | 100 | zapnuta | 200 | 199 | > 99 |
|
64 | 160 | zapnuta | - | - | > 99 |
|
4 | 180 | zapnuta | 300 | 292 | 97 |
16 | 180 | zapnuta | 200 | 171 | 85 |
64 | 180 | zapnuta | - | 0 | 0 |
4 | 180 | vypnuta | 300 | 293 | 97 |
16 | 180 | vypnuta | 200 | 161 | 80 |
64 | 180 | vypnuta | - | 0 | 0 |
Z tabulky vyplývá, že hranicí pro spolehlivé spojení mezi modemy na volném prostranství je vzdálenost cca 160 m. Vliv Hammingovy korekce není z uvedených měření statisticky průkazný. Bylo by nutné použít řádově vyšší počet testovacích paketů, což by bylo značně časově náročné. Neprůkaznost kladného vlivu Hammingova kódování lze také přičíst tomu, že u ztracených paketů nebyla zachycena synchronizace, případně byly poškozeny shlukovými chybami. Tyto problémy nedokáže použitý HK (12,8) řešit.
5.2 Dálkové ovládání přístrojů
Následující kapitoly popisují možnosti ovládání přístrojů připojených k rozhraní modemu. Současná verze ovládacího programu podporuje většinu příkazů signálního generátoru Elsy SG2000 a veškeré příkazy komunikačního přijímače Yaesu VR-5000. Program lze snadno rozšířit o podporu dalších zařízení, pokud je známý jejich komunikační protokol.
5.2.1 Signální generátor Elsy SG2000
Signální generátor Elsy SG2000 [15] je vysokofrekvenční generátor s kmitočtovým rozsahem 100 kHz až 1 GHz, s možností amplitudové i kmitočtové modulace a výstupní úrovní nastavitelnou v rozsahu −127 dBm až +10 dBm. Ovládací program umožňuje čtení a zápis kmitočtu generátoru (příkazy RFR a SFR), kmitočtového kroku (RST a SST), výstupní úrovně (RLV a SLV) a pásma rozmítání (RSW a SSW). Dále umožňuje deaktivování modulace generátoru (SMO).
Obrázek 5.2: Ovládání signálního generátoru Elsy SG2000
5.2.2 Komunikační přijímač Yaesu VR-5000
Yaesu VR-5000 [16] je komunikační přijímač umožňující příjem v kmitočtovém rozsahu 100 kHz až 2600 MHz v režimech CW, SSB (LSB a USB), AM a FM (širokopásmová a úzkopásmová). Ovládací program komunikuje přes modem s přijímačem pomocí rozhraní CAT (Computer Aided Transciever) a podporuje veškeré dokumentované příkazy. Umožňuje tedy nastavení kmitočtu přijímače, režimu demodulace a kmitočtového kroku a čtení statusu přijímače - stavu squelche (otevřen/uzavřen) a údaje S-metru (v rozsahu 0 až 63).
Dokumentace k rozhraní CAT firmy Yaesu je neúplná a obsahuje několik nepřesností. Přijímač má dva oscilátory a směšovače, pomocí kterých realizuje funkci Dual Receive. Tyto režimy jsou značeny jako MAIN VFO a SUB VFO. Pro operace nastavení kmitočtu a módu přijímače jsou rozlišovány různé opkódy rozhraní CAT pro různá VFO. Pro čtení statusu je v návodu [16] uveden pouze opkód pro čtení stavu SUB VFO, aniž by to bylo explicitně uvedeno. Experimentálně bylo zjištěno, že existuje i opkód pro čtení stavu MAIN VFO - jedná se o kód 0xD7.
Obrázek 5.3: Ovládání komunikačního přijímače Yaesu VR-5000
5.3 Zónová měření
S využitím zmíněného generátoru a přijímače je možné realizovat tzv. zónové měření. Koncepci pracoviště pro realizaci zónových měření ukazuje obr. 5.4. K řídícímu osobnímu počítači je připojen modem MASTER spolu s komunikačním přijímačem Yaesu VR-5000. Bezdrátově je MASTER jednotka propojena s modemem SLAVE, ovládajícím generátor Elsy SG2000. Připojení přístrojů k modemům je libovolně nastavitelné v ovládacím programu, je dokonce možné obě zařízení napojit ke stejné jednotce (z hlediska zónových měření to však nemá využití).
Obrázek 5.4: Koncepce pracoviště zónového měření
Obrázek 5.5: Zónové měření
Ovládací program (obr. 5.5) po spuštění měření provádí krokování kmitočtu v rozsahu přibližně dvou dekád (od 10 MHz do 2000 MHz) se zvoleným krokem. Dále je možné nastavit výstupní výkon signálu generátoru až po +10 dBm. Komunikaci s připojenými zařízeními pro tři kmitočty (10 MHz, 100 MHz a 1000 MHz) a úroveň generátoru +10 dBm zachycuje tab. 5.2. Po inicializaci se nastavují kmitočty přijímače a generátoru a z přijímače se po krátké časové prodlevě odečte signál S-metru.
Tabulka 5.2: Záznam komunikace zónového měření
Směr | L | C | I | Příkaz | Zařízení | Interpretace příkazu |
|
→ | 8 | 0x10 | 4 | SLV1373 | generátor | nastav úroveň +10 dBm |
← | 4 | 0x10 | 4 | SOK | generátor | OK |
→ | 4 | 0x10 | 4 | SMO | generátor | vypni modulaci |
← | 4 | 0x10 | 4 | SOK | generátor | OK |
→ | 5 | 0x10 | 0 | 00 00 00 00 00 | přijímač | zapni rozhraní CAT |
← | 0 | 0x10 | 0 | | přijímač | |
→ | 5 | 0x10 | 0 | 04 02 00 00 07 | přijímač | nastav AM pro MAIN VFO |
← | 0 | 0x10 | 0 | | přijímač | |
→ | 14 | 0x10 | 4 | SFR0010000000 | generátor | nastav frekvenci 10 MHz |
← | 4 | 0x10 | 4 | SOK | generátor | OK |
→ | 5 | 0x10 | 0 | 00 0F 42 40 01 | přijímač | nastav frekvenci 10 MHz |
← | 0 | 0x10 | 0 | | přijímač | |
→ | 5 | 0x10 | 0 | 00 00 00 00 D7 | přijímač | pošli status |
← | 1 | 0x10 | 0 | 32 | přijímač | status: SQ uzavřen, úroveň 50 |
→ | 14 | 0x10 | 4 | SFR0100000000 | generátor | nastav frekvenci 100 MHz |
← | 4 | 0x10 | 4 | SOK | generátor | OK |
→ | 5 | 0x10 | 0 | 00 98 96 80 01 | přijímač | nastav frekvenci 100 MHz |
← | 0 | 0x10 | 0 | | přijímač | |
→ | 5 | 0x10 | 0 | 00 00 00 00 D7 | přijímač | pošli status |
← | 1 | 0x10 | 0 | 2D | přijímač | status: SQ uzavřen, úroveň 45 |
→ | 14 | 0x10 | 4 | SFR1000000000 | generátor | nastav frekvenci 1 GHz |
← | 4 | 0x10 | 4 | SOK | generátor | OK |
→ | 5 | 0x10 | 0 | 05 F5 E1 00 01 | přijímač | nastav frekvenci 1 GHz |
← | 0 | 0x10 | 0 | | přijímač | |
→ | 5 | 0x10 | 0 | 00 00 00 00 D7 | přijímač | pošli status |
← | 1 | 0x10 | 0 | 32 | přijímač | status: SQ uzavřen, úroveň 50 |
→ | 8 | 0x10 | 4 | SLV0003 | generátor | nastav úroveň −127 dBm |
← | 4 | 0x10 | 4 | SOK | generátor | OK |
→ | 5 | 0x10 | 0 | 00 00 00 00 80 | přijímač | vypni rozhraní CAT |
← | 0 | 0x10 | 0 | | přijímač | |
Vysvětlivky: L... délka (length), C... příkaz (command), I... rozhraní (interface)
Informativní výsledky se vypisují během měření do textového pole vpravo. Program po dokončení krokování kmitočtů nastaví generátor vždy na nejnižší možnou výstupní úroveň a výsledky měření zkopíruje ve vhodném formátu (čísla oddělená tabulátory) do schránky. Tyto výsledky je možné přímo vložit do tabulkového procesoru (např. Microsoft Excel) za účelem dalšího zpracování a tvorby grafů.
V příloze E lze nalézt několik grafů realizovaných měření. Graf 1 zobrazuje tři křivky - červená a modrá byly měřeny při aktivním generátoru s výkonem 0 dBm v různých místech, černá představuje elektromagnetické pozadí, získané stejným měřením při vypnutém generátoru (resp. při nejnižší možné výstupní úrovni −127 dBm).
Křivky v grafu 2 zachycují měření provedená pro tři různé výstupní výkony signálního generátoru: −10 dBm, 0 dBm a +10 dBm. Z grafu je patrné, že měření má vypovídací hodnotu od kmitočtu cca 50 MHz do konce rozsahu. Také lze konstatovat, že přestože S-metr přijímače Yaesu VR-5000 není oficiálně nijak kalibrován, je možné údaje odečítat v decibelech. Při změně výkonu generátoru o 10 dB se totiž údaj S-metru (RSSI) zvýší také přibližně o 10 jednotek.
Graf 3 ukazuje výsledek zónového měření s eliminací rušení pozadí. Ta byla provedena odečtením úrovně pozadí od naměřených hodnot. Signál od generátoru umístěného ve stejné místnosti jako přijímač (červená křivka) je logicky silnější než při umístění generátoru do jiné místnosti (modrá křivka).
U všech grafů je patrný přibližně společný počátek na kmitočtu 10 MHz, což lze interpretovat tak, že použité náhražkové antény na takto nízkých kmitočtech prakticky vůbec nefungují, reálných výsledků začínají dosahovat v oblasti od 50 MHz. Všechna měření byla prováděna s 24 logaritmickými kroky na dekádu.
V rámci této práce byla vypracována koncepce dálkové komunikace s měřicími přístroji. V úvodní části práce jsou řešeny otázky využití bezlicenčních ISM pásem, zejména pak pásma SRD, a je stručně pojednáno o principech modulace používaných pro datově nenáročné telemetrické aplikace.
Bylo navrženo schéma zapojení a desky plošných spojů modemu a realizován prototypový a následně finální pár. Mechanické provedení je přizpůsobeno předpokládanému experimentálnímu a didaktickému využití modemů, desky s plošnými spoji proto nejsou uzavřeny v krabičkách. Do řídících mikroprocesorů byl vytvořen firmware podporující požadované funkce. Rozsah současné verze přesahuje 1000 řádků zdrojového kódu v jazyce C. Dále byl navržen počítačový program pro otestování komunikace mezi modemy a pro dálkové ovládání dvou vybraných přístrojů. Program umožňuje realizaci jednoduchých zónových měření.
Celkové výsledky testování komunikace modemů jsou obsaženy v kap. 5.1.1. Vyplývá z nich, že maximální vzdálenost modemů pro spolehlivou komunikaci v zastavěné oblasti je řádově nízké desítky metrů, na volném prostranství pak maximálně 160 m. Tyto vzdálenosti mohou působit jako poměrně malé, je však třeba brát v úvahu výstupní výkon TX modulů cca 3 mW a poměrně špatnou citlivost RX modulů. Srovnáme-li výsledky se systémem popsaným v [1], kde bylo dosaženo spoje na vzdálenost 800 m (přímá viditelnost) s kvalitním transcieverem Wood&Douglas SX800 (TX výkon o 10 dB vyšší a RX citlivost o více než 10 dB lepší než moduly Aurel), je dosah popisovaných modemů s levnými bezdrátovými moduly Aurel velmi dobrý.
Realizovaná dvojice radiomodemů může nalézt uplatnění i mimo zadanou oblast ovládání měřicích přístrojů za účelem realizace zónových měření. Základní limitující faktory realizovaných modemů jsou tři: nízký VF výkon TX modulů, relativně nízká přenosová rychlost 1200 b/s (resp. 800 b/s při použití zabezpečení přenosu Hammingovým kódem) a vysoká doba přepnutí směru komunikace při poloduplexním provozu ( > 250 ms). Přes tato omezení lze najít řadu dalších možných využití, např. přenos obecně libovolných telemetrických údajů či dálkové ovládání v průmyslové automatizaci.
Literatura
- [1]
-
ŠEBESTA, Jiří; JAKUBOVÁ, Ivana; URBANEC, Tomáš.
Implementace nového způsobu komunikace ke stávajícímu systému pro zónové měření.
Závěrečná zpráva projektu NBÚ, 2006.
- [2]
-
POVALAČ, Aleš.
Dálkové ovládání měřicích přístrojů v SRD pásmu: Semestrální projekt 1 (BB1E).
FEKT VUT v Brně, 2006. 8 s.
- [3]
-
POVALAČ, Aleš.
Dálkové ovládání měřicích přístrojů v SRD pásmu: Semestrální projekt 2 (BB2E).
FEKT VUT v Brně, 2006. 30 s.
- [4]
-
WOOD, Alan.
A Summary of Modem Techniques [Online].
Application Note 7000 0019. Wood & Douglas Ltd., Tadley, 2004.
Dostupné na: < http://www.woodanddouglas.co.uk/products/download/70000019.pdf > .
- [5]
-
Všeobecné oprávnění č. VO-R/10/08.2005-24 k využívání rádiových kmitočtů a k provozování zařízení krátkého dosahu [Online].
Český telekomunikační úřad, 2005.
Dostupné na: < http://www.ctu.cz/1/download/Opatreni%20obecne%20povahy/VO_R_10_08_2005_24.pdf > .
- [6]
-
ATmega8. 8-bit AVR Microcontroller with 8K In-System Programmable Flash. Data Sheet [Online].
Atmel Corp., 2005.
Dostupné na: < http://www.atmel.com/dyn/resources/prod_documents/doc2486.pdf > .
- [7]
-
Polovodičové spínače pro střídavé signály.
Radioamatér, 2006, roč. 7, č. 1, s. 6-8. ISSN 1212-9100.
- [8]
-
L78M00 series. Positive voltage regulators [Online].
STMicroelectronics, 2006.
Dostupné na: < http://us.st.com/stonline/books/pdf/docs/2146.pdf > .
- [9]
-
RX-8L50SA70SF Receiver. Instruction Manual [Online].
AUR·EL S.p.A., 2002.
Dostupné na: < http://www.aurelwireless.com/wireless/uk/manuals/650200535_um.pdf > .
- [10]
-
TX-8LAVSA05 Transmitter. Instruction Manual [Online].
AUR·EL S.p.A., 2002.
Dostupné na: < http://www.aurelwireless.com/wireless/uk/manuals/650200546_um.pdf > .
- [11]
-
UMS2. Sériový modul USB. Uživatelská příručka [Online].
ASIX s.r.o., Praha, 2005.
Dostupné na: < http://www.asix.cz/download/usb/ums2/ums2_cz.pdf > .
- [12]
-
XPort Data Sheet 910-815E [Online].
Lantronix Inc., 2005.
Dostupné na: < http://www.lantronix.com/pdf/XPort_DS.pdf > .
- [13]
-
KLEIN, Jack.
C Unleashed: Chapter 18 - Digital Signal Processing.
Sams Publishing, 2000. ISBN 0672318962.
- [14]
-
Hamming code [Online].
Wikipedia, 2007.
Dostupné na: < http://en.wikipedia.org/wiki/Hamming_code > .
- [15]
-
Signální Generátor SG2000.
ELSY spol. s.r.o., 2002.
- [16]
-
Yaesu VR-5000 All Mode 100kHz - 2600MHz Communications Receiver. Operating Manual.
Vertex Standard Co., Ltd., Japan, 2000.
Seznam zkratek
AFSK | Audio Frequency Shift Keying |
ASK | Amplitude Shift Keying |
CAT | Computer Aided Transciever |
CRC | Cyclic Redundancy Check |
CTC | Clear Timer on Compare Match |
DPLL | Digital Phase Locked Loop |
DPS | deska s plošnými spoji |
EIRP | Equivalent Isotropically Radiated Power |
FEC | Forward Error Correction |
FFSK | Fast Frequency Shift Keying |
FSK | Frequency Shift Keying |
GPS | Global Positioning System |
GSM | Global System for Mobile Communications |
HK | Hammingův kód |
ID | identifikátor |
ISM | Industrial, Scientific and Medical Bands |
ISP | In-System Programming |
LAN | Local Area Network |
MUX | Multiplexer |
OEM | Original Equipment Manufacturer |
OOK | On-Off Keying |
RFC | Radio Frequency Choke |
RX | příjem, přijímací |
SMD | Surface Mounted Device |
SMT | Surface Mount Technology |
SRD | Short Range Device |
TX | vysílání, vysílací |
USART | Universal Asynchronous Receiver / Transmitter |
USB | Universal Serial Bus |
VF | vysokofrekvenční |
VFO | Variable Frequency Oscillator |
V/V | vstupy a výstupy |
Příloha B
Výkresová dokumentace
B.1 Strana spojů
Motiv plošného spoje (měřítko 1:1)
Osazovací plán
B.2 Strana součástek
Motiv plošného spoje (měřítko 1:1)
Osazovací plán
C1, C13 | 10pF | C ker. SMD 1206 |
C2, C3, C4, C5, C7, | | |
C8, C9, C10, C12, C15 | 100nF | C ker. SMD 0805 |
C6 | 100μF/16V | C elektrolyt. |
C11, C16, C17, C18, C19 | 1μF/16V | C tantal. SMCA |
C14 | 10μF/16V | C tantal. SMCC |
C20, C21 | 33pF | C ker. SMD 0805 |
D1, D2 | BA479G | PIN dioda DO34 |
D3, D4 | 1N4007 SMD | dioda SMD MELF |
IC1 | LF33AB | stabilizátor D-PAK |
IC2 | 78M05 | stabilizátor D-PAK |
IC3 | MAX232 | IC DIL16 |
IC4 | ATMEGA8 | IC TQFP44 |
IC5 | 4052 | IC DIL16 |
J1 | ANT | anténa 868 MHz |
J2 | K375A | konektor napájecí |
JP1 | PINHD-2X3 | konektor ISP |
L1, L2, L3 | RFC | VF tlumivka |
LED1, LED4, LED5 | LED žlutá | LED 5mm |
LED2 | LED zelená | LED 5mm |
LED3 | LED červená | LED 5mm |
M1 | RX-8L50SA70SF | modul RX Aurel |
M2 | TX-8LAVSA05 | modul TX Aurel |
M3 | XPORT | modul LAN-serial Lantronix |
M4 | UMS2 | modul USB-serial Asix |
Q1, Q2 | BSS84 | tranzistor P-MOSFET SMD |
Q3 | 3.6864MHz | krystal HC49-U |
R1, R6 | 4k7 | R SMD 1206 |
R2 | 390 | R SMD 0805 |
R3, R4, R5, R10, R11 | 220 | R SMD 0805 |
R7 | 10k | R SMD 1206 |
R8 | 4k7 | R SMD 0805 |
R9 | 10k | R SMD 0805 |
X1, X2 | F09H | konektor Cannon 9 samice |
X3 | USB | konektor USB-B |
Příloha D
Algoritmy mikroprocesoru
D.1 Vysílač (TX v4)
#define wtx(x) { if (x) PORTC |= _BV(PC2); else PORTC &= ~_BV(PC2); }
void wstep(void) { loop_until_bit_is_set(TIFR, OCF1A); TIFR = _BV(OCF1A); }
void wireless_tx_rising(void) { wstep(); wtx(0); wstep(); wtx(1); }
void wireless_tx_falling(void) { wstep(); wtx(1); wstep(); wtx(0); }
void wireless_hw_tx(unsigned int *tx_buffer, unsigned char tx_length)
{
int i, j;
tx_enable();
OCR1A = TIMER1_LOAD - 1; // 2400Hz
TCCR1B = _BV(WGM12) | TIMER1_PRESCAL; // Mode 4 - CTC
TCNT1 = 0;
TIFR = _BV(OCF1A);
// nosna 250ms (cca 200 jednicek)
for (i = 0; i < 200; i++) {
wireless_tx_falling();
}
// mark pocatku (11)
wstep();
wtx(1);
wstep();
// data
for (i = 0; i < tx_length; i++, tx_buffer++) {
for (j = (is_hamming() ? 11 : 7); j >= 0; j--) {
if (*tx_buffer & (1 << j))
wireless_tx_falling();
else
wireless_tx_rising();
}
}
wstep();
// mark konce (00)
wtx(0);
wstep();
wstep();
}
D.2 Přijímač (RX v6)
#define wrx() (bit_is_set(PIND, PD2))
void wstep(void) { loop_until_bit_is_set(TIFR, OCF1A); TIFR = _BV(OCF1A); }
signed char wireless_hw_rx(unsigned int *rx_buffer, unsigned char timeout)
{
int i, j;
unsigned int rx_bits;
rx_enable();
delay(15); // nahozeni RX - 15ms dle datasheetu TDA5200
TCCR1B = _BV(WGM12) | TIMER1_PRESCAL; // Mode 4 - CTC
TCNT1 = 0;
TIFR = _BV(OCF1A);
// nastaveni hlavniho timeoutu
TIMER2_set_timeout(timeout);
do {
// vyhledavat jednicku, po nalezeni zarovnat a prepnout casovani
OCR1A = (TIMER1_LOAD / 4) - 1; // 9600Hz
rx_bits = 0;
j = 0;
do {
wstep();
rx_bits <<= 1;
if (wrx()) rx_bits |= 1;
if ((timeout) && (!TIMER2_get_timeout()))
return ERR_TIMEOUT;
} while ((rx_bits & 0b0111011101110111)
!= 0b0111000001110000);
// po 40ms se ustali nosna, vyhledavani opakovat
delay(40);
rx_bits = 0;
j = 0;
do {
wstep();
rx_bits <<= 1;
if (wrx()) rx_bits |= 1;
if ((timeout) && (!TIMER2_get_timeout()))
return ERR_TIMEOUT;
} while ((rx_bits & 0b0111011101110111)
!= 0b0111000001110000);
wstep();
wstep();
wstep();
OCR1A = TIMER1_LOAD - 1; // 2400Hz
wstep();
// zachycena synchronizace, nacteni 16 bitu,
// pokud nebylo aspon 14 jednicek, tak znova
j = 0;
for (i = 0; i < 16; i++) {
wstep();
if (wrx()) j++;
wstep();
if ((timeout) && (!TIMER2_get_timeout()))
return ERR_TIMEOUT;
}
} while (j < 14);
// od zachyceni nosne po prvni bajt maximalne 250ms, spis min
TIMER2_set_timeout(25);
// vyhledavat mark pocatku (11)
rx_bits = 0;
do {
wstep();
rx_bits <<= 1;
if (wrx()) rx_bits |= 1;
if (!TIMER2_get_timeout())
return ERR_TIMEOUT;
} while ((rx_bits & 0b11) != 0b11);
// prijem po mark konce (00) nebo konec bufferu
for (i = 0; i < BUFFER_SIZE; i++) {
rx_bits = 0;
for (j = 0; j < (is_hamming() ? 12 : 8); j++) {
wstep();
rx_bits <<= 1;
if (wrx()) rx_bits |= 1;
wstep();
if ((j == 0) && (!(rx_bits & 0x0001)) && (!wrx()))
return i;
}
*rx_buffer++ = rx_bits;
}
return i;
}
D.3 Hammingův kód (12,8)
const unsigned char PROGMEM hamming[256] = {
0x00, 0x03, 0x05, 0x06, 0x06, 0x05, 0x03, 0x00,
0x07, 0x04, 0x02, 0x01, 0x01, 0x02, 0x04, 0x07,
0x09, 0x0A, 0x0C, 0x0F, 0x0F, 0x0C, 0x0A, 0x09,
0x0E, 0x0D, 0x0B, 0x08, 0x08, 0x0B, 0x0D, 0x0E,
0x0A, 0x09, 0x0F, 0x0C, 0x0C, 0x0F, 0x09, 0x0A,
0x0D, 0x0E, 0x08, 0x0B, 0x0B, 0x08, 0x0E, 0x0D,
0x03, 0x00, 0x06, 0x05, 0x05, 0x06, 0x00, 0x03,
0x04, 0x07, 0x01, 0x02, 0x02, 0x01, 0x07, 0x04,
0x0B, 0x08, 0x0E, 0x0D, 0x0D, 0x0E, 0x08, 0x0B,
0x0C, 0x0F, 0x09, 0x0A, 0x0A, 0x09, 0x0F, 0x0C,
0x02, 0x01, 0x07, 0x04, 0x04, 0x07, 0x01, 0x02,
0x05, 0x06, 0x00, 0x03, 0x03, 0x00, 0x06, 0x05,
0x01, 0x02, 0x04, 0x07, 0x07, 0x04, 0x02, 0x01,
0x06, 0x05, 0x03, 0x00, 0x00, 0x03, 0x05, 0x06,
0x08, 0x0B, 0x0D, 0x0E, 0x0E, 0x0D, 0x0B, 0x08,
...
0x0A, 0x09, 0x0F, 0x0C, 0x0C, 0x0F, 0x09, 0x0A,
0x04, 0x07, 0x01, 0x02, 0x02, 0x01, 0x07, 0x04,
0x03, 0x00, 0x06, 0x05, 0x05, 0x06, 0x00, 0x03,
};
const unsigned char PROGMEM corrections[16] = {
0x00, /* nulovy vysledek -> prenos bez chyby */
0x00, /* C1 je Hamminguv bit, ne datovy bit */
0x00, /* C2 je Hamminguv bit, ne datovy bit */
0x01, /* C3 je datovy bit D0 */
0x00, /* C4 je Hamminguv bit, ne datovy bit */
0x02, /* C5 je datovy bit D1 */
0x04, /* C6 je datovy bit D2 */
0x08, /* C7 je datovy bit D3 */
0x00, /* C8 je Hamminguv bit, ne datovy bit */
0x10, /* C9 je datovy bit D4 */
0x20, /* C10 je datovy bit D5 */
0x40, /* C11 je datovy bit D6 */
0x80, /* C12 je datovy bit D7 */
};
unsigned char hamming_get(unsigned char c)
{
return pgm_read_byte(&hamming[c]);
}
void hamming_correct(unsigned char *c, unsigned char ham)
{
unsigned char cor;
ham &= 0x0f;
cor = pgm_read_byte(&hamming[*c]) ^ ham;
*c ^= pgm_read_byte(&corrections[cor]);
}
Příloha E
Grafy zónových měření