Სარჩევი:

SPI– ის კომუნიკაციის პროტოკოლის საფუძვლები: 13 ნაბიჯი
SPI– ის კომუნიკაციის პროტოკოლის საფუძვლები: 13 ნაბიჯი

ვიდეო: SPI– ის კომუნიკაციის პროტოკოლის საფუძვლები: 13 ნაბიჯი

ვიდეო: SPI– ის კომუნიკაციის პროტოკოლის საფუძვლები: 13 ნაბიჯი
ვიდეო: შეხვედრა #5-29.4.2022 | ETF გუნდის შეხვედრა და დ... 2024, ნოემბერი
Anonim
SPI კომუნიკაციის პროტოკოლის საფუძვლები
SPI კომუნიკაციის პროტოკოლის საფუძვლები

როდესაც მიკროკონტროლერს აერთებთ სენსორზე, ეკრანზე ან სხვა მოდულზე, გიფიქრიათ ოდესმე იმაზე, თუ როგორ ესაუბრებიან ორი მოწყობილობა ერთმანეთს? კონკრეტულად რას ამბობენ? როგორ ახერხებენ მათ ერთმანეთის გაგება?

ელექტრონულ მოწყობილობებს შორის ურთიერთობა ადამიანებს შორის კომუნიკაციის მსგავსია. ორივე მხარე ერთსა და იმავე ენაზე უნდა ლაპარაკობდეს. ელექტრონიკაში ამ ენებს საკომუნიკაციო პროტოკოლები ეწოდება. საბედნიეროდ ჩვენთვის, არსებობს მხოლოდ რამდენიმე საკომუნიკაციო პროტოკოლი, რომელიც უნდა ვიცოდეთ ელექტრონული ტექნიკის უმეტეს პროექტების შექმნისას. ამ სტატიების სერიაში ჩვენ განვიხილავთ სამი ყველაზე გავრცელებული პროტოკოლის საფუძვლებს: სერიული პერიფერიული ინტერფეისი (SPI), ინტეგრირებული წრე (I2C) და უნივერსალური ასინქრონული მიმღები/გადამცემი (UART) კომუნიკაცია. პირველ რიგში, ჩვენ დავიწყებთ რამდენიმე ძირითად კონცეფციას ელექტრონული კომუნიკაციის შესახებ, შემდეგ კი დეტალურად ავხსნით როგორ მუშაობს SPI. მომდევნო სტატიაში ჩვენ განვიხილავთ UART- ის დამყარებულ კომუნიკაციას, ხოლო მესამე სტატიაში ჩვენ ჩავუღრმავდებით I2C- ს. SPI, I2C და UART საკმაოდ ნელია ვიდრე პროტოკოლები, როგორიცაა USB, ethernet, Bluetooth და WiFi, მაგრამ ისინი ბევრად უფრო მარტივია და იყენებენ ნაკლებ აპარატურასა და სისტემის რესურსებს. SPI, I2C და UART იდეალურია მიკროკონტროლებსა და მიკროკონტროლერებსა და სენსორებს შორის კომუნიკაციისთვის, სადაც დიდი სიჩქარის მონაცემების გადაცემა არ არის საჭირო.

ნაბიჯი 1: სერიალი VS. პარალელური კომუნიკაცია

სერიალი VS. პარალელური კომუნიკაცია
სერიალი VS. პარალელური კომუნიკაცია

ელექტრონული მოწყობილობები ესაუბრებიან ერთმანეთს მონაცემების ნაწილის გაგზავნით მოწყობილობებს შორის ფიზიკურად დაკავშირებული მავთულის საშუალებით. ბიტი ჰგავს წერილს სიტყვაში, გარდა 26 ასოს ნაცვლად (ინგლისურ ანბანში), ბიტი არის ორობითი და შეიძლება იყოს მხოლოდ 1 ან 0. ბიტი გადადის ერთი მოწყობილობიდან მეორეზე ძაბვის სწრაფი ცვლილებით. 5 ვ -ზე მომუშავე სისტემაში 0 ბიტი გადაეცემა 0 ვ -ის მოკლე პულსად, ხოლო 1 ბიტი 5 ვ -ის მოკლე იმპულსით.

მონაცემთა ნაწილები შეიძლება გადაეცეს პარალელურად ან სერიულ ფორმას. პარალელური კომუნიკაციისას, მონაცემთა ნაწილები იგზავნება ყველა ერთდროულად, თითოეული ცალკე მავთულის მეშვეობით. შემდეგი დიაგრამა გვიჩვენებს ასო "C" - ს პარალელურ გადაცემას ორობითი ფორმით (01000011):

ნაბიჯი 2:

სერიულ კომუნიკაციაში, ბიტები იგზავნება სათითაოდ ერთი მავთულის საშუალებით. შემდეგი დიაგრამა გვიჩვენებს ასო "C" - ს სერიულ გადაცემას ორობითი ფორმით (01000011):

ნაბიჯი 3:

გამოსახულება
გამოსახულება

ნაბიჯი 4: შესავალი SPI კომუნიკაციაში

SPI კომუნიკაციის შესავალი
SPI კომუნიკაციის შესავალი

SPI არის საერთო საკომუნიკაციო პროტოკოლი, რომელსაც იყენებენ მრავალი განსხვავებული მოწყობილობა. მაგალითად, SD ბარათის მოდულები, RFID ბარათების წამკითხველი მოდულები და 2.4 გიგაჰერცი უკაბელო გადამცემი/მიმღები - SPI– ს იყენებენ მიკროკონტროლებთან კომუნიკაციისთვის.

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

ნაბიჯი 5:

გამოსახულება
გამოსახულება

ნაბიჯი 6:

MOSI (Master Output/Slave Input) - ხაზი ოსტატისთვის მონაზე მონაცემების გასაგზავნად.

MISO (Master Input/Slave Output) - ხაზი მონას გაგზავნის მონაცემები ოსტატს.

SCLK (საათი) - ხაზი საათის სიგნალისთვის.

SS/CS (მონათა შერჩევა/ჩიპის არჩევა) - ხაზი სამაგისტროში, რომ აირჩიოს რომელ მონაზე გაგზავნოს მონაცემები

ნაბიჯი 7:

გამოსახულება
გამოსახულება

*პრაქტიკაში, მონების რაოდენობა შეზღუდულია სისტემის დატვირთვის ტევადობით, რაც ამცირებს ოსტატის შესაძლებლობას ზუსტად გადართოს ძაბვის დონეს შორის.

ნაბიჯი 8: როგორ მუშაობს SPI

ᲡᲐᲐᲗᲘ

საათის სიგნალი სინქრონიზაციას უკეთებს მონაცემთა ბიტების გამოშვებას სამაგისტროდან მონას მიერ ბიტების სინჯის აღებამდე. თითოეული საათის ციკლში გადადის ერთი ბიტი მონაცემები, ამიტომ მონაცემთა გადაცემის სიჩქარე განისაზღვრება საათის სიგნალის სიხშირით. SPI კომუნიკაცია ყოველთვის იწყებს მასტერს, ვინაიდან სამაგისტრო ახდენს საათის სიგნალის კონფიგურაციას და გენერირებას.

ნებისმიერი საკომუნიკაციო პროტოკოლი, სადაც მოწყობილობები იზიარებენ საათის სიგნალს, ცნობილია როგორც სინქრონული. SPI არის სინქრონული საკომუნიკაციო პროტოკოლი. ასევე არსებობს ასინქრონული მეთოდები, რომლებიც არ იყენებენ საათის სიგნალს. მაგალითად, UART კომუნიკაციაში, ორივე მხარე არის წინასწარ კონფიგურირებული baud სიჩქარით, რომელიც კარნახობს მონაცემთა გადაცემის სიჩქარესა და დროს.

საათის სიგნალი SPI– ში შეიძლება შეიცვალოს საათის პოლარობისა და საათის ფაზის თვისებების გამოყენებით. ეს ორი თვისება ერთად მუშაობს იმის დასადგენად, როდის გამოდის ბიტები და როდის ხდება მათი შერჩევა. საათის პოლარობა შეიძლება დადგინდეს ოსტატის მიერ ბიტების გამოშვებისა და საათის ციკლის აღმავალი ან დაცემული ნიმუშის ნიმუშის აღების მიზნით. საათის ფაზა შეიძლება დადგინდეს, რომ გამომავალი და შერჩევა მოხდეს საათის ციკლის პირველ ან მეორე კიდეზე, განურჩევლად იმისა, იზრდება თუ დაეცემა.

SLAVE SELECT

ოსტატს შეუძლია აირჩიოს რომელ მონასთან სურს საუბარი მონას CS/SS ხაზის დაბალი ძაბვის დონეზე დაყენებით. მოჩვენებითი, არაგადამცემი მდგომარეობისას, მონათა შერჩეული ხაზი ინახება მაღალი ძაბვის დონეზე. მრავალჯერადი CS/SS ქინძისთავები შეიძლება იყოს ხელმისაწვდომი სამაგისტროზე, რაც საშუალებას აძლევს მრავალ მონაწილეს პარალელურად შეუერთდეს. თუ მხოლოდ ერთი CS/SS პინია წარმოდგენილი, მრავალი მონა შეიძლება მიერთდეს სამაგისტროს Daisy-chaining– ით.

MULTIPLE SLAVES SPI

შეიძლება შეიქმნას ერთი ბატონისა და ერთი მონასთან მუშაობისთვის და ის შეიძლება შეიქმნას მრავალი მონის მიერ, რომელსაც აკონტროლებს ერთი ბატონი. ორი გზა ბატონთან დაკავშირების ორი გზა არსებობს. თუ სამაგისტრო აქვს რამდენიმე მონა აირჩიე ქინძისთავები, მონა შეიძლება იყოს სადენიანი პარალელურად შემდეგნაირად:

ნაბიჯი 9:

გამოსახულება
გამოსახულება

ნაბიჯი 10:

მოსი და მისო

სამაგისტრო მონაცემებს უგზავნის მონას ცოტ -ცოტას, სერიულად MOSI ხაზის საშუალებით. მონა იღებს მასტერისგან გამოგზავნილ მონაცემებს MOSI პინზე. ბატონისგან მონაზე გაგზავნილი მონაცემები, როგორც წესი, უპირველეს ყოვლისა იგზავნება ყველაზე მნიშვნელოვანი ბიტით. მონას ასევე შეუძლია მონაცემების დაბრუნება სამაგისტროზე MISO ხაზის მეშვეობით სერიულად. მონადან ბატონთან დაბრუნებული მონაცემები, როგორც წესი, პირველ რიგში უმცირესი მნიშვნელობით იგზავნება. SPI მონაცემთა გადაცემის ნაბიჯები 1. სამაგისტრო აჩვენებს საათის სიგნალს:

ნაბიჯი 11:

გამოსახულება
გამოსახულება

თუ მხოლოდ ერთი მონა მონაკვეთის არჩევაა შესაძლებელი, მონები შეიძლება მიჯაჭვული იყოს ასე:

ნაბიჯი 12:

გამოსახულება
გამოსახულება
გამოსახულება
გამოსახულება
გამოსახულება
გამოსახულება
გამოსახულება
გამოსახულება

მოსი და მისო

სამაგისტრო მონაცემებს უგზავნის მონას ცოტ -ცოტას, სერიულად MOSI ხაზის საშუალებით. მონა იღებს მასტერისგან გამოგზავნილ მონაცემებს MOSI პინზე. ბატონისგან მონაზე გაგზავნილი მონაცემები, როგორც წესი, უპირველეს ყოვლისა იგზავნება ყველაზე მნიშვნელოვანი ბიტით.

მონას ასევე შეუძლია მონაცემების დაბრუნება სამაგისტროზე MISO ხაზის მეშვეობით სერიულად. მონადან ბატონთან დაბრუნებული მონაცემები, როგორც წესი, პირველ რიგში უმცირესი მნიშვნელობით იგზავნება.

SPI მონაცემთა გადაცემის ნაბიჯები

*შენიშვნა სურათები ჩამოთვლილია Oboe თქვენ ადვილად გამოირჩევა

1. სამაგისტრო აჩვენებს საათის სიგნალს:

2. სამაგისტრო ცვლის SS/CS პინს დაბალი ძაბვის მდგომარეობაში, რაც ააქტიურებს მონას:

3. სამაგისტრო აგზავნის მონაცემებს ერთდროულად მონაზე MOSI ხაზის გასწვრივ. მონა კითხულობს ბიტებს მათი მიღებისას:

4. თუ საჭიროა პასუხი, მონა მონაცემებს უბრუნებს სამაგისტროს MISO ხაზის გასწვრივ. ოსტატი კითხულობს ბიტებს მათი მიღებისას:

ნაბიჯი 13: SPI- ს უპირატესობები და უარყოფითი მხარეები

SPI– ს გამოყენებას აქვს გარკვეული დადებითი და უარყოფითი მხარეები და თუ არჩევანის გაკეთების საშუალება გაქვთ სხვადასხვა საკომუნიკაციო პროტოკოლებს შორის, თქვენ უნდა იცოდეთ როდის გამოიყენოთ SPI თქვენი პროექტის მოთხოვნების შესაბამისად:

უპირატესობები

არ არის დაწყებული და შეწყვეტილი ბიტი, ასე რომ მონაცემების გადაცემა შესაძლებელია უწყვეტად, არ არის რთული მონათა მიმართვის სისტემა, როგორიცაა I2C მონაცემთა გადაცემის უფრო მაღალი მაჩვენებელი ვიდრე I2C (თითქმის ორჯერ სწრაფად) ცალკე MISO და MOSI ხაზები, ასე რომ მონაცემების გაგზავნა და მიღება ერთდროულად დრო

უარყოფითი მხარეები

იყენებს ოთხ მავთულს (I2C და UART– ები ორს) არავითარი აღიარება იმისა, რომ მონაცემები წარმატებით იქნა მიღებული (I2C– ს აქვს ეს) შეცდომების შემოწმების ფორმა, როგორც UART– ში პარიტეტული ბიტი, მხოლოდ ერთ ოსტატს აძლევს საშუალებას ვიმედოვნოთ, რომ ამ სტატიამ უკეთესი გაგება მოგანიჭათ SPI– ს. განაგრძეთ ამ სერიის მეორე ნაწილი, რომ გაეცნოთ UART– ის კომუნიკაციას, ან მესამე ნაწილს, სადაც განვიხილავთ I2C პროტოკოლს.

თუ თქვენ გაქვთ რაიმე შეკითხვები, მოგერიდებათ დასვით იგი კომენტარების განყოფილებაში, ჩვენ აქ ვართ დასახმარებლად. და აუცილებლად დაიცავით

პატივისცემით: M. Junaid

გირჩევთ: