Tartalomjegyzék:

STM32 CAN interfész: 7 lépés
STM32 CAN interfész: 7 lépés

Videó: STM32 CAN interfész: 7 lépés

Videó: STM32 CAN interfész: 7 lépés
Videó: Программирование STM32 Blue Pill с помощью релейной логики ПЛК LDmicro 2024, Július
Anonim
STM32 CAN interfész
STM32 CAN interfész

A Controller Area Network busz vagy CAN busz nagyon hatékony kommunikációs protokoll a nagy sebességű képességeinek, a nagy hatótávolságú megbízhatóságnak és a zajállóságnak köszönhetően. Ezen okok miatt a CAN kommunikáció az autóipari technológiák és a magas zajszintű környezetek szabványává vált. A CAN buszon lévő eszközöket csomópontoknak nevezik. A CAN buszon lévő összes csomópont párhuzamosan van csatlakoztatva, ami azt jelenti, hogy minden csomópont a hálózat összes többi csomópontjához kapcsolódik. Egyetlen CAN -buszon akár 115 csomópont is lehet egyszerre, az üzenetátviteli sebességtől függően, de a legtöbb alkalmazás esetében ajánlott legfeljebb 32 eszköz használata. Javasoljuk továbbá, hogy az első és az utolsó csomópont közötti távolságot 40 méternél kisebb távolságban tartsa.

Ez a lépésenkénti bemutató megmutatja, hogyan állíthat be egy CAN csomópontot az STM32 mikrokontroller segítségével, beleértve az áramkört és az egyszerű C kódot a CAN busz olvasásához és írásához.

Kellékek

Minden CAN csomóponthoz:

  • 1x STM32 kitörőtábla (Nucleo, Blue Pill, mások)
  • 1x MCP2551 CAN adó -vevő IC
  • 1x 0,1 µF kondenzátor
  • 1x 120Ω ellenállás
  • 1x 1kΩ ellenállás
  • 1+ olvasható bemenet (gomb, kapcsoló, potenciométer stb.) Vagy kimenet (LED, MOSFET stb.)
  • 1x Dsub9 csatlakozó

1. lépés: Az adó -vevő áramkör

Az adó -vevő áramkör
Az adó -vevő áramkör

A CAN busszal való kommunikációhoz az MCP2551 CAN adó -vevő IC -t fogjuk használni. Az IC közbenső adó/vevő párként működik az STM32 és a CAN busz csatlakoztatásához. Az IC beállításának áramköre meglehetősen egyszerű, de néhány dolgot meg kell jegyezni:

  • A CAN_RX (4. tű) és a CAN_TX (1. tű) az MCP2551 chipen csak az STM32 bizonyos tűire mehet.

    • Az STM32F1 Nucleo készüléken csatlakoztassa az RX vezetéket a PB8 és a TX vezetéket a PB9 tűhöz.
    • Az STM32F1 kék tablettán csatlakoztassa az RX -et a PA11 és a TX -et a PA12 tűhöz.
    • Ne feledje, hogy ezeknek a tűk hozzárendeléseknek vannak alternatívái. Tekintse meg a mikrokontroller kézikönyveit, hogy megtudja, mely csapok alkalmasak a CAN_RD és a CAN_TD
    • Ha Arduino -t vagy táblát használ, amelybe nem épített be CAN kommunikátort, akkor az MCP2515 IC chipre lesz szükség, hogy más üzenetprotokollokat CAN -ba alakítson.
  • A CANL csapot a többi buszcsomópont többi CANL csapjához kell csatlakoztatni. Ugyanez vonatkozik a CANH csapokra is.
  • A 120Ω -os ellenállás a CANH és a CANL csapokon csak akkor szükséges, ha a csomópont egy terminál csomópont. Ez azt jelenti, hogy a párhuzamos csatlakozás végénél van. Más szóval, a CAN buszban csak két 120Ω -os ellenállás legyen, és azoknak lehetőleg távol kell lenniük egymástól.
  • Végül az RS 1kΩ -os ellenállása (8. tüske) kicserélhető 10 kΩ -os ellenállásra a CAN -üzenetbites emelkedési/süllyedési idő szabályozására. További részletekért tekintse meg az MCP2551 chip adatlapját.

2. lépés: Olvasás és írás a CAN buszra

Olvasás és írás a CAN buszra
Olvasás és írás a CAN buszra

Most, hogy az adó -vevő áramkör csatlakoztatva van az STM32 -hez, elkezdhetjük üzenetek írását a CAN -buszra. Ez az oktatható útmutató nem foglalkozik részletesen az STM32 kóddal. Azonban mindenképpen nézze meg a kódunkat, ahol példákat talál. Az STM32 CAN csomópontként való használatához CAN fejlécfájl szükséges. Megírtuk a magunkét, amely itt található a githubunkon. Itt rövid áttekintést adunk az olvasási/írási folyamatról.

A CAN buszról történő olvasáshoz először ismernünk kell a CAN üzenet azonosítóját. Minden üzenetnek egyedi azonosítóval kell rendelkeznie, az alacsonyabb azonosítók magasabb prioritással. Az itt látható kódrészlet 0x622 azonosítójú CAN üzenetre vár. Rendszerünkben, ha a 6. bájt első bitje magas, akkor az A10 tűt magasra szeretnénk állítani.

CAN üzenet írásakor emlékeznünk kell arra, hogy a CAN üzenetek többbájtosak. Minden írott üzenetnek azonosítóval és hosszúsággal kell rendelkeznie. A bemutatott második kódrészletben adatokat írunk minden bájtba, majd elküldjük az üzenetet (Az azonosító és a hosszúság paramétereit a kód korábban határozza meg).

3. lépés: Csomópontok csatlakoztatása

Csomópontok összekapcsolása
Csomópontok összekapcsolása

Több CAN csomópont csatlakoztatásakor gondosan ügyelni kell a kábelek hosszára. A két legtávolabbi csomópont akár 40 m távolságra is lehet egymástól. A buszhoz csatlakozó középső csomópontoknak 50 cm -en belül kell lenniük a fő buszvonalaktól.

A CAN -kapcsolatok iparági szabvány szerint követik a Dsub9 csatlakozót, a CANL vonallal a 2 -es tűn és a CANH vonallal a 7 -es tűn. A CANGND vonal opciója a 3 -as érintkezőre mehet.

4. lépés: Készítse el a NYÁK -t

Készítse el a NYÁK -t
Készítse el a NYÁK -t

Amikor a CAN jeleket PCB -n továbbítja, ne feledje, hogy a CAN differenciáljel, ezért a CANH és a CANL irányítási irányelveit gondosan be kell tartani.

5. lépés: A tábla bővítése

A tanács kibővítése
A tanács kibővítése

Dobjon össze még néhány csomópontot, adjon hozzá néhány bemenetet/kimenetet, és csatlakoztassa az összes CANH és CANL érintkezőt. Vegye figyelembe, hogy minden STM32 vagy más mikrokontroller saját MCP2551 chipet igényel; nem oszthatók meg.

Ennek ellenére próbálja meg kisebb méretű PCB -ket tartani, mint az itt látható

6. lépés: Rendelje meg a PCB -ket a JLCPCB -től

Rendelje meg PCB -jét a JLCPCB -től
Rendelje meg PCB -jét a JLCPCB -től

A JLCPCB gyors, magas színvonalú szolgáltatást kínál nagyon kedvező áron. Szerezzen 5 táblát, bármilyen színben, rengeteg testreszabással, mindössze 2 dollárért! És ha ez az első megrendelése, szerezzen 10 táblát azonos áron!

Csak töltse fel a gerberjeit, és kérjen azonnal árajánlatot! Küldje el megrendelését, és a táblákat egy órán belül felülvizsgálják. Miután fizetett, három napon belül számíthat kiváló minőségű tábláira!

Nézze meg itt

7. lépés: Szerezd meg a táblákat

Szerezd meg a táblákat!
Szerezd meg a táblákat!

Óriási kiáltás a JLCPCB -nek, hogy támogatja ezt a projektet. A JLCPCB (ShenzhenJLC Electronics Co., Ltd.) a legnagyobb NYÁK-prototípus-vállalkozás Kínában, és egy high-tech gyártó, amely a gyors NYÁK-prototípus-készítésre és a kis tételű PCB-gyártásra szakosodott. Kedvesek voltak, hogy az UBC Solart új PCB-kkel látják el napelemes versenyautónkhoz. Pénteken adtuk le rendelésünket, szerdán pedig megkaptuk a táblákat!

Ajánlott: