Sisukord:

STM32 CAN -liides: 7 sammu
STM32 CAN -liides: 7 sammu

Video: STM32 CAN -liides: 7 sammu

Video: STM32 CAN -liides: 7 sammu
Video: STM32 CAN шина. Часть 2. Фильтрация и демонстрация работы 2024, November
Anonim
STM32 CAN liides
STM32 CAN liides

Controller Area Network buss ehk CAN -siin on tänu oma suure kiirusega võimalustele, töökindlusele ja mürakindlusele väga tõhus sideprotokoll. Nendel põhjustel on CAN -side muutunud autotööstuse tehnoloogiate ja kõrge müratasemega keskkonnas standardiks. CAN -siinil olevaid seadmeid nimetatakse sõlmedeks. Kõik CAN -siinil olevad sõlmed on ühendatud paralleelselt, mis tähendab, et iga sõlm on ühendatud kõigi teiste võrgu sõlmedega. Ühel CAN -siinil võib olenevalt sõnumi edastamise kiirusest olla kuni 115 sõlme korraga, kuid enamiku rakenduste puhul on soovitatav omada kuni 32 seadet. Samuti on soovitatav hoida esimese ja viimase sõlme vaheline kaugus üksteisest alla 40 meetri.

See samm-sammuline õpetus näitab teile, kuidas seadistada CAN-sõlme STM32 mikrokontrolleri abil, sealhulgas ahel ja lihtne C-kood CAN-siinile lugemiseks ja kirjutamiseks

Tarvikud

Iga CAN -sõlme kohta:

  • 1x STM32 purunemisplaat (Nucleo, Blue Pill, teised)
  • 1x MCP2551 CAN transiiver IC
  • 1x 0,1 µF kondensaator
  • 1x 120Ω takisti
  • 1x 1kΩ takisti
  • 1+ loetav sisend (nupp, lüliti, potentsiomeeter jne) või väljund (LED, MOSFET jne)
  • 1x Dsub9 pistik

Samm: transiiveri ahel

Transiiveri ahel
Transiiveri ahel

CAN -siiniga suhtlemiseks kasutame MCP2551 CAN transiiverit IC. IC toimib vahepealse saatja/vastuvõtja paarina, et ühendada STM32 CAN -siiniga. Selle IC seadistamise ahel on üsna lihtne, kuid tuleb märkida mõnda asja:

  • MCP2551 kiibil olevad CAN_RX (tihvt 4) ja CAN_TX (tihvt 1) saavad minna ainult STM32 teatud tihvtidele.

    • Ühendage STM32F1 Nucleo seadmel RX -liin tihvtiga PB8 ja TX -liin tihvtiga PB9.
    • Sinisel pillil STM32F1 ühendage RX tihvtiga PA11 ja TX tihvtiga PA12.
    • Pange tähele, et nendel tihvtide määramistel on alternatiive. Vaadake mikrokontrolleri käsiraamatutest, millised tihvtid on võimelised CAN_RD ja CAN_TD jaoks
    • Kui kasutate Arduinot või tahvlit, millel pole sisseehitatud CAN -kommunikaatorit, on muude sõnumiprotokollide teisendamiseks CAN -iks vaja MCP2515 IC -kiipi.
  • CANL -tihvt tuleks ühendada teiste siinisõlmede teiste CANL -tihvtidega. Sama kehtib ka CANH -tihvtide kohta.
  • 120Ω takisti CANH- ja CANL -tihvtide vahel on vajalik ainult siis, kui sõlm on terminalisõlm. See tähendab, et see on paralleelühenduse juhtmestiku lõpus. Teisisõnu, CAN -siinil peaks olema ainult kaks 120Ω takistit ja need peaksid olema üksteisest võimalikult kaugel.
  • Lõpuks saab RS -i 1 kΩ takisti (tihvt 8) vahetada 10 kΩ takisti vastu, et juhtida CAN -teatebittide tõusu/languse aega. Lisateavet leiate kiibi MCP2551 andmelehelt.

2. samm: lugemine ja kirjutamine CAN -siinile

Lugemine ja kirjutamine CAN -siinile
Lugemine ja kirjutamine CAN -siinile

Nüüd, kui transiiveri ahel on ühendatud STM32 -ga, saame hakata sõnumeid kirjutama CAN -siinile. See juhendatav juhend ei süvene STM32 koodi põhjalikult. Siiski vaadake kindlasti meie näiteid siit. STM32 kasutamine CAN -sõlmena nõuab CAN -päisefaili. Kirjutasime oma, mille leiate meie githubist siit. Siinkohal anname lühikese ülevaate lugemis-/kirjutamisprotsessist.

CAN -siinist lugemiseks peame kõigepealt teadma CAN -sõnumi ID -d. Igal sõnumil peab olema unikaalne ID, madalamate ID -de prioriteet on kõrgem. Siin näidatud koodilõik ootab CAN -sõnumit ID -ga 0x622. Kui meie süsteemis on kuuenda baidi esimene bit kõrge, tahame pin A10 kõrgeks seada.

CAN-sõnumit kirjutades peame meeles pidama, et CAN-sõnumid on mitmebaidised. Igal kirjalikul sõnumil peab olema ID ja pikkus. Näidatud teises koodilõigus kirjutame andmed iga baiti, seejärel saadame sõnumi (ID ja pikkuse parameetrid on koodis varem määratletud).

Samm: sõlmede ühendamine

Ühendussõlmed
Ühendussõlmed

Mitme CAN -sõlme ühendamisel tuleb hoolikalt jälgida kaablite pikkust. Kaks kõige kaugemat sõlme võivad üksteisest olla kuni 40 m kaugusel. Bussiga ühendavad keskmised sõlmed peaksid jääma põhibussiliinidest 50 cm kaugusele.

CAN -ühendused järgivad tööstusstandardit Dsub9 -pistiku kasutamisel, mille CANL -liin on tihvti 2 ja CANH -liini tihvti 7 juures. Valik CANGND rida võib minna tihvti 3 külge.

Samm: valmistage trükkplaat

Tehke trükkplaat
Tehke trükkplaat

CAN -signaalide PCB -l marsruutimisel pidage meeles, et CAN on diferentsiaalsignaal ja seega tuleb CANH -i ja CANL -i marsruutimisjuhiseid hoolikalt järgida.

Samm: juhatuse laiendamine

Juhatuse laiendamine
Juhatuse laiendamine

Visake veel mõned sõlmed kokku, lisage mõned sisendid/väljundid ja ühendage kõik nende CANH- ja CANL -kontaktid. Pange tähele, et iga STM32 või muu mikrokontroller vajab oma MCP2551 kiipi; neid ei saa jagada.

Sellegipoolest proovige hoida oma PCB -d väiksemad kui siin näidatud

Samm: tellige oma PCBd JLCPCB -st

Telli oma PCBd JLCPCB -st
Telli oma PCBd JLCPCB -st

JLCPCB pakub kiiret ja kvaliteetset teenust väga mõistlike hindadega. Hankige 5 tahvlit, mis tahes värvi koos paljude kohandustega, ainult 2 dollari eest! Ja kui see on teie esimene tellimus, hankige 10 lauda sama hinnaga!

Lihtsalt laadige oma gerberid üles ja hankige kohe hinnapakkumine! Esitage oma tellimus ja teie lauad vaadatakse tunni jooksul üle. Kui olete tasunud, võite oma kvaliteetseid tahvleid oodata juba kolme päeva pärast!

Vaadake seda siit

Samm: hankige oma lauad

Hankige oma lauad!
Hankige oma lauad!

Tohutu hüüd JLCPCB -le selle projekti toetamise eest. JLCPCB (ShenzhenJLC Electronics Co., Ltd.) on Hiina suurim PCB prototüüpide ettevõte ja kõrgtehnoloogiline tootja, mis on spetsialiseerunud PCB kiirele prototüüpimisele ja väikese partiiga PCB tootmisele. Nad olid piisavalt lahked, et pakkuda UBC Solarile meie uusi PCB-sid meie päikeseenergial töötavale võidusõiduautole. Tellisime reedel ja lauad saime kätte kolmapäeval!

Soovitan: