You are on page 1of 33

УНИВЕРЗИТЕТ У НОВОМ САДУ

ФАКУЛТЕТ ТЕХНИЧКИХ НАУКА У


НОВОМ САДУ

Имплементација подршке за
филтрирање Етернет саобраћаја за
анализатор аутомобилских магистрала
ПМ-200

ДИПЛОМСКИ РАД

Ментор: проф. др Милан Бјелица

Студент: Андреј Капроцки РА-2014

Нови Сад, 2019.


УНИВЕРЗИТЕТ У НОВОМ САДУ  ФАКУЛТЕТ ТЕХНИЧКИХ НАУКА
21000 НОВИ СА Д, Трг Доситеја Обрадови ћа 6

КЉУЧНА ДОКУМЕНТАЦИЈСКА ИНФОРМАЦИЈА

Редни број, РБР:


Идентификациони број, ИБР:
Тип документације, ТД: Монографска документација
Тип записа, ТЗ: Текстуални штампани материјал
Врста рада, ВР: Завршни (Bachelor) рад
Аутор, АУ: Андреј Капроцки
Ментор, МН: проф. др Милан Бјелица
Наслов рада, НР: Имплементација подршке за филтрирање Етернет саобраћаја за
анализатор аутомобилских магистрала ПМ-200

Језик публикације, ЈП: Српски / латиница


Језик извода, ЈИ: Српски
Земља публиковања, ЗП: Република Србија
Уже географско подручје, УГП: Војводина
Година, ГО: 2019
Издавач, ИЗ: Ауторски репринт
Место и адреса, МА: Нови Сад; трг Доситеја Обрадовића 6
Физички опис рада, ФО: 7/25/4/2/14/0/0
(поглавља/страна/ цитата/табела/слика/графика/прилога)

Научна област, НО: Електротехника и рачунарство


Научна дисциплина, НД: Рачунарска техника
Предметна одредница/Кqучне речи, ПО: Аутомобилска индустрија, Анализатор, Етернет филтер

УДК
Чува се, ЧУ: У библиотеци Факултета техничких наука, Нови Сад

Важна напомена, ВН:

Извод, ИЗ: У оквиру овог рада имплементиранa је подршка за филтрирање Етернет


саобраћаја за ПМ-200 анализатор. Циљ имплементације је упис Етернет
оквира пристиглих на анализатор са магистрале аутомобила у
различите датотеке у зависности од особина филтера. Испитивањем и
верификацијом решења је утврђено да је исправна обрада у реалном
времену омогућена. Испитана је највећа брзина преноса података коју
ова апликација подржава.

Датум прихватања теме, ДП:


Датум одбране, ДО:
Чланови комисије, КО: Председник: <име председника комисије>

Члан: <име члана комисије> Потпис ментора


Члан, ментор: <име ментора>
UNIVERSITY OF NOVI SAD  FACULTY OF TECHNICAL SCIENCES
21000 NOVI SAD, Trg Dositeja Obradovića 6

KEY WORDS DOCUMENTATION

Accession number, ANO:


Identification number, INO:
Document type, DT: Monographic publication
Type of record, TR: Textual printed material
Contents code, CC: Bachelor Thesis
Author, AU: Andrej Kaprocki
Mentor, MN: Milan Bjelica, PhD
Title, TI: Implementation of Ethernet filthering application for PM-200 automotive
Data Logger

Language of text, LT: Serbian


Language of abstract, LA: Serbian
Country of publication, CP: Republic of Serbia
Locality of publication, LP: Vojvodina
Publication year, PY: 2019
Publisher, PB: Author’s reprint
Publication place, PP: Novi Sad, Dositeja Obradovica sq. 6
Physical description, PD: 7/25/4/2/14/0/0
(chapters/pages/ref./tables/pictures/graphs/appendixes)

Scientific field, SF: Electrical Engineering


Scientific discipline, SD: Computer Engineering, Engineering of Computer Based Systems
Subject/Key words, S/KW: Automotive, Data Logger, Ethernet Filter

UC
Holding data, HD: The Library of Faculty of Technical Sciences, Novi Sad, Serbia

Note, N:

Abstract, AB: This paper describes the implementation of Ethernet filtering application for
PM-200 Data Logger. The goal is to write vehicle Ethernet frames received by
the Data Logger to the separate files depending on the filters. Testing and
verification of the solution has showed that the real-time execution is
successfully implemented. The highest Ethernet speed this application
supports is determined.

Accepted by the Scientific Board on, ASB:


Defended on, DE:
Defended Board, DB: President: <ime predsednika komisije>

Member: <ime člana komisije> Menthor's sign


Member, Mentor: <ime mentora>
Sadržaj

SADRŽAJ

1. Uvod................................................................................................................................ 1
2. Teorijske osnove ............................................................................................................. 3
2.1 Analizator .................................................................................................................3
2.2 Analizator u automobilskoj industriji.......................................................................4
2.3 Magistrale u automobilu...........................................................................................5
CAN magistrala ...............................................................................................................5
2.3.1 LIN magistrala .....................................................................................................5
2.3.2 FlexRay magistrala ..............................................................................................6
2.3.3 MOST ..................................................................................................................6
2.3.4 BroadR-Reach magistrala ....................................................................................6
2.4 Izgled Ethernet okvira ..............................................................................................7
2.5 PM-200 .....................................................................................................................8
3. Koncept rešenja ............................................................................................................. 10
3.1 Parser ulazne XML datoteke ..................................................................................11
3.2 Kružni bafer za čuvanje Ethernet okvira ................................................................13
3.3 Ispis rezultata filtriranja u TTL datoteke................................................................13
3.3.1 Zaglavlje ............................................................................................................13
3.3.2 Polje sa snimljenim podacima ...........................................................................14
3.4 Zavisnost između blokova ......................................................................................14
4. Programsko rešenje ....................................................................................................... 16
4.1 XML Parser ............................................................................................................16
4.2 Kružni bafer za privremeno smeštanje Ethernet okvira .........................................17
4.3 Upis u TTL datoteke ..............................................................................................17
Sadržaj

4.4 Aplikacija i main ....................................................................................................18


5. Evaluacija...................................................................................................................... 20
5.1 Opis okruženja za ispitivanje .................................................................................20
5.2 Ispitni slučajevi ......................................................................................................21
6. Zaključak ...................................................................................................................... 24
7. Literatura ....................................................................................................................... 25
Spisak slika

SPISAK SLIKA

Slika 1 Analizator u automobilskoj industriji ........................................................................4


Slika 2 Izgled Ethernet okvira ................................................................................................7
Slika 3 Razlika izmedju standardnog Ethernet okvira i Vlan okvira .....................................7
Slika 4 PM-200 Analizator.....................................................................................................8
Slika 5 Princip rada aplikacije za filtriranje i skladištenje Ethernet okvira .........................10
Slika 6 Softverski blok dijagram aplikacije .........................................................................11
Slika 7 Izgled aplikacije za kreiranje ulazne XML datoteke ...............................................12
Slika 8 Primer ulazne XML datoteke ...................................................................................12
Slika 9 UML dijagram rada aplikacije .................................................................................15
Slika 10 Okruženje za ispitivanje.........................................................................................20
Slika 11 Prikaz snimljene TTL datoteke ..............................................................................21
Slika 12 Ulazna XML datoteka ............................................................................................22
Slika 13 Statistički prikaz snimljenih okvira sa Ethernet B magistrale ...............................22
Slika 14 Statistički prikaz svih snimljenih okvira ................................................................23

IV
Spisak tabela

SPISAK TABELA

Tabela 1 Automobilske magistrale ........................................................................................5


Tabela 2 Pregled modula ......................................................................................................16

V
Skraćenice

SKRAĆENICE

API - Application programming interface, Aplikativna programska sprega


CAN - Controller Area Network
FIBEX - The Field Bus Exchange Format, Format korišćen u automobilskoj
industriji, baziran na XML-u
FIFO - First In First Out
IP - Internet Protocol
LIN - Local Interconnect Network
MOST - Media Oriented Systems Transport
XML - Extensible Markup Language, Prošireni jezik za obeležavanje podataka

VI
Uvod

1. Uvod
Automobilska industrija se stalno razvija, u cilju poboljšanja sigurnosti i udobnosti vožnje.
Ova unapređenja se najčešće svode na uvođenje dodatnih elektronskih kontrolnih jedinica (ECU)
koje automatizuju određene segmente upravljanja vozilom, ili unapređenje postojećih jedinica
kroz upotrebu informacija sa unutrašnjih i spoljašnjih senzora. Prilikom povećanja broja
elektronskih jedinica se osim usložnjavanja hardverskog i softverskog sistema, značajno pojačava
i saobraćaj na automobilskim magistralama.
Kako bi se obezbedila neophodna robusnost i determinizam u okviru pojedinačnih jedinica
i celokupnog automobila, neophodno je sprovesti opsežno testiranje i kontrolu kvaliteta u skladu
sa najnovijim standardima. Uređaji koji omogućavaju praćenje i čuvanje podataka sa
automobilskih magistrala, čija provera i kontrola predstavlja neizostavan segment svih
integracionih faza testiranja, se naziva analizator. Analizator koji će biti opisan u ovom radu i koji
je korišćen tokom projekta je TTech PM-200 analizator.
Zadatak ovog rada bio je da se kreira aplikacija za filtriranje Ethernet saobraćaja na PM-
200 analizatoru na osnovu zadatih ulaznih parametara. Ulazni parametri su prosleđeni u vidu XML
datoteke, dok se ispis rezultata vrši u TTL datoteke. Za svaku filter grupu, kreira se jedna TTL
datoteka sa Ethernet okvirima koji zadovoljavaju kriterijume odgovarajućeg filtera.
Polaznu tačku u radu predstavlja podešavanje okruženja za rad sa analizatorom kao i
upoznavanje sa istim. Korišćeno je Eclipse radno okruženje sa dodatnim modulima za udaljeno
prevođenje i ispravljanje grešaka.
Rad se sastoji iz 7 poglavlja.
U drugom poglavlju opisan je analizator kao i njegova namena. Takođe se govori o primeni
analizatora u automobilskoj industriji, magistralama koje analizator podržava, o Ethernet okviru i
konkretno o analizatoru za koji je ova aplikacija realizovana.
U trećem poglavlju prikazana je softverska ahitektura rešenja.

1
Uvod

Četvrto poglavlje opisuje softverske module, dok se u petom govori o načinu ispitivanja
aplikacije i daje prikaz rezultata ispitivanja.
Šesto poglavlje sadrži kratak zaključak, a takođe i daje smernice za dalja unapređenja
realizovanog rešenja.

2
Teorijske osnove

2. Teorijske osnove
U ovom poglavlju govori se o analizatorima kao klasi uređaja koji se primenjuju u ispitivanju
rešenja u automobilskoj industriji. Zatim, dat je kratak opis osnovnih magistrala u automobilskoj
industriji, koje analizator korišćen u atumobilskoj industriji treba da podrži, a pored toga, dat je
opis uređaja PM-200 kompanije TTTech koji predstavlja analizator korišćen u ovom radu.

2.1 Analizator
Analizator predstavlja sistem za prikupljanje podataka, koji omogućava inženjerima da
prikupljaju informacije kako bi znali šta se dešava u nekoj mašini ili okruženju. Jedna od glavnih
prednosti ovih uređaja jeste to što mogu da snimaju podatke bez prekida, kao i to što mogu da rade
bez nadzora operatera. Ideja je da se rad neke mašine snima, kako bi se uočilo da li se ona u nekom
trenutku ne ponaša u skladu sa očekivanjima. Zbog ovoga, većina analizatora poseduju mehanizam
za praćenje datuma i vremena – timestamp, kako bi se mogao napraviti realan sled događaja da bi
se moglo uočiti kada i zbog čega dolazi do neke greške. Analizator treba da bude pouzdan i
otporan na specifične radne uslove, budući da se često koristi bez nadzora ili pod neuobičajenim
spoljnim uticajem.
Tipičan primer ovog uređaja jeste crna kutija u avionu. Ovaj uređaj snima sve bitne
informacije prilikom leta aviona kao i razgovor pilota sa kontrolnim tornjem. Njegova funkcija
naročito dolazi do izražaja prilikom pada aviona, kada se koristi kako bi se otkrio uzrok nastanka
problema. Projektovana je tako da može da podnese pad aviona.

3
Teorijske osnove

2.2 Analizator u automobilskoj industriji


U današnje vreme, većina automobilskih proizvođača ima u ponudi automobile sa različitim
nivoima autonomne vožnje, od pomoći pri vožnji pa sve do potpunog automatskog upravljanja.
Prisutan je konstantan rad na razvoju i usavršavanju ovih tehnologija, i prilikom razvoja bitan deo
kompletnog procesa predstavlja testiranje.
Najveći deo testiranja prototipa proizvoda, kao i verzija proizvoda u različitim fazama
razvoja, zasniva se na velikom broju podataka snimljenih prilikom korišćenja proizvoda, tj.
prilikom vožnje. Ovi podaci koriste se i posmatraju kako u samom toku vožnje, tako i kasnije. Iz
ovog razloga, analizatori koji se koriste za ovakvo testiranje treba da podrže i live-data processing,
ali i skladištenje ovih podataka. Analizator korišćen u okviru ovog rada je model PM-200
kompanije TTTech.

Slika 1 Analizator u automobilskoj industriji

4
Teorijske osnove

2.3 Magistrale u automobilu


Neki od najčešće korišćenih interfejsa u analizatorima u automobilskoj industriji su interfejsi
za snimanje podataka sa CAN, LIN, FlexRay, MOST i BroadR-Reach magistrala.
Magistrala Brzina Primena

LIN do 20kb/s Retrovizori, zaključavanje vrata, klima, brisači itd.

CAN Optimizacija goriva, informacije o vožnji, automatsko


do 1Mb/s
podešavanje klime, detekcija grešaka itd.

FlexRay do 10Mb/s Vožnja, skretanje i kočenje preko žice

MOST Reprodukovanje audio i video sadržaja, serviranje


do 150Mb/s
paketa mapa za navigacioni sistem

Ethernet/BroadR- do 100Mb/s Napredni sistemi za pomoć vozaču


Reach

Tabela 1 Automobilske magistrale

2.3.1 CAN magistrala


CAN je brza serijska magistrala sa podrškom za distribuirano slanje komandi brzinom do
1Mb/s. Njena hijerarhija sa više vodećih kontrolera (eng. multi-master) omogućava izgradnju
inteligentnih i redudantnih sistema. Zahvaljujući dovoljno velikoj brzini prenosa i okviru za
podatke koji podržava slanje do 8 bajtova korisničkih podataka, CAN magistrala može da prosledi
širok opseg kontrolnih signala u realnom vremenu. Osim fleksibilnosti i brzine, CAN magistrala
detektuje greške i sprovodi mere za ograničavanje grešaka, što je čini pogodnom i za sredine u
kojima se javlja šum. Primena CAN magistrale je pre svega za komunikaciju različitih kontrolnih
jedinica, odnosno, povezivanje različitih uređajaja u automobilu.

2.3.2 LIN magistrala


LIN je serijska magistrala koja podržava brzinu prenosa do 20kb/s. U LIN magistrali postoji
jedan glavni kontroler koji kontroliše medijum i slanje podataka do podređenih kontrolera. Kako
celokupnu komunikaciju inicira glavni kontroler, ne postoji mogućnost da dođe do kolizije.
Nastala je kako bi se smanjila opterećenost CAN magistrale, pri čemu se koristi za kontrolu
sistema u kojima brzina prenosa i pouzdanost nisu od suštinskog značaja. Na primer, LIN
magistrala se koristi za slanje komandi za podešavanje sedišta, podizanje prozora, zaklučavanje
vrata, kontrolisanje klima uređaja i slično.

5
Teorijske osnove

2.3.3 FlexRay magistrala


FlexRay je nastao kao odgovor na zahteve za bržim i pouzdanijim prenosom podataka u
automobilu. Brzina do 10Mb/s uz visok stepen determinizma je obezbeđena deljenjem magistrale
na vremenske intervale tokom kojih jedan kontroler ima ekskluzivno pravo pristupa magistrali.
Poruke koje se prenose preko FlexRay magistrale mogu imati veličinu do 256 bajtova, čime se
omogućava siguran prenos kompleksnih poruka između kontrolnih jedinica. Zbog nabrojanih
osobina, FlexRay se primenjuje za bezbednosno-kritične sisteme koji zahtevaju brz odziv kao što
je sistem za upravljanje, vuču i aktivnu suspenziju.

2.3.4 MOST
MOST je magistrala za brz prenos veće količine podataka, sa malim kašnjenjem. Nastao je
kada CAN nije mogao da zadovolji zahteve za brzinu prenosa od 1.4Mb/s. Kontrolu centralnog
vremena i sinhronizaciju slanja podataka sprovodi glavni vremenski kontroler, koji konstantno
šalje okvire podataka na magistralu. MOST magistrala je isprva mogla da podrži brzinu do
25Mb/s. Uvođenjem specijalnog fizičkog sloja omogućena je implementacija Eterneta u
automobilu, čime je povećan protok na 150Mb/s. MOST magistrala se koristi za brz prenos
multimedijalnih sadržaja i paketa mapa za navigacione sisteme.

2.3.5 BroadR-Reach magistrala


BroadR-Reach predstavlja Ethernet standard dizajniran za upotrebu u automobilskoj
industriji. Trenutno se koristi za povezivanje kontrolnih jedinica u okviru sistema za naprednu
pomoć vozaču. Protok do 100Mb/s i veliki domet omogućava slanje informacija sa kamera, radara
i lidara u realnom vremenu do sistema unutar i izvan automobile. Za razliku od drugih mrežnih
protokola u automobilu, brzina prenosa podataka putem Etherneta se može dodatno ubrzati. Stoga
se predviđa da će se u budućnosti Ethernet koristiti kao glavni protokol za prenos podataka u
automobilu. Stvaranjem jedinstvene homogene mreže u u kojoj su mehanizmi za zaštitu i formati
podataka konzistentni bi se značajno pojednostavila međusobna komunikacija različitih delova
automobila.

6
Teorijske osnove

2.4 Ethernet protokol i Ethernet okvir


Podaci koji se šalju Ethernet magistralom su zapakovani u specijalne okvire čiji format je
prikazan na slici 2.

Slika 2 Izgled Ethernet okvira

Osobine Ethernet okvira koje su bile relevantne za filtriranje prilikom izrade projekta jesu
Interface, Source i Destination adrese i Vlan ID ako postoji.
Budući da samo Ethernet okviri IPV4 i IPV6 tipa poseduju IP adrese, prilikom filtriranja za
preostale okvire korišćena je MAC adresa.
Okviri koji sadrže Vlan ID se prepoznaju po tome što se na mestu polja Tip za standardni
okvir nalazi vrednost 0x8100. Takvi okviri moraju da se obrađuju drugačije budući da imaju
ubačena 4 bajta nakon Source Mac adrese. Unutar ta 4 bajta nalazi se upravo 0x8100 oznaka za
ovaj tip frame-a dok se unutar druga dva bajta pored nekih drugih informacija nalazi Vlan ID u
poslednjih 12 bita.

Slika 3 Razlika izmedju standardnog Ethernet okvira i Vlan okvira

Osim ova 4 bajta, okvir se tretira isto kao i svaki drugi.

7
Teorijske osnove

2.5 PM-200
PM-200 je analizator, odnosno, uređaj za neprekidno snimanje svih mrežnih podataka sa
vozila. Ovaj analizator podržava osim osnovne funkcionalnosti snimanja podataka i dodatne opcije
za rad sa ovim podacima, kao na primer, filtriranje.

Slika 4 PM-200 Analizator

Kao što je već napomenuto, bitna karakteristika analizatora jeste postojanje mehanizma za
praćenje datuma i vremena - timestamp-a. Konkretno PM-200 analizator, ima timestamp sa
tačnošću na nivou jedne mikrosekunde. Neke dodatne karakteristike su:
 Pruža mogucnost snimanja nakon “buđenja”;
 Omogućava selektivno prihvatanje podataka i obradu sa filterima i okidačima;
 Radi sa podacima otvorenog formata;
 Pruža mogućnost višefaznog upravljanja napajanjem;
 Poseduje API za primanje i slanje podataka.

8
Teorijske osnove

Magistrale koje PM-200 podržava su:


Automobilske magistrale:
 12 CAN;
 3 FlexRay;
 12 LIN;
 2 Ethernet;
 1 MOST150.
Dodatne magistrale:
 15 analognih ulaza;
 15 digitalnih ulaza (sa omogućenim prekidima);
 6 serijskih interfejsa;
 3 analogna izlaza;
 6 digitalnih izlaza.

9
Koncept rešenja

3. Koncept rešenja
U ovom poglavlju je opisan koncept programskog rešenja aplikacije. Na slici 5 je prikazan
način rada aplikacije. Ethernet okviri koji pristižu preko Ethernet magistrale smeštaju se u kružni
bafer da bi se izbeglo gubljenje okvira. Pakete iz ovog bafera obrađuje posebna nit u kojoj se vrši
filtriranje. Okvir koji zadovoljava uslove jednog filtera smešta se u zaseban kružni bafer iz kog se
u posebnoj niti dalje vrši upis u TTL datoteku. To znači, da osim niti koja služi za filtriranje
Ethernet okvira, postoji pojedinačna nit za svaki filter koja obavlja upis u odgovarajuću datoteku.
Osobine filtera date su u XML datoteci kao ulazni parametar aplikacije.

Slika 5 Princip rada aplikacije za filtriranje i skladištenje Ethernet okvira

10
Koncept rešenja

Na slici 6 prikazan je softverski blok dijagram aplikacije.

Slika 6 Softverski blok dijagram aplikacije

3.1 Parser ulazne XML datoteke


XML je standardni skup pravila za definisanje formata podataka u elektronskoj formi. Ne
zavisi od platforme, što znači da bilo koji program realizovan tako da koristi XML može da čita i
obrađuje XML podatke nezavisno od hardvera ili operativnog sistema. Pored toga, podaci su
napisani u vidu standardnog teksta, tako da je lako pregledati i razumeti šta se nalazi unutar jedne
XML datoteke.
Definisanje osobina svakog od filtera definisano je u obliku XML datoteke kao ulaznog
parametra. Za kreiranje ove datoteke realizovana je jednostavna Java aplikacija. Glavni razlog
zašto je kreirana ova aplikacija jeste želja da se izbegne korišćenje XML datoteke u pogrešnom
formatu. Postoje dva ograničenja prilikom kreiranja XML ulaznog fajla, a to je da za svaki filter
mora da postoji naziv fajla u koji će podaci biti upisani, i korisnik je u obavezi da definiše barem
jednu filter grupu.

11
Koncept rešenja

Slika 7 Izgled aplikacije za kreiranje ulazne XML datoteke

Slika 8 Primer ulazne XML datoteke

Prilikom parsiranja XML datoteke kreira se lista parametara, gde svaki element sadrži naziv
TTL datoteke, Source i Destination adrese, Vlan ID i tip Ethernet magistrale.

12
Koncept rešenja

3.2 Kružni bafer za čuvanje Ethernet okvira


Paketi koji pristižu prvi, takođe se i obrađuju prvi. Za ovu metodu, FIFO, jedna od najčešćih
implementacija jeste kružni bafer. Najveća prednost kružnog bafera je to što ne moraju podaci da
se premeštaju prilikom ubacivanja ili izbacivanja novih paketa, nego se pomoću glave i repa kreće
kroz bafer.
Glava predstavlja poziciju na koju sledeći podatak treba da se ubaci, a rep poziciju podatka
koji se sledeći obrađuje. Ukoliko su glava i rep na istoj poziciji, to znači da u tom trenutku ne
postoje podaci koji nisu obrađeni.
Naravno, kružni bafer je samo drugačije korišćenje niza memorijskih lokacija. Zbog toga,
osim glave i repa, poznata je i veličina kružnog bafera, kako bi se dolaskom podatka koji se smešta
na poslednju poziciju u baferu, glava opet postavila na nultu poziciju niza. Na ovaj način, niz se
tretira kao krug. Ideja je da vreme izvršavanja obrade paketa bude dovoljno malo, kao i da veličina
bafera bude dovoljno velika, da nikada ne dođe do gubljenja neobrađenog podatka. Veličina bafera
zavisi od količine podataka na mreži.
Opisana metoda korišćena je i prilikom čuvanja podataka za upis u TTL datoteke. Za svaku
filter grupu, postoji kružni bafer u koji se privremeno smeštaju okviri koji zadovoljavaju osobine
tog filtera.

3.3 Ispis rezultata filtriranja u TTL datoteke


Podaci sa magistrale, događaji greške (error event), okidači i ostalo generišu se tokom
snimanja od strane komponenti analizatora. Ovi podaci se moraju preneti preko analizatora na
ispravno odredište i zapisati u datoteku koja se nalazi u memoriji analizatora. Nakon što se
snimanje završi, korisnik preuzima datoteku sa logera i podatke posmatra na računaru radi
pregleda i analize. Datoteka u koju se vrši ovaj upis ima TTL format.
Datoteka koja je TTL formata sastoji se iz dva dela, a to su Header deo - zaglavlje i Polje
sa snimljenim podacima.

3.3.1 Zaglavlje
TTL datoteke otvaraju se unutar posebnog grafičkog okruženja namenjenog upravo za rad
sa TTTech Loggerom. Da bi neka TTL datoteka mogla da se otvori i prikaže u ovom okruženju na
ispravan način bitno je pravilno popuniti polja zaglavlja.

13
Koncept rešenja

Zaglavlje se sastoji od sledećih delova:


 Identification String “TTL” (4 Bytes, File Offset=0x0000)
 File Format Version (4 Bytes, File Offset=0x0004)
Broj verzije formata datoteke
 Block Size (4 Bytes, File Offset=0x0008)
Veličina bloka za upis podataka, uobičajena vrednost je 2MB
 Header Size (4 Bytes, File Offset=0x000C)
Veličina celog polja zaglavlje u bajtovima
 Logfile information (4080 Bytes, File Offset=0x0010)
Označava logfile i hardver kojim je snimano
 Configuration (XML) (Size=Header Size - 4096, File Offset=0x01000)
Sadrži kopiju konfiguracionog fajla korišćenog prilikom snimanja

3.3.2 Polje sa snimljenim podacima


Polje sa snimljenim podacima sastoji se od niza blokova iste veličine.
Upis je implementiran na ovaj način kako se ne bi zbog jednog loseg primljenog paketa
desilo da ceo sadržaj bude pogrešan ili izgubljen, nego se može poremetiti najviše jedan blok
podataka unutar kojih se paket nalazi.
Budući da veličina bloka mora da bude tačno određene veličine, najčešće se desi da se
podaci ne uklope tačno u izabranu veličinu bloka zbog čega se podatak koji ne može da stane u
trenutni, nepopunjeni blok upisuje u sledeći, a trenutni se popunjava praznim, padding okvirom
do izabrane veličine.

3.4 Zavisnost između blokova


Komunikacija između delova aplikacije objašnjena je preko UML dijagrama na slici 9.
Ulazna XML datoteka kreirana od strane odgovarajuće aplikacije parsira se na početku rada
programa. Zatim se obavlja povezivanje povratne funkcije on_ethernet u kojoj se pristigli okviri
smeštaju u kružni bafer.
U reading, filter, niti vrši se filtriranje jednog po jednog okvira. Ukoliko okvir zadovoljava
uslove filtera, smešta se u kružni bafer tog filtera. Za svaki filter, postoji nit koja iz njegovog bafera
uzima okvire i upisuje ih u TTL datoteku.
Na slici je prikazan primer kada postoji n filtera, a i n niti za upis u TTL datoteku.
Rezultat ovog primera jeste n zasebnih TTL datoteke. U svakoj TTL datoteci nalaze se oni
okviri koji su zadovoljili uslove tog filtera.

14
Koncept rešenja

Slika 9 UML dijagram rada aplikacije

15
Programsko rešenje

4. Programsko rešenje

Aplikacija za filtriranje Ethernet paketa implementirana je u C programskom jeziku, i oslanja


se na korišćenje API funkcija analizatora. Sastoji se iz 4 celine, modul za parsiranje ulazne XML
datoteke, modul sa kružnim baferom za privremeno skladištenje Ethernet paketa, modul za upis
podataka u TTL datoteku i main datoteke.
Aplikacija za kreiranje ulazne XML datoteke pisana je u Java programskom jeziku.

Moduli Datoteke izvornog koda


Main ethernet_filter.c
XML parser xmlParser.h
xmlParser.c
Kružni bafer za privremeno smeštanje ringBuf.h
Ethernet okvira ringBuf.c
Upis u TTL datoteku write.h
write.c

Tabela 2 Pregled modula

4.1 XML Parser


Ulazni parametri dati su unutar XML fajla.
Pri pokretanju programa, iz ulaznog fajla se dobavljaju informacije o filterima i smeštaju se
u listu pomoću funkcije:

int parseArgs(char* filename, node_t **l_args);

16
Programsko rešenje

Lista filtera definisana je kao node_t i osim pokazivača na sledeći element sadrži grupu
osobina filtera definisanu kao args.
typedef struct node
{
args value;
struct node *next;
} node_t;

typedef struct
{
char filename[FNAMEMAXLEN];
char interface[INTERFACEMAXLEN];
char sourceIp[IPMAXLEN];
char destinationIp[IPMAXLEN];
int iVlanId;
} args;

Nakon ovog koraka, na raspolaganju su nam informacije o svim filterima koji treba da se
koriste prilikom obrade Ethernet okvira.

4.2 Kružni bafer za privremeno smeštanje Ethernet okvira


typedef struct
{
ttxdl_ethernet_t *eth_frames;
int head;
int tail;
int size;
} ringBuffer;

Implementirane su standardne funkcije karakteristične za kružni bafer: inicijalizacija, oslobađanje


memorije, ubacivanje i izbacivanje Ethernet paketa iz bafera.

4.3 Upis u TTL datoteke


TTL datoteke sastoje se od zaglavlja i niza blokova određene veličine.
U ovom projektu, korišćena je standardna veličina bloka za TTL datoteke koja iznosi 2MB.
Za svaku datoteku se prilikom inicijalizacije upisuju odgovarajuće informacije u zaglavlje i
pokreće nit koja će biti zadužena za upis podataka u datoteku, pozivom funkcije
e_status dl_start (int argsNum, node_t *l_args);

Prilikom upisa okvira u TTL datoteku vodi se računa o količini upisanih podataka kako bi
se pri upisu okvira koji prelazi veličinu od 2MB mogao upisati okvir ispune da bi se održala željena
struktura.
Za svaki filter, postoji struktura koja sadrži kružni bafer koji se popunjava iz main-a,
informaciju o količini upisanih podataka kao i mutex za zaštitu kružnog bafera, budući da se
popunjava u niti za filtriranje a čita u niti za upis podataka u datoteku.

17
Programsko rešenje

typedef struct
{
pthread_mutex_t mutex;
uint32_t written_size;
ringBuffer eth_frames;
} DataToWrite;

4.4 Aplikacija i main


Unutar main-a potrebno je uraditi inicijalizaciju API-a analizatora, kao i povezivanje
callbacka i funkcije koja će se prozvati prilikom promene stanja analizatora pozivom funkcije
e_status ttxdl_init(const char * usercode_name, BOOL only_one_instance, e_status
(*on_state_change_function)(ttxdl_state_change_t *, void *), void *funcUserData);

Zatim, kreira se lista filtera sa magistralama Ethernet A i Ethernet B i inicijalizuje filter na


sledeći način:
eth_filter[0].channel = TTXDL_ETHERNET_A;
eth_filter[1].channel = TTXDL_ETHERNET_B;
eth_filter_list.length = ETH_INTERFACE_NUM;
eth_filter_list.items = eth_filter;

void ttxdl_filter_init(ttxdl_filter_t* filter);

Nakon toga vrši se parsiranje, i ukoliko je uspešno izvršeno, inicijalizuje se kružni bafer za
privremeno skladištenje okvira. Prilikom pritiska tastera START na logeru, proziva se callback
zbog promene stanja, i dolazi do inicijalizacije on_ethernet callback-a pomoću funkcije:
e_status ttxdl_on_ethernet (e_status (*reg_function)(ttxdl_ethernet_t *,void *),
void *funcUserData);

Zatim, izvršava se inicijalizacija niti za upis u TTL datoteke kao i popunjavanje zaglavlja
ovih datoteka. O ovim funkcijama, kao i načinu inicijalizacije kružnog bafera i parsiranja bilo je
govora u poglavljima o odgovarajućim modulima.
Takođe kreira se i započinje nit reading koja služi za čitanje podataka iz kružnog bafera.
Konkretno filtriranje pojedinačnog okvira vrši se funkcijom checkFilters koja se poziva u
reading niti. U funkciji checkFilters, iz okvira koji se obrađuje, dobavljaju se relevantne
informacije i konvertuju u stringove kako bi bilo moguće proveriti ih sa argumentima svakog
filtera. Za svaki filter za koji su osobine odgovarajuće, radi se upis u kružni bafer za tu datoteku.
Pritiskom tastera STOP na analizatoru, obavlja se obrada preostalih okvira, kao i njihov upis.

Za slanje logova, korišćena je funkcija:


#define ttxdl_log_write(priority, ...) ttxdl_log_printf(LOG_FCLTY_USER, priority,
__VA_ARGS__)

18
Programsko rešenje

Ova funkcija se koristi navođenjem prioriteta, u zavisnosti od toga kada želimo da bude
prikazana i teksta koji želimo da bude prikazan, npr.
ttxdl_log_write(TTXDL_LOG_ERR, "We should exit now!");
typedef enum
{
TTXDL_LOG_EMERG = LOG_EMERG,
TTXDL_LOG_ALERT = LOG_ALERT,
TTXDL_LOG_CRIT = LOG_CRIT,
TTXDL_LOG_ERR = LOG_ERR,
TTXDL_LOG_WARNING = LOG_WARNING,
TTXDL_LOG_NOTICE = LOG_NOTICE,
TTXDL_LOG_INFO = LOG_INFO,
TTXDL_LOG_DEBUG = LOG_DEBUG
} e_log_priority;

API funkcije koje imaju povratnu vrednost, koriste e_status tip.


typedef enum
{
ST_ERROR =-1,
ST_OK = 1;
} e_status;

19
Evaluacija

5. Evaluacija

U ovom poglavlju opisano je okruženje za ispitivanje, prikazani su ispitni slučajevi i


performanse programskog rešenja.

5.1 Opis okruženja za ispitivanje


Programsko rešenje je testirano na Yocto Linux operativnom sistemu koji se nalazi na PM-
200 analizatoru, sa Intel Atom procesorom i 8GB ram memorije.

Slika 10 Okruženje za ispitivanje

20
Evaluacija

Za prikaz snimljenih okvira, tj. prikaz TTL datoteka korišćen je TTX-DataLogger grafičko
okruženje. Primer snimljenih okvira dat je na slici 11. Sa leve strane se vidi da su podaci podeljeni
na blokove od 2MB, dok zaglavlje zauzima 218,44kb.

Slika 11 Prikaz snimljene TTL datoteke

Osim liste okvira moguće je prikazati i statistiku primljenih podataka, što če biti prikazano
na slučajevima testiranja.

5.2 Ispitni slučajevi


Za testiranje funkcionalnosti aplikacije u pogledu mehanizma filtriranja, sniman je saobraćaj
na Ethernet switch-u i podešeni su parametri filtera sa već unapred poznatim adresama. Nakon
završetka snimanja saobraćaja upoređene su dobijene TTL datoteke. Na slici 12 vidi se da je treći
filter propuštao sve okvire, a drugi filter sve okvire sa Ethernet B magistrale. Na slikama 13 i 14
vidi se da je saobraćaj uspešno filtriran i upisan u odgovarajuće datoteke.

21
Evaluacija

Slika 12 Ulazna XML datoteka

Slika 13 Statistički prikaz snimljenih okvira sa Ethernet B magistrale

22
Evaluacija

Slika 14 Statistički prikaz svih snimljenih okvira

Robusnost i ograničenje aplikacije testirano je snimanjem prenosa podataka različitih brzina


pri čemu je utvrđeno da aplikacija može da funkcioniše sve dok brzina pristizanja podataka ne
prelazi 12MB/s. Utvrđeno je da pri ovoj brzini počinje da se dešava pojava ispuštanja drop-ovanja
okvira jer aplikacija zbog tolike brzine pristizanja novih okvira nije u stanju da prozove callback
pri dolasku Ethernet saobraćaja.
Tokom celokupnog ispitivanja prosečna iskorišćenost RAM memorije bila je 156MB, gde
je aplikacije koristila prosečno 5MB, što je 0,1% u odnosu na ceo sistem. Iskorišćenost CPU
nikada ne prelazi 52% pri maksimalnoj brzini koju ova aplikacija podržava.

23
Zaključak

6. Zaključak
Zadatak rada bio je da se realizuje aplikacija za PM-200 analizator koja će omogućiti
filtriranje Ethernet saobraćaja na osnovu ulaznih parametara, prosleđenih u vidu XML datoteke,
kako bi se omogućilo jednostavnije testiranje Ethernet saobraćaja u automobilu.
Evaluacijom sistema je pokazano da su tražene funkcionalnosti uspešno implementirane.
Jedan od načina da se dodatno unapredi aplikacija bilo bi omogućavanje čitanja i drugih tipova
datoteka kao ulaznog parametra, kao i modifikovanje rada aplikacije sa ciljem da se ubrza obrada
kako bi još veće brzine Ethernet saobraćaja bile podržane.

24
Literatura

7. Literatura

[1] Materijali sa predavanja iz predmeta AutoMag. URL: http://www.rt-


rk.uns.ac.rs/predmeti/ra%C4%8Dunarstvo-i-automatika-%E2%80%93-e2/automag-
ra%C4%8Dunarske-mre%C5%BEe-magistrale-i-protokoli-u-automobilu
[2] Automotive Interfaces. URL: https://www.eetimes.com/author.asp?doc_id=1322342#
[3] Thomas Herpel, Bernhard Kloiber, Reinhard German, Steffen Fey. Routing of Safety-
Relevant Messages in Automotive ECU Networks, 2009.
[4] M. Felser, Real-Time Ethernet - Industry Prospective, 2005.

25

You might also like