Sadržaj:

Jednostavan vodič za CANBUS: 8 koraka
Jednostavan vodič za CANBUS: 8 koraka

Video: Jednostavan vodič za CANBUS: 8 koraka

Video: Jednostavan vodič za CANBUS: 8 koraka
Video: Все, что вам нужно знать о том, что находится в блоке предохранителей автомобиля 2024, Studeni
Anonim
Jednostavan vodič za CANBUS
Jednostavan vodič za CANBUS

Studirao sam CAN tri tjedna, a sada sam završio neke aplikacije kako bih potvrdio svoje rezultate učenja. U ovom ćete vodiču naučiti kako koristiti Arduino za implementaciju CANBUS komunikacije. Ako imate bilo kakve prijedloge, dobrodošli da ostavite poruku.

Pribor:

Hardver:

  • Maduino Zero KANBUS
  • Modul za temperaturu i vlagu DHT11
  • 1,3 "I2C OLED 128x64- plava
  • Kabel DB9 do DB9 (ženski na ženski)
  • Dupont linija

Softver:

Arduino IDE

Korak 1: Što je CANBUS

Što je CANBUS
Što je CANBUS
Što je CANBUS
Što je CANBUS

O MOŽE

CAN (Controller Area Network) je serijska komunikacijska mreža koja može ostvariti distribuiranu kontrolu u stvarnom vremenu. Razvijen je za automobilsku industriju kako bi zamijenio složene kabelske svežnjeve dvožilnom sabirnicom.

CAN protokol definira sloj podatkovne veze i dio fizičkog sloja u OSI modelu.

CAN protokol ISO je standardiziran s ISO11898 i ISO11519. ISO11898 je CAN brzi komunikacijski standard sa komunikacijskom brzinom od 125kbps-1Mbps. ISO11519 je CAN komunikacijski standard niske brzine sa komunikacijskom brzinom manjom od 125kbps.

Ovdje se fokusiramo na CAN velike brzine.

ISO-11898 opisuje kako se informacije prenose između uređaja na mreži i usklađen je s modelom međusobnog povezivanja otvorenih sustava (OSI) koji je definiran u smislu slojeva. Stvarna komunikacija između uređaja povezanih fizičkim medijem definirana je fizičkim slojem modela

  • Svaka CAN jedinica spojena na sabirnicu može se nazvati čvorom. Sve CAN jedinice spojene su na sabirnicu koja je na svakom kraju završena otpornicima od 120 Ω kako bi se formirala mreža. Autobus se sastoji od linija CAN_H i CAN_L. CAN kontroler određuje razinu sabirnice na temelju razlike u razini snage na obje žice. Razine autobusa podijeljene su na dominantne i recesivne, što mora biti jedna od njih. Pošiljatelj šalje poruku primatelju promjenom na razini sabirnice. Kada se logička linija "i" izvrši na sabirnici, dominantna razina je "0", a recesivna razina "1".
  • U dominantnom stanju, napon CAN_H je oko 3,5 V, a napon CAN_L je oko 1,5 V. U recesivnom stanju napon oba voda je oko 2,5V.
  • Signal je diferencijalni pa CAN ima snažnu otpornost na buku i toleranciju grešaka. Uravnoteženi diferencijalni signal smanjuje spajanje šuma i omogućuje visoke brzine signalizacije preko kabela s upletenom parom. Struja u svakom signalnom vodu jednaka je, ali u suprotnom smjeru i rezultira učinkom poništavanja polja koji je ključan za nisku emisiju buke. Korištenje uravnoteženih diferencijalnih prijamnika i upletenih kabela poboljšava odbijanje uobičajenog načina rada i visoku otpornost na šum CAN sabirnice.

MOŽE primopredajnik

CAN primopredajnik odgovoran je za pretvorbu između logičke razine i fizičkog signala. Pretvorite logički signal u diferencijalnu razinu ili fizički signal u logičku razinu.

CAN kontroler

CAN kontroler je ključna komponenta CAN -a, koji realizira sve funkcije sloja podatkovne veze u CAN protokolu i može automatski riješiti CAN protokol.

MCU

MCU je odgovoran za upravljanje funkcijskim krugom i CAN kontrolerom. Na primjer, parametri CAN kontrolera inicijaliziraju se kada se čvor pokrene, CAN okvir se čita i šalje preko CAN kontrolera itd.

Korak 2: O CAN komunikacijama

Kad je sabirnica u stanju mirovanja, svi čvorovi mogu početi slati poruke (kontrola s više glavnih uređaja). Čvor koji prvi pristupa sabirnici dobiva pravo slanja (način rada CSMA/CA). Kada više čvorova počne slati istovremeno, čvor koji šalje ID poruku visokog prioriteta dobiva pravo slanja.

U CAN protokolu sve se poruke šalju u fiksnom formatu. Kad je sabirnica u stanju mirovanja, sve jedinice povezane na sabirnicu mogu početi slati nove poruke. Kada više od dvije ćelije počnu slati poruke, prioritet se određuje na temelju identifikatora. ID ne predstavlja odredišnu adresu slanja, već prioritet poruke koja pristupa magistrali. Kada više od dvije ćelije počnu slati poruke istovremeno, svaki bit beskamatnog ID-a arbitrira se jedan po jedan. Jedinica koja dobije arbitražu može nastaviti slati poruke, a jedinica koja izgubi arbitražu odmah prestaje slati i prima rad.

CAN sabirnica je vrsta sabirnice koja se emitira. To znači da svi čvorovi mogu 'čuti' sve prijenose. svi čvorovi će uvijek pokupiti sav promet. CAN hardver omogućuje lokalno filtriranje tako da svaki čvor može reagirati samo na zanimljive poruke.

Korak 3: Okviri

Okviri
Okviri

CAN uređaji šalju podatke preko CAN mreže u paketima koji se nazivaju okviri. CAN ima četiri vrste okvira:

  • Okvir podataka: okvir koji sadrži podatke čvora za prijenos
  • Udaljeni okvir: okvir koji zahtijeva prijenos određenog identifikatora
  • Okvir pogreške: okvir koji prenosi bilo koji čvor koji otkriva pogrešku
  • Okvir preopterećenja: okvir za ubrizgavanje kašnjenja između podataka ili udaljenog okvira

Okvir podataka

Postoje dvije vrste okvira podataka, standardni i prošireni.

Značenje bitnih polja na slici je:

  • SOF - Bit s jednim dominantnim početkom okvira (SOF) označava početak poruke i koristi se za sinkronizaciju čvorova na sabirnici nakon mirovanja.
  • Identifikator-Standardni CAN 11-bitni identifikator utvrđuje prioritet poruke. Što je binarna vrijednost niža, to joj je prioritet veći.
  • RTR - Bit zahtjeva za pojedinačni daljinski prijenos (RTR)
  • IDE - Dominantni bit proširenja s jednim identifikatorom (IDE) znači da se prenosi standardni CAN identifikator bez proširenja.
  • R0 - Rezervirani bit (za moguću upotrebu s budućim izmjenama standarda).
  • DLC-4-bitni kod duljine podataka (DLC) sadrži broj bajtova podataka koji se prenose.
  • Podaci - može se prenijeti do 64 bita aplikacijskih podataka.
  • CRC-16-bitna (15 bita plus razdjelnik) provjera cikličke redundancije (CRC) sadrži kontrolni zbroj (broj prenesenih bitova) prethodnih aplikacijskih podataka za otkrivanje pogrešaka.
  • ACK – ACK je 2 bita, jedan je bit za potvrdu, a drugi je graničnik.
  • EOF-Ovo 7-bitno polje na kraju okvira (EOF) označava kraj CAN okvira (poruke) i onemogućuje postavljanje bitova, ukazujući na pogrešku pri popunjavanju kada je dominantna. Kad se tijekom normalnog rada uzastopno pojavi 5 bitova iste logičke razine, u podatke se ubacuje dio suprotne logičke razine.
  • IFS-Ovaj 7-bitni međuokvirni prostor (IFS) sadrži vrijeme potrebno kontroleru za premještanje ispravno primljenog okvira na odgovarajući položaj u području međuspremnika za poruke.

Arbitraža

U stanju mirovanja sabirnice, jedinica koja prva počne slati poruku dobiva pravo slanja. Kad više jedinica počne slati istovremeno, svaka jedinica za slanje počinje od prvog bita arbitražnog segmenta. Jedinica s najvećim brojem kontinuiranih izlaznih dominantnih razina može nastaviti slati.

Korak 4: Brzina i udaljenost

Brzina i udaljenost
Brzina i udaljenost

CAN sabirnica je sabirnica koja povezuje više jedinica istovremeno. Teoretski ne postoji ograničenje ukupnog broja jedinica koje se mogu spojiti. U praksi, međutim, broj jedinica koje se mogu spojiti ograničen je vremenskim kašnjenjem na sabirnici i električnim opterećenjem. Smanjite brzinu komunikacije, povećajte broj jedinica koje se mogu povezati i povećajte brzinu komunikacije, smanjuje se broj jedinica koje se mogu povezati.

Komunikacijska udaljenost obrnuto je povezana s brzinom komunikacije, a što je komunikacijska udaljenost manja, brzina komunikacije je manja. Duža udaljenost može biti 1 km ili više, ali brzina je manja od 40 km / s.

Korak 5: Hardver

Hardver
Hardver

Maduino Zero CAN-BUS modul alat je koji je razvio Makerfabs za CANbus komunikaciju-temelji se na Arduinu, s CAN kontrolerom i CAN primopredajnikom, za stvaranje spremnog za upotrebu priključka za CAN-sabirnicu.

  • MCP2515 je samostalni CAN kontroler koji implementira CAN specifikaciju. Sposoban je za prijenos i primanje i standardnih i proširenih podataka i udaljenih okvira.
  • MAX3051 sučelja između kontrolera protokola CAN i fizičkih žica sabirničkih vodova u mreži kontrolera (CAN). MAX3051 pruža mogućnost diferencijalnog odašiljanja sabirnici, a diferencijalni prijem CAN kontroleru.

Korak 6: Povezivanje

Veza
Veza

Spojite DHT11 modul na Maduino Zero CAN-BUS modul žicama koje će se koristiti kao instrument za podršku CAN komunikaciji. Slično, povežite zaslon s modulom da biste primili podatke i prikazali ih.

Veza između Maduino Zero CANBUS i DHT11:

Maduino Zero CANBUS - DHT11

3v3 ------ VCC GND ------ GND D10 ------ PODACI

Veza između Maduino Zero CANBUS -a i OLED -a:

Maduino Zero CANBUS - OLED

3v3 ------ VCC GND ------ GND SCL ------ SCL SDA ------ SDA

Za spajanje dva Maduino Zero CANBUS modula upotrijebite DB9 kabel.

Korak 7: Kodirajte

MAX3051 dovršava pretvorbu diferencijalnih razina u logičke signale. MCP2515 dovršava funkciju CAN, poput kodiranja i dekodiranja podataka. MCU samo treba pokrenuti kontroler i slati i primati podatke.

  • Github:
  • Nakon instaliranja Arduina, ne postoji paket koji podržava ploču (Arduino nula) koji je potreban za instalaciju.
  • Odaberite alate -> ploča -> upravitelj odbora, pretražite "Arduino zero" i instalirajte "Arduino SAMD ploče".
  • Odaberite Alati -> Ploča -> Arduino Zero (izvorni USB priključak), odaberite Alati -> Priključak -> com…
  • Nakon što preuzmete program s GitHub -a, morate se pobrinuti da se sve datoteke nalaze u direktoriju projekta, koji sadrži datoteke knjižnice koje podržavaju CANBUS.
  • Instalirajte knjižnicu DHT senzora tvrtke Adafruit koja se koristi za pogon DHT11 na postizanje temperature i vlažnosti.
  • Koristite različite adrese za slanje temperature i vlažnosti zasebno u kodu Test_DHT11.ino.

CAN.sendMsgBuf (0x10, 0, stmp1.length (), stmp_send1);

kašnjenje (500); CAN.sendMsgBuf (0x11, 0, stmp2.length (), stmp_send2); kašnjenje (500);

"0x10" je srednji ID poruke, "0" je standardni standardni okvir, "stmp1.length ()" je duljina poruke, "stmp_send1" su poslani podaci.

  • U kodu Test_OLED.ino sve poruke na CANBUS -u primaju se upitom, a potrebne informacije prikazuju se na OLED -u.
  • Prenesite program Maduino-CANbus-RS485/Test_DHT11_OLED/Test_DHT11/Test_DHT11.ino u modul koji je spojen na senzor, a program Maduino-CANbus RS485/Test_DHT11_OLED/Test_OLED/Test_OLED.ino na drugi modul koji je spojen na OLED.

Korak 8: Pokaži

Pokazati
Pokazati
Pokazati
Pokazati

Uključivanjem dva modula, temperatura i vlažnost će se prikazati na zaslonu.

Preporučeni: