Busmaster komunikacija/ BUSMASTER-CANSocket (RPi)
- uspostavljanje komunikacije između BUSMASTER programa i Slave uređaja (u našem slučaju to je RPi)
- smještanje primljenih podataka u određene datoteke
- razumijevanje pojmova DBC i DBF
- koncept konverzije
Busmaster je prvenstveno namijenje za prenos podataka ili prijem istih, tako da on predstavlja softverski paket koji može slati određene frejmove, generisati neke vrste signala, što je i prikazano u ovom zadatku, a takođe prima podatke, odnosno u tom slučaju predstavlja slave uređaj. Takođe ovaj program može da detektuje razne vrste grešaka. U okviru ovog programa, korisnik može da nadgleda CAN i LIN poruke, u zavisnosti interfejsa i okruženja koje koristi. Postoje četri osnovna koraka, koja je potrebno ispuniti kako bi konfigurisali željeni okvir:
- Odabir drajvera (u našem slučaju USB-Peak)
- Konfiguracija parametara (kao što je Baudrate)
- Database konfiguracija
- Monitoring okvira i poruka koji se šalju/primaju
Kada je u pitanju slanje i generisanje frejmova, na veoma jednostavan način uz pomoć softverskog okruženja možemo generisati CAN frejm, sa svim parametrima koje čine ovu komunikaciju jedinstvenom. Nama su od interesa Transmissed message, gdje je prije svega potrebno napraviti jedan DBF fajl na osnovu kojeg ćemo generisati, konfigurisati i poslati podatak.
Database (.dbf) je standardna biblioteka podataka koju koriste aplikacije za upravljanje bazama podataka. One zapravo organizuju podatke u više zapisa sa poljima, koje čuvaju u odgovarajućem nizu podataka. Ovaj tip baze je kompatabilan i sa drugim vrstama podataka, a ovaj program omogućava njihvu konverziju u drugi tip (na primjer .dbc) ili obrnuto, iz neke druge vrste podatak u .dbf fajl. Obično, ova vrsta podataka je više dostupna čitaocima, te je na taj način jasnije za razumijevanje poruka, pa samim tim i detekciju grešaka.
Pored Transmissed message, možemo generisati neku vrstu signala, a zatim je poslati nekom udaljenom čvoru (u našem slučaju slave uređadj je RPi).
Naravno, osim slanja moguće je i logovanje/prijem poruka, to jeste da naš softver bude slave uređaj. Ovaj program, u posljednjim ažuriranjima ima opciju da preko GUIa na jednostavan način generišete Node simulaciju. Klasa podataka kojoj pristupate za ovaj vid komunikacije je prikazana na sledećoj slici:
Na ovaj način možemo jednostavno deklasirisati poruke koje šaljemo. Sve ovo je detaljnije objašnjeno, sa jasno definisanim koracima u PDF fajlu help.pdf
Da bi uspostavili komunikaciju, zatim vršili prenos poruka, potrebno je prije svega da se skine softver (https://rbei-etas.github.io/busmaster/). Nakon toga, u zavisnosti operativnog sistema gdje je instaliran BUSMASTER, te u zavisnosti interfejsa (kod nas je USB-PEAK), konfiguriše se odgovarajući drajver, kako bi se sama komunikacija odvijala (link za drajver: (https://www.peak-system.com/PCAN-USB.199.0.html?&L=1&gclid=Cj0KCQjwzLCVBhD3ARIsAPKYTcStBVBsB5PcaRnTnB-Twuo1CKX8zmqqc7mUmLVB26Rk_ZyrzPyfxC4aAmo9EALw_wcB)).
Da bi se na adekvatan način instalirala can-utils biblioteka na ciljnoj platformi, potrebno je ispratiti korake na sledećem linku (https://github.com/knezicm/ikm-labs/tree/master/lab7#readme), odnosno odjeljak pod nazivom Preuzimanje i instalacija can-utils softverskog paketa (radi se na razvojnoj platformi).
Da bi mogao da se koristi CAN interefejs na Raspberry Pi platformi, neophodno je obezbijediti odgovarajući hardverski modul koji je povezan na jedan od interfejsa. U našem slučaju, koristićemo modul CAN SPI click proizvođača Mikroelektronika. Ovaj modul sadrži CAN kontroler MCP2515 i CAN transiver MCP2551, koji omogućavaju povezivanje mikrokontrolera CAN mrežom preko interfejsa.
Ovaj fajl treba editovati komandom:
sudo nano /boot/config.txt
zatim unijeti sledeće linije:
dtparam=spi=on dtoverlay=mcp2515-can2,oscillator=10000000,spimaxfrequency=1000000,interrupt=25
ako se radi o verziji Linux kernela >= 4.4.x:
dtparam=spi=on dtoverlay=mcp2515-can2-overlay,oscillator=10000000,spimaxfrequency=1000000,interrupt=25 dtoverlay=spi-bcm2835-overlay
Nakon što je prethodnom provjerom potvrđeno da je CAN kontroler uspješno inicijalizovan, sljedeći korak podrazumijeva aktiviranje CAN interefejsa. Ovo se postiže istim komandama kao kada se radi sa klasičnim mrežnim interfejsima.
sudo ip link set can0 up type can bitrate 125000 # enable interface
ip link show dev can0 # print info
sudo ip link set can0 down # disable interface
Važno je napomenuti da prilikom kroskompajliranja bilo koje aplikacije koja sadrži <math.h> biblioteku na Linux platformi, prilikom linkovanja mora dodati ekstenzija -lm.
