Sadržaj:
- Korak 1: Šta je CANBUS
- Korak 2: O CAN komunikacijama
- Korak 3: Okviri
- Korak 4: Brzina i udaljenost
- Korak 5: Hardver
- Korak 6: Povezivanje
- Korak 7: Kodirajte
- Korak 8: Pokažite
Video: Jednostavan vodič za CANBUS: 8 koraka
2024 Autor: John Day | [email protected]. Zadnja izmjena: 2024-01-30 08:04
Studirao sam CAN tri sedmice, a sada sam završio neke aplikacije za potvrđivanje rezultata učenja. U ovom vodiču naučit ćete kako koristiti Arduino za implementaciju CANBUS komunikacije. Ako imate prijedloge, dobrodošli da ostavite poruku.
Potrošni materijal:
Hardver:
- Maduino Zero CANBUS
- DHT11 Modul za temperaturu i vlažnost
- 1,3 "I2C OLED 128x64- plava
- Kabel DB9 do DB9 (ženski na ženski)
- Dupont Line
Softver:
Arduino IDE
Korak 1: Šta je CANBUS
O CAN -u
CAN (Controller Area Network) je serijska komunikacijska mreža koja može realizirati 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 je ISO standardizovan sa 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 sistema (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 su spojene na sabirnicu koja je završena na svakom kraju sa 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 osnovu razlike u razini snage na obje žice. Nivoi autobusa su podijeljeni na dominantne i recesivne, koji mora biti jedan od njih. Pošiljatelj šalje poruku primatelju promjenom na razini sabirnice. Kada se logička linija "i" izvrši na sabirnici, dominantni nivo je "0", a recesivni nivo je "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ćava velike brzine signalizacije preko kabela s upletenom parom. Struja u svakoj signalnoj liniji je jednaka, ali u suprotnom smjeru i rezultira efektom poništavanja polja koji je ključan za nisku emisiju šuma. Korištenje uravnoteženih diferencijalnih prijemnika i upletenih kabela poboljšava odbijanje zajedničkog moda i visoku otpornost na šum CAN sabirnice.
CAN primopredajnik
CAN primopredajnik je odgovoran za konverziju između logičkog nivoa 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 se inicijaliziraju kada se čvor pokrene, CAN okvir se čita i šalje preko CAN kontrolera itd.
Korak 2: O CAN komunikacijama
Kada je sabirnica u stanju mirovanja, svi čvorovi mogu početi slati poruke (kontrola s više master-a). Č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 na slanje.
U CAN protokolu sve se poruke šalju u fiksnom formatu. Kada 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 ID-a bez kamata 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 pruža lokalno filtriranje tako da svaki čvor može reagirati samo na zanimljive poruke.
Korak 3: 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 greške: okvir koji prenosi bilo koji čvor koji otkriva greš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 sinhronizaciju čvorova na sabirnici nakon mirovanja.
- Identifikator-Standardni CAN 11-bitni identifikator uspostavlja prioritet poruke. Što je binarna vrijednost niža, to je njen prioritet veći.
- RTR - Bit zahtjeva za pojedinačni daljinski prijenos (RTR)
- IDE - Dominirajući bit proširenja za jedan identifikator (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 dužine 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) ciklična provjera redundancije (CRC) sadrži kontrolni zbroj (broj prenesenih bitova) prethodnih podataka aplikacije za otkrivanje greš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ćava postavljanje bitova, ukazujući na grešku pri popunjavanju kada je dominantna. Kada se tijekom normalnog rada uzastopno pojavi 5 bitova istog logičkog nivoa, u podatke se ubacuje dio suprotnog logičkog nivoa.
- 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. Kada više jedinica počne slati istovremeno, svaka jedinica za slanje počinje od prvog bita segmenta arbitraže. Jedinica s najvećim brojem kontinuiranih izlaznih dominantnih nivoa može nastaviti slati.
Korak 4: Brzina i udaljenost
CAN sabirnica je sabirnica koja povezuje više jedinica istovremeno. Teoretski ne postoji ograničenje ukupnog broja jedinica koje se mogu povezati. 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 je obrnuto povezana s brzinom komunikacije, a što je udaljenost komunikacije 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
Maduino Zero CAN-BUS modul je alat koji je razvio Makerfabs za CANbus komunikaciju-zasnovan je na Arduinu, s CAN kontrolerom i CAN primopredajnikom, za stvaranje gotovog porta za CAN-sabirnicu.
- MCP2515 je samostalni CAN kontroler koji implementira CAN specifikaciju. Sposoban je za prijenos i prijem i standardnih i proširenih podataka i udaljenih okvira.
- MAX3051 sučelje između kontrolera protokola CAN i fizičkih žica sabirničkih linija u mreži kontrolera (CAN). MAX3051 pruža mogućnost diferencijalnog odašiljanja sabirnici i mogućnost diferencijalnog prijema CAN kontroleru.
Korak 6: Povezivanje
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 ekran sa 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 konverziju diferencijalnih nivoa 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 port), odaberite Alati -> Port -> com…
- Nakon što preuzmete program sa GitHub -a, morate biti sigurni da su sve datoteke u direktoriju projekta, koji sadrži datoteke biblioteke koje podržavaju CANBUS.
- Instalirajte biblioteku 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 dužina poruke, "stmp_send1" su poslani podaci.
- U kodu Test_OLED.ino sve poruke na CANBUS -u primaju se upitom i potrebne informacije se prikazuju na OLED -u.
- Prenesite program Maduino-CANbus-RS485/Test_DHT11_OLED/Test_DHT11/Test_DHT11.ino u modul koji je povezan sa senzorom, a program Maduino-CANbus RS485/Test_DHT11_OLED/Test_OLED/Test_OLED.ino na drugi modul koji je spojen na OLED.
Korak 8: Pokažite
Uključivanjem dva modula, temperatura i vlažnost će se prikazati na ekranu.
Preporučuje se:
Napravite svemirsku stanicu u TinkerCad Codeblock -u -- Jednostavan vodič: 7 koraka (sa slikama)
Napravite svemirsku stanicu u TinkerCad Codeblock -u | Jednostavni vodič: Iako se pomisao na život u svemiru može činiti kao naučna fantastika, dok ovo čitate, Međunarodna svemirska stanica kruži oko zemlje brzinom od pet milja u sekundi, kružeći oko Zemlje jednom svakih 90 minuta. U ovom projektu ćete naučiti
Jednostavan vodič za POPRAVAK Pokvarenih slušalica BOSE QC25 - BEZ ZVUKA iz jednog uha: 5 koraka (sa slikama)
Jednostavan vodič za POPRAVAK Pokvarenih slušalica BOSE QC25 - BEZ ZVUKA iz jednog uha: Bose je dobro poznat po svojim slušalicama, a posebno po svojoj liniji aktivnog uklanjanja buke. Prvi put kad sam stavio par QuietComfort 35 u prodavnicu elektronike, oduševila me tišina koju mogu stvoriti. Međutim, imao sam veoma ličnu
Jednostavan vodič za fotografiju: 4 koraka
Jednostavan vodič za fotografiju: Danas ćemo govoriti o nekim od glavnih postavki na dslr kameri koje biste trebali znati. Ako znate ovo, naše fotografije možete podići na viši nivo korištenjem ručnog načina rada
Vodič: Kako napraviti jednostavan temperaturni senzor pomoću DS18B20 i Arduino UNO: 3 koraka
Vodič: Kako napraviti jednostavan temperaturni senzor pomoću DS18B20 i Arduino UNO: Opis: Ovaj vodič će vam pokazati nekoliko jednostavnih koraka o tome kako senzor temperature učiniti funkcionalnim. Potrebno je samo nekoliko minuta da to učinite istinitim na svom projektu. Sretno ! Digitalni termometar DS18B20 pruža temperaturu od 9 do 12 bita Celzijusa
(Jednostavan) jednostavan način za dobivanje analognog/pwm zvuka s Raspberry PI Zero -a i povezivanje na Crt TV: 4 koraka
(Jednostavan) jednostavan način za dobijanje analognog/pwm zvuka s Raspberry PI Zero -a i povezivanje na Crt TV: Ovdje sam upotrijebio najjednostavniji način za unos zvuka na TV zajedno sa kompim video zapisom