HCS300

Vlastnosti:

Programovatelné 28-bitové sériové císlo
Programovatelný 64-bitový kryptovací klíc
66-bitový vysílaný kód
Každý vyslaný kód je jedinecný
32-bitový promenný aktivní kód
Kryptovací klíce jsou chráneny proti prectení

2V - 6.3V napájecí napetí
4 vstupy - 15 možných funkcí
nastavitelná rychlost prenosu
Automatická kompletace kódového slova
Signál vybití baterie vysílán do prijímace

Další:

Jednoduše použitelné programovací rozhraní
Pamet EEPROM integrována na cipu
Oscilátor a casovací komponenty na cipu
Vstupy tlacítek mají integrované pull-down rezistory
Proudové omezení na LED výstupu
Minimální nárocnost na externí soucástky

Obr. 1

Obr.2

Zpět na začátek Typické aplikace:

Obvod je urcen pro zabezpecené dálkové ovládání elektronických systému, jako napríklad
zabezpecovacích zarízení pro automobilový prumysl, ovládání garážových vrat, domovních alarmu atd..

Úvodní popis:

Tento obvod je aktivní kodér navržený pro zabezpecené ovládání bezklícových vstupních systému.
Využívá KEELOQ kódovací technologii, která slucuje vysokou bezpecnost, s malými rozmery a nízkou cenou.
Je to jedinecné rešení pro jednosmerné ovládání prístupových systému. HCS300 kombinuje 32-bitový aktivní
kód generovaný nelineárním kryptovacím algoritmem s 28-bitovým sériovým císlem a šesti informacními bity k
vytvorení 66-bitového kódového slova. Délka vysílaného slova a použitý mechanismus kódování zajištuje
jedinecnost každého vyslaného slova, což znemožnuje použití zachyceného vyslaného kódu pro další autorizaci
systému. Kryptovací klíc, sériové císlo a konfiguracní data jsou uloženy na cipu v pameti EEPROM, a nejsou
prístupné pomocí speciálních externích vstupu. Data v této pameti jsou programovatelná, ale není možné je
zpetne precíst. Mohou být pouze zkontrolována pouze po automatickém smazání a následném naprogramování.
To je ochrana proti pokusum získat kryptovací klíc. Tento obvod dále obsahuje snadno použitelný sériový
interface pro programování duležitých parametru.
Oproti systémum s pevným slovem umožnuje tento obvod mnohem více kombinací vysílaného slova.
Jednoduché systémy, které mají pevný identifikacní kód vysílají stále stejný kód . Pocet techto kódu je pro tyto
jednoduché systémy pomerne malý. Tento systém dovoluje sofistikovaným zlodejum precíst správný kód pri
použití oprávneným clovekem a použít ho pozdeji pro vlastní prístup.
Na druhé strane obvod HCS300 použitím dlouhého slova a systému KEELOQ ciní jakékoliv scanování
vysílaného slova bezpredmetným, protože každé vyslané slovo je témer unikátní. Algoritmus pracuje tak, že
pokud se vstupní slovo liší od predešlého pouze o jeden bit, výstupní slovo je kompletne jiné. Statisticky: pokud
je jeden bit ve 32-bitovém vstupním slove zmenen, je na výstupu zmeneno více 50 % bitu.

Jak je patrno z obrázku 2 obsahuje obvod malé pole pameti EEPROM, ve které jsou uloženy ruzné
parametry pro správnou funkci. Tyto parametry jsou nastaveny jednak pri výrobe a jednak pri programovaní
obvodu a zahrnují 28-bitové sériové císlo, témer unikátní pro každý kodér, kryptovací klíc, 16-bitový
synchronizacní cítac a 16-bitové konfiguracní slovo. 16-bitový synchronizacní cítac je základním prvkem pro
dosažení unikátního vysílaného slova po každém stisku tlacítka. Je inkrementován pri každém stisku tlacítka
a vlivem kryptovacího algoritmu je ve výstupním slove více než 50% bitu ruzných od predchozího vysílaného
slova. Na obrázku 3 je schematicky naznaceno, jak jsou použity jednotlivá data v pameti na tvorbu kódu a na
obrázku 4 je blokove popsaný algoritmus pri kódování.

Obr. 3

Obr. 4

  Jakmile obvod zjistí, že je stisknuto nějaké tlačítko, je uložena informace, o které tlačítko jde a následně je
inkrementován synchronizační čítač, jehož hodnota je společně s kryptovacím klíčem vstupem pro algoritmus
kódování. Výstupem z tohoto algoritmu je 32-bitové slovo. Toto slovo je dále zkombinováno s informací o
stisknutém tlačítku a sériovým číslem a dohromady je pak vyslán jako kompletní kódovaná informace.
Generace kryptovacího klíče je jednak dána 16-bitovým sériovým číslem z paměti EEPROM a dále použitím 64-
bitového čísla výrobce. Toto číslo je pečlivě vybíráno systémem výrobce a jeho volba je má důležitý vliv na
zabezpečení celého systému.
Vysílač musí být nejdříve "naučen" přijímačem, než bude umístěn do systému. Učení zahrnuje
vypočtení příslušného kryptovacího klíče, rozkódování vysílaného slova a zapsání sériového čísla, hodnoty
čítače a kryptovacího klíče do paměti EEPROM. Při normální funkci je ověřen správný formát každé vyslané
zprávy. Sériové číslo je použito pro rozlišení zda jde o vysílač, který je přijímačem naučen a pokud ano, zpráva
je rozkódována a je ověřena hodnota synchronizačního čítače. Nakonec je podle informace tlačítek určeno, jaká
funkce se má vykonat. Blokově je tato operace nakreslena na obrázku 5.

Obr .5

Zpět na začátek Funkce kodéru

Jak je dobře patrno z obrázku 6, je tato součástka opravdu snadno aplikovatelná do systému.
Jediné přídavné součástky jsou v podstatě tlačítka a obvod pro vysílání.
Funkce celého obvodu je dobře patrná z obrázku 8. Obvod se probudí ze stavu se sníženou spotřebou po
stisknutí nějakého tlačítka. V tomto okamžiku se celý obvod dostane do definovaného počátečního stavu a čeká
určitou dobu pro ošetření zákmitů na tlačítkách. Po tomto čase je zjištěno, která tlačítka byla stisknuta, je
inkrementován 16-bitový čítač a zakódována informace pomocí kryptovacího klíče. Výsledek je pak poslán do
Transmitter register a data jsou vysílána pomocí PWM na výstup DATA. Kryptovací algoritmus změní vysílaný
kód i při opakovaném stisku stejného tlačítka a vzhledem k velikosti synchronizačního čítače, dovoluje více jak
64-tisíc různých kódu pro jedno tlačítko. To odpovídá tomu, že kód se při stisknutí tlačítka desetkrát za den bude
opakovat za více jak 18 let.
Pokud je během vysílání stisknuto další tlačítko, je celé vysílání stornováno, obvod přejde do stavu reset
a vše jde od začátku. Když jsou všechna tlačítka uvolněna, obvod dokončí právě vysílaný kód a následně přejde
do stavu se sníženou spotřebou.

Obr. 6

Obr. 7

Obr. 8

Zpět na začátek Organizace paměti EEPROM

Obvod obsahuje 192 bitů paměti EEPROM organizované jako 12 x 16-bitových slov a její nstruktura je dobře patrná z obrázku 9. Tato paměť v sobě obsahuje informace o kryptovacím klíči, obsah synchronizačního čítače, atd.

Popis jednotlivých paměťových buněk:

KEY_0 - KEY_3 (64-bitový kryptovací klíč)
Jak již bylo řečeno, tento klíč je určen pro kódování přenášené informace. Tento klíč je generován během výroby systému a algoritmus generace je poněkud odlišný od kódovacího algoritmu. Vstupem pro tento algoritmus je jednak 64-bitové číslo dané výrobcem a dále sériovým číslem.

SYNC
V tomto slově je uložena informace o hodnotě synchronizačního čítače. Jeho hodnota je použita v kódovacím algoritmu a je inkrementována po každém vysílání.

RESERVED
Toto slovo je Rezervováno a musí být nastaveno na 0000H.

SER_0, SER_1
V SER_0, SER_1 je uložena informace o sériovém čísle. Obě slova mají celkem 32 bitů, ale použito je pouze dolních 28 bitů.

Automatické vypnutí vysílání
Nejvýznamnější bit v sériovém čísle je použit pro volbu automatického vypínání vysílání. Tato vlastnost je zde pro ochrnu baterií před vybitím následkem nechtěného stisknutí tlačítka například v kapse. K tomuto účelu je na čipu integrován čítač s dlouhým časem do přetečení (přibližně 25s - tato doba je pevně nastavena). Po přetečení přejde součástka do stavu "Time Out" , při kterém jsou aktivní některé vnitřní obvody, ovšem není již vysílán signál. V tomto stavu je spotřeba vlivem aktivity některých vnitřních obvodů o něco větší než ve stavu bez stisku tlačítek.

SEED_0, SEED_1
Tento dvou-slovný kód je vyslán v případě, že jsou stisknuta všechna tlačítka najednou. To dovoluje návrháři využít možnosti například pro učení kódu pro ještě nenaučený přijímač, případně pro jinou speciální funkci.

CONFIG (konfigurační slovo)
16-bitové konfigurační slovo je uloženo v paměti EEPROM a slouží k uložení informací během kryptovacího algoritmu a dále obsahuje nastavovací bity pro přenos, rozšíření synchronizačního čítače a nastavení reference pro indikaci stavu baterie. Struktura konfiguračního slova je patrná z obrázku 10.

DISC0 - DISC9
Diskriminační číslo je kontrolní číslo pro přijímač, určené k ověření správnosti rozkódování.Jeho hodnota může být libovolná, ale většinou je volena jako 12 nejméně významných bitů sériového čísla. Jiná hodnota musí být zvlášť sdělena přijímači v režimu učení na daný vysílač. Diskriminační číslo je část vyslané informace a po rozkódování informace na přijímací straně je provedena kontrola s uloženým číslem v paměti přijímače. Pokud je diskriminační číslo voleno jako 12 nejméně významných bitů sériového čísla, je pak ušetřeno místo v paměti EEPROM.

OVR0, OVR1
Overflow bity jsou používány pro rozšíření velikosti synchronizačního čítače, který má při své 16-bitové šířce 65536 stavů, než dojde k opakování. Při standardním používání kupříkladu 10 x za den, vystačí na déle než 18 let. Pokud se tato vlastnost nezdá konstruktérovi jako dostatečná, má možnost tento počet rozšířit právě pomocí overflow bitů. To je provedeno tak, že ve chvíli naprogramování jsou oba tyto bity naprogramovány na logickou "1". Při prvním přetečení synchronizačního čítače se vynuluje OVR0 a při druhém dále OVR1. Tato funkce tedy rozšiřuje možnost neopakovatelné periody na více jak 196 tisíc. Overflow bity ovšem není možno opět nastavit, takže po průchodu tohoto cyklu je další cyklus dlouhý již normálních 65 tisíc kombinací.

BSL0, BSL1
Pomocí těchto dvou bitů je možno nastavit přenosovou rychlost vysílaných dat a poměr mezi vysílanými slovy a mezerami mezi nimi. Na obrázku 12 je vidět, jak jednotlivé kombinace ovlivňují vysílání.Protože je u těchto zařízení úředně omezený celkový výkon vysílače během určitého časového intervalu, je možno vysílat slovo s dvojnásobným nebo čtyřnásobným výkonem, ovšem kratší dobu (Blank Alternate Code Word - BACW), což v praxi znamená, že některá slova jsou vyslána s odpovídajícím výkonem a následována odpovídajícím počtem mezer, jak je znázorněno na obrázku 13.

VLOW SEL
Tento bit nastavuje, jaká rozhodovací úroveň pro signál o stavu baterie bude použita. Tento signál je
přenášen do přijímače. Pokud je tento bit nastaven, je předpokládané napájecí napětí 5 - 6V a v případě že je
tento bity vynulován, je předpokládané napájecí napětí 3V. Na obrázku 12 je patrná rozhodovací úroveň v
závislosti na teplotě.

Obr. 9

Obr. 10

Obr. 11

Obr. 12

Obr. 13

Zpět na začátek Struktura vysílaných dat
Vysílání tohoto obvodu je realizováno pomocí rozličných částí kódových slov, jak je patrno z obrázku
14. Každé kódové slovo obsahuje úvodní formuli s 50% střídou a hlavičku, následovanou 32-bity zakódovaných
dat a 34-bity pevných dat. Každé kódové slovo je následováno jistým bezpečnostním časem, který je mezi
dovysílaným a následujícím slovem. Každé slovo je vysíláno tak dlouho, dokud je stisknuto příslušné tlačítko.

Obr. 14

  Organizace kódového slova:
Obvod vysílá celkem 66-bitová kódová slova. jejich struktura je dobře patrná z obrázku 15.
Každé kódové slovo je složeno z pevného části a z kódované části.
Kódovaná část je tvořena ze zakódované informace o tlačítkách, 12-diskriminačních bitů, a 16-bitové hodnoty
synchronizačního čítače.
Pevná část je složena ze dvou "status" bitů, informaci o tlačítkách a 28-bitového sériového čísla.
Obě části umožňují dohromady celkem více jak 7,3 x 1019 kombinací

Obr. 15

  Synchronní vysílání kódového slova
Synchronní vysílání může být použito pro synchronní vyslání dat, za použití externího zdroje
hodinového kmitočtu. Pro započetí synchronního přenosu je nutno uskutečnit programovací "start-up" sekvenci
jak je patrno z obrázku 16. Jestliže je alespoň jeden vstup S0 nebo S1 v log.1 ve chvíli sestupné hrany na S2 (S3)
součástka přejde do stavu synchronního vysílání . V tomto stavu se obvod chová v podstatě jako při normálním
vysílání, ale je časován z externího zdroje signálu a na konec vysílaného slova je připojeno dalších 16 bitů.
Informace o tlačítkách je získána jako hodnota S0 a S1 ve chvíli sestupné hrany S2 (S3). Zdroj hodinového
kmitočtu je přiveden na vstup S2 (S3) a tento kmitočet by neměl překročit hodnotu 20 kHz. Vysílaná data jsou
stejná jako v normálním případě, ale na jejich konec je připojeno další 16-bitové slovo. Toto slovo může být
ignorováno. Hodnota na S2 (S3) by neměla být změněna, dokud není dovysíláno celé slovo, jek je popsáno
obrázkem 16.

Obr. 16

  Další vlastnosti:
Obvod zajišťuje kompletaci celého kódu po stisku tlačítka a to i v případě že toto tlačítko bude uvolněno dříve, než bude uskutečněn vlastní přenos. Pokud bude k tlačítku stisknuto ještě nějaké jiné, je výsledkem kombinace těchto tlačítek. V případě že bude stisknuto pouze jiné tlačítko, je stávající vysílání přerušeno a bude započato nové. Negovaný výstup LED je během normálního vysílání v log 0. Pokud poklesne napětí pod úroveň komparační hodnoty vybité baterie, začne tato dioda během vysílání blikat přibližně s kmitočtem 5 Hz.
RPT bit ve vysílaném slově indikuje, jestli jde o první vysílané slovo, nebo jestli je to již opakované vysílání. Pokud jde o první vysílané slovo, je tento bit v log 0. Jestliže je tlačítko stisknuto déle a dojde k opakovanému vysílání stejného slova, je tento bit nastaven do log 1.VLOW bit dává přijímači informaci o vybití baterie a je nastaven na log 1 při poklesu napájecího napětí. O nastavení komparačního napětí bylo již psáno výše.
SEED vysílání. Toto slovo je vysláno místo zakódované informace v případě, že jsou stisknuta všechna tlačítka. Tato funkce může sloužit k učení vysílače na přijímač. Na obrázku 17 je vysvětlena funkce tlačítek.

Obr. 17

Zpět na začátek Programování obvodu
Programováním je umožněno měnit obsah vnitřní paměti EEPROM a tím příslušný vysílač adaptovat na
daný přijímač. Programování se provádí po jednoduchém synchronním sériovém interfaceu. Na obrázku 18 a 19
jsou uvedeny průběhy napětí na pinech obvodu během programování a verifikace. Podrobnější informace jsou
dostupné v dokumentaci k obvodu.

Obr. 18

Obr. 19

Zpět na začátek Začlenění HCS300 do systému
Pro použití tohoto obvodu je potřeba mít odpovídající dekodér. V podstatě lze použít jakýkoliv mikropočítač, ovšem s funkčním softwarem, odpovídajícím firmwareu fy. Microchip.

Naučení vysílače na přijímač
Základem je uložení hodnoty synchronizačního čítače a sériového čísla do paměti dekodéru. KEELOQ algoritmus, je symetrický, takže dekodér používá stejný klíč jako kodér. Pak probíhá učení podle typického průběhu, jak je zobrazeno na obrázku 20.

Obr. 20

Zpět na začátek Funkce dekodéru
Na obrázku 21 je standardní průběh zpracovávání přijatého slova na straně dekodéru. Dekoodér nejdříve počká až přijme celé slovo, porovná hodnotu přijatého sériového čísla s hodnotami uloženými v paměti EEPROM a určí, zda jde o naučený kodér. Poté rozkóduje data pomocí příslušného uloženého kódovacího klíče a pokud vše proběhlo úspěšně, je vykonán přijatý příkaz.

Synchronizace s dekodérem - ověřování synchronizačního čítače.
Synchronizační systém zajišťuje synchronizaci čítače kodéru a dekodéru. Jak je dobře patrno z obrázku 22, je funkce synchronizačního obvodu rozdělena do tří částí. Funkce je asi taková to: pokud je synchronizační čítač vysílače větší o méně než 16 oproti hodnotě uložené v přijímači, provede se normální operace a vykoná se požadovaná funkce. Pokud je větší o více než 16 a méně než 32 tisíc, dojde k uložení přijaté hodnoty čítače do paměti dekodéru. V případě že je větší o více 32 tisíc, nestane se nic. Toto zaručuje, že funkce bude vykonána i v případě, že bylo tlačítko stisknuto vícekrát i mimo dosah přijímače.

Obr. 21

Obr. 22

Zpět na začátek Odlišnosti dalších kodérů
Firma MICROCHIP má ve svém výrobním programu ještě několik dalších obvodů plnících více méně stejnou funkci, mající však některé odlišnostii.

HCS101
Tento obvod je nejjednodušším obvodem pro daný účel, který firma MICROCHIP nabízí. Jeho hlavní odlišnost od dříve popsaného obvodu je v tom, že nemá systém kódování, čímž je dáno, že v žádném případě nezaručuje takové zabezpečení jako obvod HCS300. Další odlišností, ne však již tak zásadní, je počet vstupů tlačítek, který je omezen na tři, což dává možnost ovládání maximálně 7 funkcí.

HCS200
Tato varianta dekodéru již má implementovaný kódovací algoritmus popsaný výše, takže zajišťuje narozdíl od obvodu HCS101 o mnoho vyšší zabezpečení. Rozdíl od obvodu HCS300 je v tom, že je možno použít pouze tří tlačítek a neobsahuje výstupní driver pro LED, indikující pokles napájecího napětí.

HCS201
je v podstatě identický s obvodem HCS200, ale má navíc impulsní STEP-UP convertor, který takto rozšiřuje meze možného napájecího napětí na hodnoty 2V - 13V oproti původním 3,5V - 13V. Jeho praktické použití ne nakresleno na obrázku 23.

HCS320
Narozdíl od předcházejícíh obvodů umožňuje tento obvod ovládání celkem 16-ti funkcí pomocí speciálního tlačítka SHIFT a třech normálních tlačítek. Detailnější popis je k nalezení v datasheetu k tomuto obvodu.

HCS360 HCS361
Tyto obvody se již poněkud více odlišují od obvodu HCS300. Oproti němu mají 2-bitový CRC kód pro odstraňování chyb, jinou délku SEED slova, PWM, VariablePWM nebo Manchaster modulaci a přizpůsobení pro IR přenos s kmitočtem 40kHz.

Další obvody
pro kódování a přenos povelů z nabídky fy. MICROCHIP oabsahují další vylepšení které zde dále nebudu rozvádět, protože by bylo potřeba podrobnějšího popisu. Jedná se kupříkladu o laditelný oscilátor pro určení přesného kmitočtu vysílače, další možnosti při přenosu informace, PWM, VPWM, Pulse Position Modulation (PPM), Step-Up impulsní zdroj, atd. Za zmínku snad stojí ještě obvod rfHCS362, který má integrovaný UHF vysílač. Případný další zájem odkazuji na dokumentaci k obvodům.

Obr. 23

Zpět na začátek Schematický náhled na dekodéry KEELOQ

Pro nástin možností dekodérů fy. Microchip je vybrán z celkem tří typů HCS500, HCS515 a HCS512 právě poslední uvedený. Jeho blokové schema je na obrázku 24. Vlastní funkci dekódování asi není nutno popisovat, protože je přesně opačná, než funkce kódování, která byla podrobně popsána výše. Částečně bylo popsáno i chování přijímače a tak zde budou naznačeny pouze nějaké ještě nezmíněné zajímavosti. Pro detailnější popis vizte dokumentaci k danému obvodu.
Obvod HCS512 je kompatibilní se všemi kodéry firmy Microchip. Jak je vidět z obrázku 24, má tento obvod poměrně dost vstupních a výstupních pinů a zde je jejich detailnější popis:

RFIN - vstup, na který je přiváděno kódované slovo z přímače.

OSCIN - vstup hodinového kmitočtu. Pomocí tohoto vstupu je také možno vytvořit externí RC oscilátor (4,7kW-Vdd, 22pF-Vss). Vedele tohoto vstupu obsahuje obvod ještě výstup vnitřního hodinového kmitočtu OSCOUT, který je roven čtvrtině kmitočtu oscilátoru a je použit spíše pouze jako testovací bod.

S0 - S3 jsou funkční výstupy, které v nejjednodušším případě odpovídají stisknutým tlačítkům na straně vysílače. Je možno je však využít pro ovládání celkem 15-ti funkcí.

VLOW - indikační výstup poklesu napájecího napětí vysílače. Tato informace je přenášena společně s kódovaným slovem.

LRNOUT - další indikační výstup, který je aktivní při proceduře učení přijímače na nový vysílač.

SLEEP - vstup pro probuzení ze stavu sleep, do kterého obvod automaticky přejde při nečinnosti a při kterém má obvod sníženou spotřebu. V praxi se tento vstup spojuje se vstupem RFIN, aby došlo k probuzení s přicházejícími daty.

/MCLR - Globální reset celého obvodu.

/LRNIN - vstup pro přepnutí obvodu do stavu učení.

CLK, DATA - jsou vstupně - výstupní piny, prostřednictvým kterých probíhá sériová komunikace během procedury učení a jsou touto cestou i vysílána data o požadované funkci.

K celému obvodu je asi nutno upozornit, že paměť EEPROM je organizována víceméně stejně jako v případě kodéru, ale v paměti jsou uloženy parametry všech vysíačů, na které je obvod naučen. Počet použitelných vysílačů na jeden dekodér je omezen na maximálně 4.

Obr. 24

Zpět na začátek Další typy dekodérů

HCS500 - je poněkud jednodušší než obvod HCS512. Jeho hlavní odlišností je to, že paměť EEPROM není implementována na čipu, ale je nutno k obvodu připojit externí sériovou EEPROM, pro uložení informací o naučených vysílačích. Komunikace s pamětí je provedena po sběrnici I2C. Informace o požadované funkci vysílače, stejně jako komunikace během učení je zde řešena výhradně pomocí další sériové komunikace, protože funkční výstupy nejsou implementovány.

HCS515 - je téměř ekvivalentní co do funkce s obvodem HCS512, pouze je zredukován počet výstupů. Obvod tedy má vyvedené pouze výstupy S0 a S1, dále sériovou komunikaci, vstup dat a globální reset. Další odlišností je to, že tento obvod má implementovaný oscilátor přímo na čipu.

 

Jindřich ŠVORC 2002

http://www.microchip.com