Përmbajtje:
- Furnizimet
- Hapi 1: Qarku i transmetuesit
- Hapi 2: Leximi dhe Shkrimi në Autobusin CAN
- Hapi 3: Lidhja e Nyjeve
- Hapi 4: Bëni PCB
- Hapi 5: Zgjerimi i Bordit
- Hapi 6: Porositni PCB -të tuaja nga JLCPCB
- Hapi 7: Merrni bordet tuaja
Video: Ndërfaqja STM32 CAN: 7 hapa
2024 Autor: John Day | [email protected]. E modifikuara e fundit: 2024-01-30 12:18
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
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
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
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
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
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
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
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:
Ndërfaqja e sensorit kapacitiv të gjurmëve të gishtërinjve me Arduino UNO: 7 hapa
Ndërfaqja e sensorit kapacitiv të gjurmëve të gishtërinjve me Arduino UNO: Hej, çfarë ka, djema! Akarsh këtu nga CETech. Sot ne do të shtojmë një shtresë mbrojtëse në projektet tona. Mos u shqetësoni ne nuk do të caktojmë asnjë truprojë për të njëjtën gjë. Do të jetë një sensor gjurmë gishtash pak i bukur dhe i bukur nga DFRobot. Pra
Ndërfaqja e sensorit të gazit me Arduino: 4 hapa
Ndërfaqja e sensorit të gazit me Arduino: Sensori i tymit MQ-2 është i ndjeshëm ndaj tymit dhe ndaj gazeve të mëposhtëm të ndezshëm: LPG, Butan, Propan, Metan, Alkool, Hidrogjen. Rezistenca e sensorit është e ndryshme në varësi të llojit të gazit. Sensori i tymit ka një potenciometër të integruar
Ndërfaqja me një ekran LCD M4 Përfshirja: 5 hapa
Ndërfaqja me një ekran LCD M4 Përfshirja: Ky tutorial do të na lejojë të kontrollojmë një ekran LCD nëpërmjet Wi-Fi nga smartphone-i ynë Nëse nuk kemi drejtuesin e vogël, mund të përdorim arduino, por poshtë lidhjes për zhvillimin e Drivemall. duke preferuar Drivemall mbi klasën
Ndërfaqja e anijes kozmike Arduino: 3 hapa
Ndërfaqja Arduino Spaceship: Përshëndetje komunitet i udhëzueshëm, Këtë herë kam bërë një nga projektet më të thjeshtë për të përfunduar me një Arduino Uno: një qark anijesh kozmike. Isshtë e ashtuquajtur sepse është lloji i programimit dhe qarkut që do të përdoret në shfaqjet dhe filmat e hershëm shkencorë-shkencorë
Ndërfaqja Sensori ADXL335 në Raspberry Pi 4B në 4 hapa: 4 hapa
Ndërfaqja Sensori ADXL335 në Raspberry Pi 4B në 4 hapa: Në këtë udhëzues ne do të ndërlidhim një sensor ADXL335 (nxitues) në Raspberry Pi 4 me Shunya O/S