Obsah:

Rozhranie STM32 CAN: 7 krokov
Rozhranie STM32 CAN: 7 krokov

Video: Rozhranie STM32 CAN: 7 krokov

Video: Rozhranie STM32 CAN: 7 krokov
Video: STM32. Урок 1. Семейства микроконтроллеров STM32. (исправленный звук по ссылке ниже) 2024, November
Anonim
Rozhranie STM32 CAN
Rozhranie STM32 CAN

Zbernica Controller Area Network alebo zbernica CAN je veľmi efektívny komunikačný protokol vďaka svojim vysokorýchlostným možnostiam, spoľahlivosti na dlhé vzdialenosti a odolnosti voči šumu. Z týchto dôvodov sa komunikácia CAN stala štandardom v automobilových technológiách a prostrediach s vysokým hlukom. Zariadenia na zbernici CAN sa nazývajú uzly. Všetky uzly na zbernici CAN sú zapojené paralelne, to znamená, že každý uzol je prepojený so všetkými ostatnými uzlami v sieti. Jedna zbernica CAN môže mať až 115 uzlov naraz, v závislosti od rýchlosti prenosu správ, ale pre väčšinu aplikácií sa odporúča mať až 32 zariadení. Odporúča sa tiež dodržať vzdialenosť medzi prvým a posledným uzlom menej ako 40 metrov.

Tento podrobný tutoriál vám ukáže, ako nastaviť uzol CAN pomocou mikrokontroléra STM32 vrátane obvodu a jednoduchého kódu C na čítanie a zápis na zbernicu CAN.

Zásoby

Pre každý uzol CAN:

  • 1x oddeľovacia doska STM32 (Nucleo, Blue Pill, ostatné)
  • 1x IC MCP2551 CAN transceiver
  • 1 x 0,1 µF kondenzátor
  • 1x 120Ω odpor
  • 1x 1kΩ odpor
  • 1+ čitateľný vstup (tlačidlo, spínač, potenciometer atď.) Alebo výstup (LED, MOSFET atď.)
  • 1x konektor Dsub9

Krok 1: Obvod transceiveru

Obvod transceiveru
Obvod transceiveru

Na komunikáciu so zbernicou CAN použijeme IC transceiveru MCP2551 CAN. IC slúži ako prechodný pár vysielač/prijímač na pripojenie STM32 k zbernici CAN. Okruh na nastavenie tohto integrovaného obvodu je pomerne jednoduchý, je však potrebné poznamenať niekoľko vecí:

  • CAN_RX (pin 4) a CAN_TX (pin 1) na čipe MCP2551 môžu ísť iba na určité piny na STM32.

    • Na zariadení STM32F1 Nucleo pripojte linku RX k pinu PB8 a linku TX k kolíku PB9.
    • Na modrej pilulke STM32F1 pripojte RX k pinu PA11 a TX k pinu PA12.
    • Tieto priradenia pinov majú alternatívy. V príručkách k mikrokontroléru zistite, ktoré piny sú schopné CAN_RD a CAN_TD
    • Ak používate Arduino alebo dosku bez vstavaného komunikátora CAN, na prevod iných protokolov správ na CAN bude potrebný čip IC MCP2515.
  • Kolík CANL by mal byť pripojený k iným kolíkom CANL ostatných uzlov zbernice. To isté platí pre kolíky CANH.
  • Odpor 120Ω na kolíkoch CANH a CANL je potrebný iba vtedy, ak je uzlom koncový uzol. To znamená, že je na konci paralelného zapojenia. Inými slovami, zbernica CAN by mala mať iba dva 120Ω odpory a mali by byť od seba čo najďalej.
  • Nakoniec je možné odpor 1kΩ na RS (kolík 8) vymeniť za odpor 10kΩ, aby sa riadil čas nárastu/klesania bitov správy CAN. Ďalšie podrobnosti nájdete v technickom liste čipu MCP2551.

Krok 2: Čítanie a zápis do zbernice CAN

Čítanie a zápis do zbernice CAN
Čítanie a zápis do zbernice CAN

Teraz, keď je obvod vysielača a prijímača pripojený k STM32, môžeme začať písať správy na zbernicu CAN. Tento návod, ktorý je možné inštruovať, nepôjde podrobne do kódu STM32. Nezabudnite si však pozrieť príklady v tomto kóde. Použitie STM32 ako uzla CAN bude vyžadovať hlavičkový súbor CAN. Napísali sme svoje vlastné, ktoré nájdete na našom githube tu. Tu poskytneme stručný prehľad o procese čítania/zápisu.

Na čítanie zo zbernice CAN potrebujeme najskôr poznať ID správy CAN. Každá správa by mala mať jedinečný ID, pričom nižšie ID by mali mať vyššiu prioritu. Tu zobrazený útržok kódu čaká na správu CAN s ID 0x622. V našom systéme, ak je prvý bit 6. bajtu vysoký, potom chceme nastaviť pin A10 na vysoký.

Pri písaní správy CAN musíme mať na pamäti, že správy CAN sú viacbajtové. Každá písomná správa musí mať ID a dĺžku. V druhom zobrazenom úryvku kódu zapíšeme údaje do každého bajtu a potom odošleme správu (ID a parametre dĺžky sú definované skôr v kóde).

Krok 3: Pripojenie uzlov

Pripojovacie uzly
Pripojovacie uzly

Pri pripájaní viacerých uzlov CAN by ste mali venovať pozornosť dĺžke káblov. Dva najvzdialenejšie uzly môžu byť od seba vzdialené až 40 metrov. Stredné uzly pripájajúce sa k autobusu by mali byť do 50 cm od hlavných autobusových liniek.

Pripojenia CAN sa riadia priemyselným štandardom použitia konektora Dsub9 s linkou CANL na pine 2 a linkou CANH na pine 7. Voliteľná linka CANGND môže ísť na pin 3.

Krok 4: Vyrobte si DPS

Vyrobte si DPS
Vyrobte si DPS

Pri smerovaní signálov CAN na dosku plošných spojov pamätajte na to, že CAN je diferenciálny signál, a preto by ste mali starostlivo dodržiavať pokyny pre smerovanie pre CANH a CANL.

Krok 5: Rozšírenie rady

Rozširovanie rady
Rozširovanie rady

Spojte ďalšie uzly, pridajte niektoré vstupy/výstupy a prepojte všetky ich piny CANH a CANL. Každý STM32 alebo iný mikrokontrolér vyžaduje vlastný čip MCP2551; nemožno ich zdieľať.

Vzhľadom na to sa snažte udržať svoje DPS menšie, ako je tu uvedené

Krok 6: Objednajte si DPS z JLCPCB

Objednajte si PCB z JLCPCB
Objednajte si PCB z JLCPCB

JLCPCB ponúka rýchle a vysoko kvalitné služby za veľmi rozumné ceny. Získajte 5 dosiek, akejkoľvek farby s množstvom prispôsobení, len za 2 doláre! A ak je to vaša prvá objednávka, získajte 10 dosiek za rovnakú cenu!

Stačí nahrať svoje Gerbery a získať okamžitú cenovú ponuku! Odošlite objednávku a do hodiny skontrolujeme výrobu vašich dosiek. Po zaplatení môžete svoje vysoko kvalitné dosky očakávať už do troch dní!

Pozrite sa sem

Krok 7: Získajte svoje dosky

Získajte svoje dosky!
Získajte svoje dosky!

Obrovský krik na JLCPCB za sponzorovanie tohto projektu. JLCPCB (ShenzhenJLC Electronics Co., Ltd.) je najväčší prototypový podnik plošných spojov v Číne a výrobca špičkových technológií špecializujúci sa na rýchle prototypovanie plošných spojov a malosériovú výrobu plošných spojov. Boli tak láskaví, že spoločnosti UBC Solar poskytli naše nové PCB pre naše závodné auto poháňané slnečnou energiou. V piatok sme zadali objednávku a v stredu sme dostali dosky.

Odporúča: