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, Srpanj
Anonim
STM32 CAN sučelje
STM32 CAN sučelje

Sabirnica mrežnog područja kontrolera ili CAN sabirnica vrlo je učinkovit komunikacijski protokol zahvaljujući mogućnostima velike brzine, pouzdanosti na velikim udaljenostima i otpornosti na buku. Zbog toga je CAN komunikacija postala 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 zadnjeg č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

Pribor

Za svaki CAN čvor:

  • 1x ploča za razbijanje STM32 (Nucleo, Blue Pill, ostalo)
  • 1x IC primopredajnik MCP2551 CAN
  • 1x 0,1 μF kondenzator
  • 1x 120Ω otpornik
  • 1x 1 kΩ otpornik
  • 1+ čitljiv ulaz (gumb, 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č/prijamnik za povezivanje STM32 na CAN sabirnicu. Krug za postavljanje ovog IC -a prilično je jednostavan, ali potrebno je 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 tableti 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, IC čip MCP2515 bit će potreban 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Ω, a oni bi trebali biti što dalje jedan od drugog.
  • Na kraju, 1kΩ otpornik na RS (pin 8) može se zamijeniti za 10kΩ otpornik za upravljanje vremenom porasta/pada bitova CAN poruke. Za više pojedinosti 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 sklop primopredajnika 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 ovdje može pronaći na našem githubu. Ovdje ćemo dati kratak pregled procesa čitanja/pisanja.

Za čitanje s 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 poruku CAN s ID -om 0x622. U našem sustavu, ako je prvi bit 6. bajta visok, tada želimo pin A10 postaviti visoko.

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

Korak 3: Povezivanje čvorova

Spojni čvorovi
Spojni čvorovi

Prilikom povezivanja više CAN čvorova, posebnu pozornost treba posvetiti duljini kabela. Dva najudaljenija čvora mogu biti udaljena jedan do drugog do 40 m. Srednji čvorovi koji se spajaju na sabirnicu trebali bi biti unutar 50 cm od glavnih autobusnih linija.

CAN veze slijede industrijski standard korištenja Dsub9 konektora s 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 Uprave
Proširenje Uprave

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

S tim u vezi, pokušajte da vaše PCB -ove budu manje od onog prikazanog ovdje

Korak 6: Naručite svoje PCB -ove od JLCPCB -a

Naručite svoje PCB -ove od JLCPCB -a
Naručite svoje PCB -ove od JLCPCB -a

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 to 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 će ploče biti pregledane za proizvodnju u roku od sat vremena. Nakon što platite, svoje visokokvalitetne ploče možete očekivati za tri dana!

Ovdje provjerite

Korak 7: Uzmite svoje ploče

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

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

Preporučeni: