Innehållsförteckning:

STM32 CAN -gränssnitt: 7 steg
STM32 CAN -gränssnitt: 7 steg

Video: STM32 CAN -gränssnitt: 7 steg

Video: STM32 CAN -gränssnitt: 7 steg
Video: Металлизация переходных отверстий в реальной работе. Разработка индикатора CAN шины на STM32F103. 2024, November
Anonim
STM32 CAN -gränssnitt
STM32 CAN -gränssnitt

Controller Area Network -bussen, eller CAN -bussen, är ett mycket effektivt kommunikationsprotokoll tack vare dess snabba funktioner, långdistanssäkerhet och brusimmunitet. Av dessa skäl har CAN -kommunikation blivit standarden inom bilteknik och miljöer med hög ljudnivå. Enheter på CAN -bussen kallas noder. Alla noder på CAN -bussen är parallellt anslutna, vilket innebär att varje nod är ansluten till alla andra noder i nätverket. En enda CAN -buss kan ha upp till 115 noder samtidigt, beroende på hastigheten för meddelandeöverföring, men för de flesta applikationer rekommenderas det att ha upp till 32 enheter. Det rekommenderas också att hålla längden mellan den första och sista noden med mindre än 40 meters mellanrum.

Denna steg-för-steg-handledning visar dig hur du konfigurerar en CAN-nod med STM32-mikrokontrollern, inklusive kretsen och enkel C-kod för att läsa och skriva till CAN-bussen

Tillbehör

För varje CAN -nod:

  • 1x STM32 breakout board (Nucleo, Blue Pill, andra)
  • 1x MCP2551 CAN -sändtagare IC
  • 1x 0,1µF kondensator
  • 1x 120Ω motstånd
  • 1x 1kΩ motstånd
  • 1+ läsbar ingång (knapp, omkopplare, potentiometer, etc.) eller utgång (LED, MOSFET, etc.)
  • 1x Dsub9 -kontakt

Steg 1: Transceiverkretsen

Transceiverkretsen
Transceiverkretsen

För att kommunicera med CAN -bussen använder vi MCP2551 CAN -sändtagaren IC. IC fungerar som ett mellanliggande sändar-/mottagarpar för att ansluta STM32 till CAN -bussen. Kretsen för att konfigurera denna IC är ganska enkel, men det finns några saker att notera:

  • CAN_RX (stift 4) och CAN_TX (stift 1) på MCP2551 -chipet kan bara gå till vissa stift på STM32.

    • På STM32F1 Nucleo, anslut RX -linjen till stift PB8 och TX -linjen till stift PB9.
    • På STM32F1 blå piller, anslut RX till stift PA11 och TX till stift PA12.
    • Observera att dessa pin -tilldelningar har alternativ. Se mikrokontrollerhandböckerna för att avgöra vilka stift som kan CAN_RD och CAN_TD
    • Om du använder en Arduino eller ett kort utan en CAN -kommunikator inbyggd, krävs MCP2515 IC -chip för att konvertera andra meddelandeprotokoll till CAN.
  • CANL -stiftet bör anslutas till de andra CANL -stiften på de andra bussnoderna. Detsamma gäller CANH -stiften.
  • 120Ω -motståndet över CANH- och CANL -stiften krävs endast om noden är en terminalnod. Detta innebär att det är i slutet av parallellanslutningskablar. Med andra ord ska CAN -bussen bara ha två 120Ω motstånd i sig, och de bör vara så långt ifrån varandra som möjligt.
  • Slutligen kan 1kΩ -motståndet på RS (stift 8) bytas ut mot ett 10kΩ -motstånd för att styra stigande/fallande tid för CAN -meddelandebitarna. Se databladet MCP2551 för mer information.

Steg 2: Läsa och skriva till CAN -bussen

Läser och skriver till CAN -bussen
Läser och skriver till CAN -bussen

Nu när transceiverkretsen är ansluten till STM32 kan vi börja skriva meddelanden till CAN -bussen. Denna instruerbara guide kommer inte att fördjupa sig i STM32-koden. Se dock till att kolla in vår kod för exempel här. Att använda STM32 som en CAN -nod kräver en CAN -huvudfil. Vi skrev vår egen, som finns på vår github här. Här kommer vi att ge en kort översikt över läs-/skrivprocessen.

För att läsa från CAN -bussen måste vi först känna till ID för CAN -meddelandet. Varje meddelande bör ha ett unikt ID, med lägre ID: er som har högre prioritet. Kodavsnittet som visas här väntar på ett CAN -meddelande med ID 0x622. I vårt system, om den första biten i den 6: e byten är hög, vill vi sätta stift A10 högt.

När vi skriver ett CAN-meddelande måste vi komma ihåg att CAN-meddelanden är flera byte. Varje skriftligt meddelande måste ha ett ID och en längd. I det andra kodavsnittet som visas skriver vi data till varje byte och skickar sedan meddelandet (ID- och längdparametrarna definieras tidigare i koden).

Steg 3: Anslut noder

Anslutande noder
Anslutande noder

När du ansluter flera CAN -noder bör du vara noga med längden på kablarna. De två längsta noder kan vara upp till 40 meter från varandra. Mittnoder som ansluter till bussen bör vara inom 50 cm från huvudbusslinjerna.

CAN -anslutningar följer en industristandard för att använda en Dsub9 -kontakt med CANL -linjen på stift 2 och CANH -linjen på stift7. Alternativet CANGND line kan gå på stift 3.

Steg 4: Gör kretskortet

Gör kretskortet
Gör kretskortet

När du dirigerar CAN -signaler på ett kretskort, kom ihåg att CAN är en differentiell signal, och därför bör routningsriktlinjer för CANH och CANL följas noggrant.

Steg 5: Utöka styrelsen

Utökar styrelsen
Utökar styrelsen

Släng ihop några fler noder, lägg till några ingångar/utgångar och anslut alla deras CANH- och CANL -stift. Observera att varje STM32 eller annan mikrokontroller kräver sitt eget MCP2551 -chip; de kan inte delas.

Med det sagt, försök att hålla dina kretskort mindre än det som visas här

Steg 6: Beställ dina kretskort från JLCPCB

Beställ dina kretskort från JLCPCB
Beställ dina kretskort från JLCPCB

JLCPCB erbjuder snabb service av hög kvalitet till mycket rimliga priser. Få 5 brädor, valfri färg med massor av anpassning, för endast $ 2! Och om det är din första beställning, få 10 brädor för samma pris!

Ladda bara upp dina gerber och få en omedelbar offert! Skicka din beställning och dina brädor kommer att granskas för produktion inom en timme. När du har betalat kan du förvänta dig dina högkvalitativa brädor på så snart som tre dagar!

Kolla in det här

Steg 7: Skaffa dina styrelser

Skaffa dina styrelser!
Skaffa dina styrelser!

Stort skrik till JLCPCB för att sponsra detta projekt. JLCPCB (ShenzhenJLC Electronics Co., Ltd.), är det största PCB-prototypföretaget i Kina och en högteknologisk tillverkare som specialiserat sig på snabba PCB-prototyper och produktion av små partier. De var vänliga nog att förse UBC Solar med våra nya kretskort för vår soldrivna racerbil. Vi gjorde vår beställning på fredagen och fick brädorna på onsdagen!

Rekommenderad: