Zoznámenie s FrSky – 3. časť – Prenos dát

Po tom, čo sme v druhej časti popísali spôsob prenosu dát, dnes ukážeme skutočný prenos (zatiaľ) testovacích dát a ich zobrazenie na LCD displeji budúcej telemetrie. Ale ešte pred tým sa musíme „popasovať“ s problémom, ktorý sme nazvali: „Korekcia“.

autor: Janko O.

 


 

V predchádzajúcej časti sme pri popise prenosového protokolu ukázali, že firma FrSky používa 11-Bytové Dátové bloky, ktoré vždy začínajú aj končia dohodnutým znakom 0x7E. Ale čo robiť, keď sa takéto hexadecimálne číslo vyskytne v užívateľských dátach, alebo v hodnote napätia AD1 alebo AD2? To by mohlo spôsobiť chaos pri spracovaní prenesených dát.

 Firma FrSky to vyriešila tak, že „hexa číslo“ 0x7E je nahradené dvojicou 0x7D  0x5E. A aby nedošlo k zámene pri prenose „užívateľského“ čísla 0x7D, tak aj toto číslo je nahradené a to dvojicou 0x7D  0x5D (čiže vlastne 0x7D je doplnené o číslo 0x5D).

(Z uvedeného vyplýva, že ak sa pri prenose objaví niektoré z týchto čísiel, tak dátové bloky nebudú mať 11 Bytov, ale viac.)  Keď takéto „dvojičky“ privediete do mikrokontroléra telemetrie, tak je treba urobiť jediné:  0x7D  „zahodiť“ a nasledujúcu hodnotu (buď  0x5E  alebo  0x5D) „XOR-ovať“ hodnotou  0x20. Výsledkom bude, že naspäť dostanete „zakázané“ čísla  0x7E  a  0x7D.   Ó, aké jednoduché.   No, a túto procedúru sme nazvali „Korekcia“.

Korekciu je možné realizovať buď Off-line alebo On-line.

Off-line je určená skôr pre menej výkonné (alebo pomalšie taktované procesory – mikrokontroléry), pretože najprv sú dáta prijaté a potom je realizovaná spomínaná procedúra.

Ak máte dostatočne výkonný procesor, môžete Korekciu realizovať On-line, teda v kratučkých pauzách medzi jednotlivými prijímanými znakmi. Obvod PIC16F88 taktovaný 8 MHz „zvládal“ aj On-line Korekciu, ale pri použití iného, ešte neoptimalizovaného algoritmu dochádzlo k „zamrzaniu“.

A keďže Korekciu máme vyriešenú, môžeme skúsiť skutočný prenos dát, teda nie len dáta základnej telemetrie (analógové vstupy AD1 a AD2 a silu signálu RSSI), ale aj užívateľské dáta. Na experimentovanie sa môže „hodiť“ generátor testovacích dát. Ten sme „hravo“ realizovali pomocou mikrokontroléra PIC16F84A. Pre záujemcov prikladáme schému zapojenia.

A pre zasvätených aj program na generovanie skúšobných dát.

(Keďže sa jedná o informácie, ktoré môžu byť zaujímavé len pre pomerne úzku skupinu modelárov, nemá zmysel popisovať činnosť zapojenia na schéme, detailne rozoberať zloženie "Dvoj-Bytu",

alebo podrobne vysvetlovať činnosť toho-ktorého programu. V prípade záujmu tak môžeme urobiť v komentári k danému článku, alebo v samostatnom článku, ak by bol záujem väčší (o čom silno pochybujeme).) 

Firma FrSky vyžaduje dáta pred prenosom „prehnať “ invertorom s úpravou napäťových úrovní. Schéma zapojenia je tu:

Ale keďže mikrokontroléry PIC a programovací jazyk PIC Basic Pro Compiler umožňuje nastaviť aj inverznú „moduláciu“, invertor nebol nutný a napäťové úrovne sme prispôsobili jednoduchým odporovým deličom.

Takže bloková schéma telemetrie s využitím prenosového kanála FrSky môže vyzerať nasledovne:

No a nasledujúce obrázky už ukazujú skutočný prenos telemetrických údajov.

Buď len základnú telemetriu, teda zobrazenie napätia analógových vstupov AD1 a AD2 a Sily signálu RSSI, pričom hodnoty AD1 a AD2 sú následne prepočítané na skutočne pripojené napätia U1 a U2, vyjadrené vo Voltoch.

Alebo k tomu ešte aj užívateľské dáta, ktoré môžu zobrazovať napr. výšku letu vetroňa, otáčky motora alebo dúchadla (EDF), rýchlosť modelu, teplotu motora (batérií) atď.

Po dôkladnej analýze možností a na základe skúseností s našou súčasnou telemetriou sme dospeli k týmto rozhodnutiam:

  • užívateľské hodnoty budú prenášané ako 10-bitové, čiže v rozsahu 0 až 1023, čo je pre drvivú väčšinu modelárskych potrieb dostačujúci rozsah

  • aby to bolo dosiahnuteľné, je nutné 8-bitové Byty spájať do „dvojičiek“. Na ich jednoznačné rozlíšenie bude horný Byte začínať nulou a dolný Byte jedničkou.

  • Každá „dvojička“ v sebe bude mať Adresu - informáciu o tom, hodnotu čoho to vlastne nesie (výška, rýchlosť, teplota atď.).

    Tento spôsob prenosu sa nám javil ako najjednoduchší a najvhodnejší, s ohľadom na predpoklad krátkych výpadkov signálu, kedy je výhodné jednoznačne identifikovať aj pomerne malú skupinku úspešne prenesených Bytov.Keďže z pôvodných 16 bitov zostali 4 bity (10 bitov hodnota a 2 bity identifikáciehorný“ či „dolný“), je možné rozoznávať 16 Adries (čiže 16 prenášaných údajov), čo je viac, ako sme mohli “na vlastné oči“ vidieť, že by niekto využíval aj v telemetriách renomovaných firiem. Ďalšie zvýšenie počtu adries je možné dosiahnuť metódou tzv. „stránkovania“, ale to už je iná kapitola.

 

Súvisiace články (related topics):

Vario z telemetrie FrSky – 1. časť

„Umlčovač“ telemetrie.

Senzory k telemetrii FrSky – 2: Kontrola napätia článkov batéri

Senzory k telemetrii FrSky – 1. časť - Napäťový senzor

Zoznámenie s FrSky - 2. časť - Spôsob prenosu dát

Zoznámenie s FrSky - 1.časť - Základné funkcie

Antén nikdy nie je dosť!

Rozmanité podoby telemetrie

Projekt otvorenej telemetrie firmy FrSky
 

 

Telemetry  telemetrie

správca | ICQ-Vaše ICQ | Podpora miniRS | Styl LazyDays | Sk preklad by beekeeper | Veľkosť databázy: 35398.17 kb