În acest post, voi descrie organizarea internă a memoriei nevolatile a encoderului HCS200 și formatul parcelei transmise. Descrierea encoderului HCS200 este aici.
Organizarea memoriei EEPROM.
EEPROM este organizat sub forma cuvintelor cu două octeți:
Cheie de criptare pe 64 de biți - folosită de encoder pentru a crea un mesaj criptat. Această cheie este creată și programată în procesul de fabricație folosind algoritmul de generare a cheilor. Algoritmul de generare a cheilor poate fi diferit de algoritmul keeloq. Datele de intrare pentru algoritmul de generare a cheilor sunt numărul de serie al codorului utilizat și codul producătorului pe 64 de biți. Microchip oferă o metodă specifică pentru generarea unei chei de criptare, totuși, un utilizator poate crea propria metodă de generare a unei chei.
Contorul de sincronizare este un contor de sincronizare pe 16 biți, utilizat pentru a crea un cod dinamic pentru transmisie. Această valoare se va modifica după fiecare transmisie.
Numărul de serie. Deși numărul de serie este atribuit 32 biți, vor fi transmise numai cele 28 de biți inferior. Numărul de serie trebuie să fie unic pentru fiecare codificator.
Semințele sunt semințele pe 32 de biți care vor fi transmise când toate cele trei butoane sunt apăsate simultan. Acest lucru permite dezvoltatorului de sistem să efectueze instruirea în condiții de siguranță a decodorului sau să utilizeze această secvență de cod fix ca parte a diferitelor procese de generare / modificare a cheilor.
Cuvântul de configurare este un cuvânt pe 16 biți care conține informații despre configurațiile dispozitivelor. Cele mai mici 12 biți ale cuvântului de configurare reprezintă o valoare discriminatorie care este utilizată pentru a verifica corectitudinea decodificării codului dinamic. Această valoare poate fi orice. În mod tipic, ultimii 12 biți ai numărului serial al codificatorului sunt utilizați ca valoare discriminatorie. Apare un pic, care stabilește valoarea tensiunii de alimentare a codorului. Această informație este necesară pentru ca encoderul să determine când să trimită un semnal receptorului în legătură cu o scădere critică a tensiunii de alimentare. Când acest bit este setat, se presupune că se utilizează o tensiune de 9 sau 12 volți. Dacă bitul este resetat, atunci alimentarea cu energie va fi de 6 volți. Următorul este bitul ratei de biți și suprapunerea secvenței de cod. Ultimii doi (mai vechi) biți sunt rezervați (unii dintre aceștia sunt utilizați în HCS300 și HCS301).
Pachetul de transmisie HCS200 este alcătuit din mai multe părți. Fiecare transmisie începe cu un preambul și un antet, urmate de datele criptate și apoi de datele fixe. Lungimea actuală a pachetului de date este de 66 de biți, care constă din 32 de biți de date criptate și 34 de biți de date fixe (Figura 1). Fiecare transmisie este urmată de o perioadă de întârziere înainte de a începe o altă transmisie. Partea criptată oferă până la patru miliarde de combinații variate de coduri și include biți de stare a butoanelor (în funcție de butoanele activate), valoarea contorului de sincronizare și cantitatea de discriminare. Partea fixă constă din biți de stare, biți de stare pe butoane și un număr de serie pe 28 de biți. Codurile fixe și criptate ale codului măresc numărul de combinații la 7,38 x 10 ^ 19.
Figura 1. Organizarea combinației de coduri în codificatorul HCS200.
Codificatorul va continua să transmită în mod automat combinația de cod curent până la sfârșit dacă butonul este eliberat în timpul transferului. Codificatorul HCS200 se aprinde când butonul este apăsat și se oprește după executarea comenzii, dacă utilizatorul a eliberat deja butonul. Dacă butonul este menținut mai mult timp decât este necesar pentru o transmisie, transmisia va fi duplicată de mai multe ori ca rezultat. Dacă în timpul transferului este apăsat un alt buton, transmisia curentă va fi întreruptă și se va genera un nou cod utilizând noile informații de pe buton.