Përmbajtje:

Ndërfaqja STM32 CAN: 7 hapa
Ndërfaqja STM32 CAN: 7 hapa

Video: Ndërfaqja STM32 CAN: 7 hapa

Video: Ndërfaqja STM32 CAN: 7 hapa
Video: DCS World: STM32 HeadTracker Test 2024, Korrik
Anonim
Ndërfaqja STM32 CAN
Ndërfaqja STM32 CAN

Autobusi Controller Area Network, ose autobusi CAN, është një protokoll komunikimi shumë efektiv falë aftësive të tij me shpejtësi të lartë, besueshmërisë me rreze të gjatë dhe imunitetit ndaj zhurmës. Për këto arsye, komunikimi CAN është bërë standard në teknologjitë e automobilave dhe mjedise me zhurmë të lartë. Pajisjet në autobusin CAN quhen nyje. Të gjitha nyjet në autobusin CAN janë të lidhura paralelisht, që do të thotë se secila nyje është e lidhur me të gjitha nyjet e tjera në rrjet. Një autobus i vetëm CAN mund të ketë deri në 115 nyje në të njëjtën kohë, në varësi të shkallës së transmetimit të mesazheve, por për shumicën e aplikacioneve, rekomandohet të ketë deri në 32 pajisje. Rekomandohet gjithashtu të mbani gjatësinë midis nyjës së parë dhe të fundit më pak se 40 metra larg.

Ky udhëzues hap pas hapi do t'ju tregojë se si të vendosni një nyje CAN duke përdorur mikrokontrolluesin STM32, duke përfshirë qarkun dhe kodin C të thjeshtë për të lexuar dhe shkruar në autobusin CAN

Furnizimet

Për secilën nyje CAN:

  • 1x bord i thyerjes STM32 (Nucleo, Blue Pill, të tjerë)
  • 1x IC transmetues MCP2551 CAN
  • 1x kondensator 0.1μF
  • 1x rezistencë 120Ω
  • Rezistencë 1x 1kΩ
  • 1+ hyrje e lexueshme (buton, çelës, potenciometër, etj.) Ose dalje (LED, MOSFET, etj.)
  • 1x lidhës Dsub9

Hapi 1: Qarku i transmetuesit

Qarku i transmetuesit
Qarku i transmetuesit

Për të komunikuar me autobusin CAN, ne do të përdorim IC transmetuesin MCP2551 CAN. IC vepron si një çift transmetues/marrës i ndërmjetëm për të lidhur STM32 me autobusin CAN. Qarku për të vendosur këtë IC është mjaft i thjeshtë, por ka disa gjëra për t'u vënë në dukje:

  • CAN_RX (pin 4) dhe CAN_TX (pin 1) në çipin MCP2551 mund të shkojnë vetëm në disa kunja në STM32.

    • Në STM32F1 Nucleo, lidhni linjën RX me pin PB8 dhe linjën TX me pin PB9.
    • Në pilulën blu STM32F1, lidhni RX me pin PA11 dhe TX me pin PA12.
    • Vini re se këto caktime pin kanë alternativa. Referojuni manualëve të mikrokontrolluesit për të përcaktuar se cilat kunja janë të afta për CAN_RD dhe CAN_TD
    • Nëse përdorni një Arduino ose një bord pa një komunikues CAN të integruar, çipi IC MCP2515 do të kërkohet për të kthyer protokollet e tjera të mesazheve në CAN.
  • Kunja CANL duhet të lidhet me kunjat e tjerë CANL të nyjeve të tjera të autobusit. E njëjta gjë vlen edhe për kunjat CANH.
  • Rezistenca 120Ω nëpër kunjat CANH dhe CANL kërkohet vetëm nëse nyja është një nyje terminale. Kjo do të thotë se është në fund të instalimeve elektrike të lidhjes paralele. Me fjalë të tjera, autobusi CAN duhet të ketë vetëm dy rezistorë 120Ω në të, dhe ata duhet të jenë sa më larg njëri -tjetrit.
  • Së fundmi, rezistenca 1kΩ në RS (pin 8) mund të shkëmbehet me një rezistencë 10kΩ për të kontrolluar kohën e ngritjes/rënies së bitëve të mesazhit CAN. Referojuni fletës së të dhënave të çipit MCP2551 për më shumë detaje.

Hapi 2: Leximi dhe Shkrimi në Autobusin CAN

Leximi dhe Shkrimi në Autobusin CAN
Leximi dhe Shkrimi në Autobusin CAN

Tani që qarku i marrësit është i lidhur me STM32, mund të fillojmë të shkruajmë mesazhe në autobusin CAN. Ky udhëzues udhëzues nuk do të hyjë në thellësi në kodin STM32. Sidoqoftë, sigurohuni që të shikoni kodin tonë për shembuj këtu. Përdorimi i STM32 si një nyje CAN do të kërkojë një skedar header CAN. Ne shkruam tonat, të cilat mund të gjenden në github -in tonë këtu. Këtu, ne do të japim një pasqyrë të shkurtër të procesit të leximit/shkrimit.

Për të lexuar nga autobusi CAN, së pari duhet të dimë ID -në e mesazhit CAN. Çdo mesazh duhet të ketë një ID unike, me ID më të ulët që kanë përparësi më të lartë. Fragmenti i kodit i treguar këtu është duke pritur për një mesazh CAN me ID 0x622. Në sistemin tonë, nëse biti i parë i bajtit të 6 -të është i lartë, atëherë ne duam ta vendosim pinin A10 të lartë.

Kur shkruani një mesazh CAN, duhet të mbani mend se mesazhet CAN janë shumë-bajtëshe. Çdo mesazh i shkruar duhet të ketë një ID dhe gjatësi. Në fragmentin e dytë të kodit të treguar, ne shkruajmë të dhëna për secilin bajt, pastaj dërgojmë mesazhin (Parametrat e ID dhe gjatësisë janë përcaktuar më herët në kod).

Hapi 3: Lidhja e Nyjeve

Lidhja e Nyjeve
Lidhja e Nyjeve

Kur lidhni nyje të shumta CAN, vëmendje e kujdesshme duhet t'i kushtohet gjatësisë së kabllove. Dy nyjet më të largëta mund të jenë deri në 40m larg njëra -tjetrës. Nyjet e mesme që lidhen me autobusin duhet të jenë brenda 50 cm nga linjat kryesore të autobusit.

Lidhjet CAN ndjekin një standard të industrisë për përdorimin e një lidhësi Dsub9 me linjën CANL në pin 2 dhe linjën CANH në pin7. Opsioni CANGND line mund të vazhdojë në pin 3.

Hapi 4: Bëni PCB

Bëni PCB
Bëni PCB

Kur drejtoni sinjalet CAN në një PCB, mbani mend se CAN është një sinjal diferencial, dhe kështu, udhëzimet e drejtimit për CANH dhe CANL duhet të ndiqen me kujdes.

Hapi 5: Zgjerimi i Bordit

Zgjerimi i Bordit
Zgjerimi i Bordit

Hidhni disa nyje të tjera së bashku, shtoni disa hyrje/dalje dhe lidhni të gjitha kunjat e tyre CANH dhe CANL. Vini re se çdo STM32 ose mikrokontrollues tjetër kërkon çipin e tij MCP2551; ato nuk mund të ndahen.

Me sa thashë, përpiquni t'i mbani PCB -të tuaja më të vogla se ajo e treguar këtu

Hapi 6: Porositni PCB -të tuaja nga JLCPCB

Porositni PCB -të tuaja nga JLCPCB
Porositni PCB -të tuaja nga JLCPCB

JLCPCB ofron shërbim të shpejtë dhe me cilësi të lartë me çmime shumë të arsyeshme. Merrni 5 dërrasa, të çdo ngjyre me shumë personalizime, për vetëm 2 dollarë! Dhe nëse është porosia juaj e parë, merrni 10 dërrasa për të njëjtin çmim!

Thjesht ngarkoni gerberët tuaj dhe merrni një kuotë të menjëhershme! Paraqisni porosinë tuaj dhe bordet tuaja do të rishikohen për prodhim brenda një ore. Pasi të paguani, mund të prisni që tabelat tuaja me cilësi të lartë brenda tre ditëve!

Kontrolloni këtu

Hapi 7: Merrni bordet tuaja

Merrni bordet tuaja!
Merrni bordet tuaja!

Thirrje të mëdha JLCPCB për sponsorizimin e këtij projekti. JLCPCB (ShenzhenJLC Electronics Co, Ltd), është ndërmarrja më e madhe e prototipit të PCB në Kinë dhe një prodhues i teknologjisë së lartë i specializuar në prototipimin e shpejtë të PCB dhe prodhimin e PCB të grupeve të vogla. Ata ishin mjaft të sjellshëm për të siguruar UBC Solar me PCB-të tona të reja për makinën tonë garuese me energji diellore. Ne e bëmë porosinë tonë të Premten dhe morëm dërrasat të Mërkurën!

Recommended: