Satura rādītājs:

STM32 CAN saskarne: 7 soļi
STM32 CAN saskarne: 7 soļi

Video: STM32 CAN saskarne: 7 soļi

Video: STM32 CAN saskarne: 7 soļi
Video: Amazing arduino project 2024, Novembris
Anonim
STM32 CAN saskarne
STM32 CAN saskarne

Kontrollera zonas tīkla kopne jeb CAN kopne ir ļoti efektīvs sakaru protokols, pateicoties tā ātrgaitas iespējām, uzticamībai lielos attālumos un trokšņa necaurlaidībai. Šo iemeslu dēļ CAN komunikācija ir kļuvusi par standartu automobiļu tehnoloģijās un vidē ar augstu trokšņa līmeni. CAN kopnes ierīces sauc par mezgliem. Visi CAN kopnes mezgli ir savienoti paralēli, kas nozīmē, ka katrs mezgls ir savienots ar visiem pārējiem tīkla mezgliem. Vienā CAN kopnē vienlaikus var būt līdz 115 mezgliem, atkarībā no ziņojumu pārraides ātruma, taču lielākajai daļai lietojumprogrammu ieteicams izmantot līdz 32 ierīcēm. Ieteicams arī saglabāt attālumu starp pirmo un pēdējo mezglu mazāk nekā 40 metru attālumā.

Šī soli pa solim apmācība parādīs, kā iestatīt CAN mezglu, izmantojot STM32 mikrokontrolleru, ieskaitot shēmu un vienkāršu C kodu lasīšanai un rakstīšanai CAN kopnē

Piegādes

Katram CAN mezglam:

  • 1x STM32 sadalīšanas dēlis (Nucleo, Blue Pill, citi)
  • 1x MCP2551 CAN uztvērēja IC
  • 1x 0,1 µF kondensators
  • 1x 120Ω rezistors
  • 1x 1kΩ rezistors
  • 1+ lasāma ieeja (poga, slēdzis, potenciometrs utt.) Vai izeja (LED, MOSFET utt.)
  • 1x Dsub9 savienotājs

1. darbība: uztvērēja ķēde

Raiduztvērēja ķēde
Raiduztvērēja ķēde

Lai sazinātos ar CAN kopni, mēs izmantosim MCP2551 CAN raiduztvērēju IC. IC darbojas kā starpposma raidītāja/uztvērēja pāris, lai savienotu STM32 ar CAN kopni. Šīs IC iestatīšanas shēma ir diezgan vienkārša, taču jāņem vērā dažas lietas:

  • CAN_RX (4. tapa) un CAN_TX (1. tapa) mikroshēmā MCP2551 var pāriet tikai uz noteiktām STM32 tapām.

    • STM32F1 Nucleo savienojiet RX līniju ar tapu PB8 un TX līniju ar tapu PB9.
    • Zilajā tabletes STM32F1 savienojiet RX ar tapu PA11 un TX ar tapu PA12.
    • Ņemiet vērā, ka šiem tapas piešķiršanas veidiem ir alternatīvas. Skatiet mikrokontrolleru rokasgrāmatas, lai noteiktu, kuras tapas var izmantot CAN_RD un CAN_TD
    • Ja izmantojat Arduino vai plati bez iebūvēta CAN komunikatora, MCP2515 IC mikroshēma būs nepieciešama, lai pārvērstu citus ziņojumu protokolus CAN.
  • CANL tapai jābūt savienotai ar citu kopnes mezglu citām CANL tapām. Tas pats attiecas uz CANH tapām.
  • 120Ω rezistors pāri CANH un CANL tapām ir nepieciešams tikai tad, ja mezgls ir gala mezgls. Tas nozīmē, ka tas atrodas paralēlā savienojuma elektroinstalācijas beigās. Citiem vārdiem sakot, CAN kopnei jābūt tikai diviem 120Ω rezistoriem, un tiem jābūt pēc iespējas tālāk viens no otra.
  • Visbeidzot, 1kΩ rezistoru RS (8. tapa) var nomainīt pret 10 kΩ rezistoru, lai kontrolētu CAN ziņojumu bitu pacelšanās/krišanas laiku. Plašāku informāciju skatiet MCP2551 mikroshēmas datu lapā.

2. darbība: lasīšana un rakstīšana CAN kopnē

Lasīšana un rakstīšana CAN kopnē
Lasīšana un rakstīšana CAN kopnē

Tagad, kad raiduztvērēja ķēde ir pievienota STM32, mēs varam sākt rakstīt ziņojumus CAN kopnei. Šī pamācība neiedziļināsies STM32 kodā. Tomēr šeit noteikti izlasiet piemērus mūsu kodam. Lai izmantotu STM32 kā CAN mezglu, būs nepieciešams CAN galvenes fails. Mēs uzrakstījām savu, kas atrodams mūsu github šeit. Šeit mēs sniegsim īsu pārskatu par lasīšanas/rakstīšanas procesu.

Lai lasītu no CAN kopnes, mums vispirms jāzina CAN ziņojuma ID. Katram ziņojumam jābūt unikālam ID, un zemākiem ID ir augstāka prioritāte. Šeit redzamais koda fragments gaida CAN ziņojumu ar ID 0x622. Mūsu sistēmā, ja 6. baita pirmais bits ir augsts, mēs vēlamies iestatīt tapu A10 augstu.

Rakstot CAN ziņu, mums jāatceras, ka CAN ziņas ir vairāku baitu. Katram rakstītam ziņojumam ir jābūt ID un garumam. Otrajā parādītajā koda fragmentā mēs ierakstām datus katrā baitā, pēc tam nosūtām ziņojumu (ID un garuma parametri kodā ir definēti iepriekš).

3. darbība: mezglu savienošana

Savienojuma mezgli
Savienojuma mezgli

Savienojot vairākus CAN mezglus, rūpīgi jāpievērš uzmanība kabeļu garumam. Divi vistālākie mezgli var būt līdz 40 m attālumā viens no otra. Vidējiem mezgliem, kas savieno autobusu, jāatrodas 50 cm attālumā no galvenajām autobusu līnijām.

CAN savienojumi atbilst nozares standartam, kurā tiek izmantots Dsub9 savienotājs ar CANL līniju 2. tapā un CANH līniju 7. tapā. Opcija CANGND līnija var iet uz 3. tapu.

4. solis: izveidojiet PCB

Izveidojiet PCB
Izveidojiet PCB

Maršrutējot CAN signālus uz PCB, atcerieties, ka CAN ir diferenciāls signāls, un tāpēc rūpīgi jāievēro CANH un CANL maršrutēšanas vadlīnijas.

5. solis: padomes paplašināšana

Valdes paplašināšana
Valdes paplašināšana

Salieciet kopā vēl dažus mezglus, pievienojiet dažas ieejas/izejas un pievienojiet visas to CANH un CANL tapas. Ņemiet vērā, ka katram STM32 vai citam mikrokontrolleram ir nepieciešama sava MCP2551 mikroshēma; tos nevar koplietot.

Ņemot to vērā, mēģiniet saglabāt savus PCB mazākus par šeit parādītajiem

6. darbība: pasūtiet PCB no JLCPCB

Pasūtiet PCB no JLCPCB
Pasūtiet PCB no JLCPCB

JLCPCB piedāvā ātrus, augstas kvalitātes pakalpojumus par ļoti saprātīgām cenām. Iegūstiet 5 dēļus jebkurā krāsā ar daudzām pielāgošanām tikai par 2 USD! Un, ja tas ir jūsu pirmais pasūtījums, iegūstiet 10 dēļus par to pašu cenu!

Vienkārši augšupielādējiet savus gerberus un saņemiet tūlītēju cenu! Iesniedziet savu pasūtījumu, un jūsu dēļi tiks pārskatīti, lai tos ražotu stundas laikā. Kad esat samaksājis, jūs varat sagaidīt savas augstas kvalitātes dēļus pēc trim dienām!

Pārbaudiet to šeit

7. solis: iegūstiet savus dēļus

Iegūstiet savus dēļus!
Iegūstiet savus dēļus!

Milzīgs sauciens JLCPCB par šī projekta sponsorēšanu. JLCPCB (ShenzhenJLC Electronics Co., Ltd.) ir lielākais PCB prototipu uzņēmums Ķīnā un augsto tehnoloģiju ražotājs, kas specializējas ātru PCB prototipu veidošanā un mazu partiju PCB ražošanā. Viņi bija pietiekami laipni, lai nodrošinātu mūsu UBC Solar mūsu jaunās PCB mūsu sacīkšu automašīnām ar saules enerģiju. Mēs veicām pasūtījumu piektdien, bet dēļus saņēmām trešdien!

Ieteicams: