Sadržaj:

STM32 CAN sučelje: 7 koraka
STM32 CAN sučelje: 7 koraka

Video: STM32 CAN sučelje: 7 koraka

Video: STM32 CAN sučelje: 7 koraka
Video: STM32. Интерфейс SWD. Создание собственного программатора - отладчика. 2024, Juli
Anonim
STM32 CAN sučelje
STM32 CAN sučelje

Mrežna sabirnica kontrolera ili CAN sabirnica vrlo je učinkovit komunikacijski protokol zahvaljujući mogućnostima velike brzine, pouzdanosti na velikom dometu i otpornosti na buku. Iz tih razloga, CAN komunikacija postala je standard u automobilskim tehnologijama i okruženjima s velikom bukom. Uređaji na CAN sabirnici nazivaju se čvorovima. Svi čvorovi na CAN sabirnici povezani su paralelno, što znači da je svaki čvor povezan sa svim ostalim čvorovima na mreži. Jedna CAN sabirnica može imati do 115 čvorova odjednom, ovisno o brzini prijenosa poruke, ali za većinu aplikacija preporučuje se imati do 32 uređaja. Također se preporučuje da udaljenost između prvog i posljednjeg čvora bude udaljena manje od 40 metara.

Ovaj korak-po-korak vodič će vam pokazati kako postaviti CAN čvor pomoću STM32 mikrokontrolera, uključujući krug i jednostavan C kod za čitanje i pisanje na CAN sabirnicu

Supplies

Za svaki CAN čvor:

  • 1x ploča za razbijanje STM32 (Nucleo, Blue Pill, ostalo)
  • 1x IC primopredajnik CAN MCP2551
  • 1x 0,1µF kondenzator
  • 1x 120Ω otpornik
  • 1x 1kΩ otpornik
  • 1+ čitljiv ulaz (dugme, prekidač, potenciometar itd.) Ili izlaz (LED, MOSFET itd.)
  • 1x Dsub9 konektor

Korak 1: Krug primopredajnika

Krug primopredajnika
Krug primopredajnika

Za komunikaciju s CAN sabirnicom koristit ćemo IC primopredajnik MCP2551 CAN. IC djeluje kao posrednički par odašiljač/prijemnik za povezivanje STM32 na CAN sabirnicu. Krug za postavljanje ovog IC -a je prilično jednostavan, ali treba napomenuti nekoliko stvari:

  • CAN_RX (pin 4) i CAN_TX (pin 1) na čipu MCP2551 mogu ići samo na određene pinove na STM32.

    • Na STM32F1 Nucleo, spojite RX liniju na pin PB8 i TX liniju na pin PB9.
    • Na plavoj piluli STM32F1 spojite RX na pin PA11 i TX na pin PA12.
    • Imajte na umu da ove dodjele pinova imaju alternative. Pogledajte priručnike za mikrokontroler kako biste utvrdili koji pinovi su sposobni za CAN_RD i CAN_TD
    • Ako koristite Arduino ili ploču bez ugrađenog CAN komunikatora, bit će potreban IC čip MCP2515 za pretvaranje drugih protokola poruka u CAN.
  • CANL pin treba spojiti na druge CANL pinove drugih čvorova sabirnice. Isto vrijedi i za CANH igle.
  • Otpor od 120Ω preko CANH i CANL pinova potreban je samo ako je čvor terminalni čvor. To znači da se nalazi na kraju paralelnog ožičenja. Drugim riječima, CAN sabirnica treba imati samo dva otpornika od 120 Ω u sebi i oni bi trebali biti što dalje jedan od drugog.
  • Na kraju, 1kΩ otpornik na RS -u (pin 8) može se zamijeniti za 10kΩ otpornik za kontrolu vremena uspona/pada bitova CAN poruke. Za više detalja pogledajte tehnički list čipa MCP2551.

Korak 2: Čitanje i pisanje na CAN sabirnicu

Čitanje i pisanje na CAN sabirnicu
Čitanje i pisanje na CAN sabirnicu

Sada kada je primopredajnik spojen na STM32, možemo početi pisati poruke na CAN sabirnicu. Ovaj vodič s uputama neće detaljno ulaziti u kod STM32. Međutim, svakako provjerite naše kodove za primjere ovdje. Korištenje STM32 kao CAN čvora zahtijevat će datoteku zaglavlja CAN. Napisali smo vlastiti, koji se može pronaći na našem githubu ovdje. Ovdje ćemo dati kratak pregled procesa čitanja/pisanja.

Za čitanje sa CAN sabirnice prvo moramo znati ID CAN poruke. Svaka poruka treba imati jedinstveni ID, s nižim ID -ovima s većim prioritetom. Ovdje prikazani isječak koda čeka CAN poruku s ID -om 0x622. U našem sistemu, ako je prvi bit 6. bajta visok, tada želimo postaviti pin A10 visoko.

Prilikom pisanja CAN poruke moramo imati na umu da su CAN poruke višebajtne. Svaka pisana poruka mora imati ID i dužinu. U drugom prikazanom isječku koda zapisujemo podatke u svaki bajt, a zatim šaljemo poruku (ID i parametri dužine definirani su ranije u kodu).

Korak 3: Povezivanje čvorova

Povezivanje čvorova
Povezivanje čvorova

Prilikom povezivanja više CAN čvorova, posebnu pažnju treba posvetiti dužini kabela. Dva najudaljenija čvora mogu biti udaljena do 40 m jedan od drugog. Srednji čvorovi koji se spajaju na sabirnicu trebaju biti unutar 50 cm od glavnih sabirničkih linija.

CAN veze slijede industrijski standard korištenja Dsub9 konektora sa CANL linijom na pin 2 i CANH linijom na pin7. Opcija CANGND linija može ići na pin 3.

Korak 4: Napravite PCB

Napravite PCB
Napravite PCB

Prilikom usmjeravanja CAN signala na PCB, imajte na umu da je CAN diferencijalni signal, pa se stoga moraju pažljivo slijediti smjernice usmjeravanja za CANH i CANL.

Korak 5: Proširenje ploče

Proširenje odbora
Proširenje odbora

Spojite još neke čvorove, dodajte neke ulaze/izlaze i povežite sve njihove CANH i CANL pinove. Imajte na umu da svaki STM32 ili drugi mikrokontroler zahtijeva svoj vlastiti MCP2551 čip; ne mogu se deliti.

Uz to, pokušajte da vaše PCB -ove budu manje od onog prikazanog ovdje

Korak 6: Naručite svoje štampane ploče od JLCPCB -a

Naručite svoje štampane ploče od JLCPCB
Naručite svoje štampane ploče od JLCPCB

JLCPCB nudi brzu, visokokvalitetnu uslugu po vrlo povoljnim cijenama. Nabavite 5 ploča, bilo koje boje s gomilom prilagodbi, za samo 2 USD! A ako vam je prva narudžba, nabavite 10 ploča po istoj cijeni!

Samo učitajte svoje gerbere i odmah zatražite ponudu! Pošaljite svoju narudžbu i vaše ploče će biti pregledane za proizvodnju u roku od sat vremena. Nakon što platite, svoje visokokvalitetne ploče možete očekivati za tri dana!

Provjerite ovdje

Korak 7: Uzmite svoje ploče

Uzmite svoje ploče!
Uzmite svoje ploče!

Ogromna zahvala JLCPCB -u za sponzorisanje ovog projekta. JLCPCB (ShenzhenJLC Electronics Co., Ltd.), najveće je poduzeće za prototip PCB-a u Kini i visokotehnološki proizvođač specijaliziran za brzo prototipiranje PCB-a i proizvodnju male serije PCB-a. Bili su ljubazni da UBC Solar isporuče nove PCB-ove za naš trkački automobil na solarni pogon. Naručili smo u petak, a ploče dobili u srijedu!

Preporučuje se: