CAN ავტობუსი განმარტებულია: როგორ უკავშირდებიან კონტროლერები, BMS და დისპლეები ერთმანეთს
თანამედროვე ელექტრო მანქანაზე, კომპონენტები მხოლოდ ენერგიას კი არ ცვლიან, არამედ ინფორმაციასაც. კონტროლერს სურს იცოდეს ბატარეის მდგომარეობა, დისპლეის - სიჩქარე და ტემპერატურა, მეორე კონტროლერს - პირველის ბრძანება. ამისათვის ყველაზე გავრცელებული საშუალება ავტომობილებიდან მოდის: CAN ავტობუსი. ეს სახელმძღვანელო ხსნის, თუ როგორ მუშაობს ის და როგორ დავაკავშიროთ ის შეცდომების გარეშე.
ძირითადი პრინციპები
- CAN აკავშირებს რამდენიმე მოწყობილობას დაგრეხილი მავთულების ერთ წყვილზე, რომელსაც CAN მაღალი (CAN high) და CAN დაბალი (CAN low) ეწოდება.
- საჭიროა 120 ომიანი რეზისტორი ავტობუსის ორივე ბოლოში და მხოლოდ ბოლოებში.
- თითოეულ შეტყობინებას აქვს იდენტიფიკატორი, რომელიც ასევე პრიორიტეტის ფუნქციას ასრულებს: ყველაზე მნიშვნელოვანი ყოველთვის პირველი გადის.
- ყველა მოწყობილობამ უნდა გამოიყენოს კომუნიკაციის ერთი და იგივე სიჩქარე.
ავტობუსი და არა კავშირი
კლასიკური სერიული კავშირი აკავშირებს ორ მოწყობილობას. CAN კი არის ავტობუსი: ყველა მოწყობილობა მიერთებულია ერთსა და იმავე ორ მავთულზე და თითოეულს შეუძლია ყველასთან საუბარი. მოწყობილობის დასამატებლად, ჩვენ ვერთდებით ავტობუსზე, კონტროლერამდე ახალი კაბელის გაყვანის გარეშე. სწორედ ამან განაპირობა მისი დამკვიდრება ავტომობილებში, სადაც ათობით კომპიუტერი იზიარებს მავთულების რამდენიმე წყვილს.
მსუბუქ ელექტრო მანქანაზე, ჩვეულებრივ, ვხვდებით ერთ ან რამდენიმე კონტროლერს, ბატარეის BMS-ს, დისპლეის, ტელემეტრიის მოდულს ან დამტენს.
ორი მავთული, ერთი განსხვავება
CAN იყენებს მავთულების წყვილს, CAN მაღალი და CAN დაბალი. ინფორმაცია გადაიცემა არა მავთულის ძაბვით მიწასთან მიმართებაში, არამედ მათ შორის არსებული განსხვავებით:
- მოსვენებულ მდგომარეობაში («რეცესიული» ბიტი), ორივე მავთული ერთსა და იმავე ძაბვაზეა, დაახლოებით წრედის კვების ნახევარი;
- «დომინანტური» ბიტის გამოსაშვებად, გადამცემი აშორებს ორ მავთულს: მაღალი იწევს, დაბალი ეშვება.
ელექტრული შეფერხება, როგორიცაა კონტროლერი, რომელიც ჭრის ასობით ამპერს, ორივე მავთულზე ერთნაირად მოქმედებს. მათ შორის განსხვავება უცვლელი რჩება. სწორედ ეს ხდის CAN-ს ასე მტკიცეს ხმაურიან ელექტრულ გარემოში, იმ პირობით, რომ ორივე მავთული ერთმანეთზეა დაგრეხილი.
ტერმინაციის რეზისტორები
CAN ავტობუსს უნდა ჰქონდეს 120 ომიანი რეზისტორი CAN მაღალსა და CAN დაბალს შორის მის თითოეულ ფიზიკურ ბოლოში. ისინი ხელს უშლიან სიგნალების არეკვლას კაბელის ბოლოში და აბრუნებენ ავტობუსს მოსვენებულ მდგომარეობაში.
- სწორად დასრულებული ავტობუსი: CAN მაღალსა და CAN დაბალს შორის გაზომვისას, გამორთული მოწყობილობებით, ვიღებთ დაახლოებით 60 ომს (ორი 120 ომიანი რეზისტორი პარალელურად).
- დაახლოებით 120 ომი: აკლია ტერმინაცია.
- 60 ომზე მნიშვნელოვნად დაბალი მნიშვნელობა: ძალიან ბევრი ტერმინაციაა, ხშირად იმიტომ, რომ რამდენიმე მოწყობილობას აქვს ის ჩართული.
დაკარგული ან ზედმეტი ტერმინაცია არასტაბილური კომუნიკაციის პირველი მიზეზია.
იდენტიფიკატორები და პრიორიტეტი
თითოეულ CAN შეტყობინებას აქვს იდენტიფიკატორი, ნომერი, რომელიც მიუთითებს რაზეა საუბარი (მაგალითად, «ბატარეის მდგომარეობა» ან «წინა ძრავის ბრძანება»). მოწყობილობები კითხულობენ ყველა შეტყობინებას და ინახავენ მხოლოდ მათ, რაც მათ აინტერესებთ.
როდესაც ორი მოწყობილობა იწყებს გადაცემას ერთდროულად, ისინი ადარებენ თავიანთ იდენტიფიკატორებს ბიტ-ბიტად, თავად მავთულზე. დომინანტური ბიტი ანადგურებს რეცესიულ ბიტს: ის, ვინც აგზავნის რეცესიულ ბიტს და კითხულობს დომინანტურ ბიტს, ხვდება, რომ წააგო და ჩუმდება. ყველაზე პატარა იდენტიფიკატორი ყოველთვის იმარჯვებს, შეტყობინების დაზიანების გარეშე. ამას არბიტრაჟს უწოდებენ: კრიტიკული შეტყობინებები იღებენ ყველაზე პატარა იდენტიფიკატორებს.
ჩაშენებული საიმედოობა
- თითოეული შეტყობინება შეიცავს საკონტროლო კოდს: დაზიანებული შეტყობინება აღმოჩენილი და ხელახლა გაგზავნილია.
- თითოეული მიმღები ადასტურებს სწორ მიღებას დადასტურების ბიტით.
- მოწყობილობა, რომელიც აგროვებს შეცდომებს, თავისით ითიშება, რათა არ დაბლოკოს მთელი ავტობუსი.
ავტობუსის სიჩქარე
ავტობუსის ყველა მოწყობილობამ უნდა გამოიყენოს ერთი და იგივე სიჩქარე. ყველაზე გავრცელებული მნიშვნელობებია 250 და 500 კილობიტი წამში, ზოგჯერ 1 მეგაბიტი. რაც უფრო სწრაფია ავტობუსი, მით უფრო მოკლეა მისი მაქსიმალური სიგრძე, მაგრამ მსუბუქ ავტომობილზე, მაქსიმუმ რამდენიმე მეტრზე, სიგრძე არასოდეს არის შეზღუდვა. უფრო ახალი ვერსია, CAN FD, გადასცემს მეტ მონაცემს თითო შეტყობინებაზე უფრო მაღალი სიჩქარით.
მაგალითი: ორი დაკავშირებული კონტროლერი
ორძრავიან სკუტერზე, CAN-ით დაკავშირებული ორი კონტროლერი იქცევა როგორც ერთი: ის, ვინც იღებს გაზის სიგნალს, გადასცემს ბრძანებას მეორეს და ერთი პარამეტრების პროგრამული უზრუნველყოფა ხედავს ორივეს. ეს არის VESC კონტროლერების შემთხვევა, რომელიც წარმოდგენილია ჩვენს სახელმძღვანელოში VESC მარტივად ახსნილი.
სახელოსნოს რჩევა
ყოველთვის დაგრეხეთ CAN მაღალი და CAN დაბალი ერთად, მოარიდეთ ისინი ფაზის კაბელებს და შეამოწმეთ 60 ომი მულტიმეტრით პირველ ჩართვამდე. ხუთი წუთი შემოწმება თავიდან აგაცილებთ საათობით წყვეტილი კომუნიკაციის ძიებას.
ხშირად დასმული კითხვები
გადააქვს თუ არა CAN-ს დენი მოწყობილობების კვებისთვის?
არა, CAN წყვილი მხოლოდ ინფორმაციას გადასცემს. მოწყობილობებს აქვთ საკუთარი კვება, ზოგჯერ მოწოდებული იმავე კაბელის სხვა მავთულებით.
რატომ მუშაობს ჩემი CAN კომუნიკაცია წყვეტილად?
ყველაზე ხშირი მიზეზებია დაკარგული ან ზედმეტი ტერმინაცია, დაუგრეხელი მავთულები, რომლებიც გადის დენის კაბელებთან ახლოს, გაცვეთილი კონექტორი, ან ორი მოწყობილობა, რომლებსაც არ აქვთ ავტობუსის ერთი და იგივე სიჩქარე.
შესაძლებელია თუ არა ნებისმიერი CAN მოწყობილობის ერთმანეთთან დაკავშირება?
ელექტრულად, დიახ, თუ ისინი იზიარებენ ავტობუსის სიჩქარეს. მაგრამ იმისათვის, რომ მათ გაუგონ ერთმანეთს, მათ უნდა ისაუბრონ ერთ «ენაზე»: იგივე იდენტიფიკატორები და შეტყობინებების იგივე შინაარსი. ორი სხვადასხვა ბრენდი ვერ გაუგებს ერთმანეთს ადაპტაციის გარეშე.