CAN modul, koji je sastavni deo 24x/240x familija, predstavlja CAN kontroler projektovan kao 16-bitna periferija koja podržava 2.0B standard. Blok dijagram koji pokazuje njegovu osnovnu arhitekturu se nalazi na slici br.1.
Slika br.1 Blok dijagram TMS320x240x CAN modula
CAN modul ostvaruje dvožičnu komunikaciju sa CAN transceiver-om preko pinova CANTX i CANRX sa jedne strane. Sa druge strane CPU ostvaruje pristup kontrolnim i statusnim registrima, kao i specifičnom memorijskom prostoru (tzv. Mailbox RAM) CAN modula.
Mailbox-ovi su locirani u delu RAM-a veličine 48 memorijskih reči. U Mailbox RAM-u se nalaze poruke koje su upravo primljene, odnosno upisuju se poruke namenjene za slanje. Mailbox-ovi 0 i 1 su prijemni, dok su 4 i 5 predajni; mailbox-ovi 2 i 3 su konfigurabilni i mogu poslužiti za slanje ili za prijem.
Svaki od šest mailbox-ova sadrži po četiri 16-bitna registra u kojima može da se smesti maksimalno 8 bajtova podataka, dva 16-bitna registra za identifikator i nekoliko kontrolnih registara. U okviru dva registra za identifikator, pored samog 29-bitnog identifikatora, se nalaze i tri bita kojima se definiše dužina identifikatora, upotreba lokalne maske i auto-answer mod (AAM bit) potreban za automatski odgovor na zahtev za podacima.
CAN modul šalje ili prima podatke koristeći tip poruke sa podacima čiji je format prikazan na slici br.2. Po prijemu nove poruke se najpre identifikator same poruke upoređuje sa identifikatorima prijemnih mailbox-ova, i ukoliko se ovi poklope poruka se prihvata. Postavljanje lokalne maske omogućava da se određeni bitovi identifikatora mailbox-a maskiraju i ne učestvuju u upoređivanju sa odgovarajućim bitovima identifikatora pristigle poruke. Naravno, lokalnu masku je moguće postaviti samo za prijemne mailbox-ove.
Slika br.2 Format poruke sa podacima
Prijem poruka sa zahtevom za podacima se može ostvariti samo preko mailbox-ova 0, 1, 2 i 3. Ukoliko stigne poruka u kojoj je setovan RTR bit, CAN modul upoređuje identifikatore ovih mailbox-ova sa identifikatorom pristigle poruke. Identifikatori mailbox-ova se porede počev od mailbox-a broj 3 naniže. Za slučaj kada se identifikatori poklope dalja pretraga se završava. Zavisno od toga da li je identifikaovani mailbox prijemni ili predajni, kao i da li je setovan AAM bit, moguće su sledeće situacije:
1. Ukoliko je prozvani mailbox konfigurisan za slanje (uočiti da to mogu biti samo konfigurabilni mailbox – ovi 2 i 3), a AAM fleg je setovan, dolazi do automatskog slanja trenutnog sadržaja tog mailbox-a.
2.Ukoliko je prozvani mailbox konfigurisan kao predajni, a AAM bit nije setovan, prihvaćena poruka sa zahtevom za podacima će biti ignorisana, tj neće biti nikakvog odziva na poruku, kao ni bilo kakve signalizacije ka CPU da je ovakva potuka primljena.
3. Ukoliko je prozvani mailbox konfigurisan kao prijemni, on poruku prihvata i signilizira CPU preko bita RCR iz prijemnog kontrolnog registra. Odgovor na ovaj zahtev za podacima sada u potpunosti zavisi od odluke CPU.
Kada CPU želi da pošalje zahtev za podacima, to se ostvaruje sa konfigurabilnim mailbox-ovima 2 i 3. Naime, jedan od njih se najpre konfiguriše kao prijemni mailbox. Tako konfigurisan mailbox je u stanju da pošalje poruku sa zahtevom za podacima. Prijem očekivanih podataka se ostvaruje u istom mailbox-u.
Dva statusna registra daju informacije o funkcionisanju cele periferije (Global Status Register (GSR)), odnosno o tipu greške koja je nastupila (Error Status Register (ESR)). ESR prikazuje samo prvu grešku koja je nastupila, to jest naredne greške ne menjaju njegov sadržaj. CAN modul ima dva brojača grešaka, po jedan za režim slanja i režim prijema čiji sadržaji su dostupni CPU.
Kontrolni registri CAN modula omogućavaju konfigurisanje mailbox-ova pomoću kojih se oni uključuju ili isključuju, kontrolišu predajne ili prijemne funkcije, određuju brzinu prenosa i upravljaju prekidima. Postoje dva tipa prekidih zahteva između CAN modula i PIE kontrolera: jedan je iniciran promenom stanja nekog mailbox-a, a drugi usled uočene greške. Oba tipa mogu koristiti visoki i niski nivo prioriteta. Sledeće aktivnosti iniciraju prekid:
- poruka je uspešno primljena ili poslata;
- slanje poruke je prekinuto;
- CPU nije uspeo da upiše poruku za slanje;
- wake-up stanje;
- stara poruka je prebrisana od strane nove poruke;
- CAN modul je onemoguđen da šalje poruke (Bus-off stanje);
- CAN modul je pasivan (Error Passive);
- jedan ili oba brojača grešaka ima vrednost koja je jednaka ili veća od 96;
Maxim MAX3225cpp
Maxim MAX3225cpp predstavlja RS-232 drajver [12] zadužen za asinhronu serijsku vezu sistema sa periferijama. Maksimalna brzina komunikacije je 1 Mb/s. Podizanje signala na RS-232 nivo se ostvaruje takozvanom naponskom pumpom koja je realizovana u vidu četiri kondenzatora reda veličine 0,1µF. Kolo automatski prelazi u stanje niske potrošnje kada je RS-232 kabl otkačen ili u slučaju da su transmisiona kola zakačene periferije neaktivna, odnosno ukoliko je UART koji pogoni transmitere neaktivan više od 30 sekundi koristeći AutoShutdown Plus aplikaciju. Kolo se ponovo aktivira pri novoj validnoj tranziciji na bilo kom transmiter-skom ili receiver-skom ulazu. Kolo je smešteno u standardnom DIP 20 kućištu.
Philips PCA82C250
PCA82C250 je interfejs između CAN kontrolera i fizičke magistrale. Primarna upotreba je u industrijskim aplikacijama koje koriste brzine od 40 kb/s do 1 Mb/s. Poseduje zaštite od kratkog spoja ka pozitivnom i negativnom naponu, zaštitu od termalnog preopterećenja koja kontroliše da temperatura spoja ne pređe 165ºC. Kolo zahteva 5V napajanje, i njegovo ulazno kolo za prijem podataka od CAN kontrolera (pin TXD) očekuje za logičku jedinicu napon od 5V, dok njegovo izlazno kolo za slanje podatka ka CAN kontroleru daje napon od 5V za logičku jedinicu. U oba slučaja, logičkoj nuli odgovara naponski nivo od 0V.
PCA82C250 je spakovan u veoma malo osmopinsko SMD kućište sa oznakom SO-8 (Small Outline package). Dimenzije su mu 4x5mm.