Obsah:
- Zásoby
- Krok 1: Obvod transceiveru
- Krok 2: Čítanie a zápis do zbernice CAN
- Krok 3: Pripojenie uzlov
- Krok 4: Vyrobte si DPS
- Krok 5: Rozšírenie rady
- Krok 6: Objednajte si DPS z JLCPCB
- Krok 7: Získajte svoje dosky
Video: Rozhranie STM32 CAN: 7 krokov
2024 Autor: John Day | [email protected]. Naposledy zmenené: 2024-01-30 11:58
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
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
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
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
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
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
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
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:
Rozhranie kapacitného snímača odtlačkov prstov s Arduino UNO: 7 krokov
Rozhranie kapacitného snímača odtlačkov prstov s Arduino UNO: Hej, čo sa deje, chlapci! Akarsh tu od CETech. Dnes do našich projektov pridáme ochrannú vrstvu. Nebojte sa, nebudeme menovať žiadnych osobných strážcov za to isté. Bude to roztomilý, dobre vyzerajúci snímač odtlačkov prstov od DFRobot. Takže
Rozhranie s LCD displejom M4 Zahrnutie: 5 krokov
Rozhranie s LCD displejom M4 Zahrnutie: Tento tutoriál nám umožní ovládať LCD displej prostredníctvom Wi-Fi z nášho smartfónu. Ak nemáme drivermall, môžeme použiť arduino, ale pod odkazom na vývoj Drivemall. uprednostňovať Drivemall pred klanom
Rozhranie 8051 s DS1307 RTC a zobrazením časovej pečiatky na LCD: 5 krokov
Rozhranie 8051 s DS1307 RTC a zobrazením časovej pečiatky na LCD: V tomto návode sme vám vysvetlili, ako môžeme prepojiť mikrokontrolér 8051 s ds1307 RTC. Tu zobrazujeme čas RTC v LCD pomocou simulácie proteusu
Jammarduino DUE - Rozhranie PC - Jamma pre arkádové skrine: 6 krokov
Rozhranie Jammarduino DUE - DIY rozhranie PC - Jamma pre arkádové skrine: Tento návod vám ukáže, ako vytvoriť jednoduchý štít pre Arduino DUE na prepojenie skutočného arkádového stroja s nízkym rozlíšením CRT a konektorom jamma s počítačom. Hlavné úlohy štítu sú: - na zosilnenie video signálu vychádzajúceho z videa
Rozhranie teplotného senzora DS18B20 s Arduino a ESP8266: 8 krokov
Rozhranie Snímač teploty DS18B20 s Arduino a ESP8266: Hej, čo sa deje, chlapci! Akarsh tu od CETech. Dnes do nášho arzenálu pridáme nový snímač známy ako teplotný snímač DS18B20. Je to teplotný senzor podobný DHT11, ale má inú sadu aplikácií. Porovnáme to s