You are on page 1of 6

Immobilizer

DES
P R O J E z Kszyfratorem
T Y

Immobilizer
z szyfratorem DES
Zaoeniem przedstawionego
projektu bya ochrona
samochodu przed niepowoanym
uruchomieniem, natomiast
inspiracj historia jednego ze
znajomych autora, ktry sta
si szczliwym posiadaczem
niebanalnego pojazdu.
Rekomendacje:
urzdzenie o niebanalnych:
konstrukcji i pomyle. Jest
to pierwsze prezentowane
na amach EP praktyczne
zastosowanie sprztowego
szyfratora DES warto
dowiedzie si jak dziaaj
i gdzie mona kupi tak
wyranowane ukady!

PODSTAWOWE PARAMETRY

Pytka o wymiarach: 100 x 64 mm


Zasilanie pytki jednostki centralnej: 12 VDC
(instalacja samochodowa)
Zasilanie karty transponderowej: 3 VDC
(bateria CR2477 3 V/1000 mAh)
Czas pracy karty na jednej baterii: ok. 2
miesicy
Pasmo pracy: 868 MHz
Moc sygnau: +4 dBm
Modulacja: FSK
Kodowanie: Manchester
Prdko transmisji: 2400 bd
Czuo: 103 dB
Sposb zabezpieczenia: blokada dopywu
paliwa

10

Niebanalno polegaa na tym,


i towarzystwo ubezpieczeniowe nie
chciao wyda polisy na w pojazd
bez zamontowania w nim dodatkowo (oprcz standardowego alarmu)
systemu trackingowego. Jako dodatek do owego systemu doczona zostaa karta transponderowa,
ktra przez cay czas uytkowania
samochodu musi pozosta w jego
wntrzu, stanowic jednoczenie zabezpieczenie przed ucieczk samochodem po uprzednim, zycznym
usuniciu waciciela z jego wntrza. Po zgrubnych ogldzinach karty okazao si, e jest ona zasilana
bateryjnie i posiada nadajnik radiowy. Usunicie karty z wntrza pojazdu powoduje zerwanie komunikacji karty z jednostk w samochodzie
i tym samym powiadomienie (GPRS)
patrolu interwencyjnego rmy zapewniajcej obsug caego systemu.
Skomplikowane i kosztowne...
W artykule przedstawiono projekt immobilizera samochodowego
z aktywn kart transponderow.
Funkcja ukadu sprowadza si do
blokady dopywu paliwa do silnika
samochodu w przypadku, gdy niepowoana osoba nie dysponuje kart
transponderow. Urzdzenie dziaa
niejako w tle, nie absorbujc uwagi
uytkownika. Duy nacisk pooono
na realizacj bateryjnego zasilania
karty transponderowej (tak aby wymiana baterii nie staa si gwnym
zajciem kierowcy). Od pewnego
czasu na rynku krajowym dostpny jest do interesujcy i niedrogi
ukad, idealnie nadajcy si do ce-

lw prezentowanego projektu. Jest


to CC1010 produkowany przez rm Chipcon.

Opis ukadu

CC1010 jest scalonym transceiverem pracujcym w pamie ISM,


zintegrowanym z mikrokontrolerem
8051. Hierarchia (transceiver z mikrokontrolerem) nie jest tu przypadkowa, poniewa bloki ukadu w nim
zawarte zostay dobrane wycznie
z myl o transmisjach radiowych.
Na rys. 1 przedstawiono schemat
blokowy ukadu CC1010, natomiast
w tab. 1 zestawiono jego najwaniejsze parametry. Oprcz standardowych elementw jak pami programu typu Flash czy przetwornik
A/C, ukad CC1010 ma wbudowane
dwa interfejsy UART, zegar czasu
rzeczywistego (po doczeniu zewntrznego rezonatora 32,768 kHz),
interfejs SPI. Prawdziwym rarytasem
w prezentowanym ukadzie jest programowo kongurowalny transceiver
pozwalajcy na prac w jednym
z wybranych pasm ISM (315 MHz,
433 MHz, 868 MHz i 915 MHz).
W kadym z pasm mamy do wyboru kilka kanaw pracy transceivera
oraz moliwo programowej kontroli poziomu mocy emitowanego
sygnau. Caoci dopenia sprztowy
blok kryptograczny (DES data
encryption standard) pozwalajcy na
szyfrowanie i deszyfrowanie blokw
po 256 bajtw danych za pomoc 56 bitowego klucza. Dodatkowo
blok ten moe pracowa w tzw. trybie Triple DES (dedykowanym do

Elektronika Praktyczna 10/2005

Immobilizer z szyfratorem DES


Tab. 1. Najwaniejsze parametry ukadu CC1010
Parametry transceivera
Programowana czstotliwo pracy (300 do
1000 MHz)
Dua czuo odbiornika (typ. 107 dBm przy
2,4 kbd)
Programowalny poziom mocy wyjciowej (20 do
+10 dBm)
Niski pobr mocy (9,1 mA w trybie odbioru)
Modulacja FSK (max. 76,8 kbd)
Wyjcie RSSI (poziom sygnay wejciowego)

Parametry rdzenia 8051


Zoptymalizowany rdze 8051. 2,5 raza wydajniejszy ni standardowy 8051
Tryb bezczynnoci (idle) i czuwania (sleep)
32 kB nieulotnej pamici Flash
2 k + 128 bajtw wewntrznej pamici
SRAM
Zasilanie 2,73,6 V
Czstotliwo taktowania 324 MHz

dostarczonego wraz z dokumentacj


ukadu. Pytki dostarczane s bez
elementw, ktre naley skompletowa we wasnym zakresie na podstawie doczonego do dokumentacji wykazu elementw. Opisywana
pytka ma wymiar 5x6 cm i mieci
na sobie pola lutownicze do montau samego CC1010, elementw
toru radiowego, dwch oscylatorw kwarcowych oraz specjalnych
konektorw SMD lutowanych od
spodu. Kompletny schemat moduu
przedstawiono na rys. 2. W celu realizacji karty transponderowej uyta zostaa jedna taka pytka, ktr
wyposaono w gniazdo paskiej baterii litowej 3 V. Jedynym powanym mankamentem CC1010 jest
to, e narzdzia ocjalnie wspierane przez Chipcona nie s dostpne
bezpatnie. Dostarczone do ukadu
biblioteki HAL (Hardware Abstraction Library) i CUL (Chipcon Utility
Library) zostay stworzone z myl
o rodowisku Keil uVision, ktrego
ewaluacyjna wersja posiada ograniczenie rozmiaru kodu wynikowego
do 2 kB (co uniemoliwia swobodne korzystanie z ukadu). Z pomoc
jednak przyszed kompilator SDCC,
ktry nie jest ocjalnie wspierany
przez Chipcon, to jednak bezproblemowo radzi sobie z kompilacj
programw pisanych z uyciem obu
wymienionych bibliotek.

Karta transponderowa

Rys. 1. Schemat blokowy ukadu CC1010

systemw o szczeglnych wymogach


bezpieczestwa). Transceiver jest
wyposaony w wyjcie napiciowe
poziomu odebranego sygnau (RSSI
received signal strength indication), ktre moe by bezporednio
podane na wejcie wewntrznego
przetwornika A/C. Ciekawostk jest
wyposaenie ukadu w generator
losowego bitu, przy czym nie jest
to blok pseudolosowy. Warto bitu
uzyskiwana jest poprzez wzmocnienie poziomu szumu w torze odbiorczym transceivera, a nastpnie
podawanie takiego sygnau na blok
decyzyjny. Sam CC1010 do poprawnej pracy wymaga niewielu elementw zewntrznych. Wikszo z nich

Elektronika Praktyczna 10/2005

jest niezbdna do poprawnej pracy


czci radiowej ukadu. Pozornie,
jak przekona si autor, sprawa projektu pytki drukowanej pod opisywany ukad wyglda prosto. Jednak
po dokadnym przestudiowaniu dokumentacji dostarczonej przez Chipcona okazuje si, e do poprawnej pracy w pamie 868 MHz (tak
czstotliwo pracy wybrano do
projektu) niezbdne jest wykonanie
4warstwowej pytki drukowanej,
co okazao si zbyt kosztownym
zadaniem. Z pomoc przyby krajowy dystrybutor rmy Chipcon,
oferujcy w swoim asortymencie
4warstwowe pytki drukowane
wykonane wedug reference design

Jak wspomniano wczeniej, budowa karty transponderowej opiera


si jedynie na module z ukadem
CC1010 z doczon bateri. Nieco wicej wysiku wymagaa cz
programowa. Problemem by pobr
prdu podczas pracy ukadu. Poniewa z zaoenia karta po zblieniu do samochodu powinna odebra ramk danych nadawan przez
cz immobilizera umieszczon
w samochodzie, a nastpnie po jej
odszyfrowaniu, modykacji i ponownym zaszyfrowaniu odesa odpowied, to jej odbiornik powinien
by gotowy na przyjcie transmisji
w kadej chwili. Oznaczaoby to, e
pobr prdu przez kart wynosiby okoo 20 mA, co powodowaby
bardzo szybkie zuycie baterii. Aby
rozwiza ten problem, zastosowano tzw. polling odbiornika radiowego. Na pocztku pracy transponder
(przypomnijmy wyposaony w dwa
generatory kwarcowe) uruchamia
drugi generator o czstotliwoci pracy 32,768 kHz, po czym przecza

11

Immobilizer z szyfratorem DES

Rys. 2. Schemat elektryczny moduu z reference design dostarczonego przez Chipcon

12

Elektronika Praktyczna 10/2005

Immobilizer z szyfratorem DES

Rys. 3. Schemat elektryczny jednostki umieszczonej w samochodzie

ukad taktowania rdzenia na ten


wanie wolny oscylator uprzednio
uaktywniajc zegar czasu rzeczywistego, tak aby generowa przerwanie co 2 s. Pobr prdu w tym momencie wynosi 1,3 mA i niemoliwe
jest korzystanie z transceivera. Kolejnym krokiem jest przejcie rdzenia
mikrokontrolera w tryb bezczynnoci

(idle), co powoduje kolejny spadek


poboru prdu do 29,4 mA. Mikrokontroler pozostanie w trybie idle
do momentu, kiedy zegar RT nie
wygeneruje sygnau przerwania,
czyli przez dwie sekundy. Po tej
czynnoci ukad przechodzi ponownie do trybu aktywnego i przecza
rdo zegara na szybki oscylator
(14,7456 MHz). Na stpuje uruchomienie
toru odbiorczego transpondera i rozpoczyna
si oczekiwanie na
nadejcie ramki. Czas
oczekiwania wynosi
20 ms. Kod odpowiedzialny za t cz
programu przedstawiono na list. 1.
Jeli nie byo transmisji, ukad po 20 ms
oczekiwania przechoRys. 4. Sposb montau goldpinw na module
dzi ponownie w tryb
CC1010 (widok moduu od strony zcza)
bezczynnoci i jest tak-

Elektronika Praktyczna 10/2005

towany sygnaem zegarowym o maej czstotliwoci. Jeeli ramka danych zostaa poprawnie odebrana,
nastpuje analiza nagwka ramki.
S dwa moliwe przypadki: ramka
konguracyjna i ramka kontrolna.
Ramka konguracyjna jest to ramka niosca informacj o 7bajtowym
kluczu, jaki ma by uywany do
dekodowania ramek standardowych.
Klucz wyuskany z ramki zostaje
zapisany w obszarze pamici ash
pod stosownym adresem tak, aby
po wyjciu baterii warto klucza
zostaa zachowana. Suy do tego
Pasma ISM
ISM Industrial, Scientic, Medical s to
nielicencjonowane pasma radiowe, przeznaczone do transmisji z maymi mocami na niewielkie odlegoci. Najpopularniejszym pasmem
ISM jest 2,4 GHz, wykorzystywane m.in.
przez urzdzenia Bluetooth oraz WiFi. Rwnie
popularnym pasmem dopuszczonym do
uytkowania w Polsce jest 868 MHz, w ktrym
pracuje immobilizer opisany w artykule.

13

Immobilizer z szyfratorem DES

du tak pracujcego ukadu wynosi


0,77 mA, co pozwoli na prac na
pojedynczym ogniwie CR2477 (3 V/
1000 mAh) okoo 2 miesicy bez
koniecznoci wymiany, co nie jest
moe wynikiem rewelacyjnym, ale
zdaniem autora akceptowalnym.

Jednostka centralna

Rys. 5. Widok informacji powitalnej


immobilizera z biec wartoci
klucza DES

funkcja z biblioteki HAL o nazwie


halFlashWritePage(). Po sprawdzeniu sumy kontrolnej (dokonuje tego
funkcja halRFReceivePacket()) nastpuje zapis nowej wartoci klucza
do pamici Flash.
W drugim przypadku, gdy odeb r a n a z o s t a a r a m ka ko n t r o l n a
(domylna ramka wysyana przez
jednostk w samochodzie), nastpuje jej deszyfracja za pomoc zapisanego klucza. Deszyfrowane dane
zostaj nastpnie zmodykowane
(zwikszenie wartoci bajtw o 1),
po czym ponownie zostaj poddane
szyfrowaniu tym samym kluczem.
Nastpuje wczenie toru nadawczego transpondera i odesanie tak
zmodykowanej paczki danych do
jednostki w samochodzie (list. 2).
Jest to kompletna sekwencja pracy transpondera. redni pobr prWYKAZ ELEMENTW
Rezystory
R1: 1,6 kV 0603
R2, R4, R6, R8R11: 1 kV 0603
R3, R5: 220 V 0603
R12: 1,1 kV
Kondensatory
C1, C3: 100 mF/16 V SMD D
C2, C4C8: 100 nF 0603
Pprzewodniki
LED1LED5: SMD 0603
OK1: (transoptor) 4N35 DIP6
D1, D2: BAS81 SOD80
IC1: MAX3232 SO16
IC2: LM317L
T1T4: BC847
Inne
K1, K2: Przekanik, G2R212DC
/12 V
SV1: Gniazdo goldpin 2x6
SV2: Gniazdo goldpin 2x10
X1, X7: AK500/2
X2, X3, X5, X6: AK500/3
X4: DB9 eskie

14

Jednostka umieszczona w samochodzie zostaa zbudowana w oparciu o identyczny modu jak karta
transponderowa, jednak osadzona
zostaa na pytce drukowanej zawierajcej blok zasilania, dwa przekaniki (odcicie dopywu paliwa oraz
sygnalizacja obecnoci transpondera)
oraz wejcie sygnau wczenia zaponu. Dodatkowo na pytce znajduje si konwerter poziomw MAX3232, pozwalajcy na podczenie
komputera przy nadawaniu klucza
przez uytkownika do jednostki
centralnej i karty transponderowej.
Schemat elektryczny jednostki centralnej przedstawiono na rys. 3.
Algorytm jej dziaania jest do
prosty. Po prawidowej konguracji,
a wic po nadaniu klucza jednostce
centralnej oraz karcie transponderowej (odbywa si to za porednictwem terminala), jednostka wysya w ptli zaszyfrowan sekwencj
10 bajtw do karty transpondero-

wej. Ramka zostaje nadana z bardzo dug preambu (255 bajtw),


co zwiksza szans odbioru ramki przez kart. Jeli nie uzyskuje
odpowiedzi (karta poza zasigiem
sygnau), jednostka nie podejmuje adnej akcji (przekanik K1 zaczony, przekanik K2 wyczony).
W przypadku, gdy do jednostki centralnej dociera odpowied, nastpuje deszyfracja informacji i porwnanie jej z wiadomoci nadan. Jeli
porwnanie wypado pomylnie,
przekanik K2 zostaje zaczony na
20 s, natomiast jednostka centralna
sprawdza, czy zaczony jest zapon
w samochodzie (co oznacza ch
uruchomienia silnika) i jeli jest tak
faktycznie, wwczas wyczony zostaje przekanik K1 (odpowiedzialny

Rys. 6. Nowa warto klucza


(0000111) zapisana do transpondera
(Key Fob)

List. 1. Sekwencja przeczania pomidzy dwoma rodzajami sygnau


taktujcego

//Wyczenie transceivera
RFMAIN=0xF8;

//Przeczenie rda sygnau taktujcego na oscylator 32kHz


MAIN_CLOCK_SET_SOURCE(CLOCK_X32);
//Wyczenie oscylatora 14MHz
XOSC_ENABLE(FALSE);
//Wejcie w tryb bezczynnoci
ENTER_IDLE_MODE();
//Od tej chwili CC1010 moe by przywrcony do
//normalnej pracy przez reset bd przerwanie
//RTC generuje przerwanie po 2 sek.
//.....................................................
//Wczenie oscylatora 14MHz
XOSC_ENABLE(TRUE);
//moment oczekiwania na stabilizacje pracy oscylatora
//CC1010 cigle pracuje na wolnym sygnale zaegarowym zatem opnienie
//w postaci jednej iteracji ptli jest wystarczajce
for(i = 1; i > 0; i);
//Przeczenie rdzenia na szybki sygna zegarowy
MAIN_CLOCK_SET_SOURCE(CLOCK_XOSC);
//Kalibracja toru RX
halRFCalib(&RF_SETTINGS, &RF_CALDATA);
//wczenie odbiornika i oczekiwanie przez 20ms na nadejcie ramki
halRFSetRxTxOff(RF_RX, &RF_SETTINGS, &RF_CALDATA);
status=halRFReceivePacket(200, rfdata, 10, 0, CC1010EB_CLKFREQ);

List. 2. Sekwencja obsugi ramki wysanej z samochodu

//Przygotowanie buforw z danymi do deszyfracji


memcpy(ramBuf, rfdata, DATA_LENGTH);
//deszyfracja kluczem pojedynczym
halDES(DES_SINGLE_DES | DES_DECRYPT | DES_OFB_MODE, ramBuf, keyBuf, DATA_LENGTH);
//modykacja zawartoci ramki
for(i=0; i<10; i++)
++ramBuf[i];
//ponowne szyfrowanie tym samym kluczem
halDES(DES_SINGLE_DES | DES_ENCRYPT | DES_OFB_MODE, ramBuf, keyBuf, DATA_LENGTH);
memcpy(rfdata, ramBuf, DATA_LENGTH);
//Kalibracja
halRFCalib(&RF_SETTINGS, &RF_CALDATA);
//Wczenie nadajniki I odesanie ramki do jednostki w samochodzie
halRFSetRxTxOff(RF_TX, &RF_SETTINGS, &RF_CALDATA);
halRFSendPacket(preamble_length, rfdata, 10);

Elektronika Praktyczna 10/2005

Immobilizer z szyfratorem DES

Rys. 7. Przykadowy sposb doczenia ukadu do instalacji elektrycznej samochodu

za dopyw paliwa). W tym momencie ukad znajduje si w stanie rozbrojenia (sygnalizowanym miganiem
diody LED3) i pozostaje w nim do
momentu wyczenia zaponu.
Czstotliwo pracy nadajnikw
i odbiornikw obu ukadw wynosi
868,277 MHz. Sygnay nadawane s
z moc +4 dBm, z modulacj FSK
oraz kodowaniem Manchester. Czuo odbiornikw przy zastosowanej
prdkoci transmisji (2,4 kbd) wynosi 103 dBm.

Monta i uruchomienie

Przede wszystkim naley dysponowa dwoma zmontowanymi moduami CC1010. Pomimo, i ukad
p r o d u ko w a n y j e s t w o b u d o w i e
TQFP, da si go wlutowa w warunkach domowych (przy odrobinie
praktyki w montau SMD). Pozostae elementy moduu s w wikszoci w rozmiarze 0603, co wymaga
nieco zrcznoci i dobrego wzroku.
W miejsce przeznaczone na monta zcza antenowego SMA naley przylutowa odcinek przewodu
o dugoci kilkunastu centymetrw.
Gniazdo baterii mona zamontowa

w sposb przedstawiony na zdjciu


modelu. Przed dalszym montaem
naley zapisa odpowiednie programy do pamici ash obu moduw. W tym celu naley posuy
si programatorem, ktrego schemat
umieszczony jest w dokumentacji
znajdujcej si pod adresem: http://
www.chipcon.com/les/CC1010EB_Reference_Design_3_0.zip.
Natomiast program do obsugi
programatora mona pobra z http://
www.chipcon.com/les/CC1010_Incircuit_FLASH_programmer_1_3.zip.
Obydwa programy udostpnimy take na naszej stronie WWW w dziale
Download oraz na CDEP11/2005B
(za miesic!).
Odpowiednie wyprowadzenia
programatora naley tymczasowo
poczy odcinkami przewodw
z odpowiednimi polami lutowniczymi moduu CC1010. Modu, ktry
zastosowany zostanie w samochodzie naley wyposay w goldpiny
tak, aby mona go byo woy na
bazow pytk drukowan. Poniewa zastosowane przez rm Chipcon zcze ma raster wyprowadze
rwny 1,27 mm, a na pytce bazo-

wej zastosowano gniazda o rastrze


2,54 mm, to do dyspozycji pozostaje co drugie wyprowadzenie moduu. Pytka bazowa zostaa zaprojektowana pod tym wanie ktem.
Sposb montau goldpinw przedstawiono na rys. 4.
Po zmontowaniu pytki jednostki centralnej naley w pierwszej
kolejnoci sprawdzi warto napicia panujcego na styku 1 gniazda
goldpinw SV1. Powinna ona wynosi +3,3 V (napicie to sygnalizuje
LED1). W tym celu do zcza X1
doczamy rdo napicia staego
+12 V. Jeli warto napicia jest
prawidowa, odczamy zasilanie od
ukadu, nastpnie umieszczamy pytk moduu CC1010 (z programem
jednostki centralnej i z goldpinami)
w miejsce gniazd goldpinw. czymy za pomoc prostego kabla RS232
pytk moduu z portem szeregowym
komputera i uruchamiamy dowolny
program terminalowy (np. HyperTerminal) z nastpujcymi parametrami
transmisji: 57600 b/s, 8N1. Po podaniu zasilania powinna ukaza si
informacja powitalna z aktualn wartoci klucza DES (rys. 5)
Kart transponderow wyposaamy w bateri 3 V i po zaprogramowaniu umieszczamy blisko jednostki centralnej. Przy pierwszym uruchomieniu naley wprowadzi now
warto klucza DES. W tym celu
wpisujemy z klawiatury sekwencj
znakw CMDXXXXXXX, gdzie X
to warto (ASCII) kolejnego bajtu
klucza. Po tej czynnoci jednostka
zapisuje now warto klucza do
pamici Flash i prbuje nawiza
komunikacj z transponderem. Po
udanym poczeniu klucz zostaje
zapisany rwnie w pamici Flash
transpondera (rys. 6) i zostaje wywietlony poziom sygnau odebranego z karty transpoderowej. Po tych
czynnociach ukad jest gotowy
do pracy. Na rys. 7 przedstawiono
przykadowy sposb doczenia Immobilisera do instalacji elektrycznej
samochodu.
Marcin Chruciel
chrusciel2@wp.pl
CC1010 i PCB

Rys. 8. Schemat montaowy pytki bazowej

Elektronika Praktyczna 10/2005

Dystybutorem rmy Chipcon jest Soyter


Components. Firma ta oferuje zarwno ukady
CC1010 jak i 4warstwowe pytki drukowane
do moduw radiowych. Kontakt: tel.: (22)
7220685 (6 linii), fax: (22) 7220550, handlowy@soyter.com.pl, www.soyter.com.pl.

15

You might also like