Obsah:
- Zásoby
- Krok 1: Obvod transceiveru
- Krok 2: Čtení a zápis na sběrnici CAN
- Krok 3: Připojení uzlů
- Krok 4: Vyrobte PCB
- Krok 5: Rozšíření desky
- Krok 6: Objednejte si DPS z JLCPCB
- Krok 7: Pořiďte si desky
Video: Rozhraní STM32 CAN: 7 kroků
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-30 08:21
Síťová sběrnice Controller Area Network neboli CAN je velmi účinný komunikační protokol díky vysokorychlostním možnostem, spolehlivosti na dlouhou vzdálenost a odolnosti proti rušení. Z těchto důvodů se komunikace CAN stala standardem v automobilových technologiích a prostředí s vysokou hlučností. Zařízení na sběrnici CAN se nazývají uzly. Všechny uzly na sběrnici CAN jsou zapojeny paralelně, což znamená, že každý uzel je připojen ke všem ostatním uzlům v síti. Jedna sběrnice CAN může mít až 115 uzlů najednou, v závislosti na rychlosti přenosu zpráv, ale pro většinu aplikací se doporučuje mít až 32 zařízení. Doporučuje se také ponechat vzdálenost mezi prvním a posledním uzlem méně než 40 metrů od sebe.
Tento podrobný tutoriál vám ukáže, jak nastavit uzel CAN pomocí mikrokontroléru STM32, včetně obvodu a jednoduchého kódu C pro čtení a zápis na sběrnici CAN
Zásoby
Pro každý uzel CAN:
- 1x STM32 breakout board (Nucleo, Blue Pill, ostatní)
- 1x IC MCP2551 CAN transceiver
- 1 x 0,1 µF kondenzátor
- 1x 120Ω odpor
- 1x 1kΩ odpor
- 1+ čitelný vstup (tlačítko, spínač, potenciometr atd.) Nebo výstup (LED, MOSFET atd.)
- 1x konektor Dsub9
Krok 1: Obvod transceiveru
Ke komunikaci se sběrnicí CAN použijeme IC transceiveru MCP2551 CAN. Integrovaný obvod funguje jako přechodný pár vysílač/přijímač pro připojení STM32 ke sběrnici CAN. Obvod pro nastavení tohoto IC je poměrně jednoduchý, ale je třeba si uvědomit několik věcí:
-
CAN_RX (pin 4) a CAN_TX (pin 1) na čipu MCP2551 mohou jít pouze na určité piny na STM32.
- Na STM32F1 Nucleo připojte linku RX na pin PB8 a linku TX na pin PB9.
- Na modré pilulce STM32F1 připojte RX ke kolíku PA11 a TX ke kolíku PA12.
- Všimněte si, že tato přiřazení pinů mají alternativy. V příručkách k mikrokontroléru určete, které piny jsou schopné CAN_RD a CAN_TD
- Pokud používáte Arduino nebo desku bez integrovaného komunikátoru CAN, bude k převodu dalších protokolů zpráv na CAN vyžadován IC čip MCP2515.
- Kolík CANL by měl být připojen k ostatním pinům CANL ostatních uzlů sběrnice. To samé platí pro piny CANH.
- Odpor 120Ω přes piny CANH a CANL je vyžadován pouze v případě, že uzel je koncový uzel. To znamená, že je na konci paralelního zapojení. Jinými slovy, sběrnice CAN by měla mít pouze dva 120Ω odpory a měly by být od sebe co nejdál.
- A konečně, odpor 1kΩ na RS (pin 8) lze vyměnit za odpor 10kΩ pro ovládání doby náběhu/klesání bitů zprávy CAN. Další podrobnosti najdete v datovém listu čipu MCP2551.
Krok 2: Čtení a zápis na sběrnici CAN
Nyní, když je obvod transceiveru připojen k STM32, můžeme začít psát zprávy na sběrnici CAN. Tato instrukční příručka nepůjde do hloubky do kódu STM32. Nezapomeňte se však podívat na náš kód, kde najdete příklady zde. Použití STM32 jako uzlu CAN bude vyžadovat soubor záhlaví CAN. Sepsali jsme vlastní, který najdete na našem githubu zde. Zde poskytneme stručný přehled procesu čtení/zápisu.
Abychom mohli číst ze sběrnice CAN, musíme nejprve znát ID zprávy CAN. Každá zpráva by měla mít jedinečné ID, přičemž nižší ID má vyšší prioritu. Zde zobrazený fragment kódu čeká na zprávu CAN s ID 0x622. V našem systému, pokud je první bit 6. bajtu vysoký, pak chceme nastavit pin A10 vysoko.
Při psaní zprávy CAN musíme pamatovat na to, že zprávy CAN jsou vícebajtové. Každá písemná zpráva musí mít ID a délku. Ve druhém ukázaném fragmentu kódu zapíšeme data do každého bajtu a poté odešleme zprávu (ID a parametry délky jsou definovány dříve v kódu).
Krok 3: Připojení uzlů
Při připojování více uzlů CAN je třeba věnovat pozornost délce kabelů. Dva nejvzdálenější uzly mohou být od sebe vzdáleny až 40 m. Prostřední uzly připojující se k autobusu by měly být do 50 cm od hlavních autobusových linek.
Připojení CAN se řídí průmyslovým standardem použití konektoru Dsub9 s linkou CANL na pinu 2 a linkou CANH na pinu 7. Volitelná linka CANGND může jít na pin 3.
Krok 4: Vyrobte PCB
Při směrování signálů CAN na desku plošných spojů mějte na paměti, že CAN je diferenciální signál, a proto je třeba pečlivě dodržovat pokyny pro směrování pro CANH a CANL.
Krok 5: Rozšíření desky
Hoďte několik dalších uzlů dohromady, přidejte některé vstupy/výstupy a připojte všechny jejich piny CANH a CANL. Každý STM32 nebo jiný mikrokontrolér vyžaduje vlastní čip MCP2551; nelze je sdílet.
S tím se snažte udržet své PCB menší než zde zobrazené
Krok 6: Objednejte si DPS z JLCPCB
JLCPCB nabízí rychlé a vysoce kvalitní služby za velmi rozumné ceny. Získejte 5 desek libovolné barvy s tunami přizpůsobení za pouhé 2 $! A pokud je to vaše první objednávka, získejte 10 desek za stejnou cenu!
Stačí nahrát gerbery a získat okamžitou nabídku! Odešlete objednávku a vaše desky budou do hodiny zkontrolovány z hlediska výroby. Jakmile zaplatíte, můžete své vysoce kvalitní desky očekávat již za tři dny!
Podívejte se na to zde
Krok 7: Pořiďte si desky
Obrovský výkřik JLCPCB za sponzorování tohoto projektu. JLCPCB (ShenzhenJLC Electronics Co. Byli tak laskaví, že poskytli UBC Solar naše nové PCB pro naše závodní auto na solární pohon. V pátek jsme zadali objednávku a ve středu jsme dostali desky!
Doporučuje:
Rozhraní s LCD displejem M4 Zahrnutí: 5 kroků
Propojení s LCD displejem M4Inclusion: Tento tutoriál nám umožní ovládat LCD displej přes Wi-Fi z našeho smartphonu Pokud nemáme drivermall, můžeme použít arduino, ale pod odkazem pro vývoj Drivemall. upřednostňovat Drivemall před cla
Kompletní sada webového rozhraní Python pro PhidgetSBC3: 6 kroků
Kompletní sada webového rozhraní Python pro PhidgetSBC3: Deska PhidgetSBC3 je plně funkční jednodeskový počítač se systémem Debain Linux. Je podobný malinovému Pi, ale má 8 analogových senzorových vstupů a 8 digitálních vstupů a 8 digitálních výstupů. Dodává se s webovým serverem a webovou aplikací, aby
Rozhraní 8051 s DS1307 RTC a zobrazením časového razítka na LCD: 5 kroků
Rozhraní 8051 s DS1307 RTC a zobrazením časového razítka na LCD: V tomto tutoriálu jsme vám vysvětlili, jak můžeme propojit mikrokontrolér 8051 s ds1307 RTC. Zde zobrazujeme čas RTC v lcd pomocí simulace proteus
Jammarduino DUE - Rozhraní PC -Jamma pro arkádové skříně: 6 kroků
Rozhraní Jammarduino DUE - DIY rozhraní PC - Jamma pro arkádové skříně: Tento návod vám ukáže, jak vytvořit jednoduchý štít pro Arduino DUE pro propojení skutečného arkádového stroje s CRT s nízkým rozlišením a konektorem jamma k vašemu PC. Hlavní výhody štítu jsou: - pro zesílení video signálu vycházejícího z videa
Rozhraní Arduino Mega s modulem GPS (Neo-6M): 8 kroků
Rozhraní Arduino Mega s modulem GPS (Neo-6M): V tomto projektu jsem ukázal, jak propojit modul GPS (Neo-6M) s Arduino Mega. Knihovna TinyGPS se používá k zobrazení dat zeměpisné délky a šířky a TinyGPS ++ se používá k zobrazení zeměpisné šířky, délky, nadmořské výšky, rychlosti a počtu satelitních