Სარჩევი:

STM32 CAN ინტერფეისი: 7 ნაბიჯი
STM32 CAN ინტერფეისი: 7 ნაბიჯი

ვიდეო: STM32 CAN ინტერფეისი: 7 ნაბიჯი

ვიდეო: STM32 CAN ინტერფეისი: 7 ნაბიჯი
ვიდეო: STM32 Blue Pill-ის დაპროგრამება LDmicro PLC Ladder Logic-ით 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: გადამცემი წრე

გადამცემი წრე
გადამცემი წრე

CAN ავტობუსთან დასაკავშირებლად ჩვენ გამოვიყენებთ MCP2551 CAN გადამცემი IC- ს. IC მოქმედებს როგორც შუალედური გადამცემი/მიმღები წყვილი STM32– ის CAN ავტობუსთან დასაკავშირებლად. ამ IC– ის დაყენების სქემა საკმაოდ მარტივია, მაგრამ გასათვალისწინებელია რამდენიმე რამ:

  • MCP2551 ჩიპზე CAN_RX (პინ 4) და CAN_TX (პინ 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Ω რეზისტორი და ისინი მაქსიმალურად დაშორებული უნდა იყოს ერთმანეთისგან.
  • დაბოლოს, 1kΩ რეზისტორი RS- ზე (პინი 8) შეიძლება შეიცვალოს 10kΩ რეზისტორზე CAN შეტყობინების ბიტების ამოსვლის/დაცემის დროის გასაკონტროლებლად. იხილეთ MCP2551 ჩიპის მონაცემთა ფურცელი დამატებითი ინფორმაციისთვის.

ნაბიჯი 2: კითხვა და წერა CAN ავტობუსში

კითხვა და წერა CAN ავტობუსში
კითხვა და წერა CAN ავტობუსში

ახლა, როდესაც გადამცემი წრე უკავშირდება STM32- ს, ჩვენ შეგვიძლია დავიწყოთ შეტყობინებების წერა CAN ავტობუსში. ეს სასწავლო ინსტრუქცია არ ჩაწვდება STM32 კოდში. თუმცა, დარწმუნდით, რომ შეამოწმეთ ჩვენი კოდი მაგალითებისათვის აქ. STM32– ის, როგორც CAN კვანძის გამოყენება, მოითხოვს CAN სათაურის ფაილს. ჩვენ დავწერეთ ჩვენი საკუთარი, რომელიც შეგიძლიათ ნახოთ ჩვენს github– ზე აქ. აქ ჩვენ მოკლედ მიმოვიხილავთ წაკითხვის/წერის პროცესს.

CAN ავტობუსიდან წასაკითხად, ჩვენ ჯერ უნდა ვიცოდეთ CAN შეტყობინების ID. თითოეულ შეტყობინებას უნდა ჰქონდეს უნიკალური პირადობის მოწმობა, ხოლო ქვედა პირადობის მოწმობას აქვს უმაღლესი პრიორიტეტი. აქ ნაჩვენები კოდის ფრაგმენტი ელოდება CAN შეტყობინებას ID- ით 0x622. ჩვენს სისტემაში, თუ მე -6 ბაიტის პირველი ბიტი მაღალია, მაშინ ჩვენ გვინდა, რომ დააყენოთ pin A10 მაღალი.

CAN შეტყობინების წერისას უნდა გვახსოვდეს, რომ CAN შეტყობინებები მრავალბაიტიანია. თითოეულ წერილობით შეტყობინებას უნდა ჰქონდეს ID და სიგრძე. ნაჩვენები კოდის მეორე ფრაგმენტში, ჩვენ ვწერთ მონაცემებს თითოეულ ბაიტზე, შემდეგ ვგზავნით შეტყობინებას (ID და სიგრძის პარამეტრები უფრო ადრეა განსაზღვრული კოდში).

ნაბიჯი 3: კვანძების დაკავშირება

კვანძების დაკავშირება
კვანძების დაკავშირება

მრავალჯერადი CAN კვანძების შეერთებისას ფრთხილად ყურადღება უნდა მიექცეს კაბელების სიგრძეს. ორი ყველაზე შორეული კვანძი შეიძლება იყოს ერთმანეთისგან 40 მ მანძილზე. ავტობუსთან დამაკავშირებელი შუა კვანძები უნდა იყოს მთავარი ავტობუსის ხაზებიდან 50 სმ მანძილზე.

CAN კავშირები მიჰყვება Dsub9 კონექტორის გამოყენების ინდუსტრიულ სტანდარტს CANL ხაზით პინ 2 -ზე და CANH ხაზი pin7. ვარიანტი 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– ები ჩვენი მზის ენერგიით აღჭურვილი სარბოლო მანქანისთვის. ჩვენ შეკვეთა პარასკევს გავაკეთეთ და ოთხშაბათს დაფები მივიღეთ!

გირჩევთ: