Da podsetimo, TTCAN (time – triggered communication on CAN) je viši CAN protokol koji obezbeđuje sinhronizaciju svih čvorova na mreži, kao i planiranje i realizaciju vremenski determinisanog rasporeda prenosa poruka (time triggered – TT). Osnovno o TTCAN protokolu možete pronaći OVDE.
Formiranje osnovne jedinice za merenje vremena na TTCAN mreži
Izvršavanje osnovnog ciklusa na mreži je u svakom čvoru kontrolisano preko tzv. ciklusnog vremena (cycle time). Ciklusno vreme garantuje TT rad ovog protokola. Brojač koji meri ovo vreme se restartuje nakon svakog završetka osnovnog ciklusa. Rezolucija sa kojom se može iskazati ciklusno vreme je tzv. mrežna vremenska jedinica (network time unit – NTU). U osnovnoj verziji TTCAN protokola, NTU je jednak nominalnom vremenskom intervalu trajanja jednog bita i fiksnog je trajanja.
U proširenoj verziji TTCAN potokola, NTU se dobija deljenjem vremenskog intervala trajanja sistemskog takta definisanog učestanošću oscilatornog kola konkertnog čvora sa odgovarajućim koeficijentom (time unit ratio – TUR). U tom slučaju se NTU izražava u sekundama. Koeficijent TUR nije fiksan već se neprekidno koriguje u toku rada, a sve u cilju postizanja što bolje usklađenosti između globalnog i ciklusnog vremena. Mehanizam za korekciju vrednosti TUR je relativno složen i njegovo izlaganje bi prevazišlo okvire ovog kratkog pregleda TTCAN protokola. Dovoljno je samo reći da se u tom procesu koristi informacija o vrednosti globalnog vremena koja je u proširenom TTCAN protokolu dostupna kroz polje podataka referentne poruke. Opisani postupak izračunavanja mrežne vremenske jedinice i ciklusnog vremena za slučaj proširenog TTCAN protokola je prikazan na slici br.1.
Slika br.1 Generisanje NTU
Sinhronizacija rada čvorova na mreži
Sinhronizacija svih čvorova, uključujući i vremenski master, se obavlja na isti način. Međutim, sam način kako se to izvodi zavisi od toga da li je na konkretnoj mreži implementirana osnovna ili proširena verzija TTCAN protokola. Način sinhronizacije u slučaju osnovne verzije TTCAN protokola ilustrovan je na slici br.2
Slika br.2 Sinhronizacija ciklusnog vremena (osnovna verzija TTCAN protokola)
Kao što se sa slike može videti, SOF bit svake poruke uzrokuje da se podatak o lokalnom vremenu upiše u lokalni registar svakog čvora označen na slici sa Sync_Mark. Nakon toga, svaki čvor ispituje da li se radi o refentnoj poruci. Ako je to slučaj, sadržaj Sync_Mark registra se prepiše u Ref_Mark registar, i automatski oduzme od vrednosti lokalnog vremena formirajući na taj način podatak o ciklusnom vremenu. Dakle u tom trenutku, ciklusno vreme će biti jednako vremenskom intervalu koji je protekao od trenutka detektovanje prvog bita referente poruke, i nastaviće da se menja na dalje u skladu sa lokalnim vremenom sinhronišući tako sve aktivnosti na čvoru. Tačnost sinhronizacije u ovom slučaju je zavisna od brzine prenosa na mreži i tipično je na nivou trajanja jednog bita CAN poruke.
Sinhronizacija rada čvorova na mreži sa proširenim TTCAN prokolom je bazirana na tzv. globalnom vremenu (global time). Postupak proračuna globalnog vremena je ilustrovan na slici br.3, i biće u najkraćim crtama opisan u daljem tekstu.
Slika br.3 Računanje globalnog vremena (proširena verzija TTCAN protokola)
Vremenski master u okviru polja za podatke referentne poruke šalje svoju (po definiciji ispravnu) vrednost globalnog vremena. To je najčešće vrednost vremenskog trenutka kada vremenski master odašilje prvi SOF bit svoje poruke. Svaki čvor, kada detektuje da se radi o referentnoj poruci prihata taj podatak i na osnovu njega formira tzv. lokalni offset, kao razliku globalnog vremena vremenskog mastera i vrednosti lokalnog vremena kada je prihvaćen prvi bit referentne poruke. Tokom narednog osnovnog ciklusa svaki čvor koriguje vrednost lokalnog vremena lokalnim ofsetom i tako formira svoje globalno vreme. Na ovaj način se nezavisno od brzine prenosa poruka na mreži, može postići tačnost sihronizacije od 1μs što tipično zadovoljava i najstrože zahteve proizvođača vozila. Treba konstatovati da vremeski master podatak o globalnom vremenu može dobijati i od nekog eksternog izvora, pa se u tom smislu veoma često koristi GPS sistem.
Implementacija TTCAN protokola
Nakon što je podnet predlog za standardizaciju TTCAN protokola, nekoliko proizvođača je već realizovalo čipove koji implementiraju ovaj protokol. Paralelno sa tim razvijaju se i softverski alati, koji se delom preuzimaju od osnovnog CAN sistema, a delom razvijaju specijalno za TTCAN primenu.
Firma Bosch je implementirala TTCAN protokol u FPGA kolu, da bi ubrzo proizvela i stand-alone kontroler koji podržava i osnovni i prošireni TTCAN protokol, i pin kompatibilan je sa poznatijim CAN kontrolerima: Intelovim 82527 i Simensovim CC170.
Ubrzo je i firma Atmel razvila svoj CAN kontoler koji u potpunosti podržava i TTCAN protokol. Razvojem i proizvodnjom sličnih čipova bave se i Motorola, NEC i drugi.
Između ostаlog, prisutni su i pokušaji da se izvrši uključivanje karakteristika TTCAN protokola u trenutno znatno rasprostranjeniji CANopen protokol.