Kazalo:

Vmesnik STM32 CAN: 7 korakov
Vmesnik STM32 CAN: 7 korakov

Video: Vmesnik STM32 CAN: 7 korakov

Video: Vmesnik STM32 CAN: 7 korakov
Video: STM32 настройка CAN 2024, Julij
Anonim
Vmesnik STM32 CAN
Vmesnik STM32 CAN

Vodilo omrežja krmilnika ali vodilo CAN je zaradi svojih zmogljivosti visoke hitrosti, zanesljivosti na dolge razdalje in odpornosti proti hrupu zelo učinkovit komunikacijski protokol. Zaradi tega je komunikacija CAN postala standard v avtomobilskih tehnologijah in okoljih z visokim hrupom. Naprave na vodilu CAN se imenujejo vozlišča. Vsa vozlišča na vodilu CAN so povezana vzporedno, kar pomeni, da je vsako vozlišče povezano z vsemi drugimi vozlišči v omrežju. Eno vodilo CAN ima lahko do 115 vozlišč hkrati, odvisno od hitrosti prenosa sporočil, vendar je za večino aplikacij priporočljivo imeti do 32 naprav. Priporočljivo je tudi, da je razdalja med prvim in zadnjim vozliščem na razdalji manj kot 40 metrov.

Ta vadnica po korakih vam bo pokazala, kako z mikrokrmilnikom STM32 nastaviti vozlišče CAN, vključno s vezjem in preprosto kodo C za branje in pisanje na vodilo CAN

Zaloge

Za vsako vozlišče CAN:

  • 1x prelomna plošča STM32 (Nucleo, Blue Pill, drugo)
  • 1x IC oddajnik MCP2551 CAN
  • 1x 0,1 μF kondenzator
  • 1x 120Ω upor
  • 1x 1 kΩ upor
  • 1+ berljiv vhod (gumb, stikalo, potenciometer itd.) Ali izhod (LED, MOSFET itd.)
  • 1x priključek Dsub9

1. korak: Oddajniško vezje

Oddajniško vezje
Oddajniško vezje

Za komunikacijo z vodilom CAN bomo uporabili IC oddajnik IC MCP2551 CAN. IC deluje kot vmesni par oddajnik/sprejemnik za povezavo STM32 z vodilom CAN. Vezje za nastavitev tega IC je precej preprosto, vendar je treba opozoriti na nekaj stvari:

  • CAN_RX (pin 4) in CAN_TX (pin 1) na čipu MCP2551 lahko preideta samo na določene nožice na STM32.

    • Na STM32F1 Nucleo priključite linijo RX na pin PB8 in linijo TX na pin PB9.
    • Na modri tabletki STM32F1 priključite RX na pin PA11 in TX na pin PA12.
    • Upoštevajte, da imajo te dodelitve pinov alternative. Oglejte si priročnike za mikrokrmilnik, da ugotovite, kateri zatiči so sposobni CAN_RD in CAN_TD
    • Če uporabljate Arduino ali ploščo brez vgrajenega komunikatorja CAN, bo za pretvorbo drugih protokolov sporočil v CAN potreben čip MCP2515 IC.
  • Zatič CANL je treba povezati z drugimi zatiči CANL drugih vozlišč vodila. Enako velja za zatiče CANH.
  • Upor 120Ω preko zatičev CANH in CANL je potreben le, če je vozlišče terminalno vozlišče. To pomeni, da je na koncu vzporednega ožičenja. Z drugimi besedami, vodilo CAN mora imeti v sebi le dva upora 120Ω in morata biti čim bolj oddaljena drug od drugega.
  • Nazadnje, 1kΩ upor na RS (pin 8) lahko zamenjamo za 10kΩ upor za nadzor časa vzpona/padca sporočilnih bitov CAN. Za več podrobnosti glejte podatkovni list čipa MCP2551.

2. korak: Branje in pisanje na vodilo CAN

Branje in pisanje na vodilo CAN
Branje in pisanje na vodilo CAN

Zdaj, ko je vezje oddajnika povezano s STM32, lahko začnemo pisati sporočila na vodilo CAN. Ta priročnik z navodili ne bo poglabljal kode STM32. Vsekakor pa si oglejte primere naše kode tukaj. Če uporabljate STM32 kot vozlišče CAN, boste potrebovali datoteko glave CAN. Napisali smo svojega, ki ga najdete na našem githubu tukaj. Tukaj bomo dali kratek pregled procesa branja/pisanja.

Za branje iz vodila CAN moramo najprej poznati ID sporočila CAN. Vsako sporočilo mora imeti edinstven ID z nižjimi ID -ji z višjo prednostjo. Tu prikazani delček kode čaka na sporočilo CAN z ID 0x622. V našem sistemu, če je prvi bit šestega bajta visok, želimo pin A10 nastaviti visoko.

Pri pisanju sporočila CAN se moramo spomniti, da so sporočila CAN večbajtna. Vsako pisno sporočilo mora imeti ID in dolžino. V drugi prikazani delček kode zapišemo podatke v vsak bajt, nato pošljemo sporočilo (ID in parametri dolžine so opredeljeni prej v kodi).

3. korak: Povezovanje vozlišč

Povezovalna vozlišča
Povezovalna vozlišča

Pri priključitvi več vozlišč CAN je treba posebno pozornost nameniti dolžini kablov. Dva najbolj oddaljena vozlišča sta lahko med seboj oddaljena do 40 m. Srednja vozlišča, ki povezujejo avtobus, morajo biti znotraj 50 cm od glavnih avtobusnih linij.

Povezave CAN sledijo industrijskemu standardu uporabe priključka Dsub9 z linijo CANL na nožici 2 in linijo CANH na nožici 7. Možnost CANGND line lahko gre na pin 3.

4. korak: Naredite tiskano vezje

Naredite tiskano vezje
Naredite tiskano vezje

Ko usmerjate signale CAN na tiskano vezje, ne pozabite, da je CAN diferencialni signal, zato je treba skrbno upoštevati smernice usmerjanja za CANH in CANL.

5. korak: razširitev deske

Razširitev odbora
Razširitev odbora

Združite še nekaj vozlišč, dodajte nekaj vhodov/izhodov in povežite vse njihove zatiče CANH in CANL. Upoštevajte, da vsak STM32 ali drug mikrokrmilnik potrebuje svoj čip MCP2551; jih ni mogoče deliti.

Ob tem poskusite ohraniti svoje PCB manjše od prikazanega tukaj

6. korak: Naročite svoje tiskane vezje pri JLCPCB

Naročite svoje tiskane vezje pri JLCPCB
Naročite svoje tiskane vezje pri JLCPCB

JLCPCB ponuja hitre, visoko kakovostne storitve po zelo ugodnih cenah. Pridobite 5 plošč, katere koli barve s številnimi prilagoditvami, za samo 2 USD! In če je vaše prvo naročilo, dobite 10 desk za isto ceno!

Prenesite svoje gerberje in takoj dobite ponudbo! Predložite svoje naročilo in vaše plošče bodo pregledane za proizvodnjo v eni uri. Ko boste plačali, lahko pričakujete svoje visoko kakovostne plošče v treh dneh!

Preverite tukaj

7. korak: Pridobite svoje deske

Pridobite svoje deske!
Pridobite svoje deske!

Velika zahvala JLCPCB za sponzorstvo tega projekta. JLCPCB (ShenzhenJLC Electronics Co., Ltd.), je največje podjetje za izdelavo prototipov PCB na Kitajskem in visokotehnološki proizvajalec, specializiran za hitro izdelavo prototipov PCB in proizvodnjo majhnih PCB. Bili so prijazni, da so UBC Solarju dali nove PCB-je za naš dirkalnik na sončno energijo. Naročilo smo oddali v petek, deske pa dobili v sredo!

Priporočena: