Სარჩევი:
- მარაგები
- ნაბიჯი 1: გადამცემი წრე
- ნაბიჯი 2: კითხვა და წერა CAN ავტობუსში
- ნაბიჯი 3: კვანძების დაკავშირება
- ნაბიჯი 4: გააკეთეთ PCB
- ნაბიჯი 5: გამგეობის გაფართოება
- ნაბიჯი 6: შეუკვეთეთ თქვენი PCB– ები JLCPCB– დან
- ნაბიჯი 7: მიიღეთ თქვენი დაფები
ვიდეო: STM32 CAN ინტერფეისი: 7 ნაბიჯი
2024 ავტორი: John Day | [email protected]. ბოლოს შეცვლილი: 2024-01-30 10:17
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 ავტობუსში
ახლა, როდესაც გადამცემი წრე უკავშირდება 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– ზე CAN სიგნალებს აგზავნით, გახსოვდეთ, რომ CAN არის დიფერენციალური სიგნალი და, ამრიგად, CANH და CANL– ის მარშრუტის მითითებები ფრთხილად უნდა იქნას დაცული.
ნაბიჯი 5: გამგეობის გაფართოება
გადაყარეთ რამოდენიმე კვანძი ერთად, დაამატეთ რამდენიმე შესავალი/გამოსავალი და დააკავშირეთ ყველა მათი CANH და CANL ქინძისთავები. გაითვალისწინეთ, რომ თითოეული STM32 ან სხვა მიკროკონტროლი მოითხოვს საკუთარ ჩიპს MCP2551; მათი გაზიარება შეუძლებელია.
ამის თქმით, შეეცადეთ შეინახოთ თქვენი PCB უფრო მცირე ვიდრე აქ ნაჩვენები
ნაბიჯი 6: შეუკვეთეთ თქვენი PCB– ები JLCPCB– დან
JLCPCB გთავაზობთ სწრაფ, მაღალი ხარისხის მომსახურებას ძალიან გონივრულ ფასებში. მიიღეთ 5 დაფა, ნებისმიერი ფერი ტონა მორგებით, მხოლოდ 2 დოლარად! და თუ ეს თქვენი პირველი შეკვეთაა, მიიღეთ 10 დაფა იმავე ფასად!
უბრალოდ ატვირთეთ თქვენი გერბერები და მიიღეთ მყისიერი ციტატა! წარმოადგინეთ თქვენი შეკვეთა და თქვენი დაფები განიხილება წარმოებისთვის ერთი საათის განმავლობაში. გადახდის შემდეგ, თქვენ შეგიძლიათ ველით თქვენს მაღალი ხარისხის დაფებს სამ დღეში!
შეამოწმეთ აქ
ნაბიჯი 7: მიიღეთ თქვენი დაფები
უზარმაზარი შეძახილი JLCPCB– ს ამ პროექტის სპონსორობისთვის. JLCPCB (ShenzhenJLC Electronics Co., Ltd.), არის უდიდესი PCB პროტოტიპის საწარმო ჩინეთში და მაღალტექნოლოგიური მწარმოებელი, რომელიც სპეციალიზირებულია PCB– ის სწრაფი პროტოტიპირებისა და მცირე ზომის PCB წარმოებაში. ისინი საკმარისად კეთილგანწყობილნი იყვნენ, რომ უზრუნველყონ UBC Solar– ით ჩვენი ახალი PCB– ები ჩვენი მზის ენერგიით აღჭურვილი სარბოლო მანქანისთვის. ჩვენ შეკვეთა პარასკევს გავაკეთეთ და ოთხშაბათს დაფები მივიღეთ!
გირჩევთ:
ინტერფეისი LCD ეკრანით M4 ჩართვა: 5 ნაბიჯი
ინტერფეისი LCD ეკრანით M4 ჩართვა: ეს სამეურვეო საშუალებას მოგვცემს გავაკონტროლოთ LCD ეკრანი Wi-Fi– ს საშუალებით ჩვენი სმარტფონიდან თუ მძღოლი არ გვაქვს, შეგვიძლია გამოვიყენოთ არდუინო, მაგრამ ბმულის ქვემოთ Drivemall– ის განვითარებისათვის. Drivemall- ს უპირატესობას ანიჭებს კლასს
Arduino კოსმოსური ინტერფეისი: 3 ნაბიჯი
Arduino კოსმოსური ინტერფეისი: გამარჯობა სასწავლო საზოგადოება, ამჯერად მე გავაკეთე ერთ -ერთი უმარტივესი პროექტი Arduino Uno– ს დასასრულებლად: კოსმოსური ხომალდის წრე. მას ეწოდება ეგრეთ წოდებული, რადგან ეს არის პროგრამირების ტიპი და სქემა, რომელიც გამოიყენებოდა ადრეულ სამეცნიერო ფანტასტიკურ სატელევიზიო შოუებსა და ფილმებში
8051 ინტერფეისი DS1307 RTC– თან და LCD– ში დროის ნიშნულის ჩვენება: 5 ნაბიჯი
8051 ინტერფეისი DS1307 RTC– თან და LCD– ში დროის ნიშნულის ჩვენება: ამ სახელმძღვანელოში ჩვენ აგიხსნით, თუ როგორ შეგვიძლია დავაკავშიროთ 8051 მიკროკონტროლერს ds1307 RTC. აქ ჩვენ ვაჩვენებთ RTC დროს lcd პროტეუსის სიმულაციის გამოყენებით
ინტერფეისი Arduino Mega GPS მოდულით (Neo-6M): 8 ნაბიჯი
ინტერფეისი Arduino Mega GPS მოდულით (Neo-6M): ამ პროექტში მე ვაჩვენე როგორ გავაერთიანო GPS მოდული (Neo-6M) არდუინო მეგასთან. TinyGPS ბიბლიოთეკა გამოიყენება გრძედის და გრძედის მონაცემების საჩვენებლად და TinyGPS ++ გამოიყენება გრძედის, გრძედის, სიმაღლის, სიჩქარის და თანამგზავრის რაოდენობის საჩვენებლად
MIDI ნაბიჯი ინტერფეისი: 12 ნაბიჯი (სურათებით)
MIDI ნაბიჯი ინტერფეისი: ესპანური ვერსია აქ. ამ სასწავლო ჩვენ გაჩვენებთ თუ როგორ უნდა გააკეთოთ მსუბუქი და ხმოვანი ინტერფეისი, რომლის გამოყენებაც შესაძლებელია " სიმონ ამბობს " და როგორც MIDI ინტერფეისი. ორივე რეჟიმი ითამაშებს თქვენს ფეხებს. ფონზე პროექტი დაიბადა, რადგან