Բովանդակություն:

STM32 CAN ինտերֆեյս `7 քայլ
STM32 CAN ինտերֆեյս `7 քայլ

Video: STM32 CAN ինտերֆեյս `7 քայլ

Video: STM32 CAN ինտերֆեյս `7 քայլ
Video: SKR Pro V1.2 - Dual Z-axis steppers with TMC2208 UART 2024, Նոյեմբեր
Anonim
STM32 CAN ինտերֆեյս
STM32 CAN ինտերֆեյս

Controller Area Network ավտոբուսը կամ CAN ավտոբուսը շատ արդյունավետ հաղորդակցման արձանագրություն է `շնորհիվ իր բարձր արագության հնարավորությունների, երկար հեռահար հուսալիության և աղմուկի անձեռնմխելիության: Այս պատճառներով, CAN հաղորդակցությունը դարձել է չափանիշ ավտոմոբիլային տեխնոլոգիաների և բարձր աղմուկի միջավայրում: CAN ավտոբուսի սարքերը կոչվում են հանգույցներ: CAN ավտոբուսի բոլոր հանգույցները միացված են զուգահեռաբար, ինչը նշանակում է, որ յուրաքանչյուր հանգույց միացված է ցանցի մյուս բոլոր հանգույցներին: CAN- ի մեկ ավտոբուսը կարող է ունենալ միանգամից մինչև 115 հանգույց ՝ կախված հաղորդագրության փոխանցման արագությունից, սակայն ծրագրերի մեծ մասի համար խորհուրդ է տրվում ունենալ մինչև 32 սարք: Առաջարկվում է նաև առաջին և վերջին հանգույցների միջև երկարությունը պահել 40 մետրից պակաս հեռավորության վրա:

Այս քայլ առ քայլ ձեռնարկը ցույց կտա ձեզ, թե ինչպես կարելի է կարգավորել CAN հանգույց ՝ օգտագործելով STM32 միկրոկառավարիչը, ներառյալ միացումն ու պարզ C կոդը ՝ CAN ավտոբուսին կարդալու և գրելու համար:

Պարագաներ

Յուրաքանչյուր CAN հանգույցի համար.

  • 1x STM32 ճեղքման տախտակ (Nucleo, Blue Pill և այլն)
  • 1x MCP2551 CAN հաղորդիչ IC
  • 1x 0.1 μF կոնդենսատոր
  • 1x 120Ω դիմադրություն
  • 1x 1kΩ դիմադրություն
  • 1+ ընթեռնելի մուտք (կոճակ, անջատիչ, պոտենցիոմետր և այլն) կամ ելք (LED, MOSFET և այլն)
  • 1x Dsub9 միակցիչ

Քայլ 1: Հաղորդիչ հաղորդիչի միացում

The Transceiver Circuit
The Transceiver Circuit

CAN ավտոբուսի հետ շփվելու համար մենք կօգտագործենք MCP2551 CAN ստացողի IC- ն: IC- ն հանդես է գալիս որպես միջանկյալ հաղորդիչ/ընդունիչ զույգ `STM32- ը CAN ավտոբուսին միացնելու համար: Այս IC- ն ստեղծելու սխեման բավականին պարզ է, բայց պետք է նշել մի քանի բան.

  • MCP2551 չիպի CAN_RX (PIN 4) և CAN_TX (PIN 1) կարող են անցնել միայն STM32- ի որոշակի կապում:

    • STM32F1 Nucleo- ում միացրեք RX տողը PB8 կապին և TX գիծը PB9 կապին:
    • STM32F1 կապույտ հաբի վրա միացրեք RX- ը PA11 կապին, իսկ TX- ը ՝ PA12 կապին:
    • Նկատի ունեցեք, որ այս կապի առաջադրանքներն ունեն այլընտրանքներ: Դիտեք միկրոկառավարիչի ձեռնարկները `որոշելու համար, թե որ կապերն են ունակ CAN_RD և CAN_TD
    • Եթե օգտագործում եք Arduino կամ տախտակ ՝ առանց ներկառուցված CAN հաղորդիչի, MCP2515 IC չիպը կպահանջվի ՝ այլ հաղորդագրությունների արձանագրությունները CAN փոխարկելու համար:
  • CANL կապը պետք է միացված լինի մյուս ավտոբուսային հանգույցների մյուս CANL կապերին: Նույնը վերաբերում է CANH կապումներին:
  • 120Ω ռեզիստորը CANH և CANL կապերի միջով պահանջվում է միայն այն դեպքում, երբ հանգույցը տերմինալ հանգույց է: Սա նշանակում է, որ այն գտնվում է զուգահեռ միացման լարերի վերջում: Այլ կերպ ասած, CAN ավտոբուսը պետք է ունենա ընդամենը երկու 120Ω դիմադրություն, և դրանք պետք է հնարավորինս հեռու լինեն միմյանցից:
  • Ի վերջո, RS- ի վրա 1kΩ ռեզիստորը (փին 8) կարող է փոխանակվել 10kΩ ռեզիստորի հետ `CAN հաղորդագրության բիթերի բարձրացման/ընկնելու ժամանակը վերահսկելու համար: Լրացուցիչ մանրամասների համար դիմեք MCP2551 չիպերի տվյալների թերթին:

Քայլ 2. Կարդալ և գրել CAN ավտոբուսին

Կարդալ և գրել CAN ավտոբուսին
Կարդալ և գրել CAN ավտոբուսին

Այժմ, երբ հաղորդիչի միացումը միացված է STM32- ին, մենք կարող ենք սկսել հաղորդագրություններ գրել CAN ավտոբուսին: Այս ուսանելի ուղեցույցը չի խորանա STM32 ծածկագրի մեջ: Այնուամենայնիվ, անպայման ստուգեք մեր ծածկագիրը օրինակների համար այստեղ: STM32- ը որպես CAN հանգույց օգտագործելու համար կպահանջվի CAN վերնագրի ֆայլ: Մենք գրել ենք մեր սեփականը, որը կարելի է գտնել մեր github- ում այստեղ: Այստեղ մենք կարճ ակնարկ կտանք կարդալու/գրելու գործընթացի վերաբերյալ:

CAN ավտոբուսից կարդալու համար նախ պետք է իմանալ CAN հաղորդագրության ID- ն: Յուրաքանչյուր հաղորդագրություն պետք է ունենա յուրահատուկ ID, ավելի ցածր առաջնահերթություններ ունեն ավելի բարձր առաջնահերթություն: Այստեղ ցուցադրված կոդի հատվածը սպասում է CAN հաղորդագրությանը ՝ 0x622 ID- ով: Մեր համակարգում, եթե 6 -րդ բայտի առաջին բիթը բարձր է, ապա մենք ցանկանում ենք բարձր A10 սահմանել:

CAN հաղորդագրություն գրելիս պետք է հիշել, որ CAN հաղորդագրությունները բազմաբայթ են: Յուրաքանչյուր գրավոր հաղորդագրություն պետք է ունենա ID և երկարություն: Shownուցադրված ծածկագրի երկրորդ հատվածում մենք գրում ենք տվյալներ յուրաքանչյուր բայթ, այնուհետև ուղարկում ենք հաղորդագրությունը (ID- ն և երկարության պարամետրերը ավելի վաղ սահմանված են ծածկագրում):

Քայլ 3: Հանգույցների միացում

Միացնող հանգույցներ
Միացնող հանգույցներ

Մի քանի CAN հանգույց միացնելիս պետք է ուշադիր ուշադրություն դարձնել մալուխների երկարությանը: Երկու ամենահեռավոր հանգույցները կարող են միմյանցից մինչև 40 մ հեռավորության վրա: Ավտոբուսին միացնող միջին հանգույցները պետք է լինեն հիմնական ավտոբուսային գծերից 50 սմ հեռավորության վրա:

CAN կապերը հետևում են Dsub9 միակցիչ օգտագործելու արդյունաբերական ստանդարտին ՝ 2 -րդ կապում CANL գծով և pin7- ով CANH գծով: CANGND տողը կարող է անցնել 3 -րդ կապում:

Քայլ 4: Կատարեք PCB

Պատրաստեք PCB- ն
Պատրաստեք PCB- ն

PCB- ի վրա CAN ազդանշանները ուղղորդելիս հիշեք, որ CAN- ը դիֆերենցիալ ազդանշան է, և, հետևաբար, CANH- ի և CANL- ի երթուղու ուղեցույցներին պետք է ուշադիր հետևել:

Քայլ 5. Խորհրդի ընդլայնում

Խորհրդի ընդլայնում
Խորհրդի ընդլայնում

Մի քանի այլ հանգույց միասին հավաքեք, ավելացրեք որոշ մուտքեր/ելքեր և միացրեք նրանց բոլոր CANH և CANL կապերը: Նկատի ունեցեք, որ յուրաքանչյուր STM32 կամ այլ միկրոկոնտրոլեր պահանջում է իր սեփական MCP2551 չիպը. դրանք չեն կարող կիսվել:

Ասելով դա ՝ փորձեք ձեր PCB- ները փոքր պահել այստեղ ցուցադրվածից

Քայլ 6. Պատվիրեք ձեր PCB- ները JLCPCB- ից

Պատվիրեք ձեր PCB- ները JLCPCB- ից
Պատվիրեք ձեր PCB- ները JLCPCB- ից

JLCPCB- ն առաջարկում է արագ, բարձրորակ ծառայություններ շատ մատչելի գներով: Ստացեք 5 տախտակ, ցանկացած գույնի տոննա հարմարեցմամբ, ընդամենը 2 դոլարով: Եվ եթե դա ձեր առաջին պատվերն է, ձեռք բերեք 10 տախտակ նույն գնով:

Պարզապես վերբեռնեք ձեր գերբերները և ստացեք ակնթարթային մեջբերում: Ներկայացրեք ձեր պատվերը, և ձեր տախտակները կվերանայվեն արտադրության համար մեկ ժամվա ընթացքում: Վճարելուց հետո կարող եք ակնկալել ձեր բարձրորակ տախտակները երեք օրից:

Ստուգեք այստեղ

Քայլ 7: Ստացեք ձեր տախտակները:

Ստացեք ձեր տախտակները
Ստացեք ձեր տախտակները

Հսկայական աղաղակ JLCPCB- ին `այս նախագիծը հովանավորելու համար: JLCPCB (ShenzhenJLC Electronics Co., Ltd.), Չինաստանում PCB- ի նախատիպի խոշորագույն ձեռնարկությունն է և բարձր տեխնոլոգիական արտադրող, որը մասնագիտացած է PCB- ի արագ նախատիպավորման և փոքր խմբաքանակի PCB- ի արտադրության մեջ: Նրանք բավականաչափ բարի էին UBC Solar- ին տրամադրելու մեր նոր PCB- ները մեր արևային էներգիայով աշխատող մրցարշավի մեքենայի համար: Մենք պատվիրեցինք ուրբաթ օրը, իսկ չորեքշաբթի ստացանք տախտակները:

Խորհուրդ ենք տալիս: