Სარჩევი:

UART კომუნიკაციის საფუძვლები: 16 ნაბიჯი
UART კომუნიკაციის საფუძვლები: 16 ნაბიჯი

ვიდეო: UART კომუნიკაციის საფუძვლები: 16 ნაბიჯი

ვიდეო: UART კომუნიკაციის საფუძვლები: 16 ნაბიჯი
ვიდეო: Fysetc Spider v1.1 - 64 Bit OctoPi Install 2024, ნოემბერი
Anonim
UART კომუნიკაციის საფუძვლები
UART კომუნიკაციის საფუძვლები

გახსოვთ, როდესაც პრინტერებს, თაგვებს და მოდემებს ჰქონდათ სქელი კაბელები იმ უზარმაზარი ჩამხშობი კონექტორებით? ის, რაც ფაქტიურად უნდა ჩაეფლო თქვენს კომპიუტერში? ეს მოწყობილობები ალბათ იყენებდნენ UART– ებს თქვენს კომპიუტერთან კომუნიკაციისთვის. მიუხედავად იმისა, რომ USB– მა თითქმის მთლიანად შეცვალა ძველი კაბელები და კონექტორები, UART– ები ნამდვილად არ არის წარსული. თქვენ ნახავთ, რომ UART– ები გამოიყენება წვრილმანი ელექტრონიკის პროექტებში GPS მოდულების, Bluetooth მოდულების და RFID ბარათების წამკითხველთა მოდულების დასაკავშირებლად თქვენს Raspberry Pi, Arduino ან სხვა მიკროკონტროლერებთან.

UART არის უნივერსალური ასინქრონული მიმღები/გადამცემი. ეს არ არის საკომუნიკაციო პროტოკოლი, როგორიცაა SPI და I2C, არამედ ფიზიკური წრე მიკროკონტროლერში, ან ცალკეული IC. UART– ის მთავარი მიზანია სერიული მონაცემების გადაცემა და მიღება.

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

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

UART– ის კომუნიკაციაში ორი UART პირდაპირ ურთიერთობს ერთმანეთთან. გადამცემი UART გარდაქმნის პარალელურ მონაცემებს მაკონტროლებელი მოწყობილობიდან, როგორიცაა CPU სერიულ ფორმაში, გადასცემს მას სერიულად მიმღებ UART– ზე, რომელიც შემდეგ გარდაქმნის სერიულ მონაცემებს პარალელურ მონაცემებად მიმღები მოწყობილობისათვის. ორ UART– ს შორის მონაცემების გადასაცემად საჭიროა მხოლოდ ორი მავთული. მონაცემები მიედინება გადამცემი UART– ის Tx პინიდან მიმღები UART– ის Rx პინიდან:

ნაბიჯი 2: მონაცემები მიედინება გადამცემი UART– ის Tx პინიდან მიმღები UART– ის Rx პინიდან:

მონაცემები მიედინება გადამცემი UART– ის Tx პინიდან მიმღები UART– ის Rx პინიდან
მონაცემები მიედინება გადამცემი UART– ის Tx პინიდან მიმღები UART– ის Rx პინიდან

ნაბიჯი 3:

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

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

ნაბიჯი 4:

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

ორივე UART ასევე უნდა იყოს კონფიგურირებული, რომ გადასცეს და მიიღოს იგივე მონაცემთა პაკეტის სტრუქტურა.

ნაბიჯი 5: როგორ მუშაობს UART

UART, რომელიც აპირებს მონაცემთა გადაცემას, იღებს მონაცემებს მონაცემთა ავტობუსიდან. მონაცემთა ავტობუსი გამოიყენება UART– ში მონაცემების გასაგზავნად სხვა მოწყობილობით, როგორიცაა პროცესორი, მეხსიერება ან მიკროკონტროლერი. მონაცემები გადაეცემა მონაცემთა ავტობუსიდან გადამცემ UART– ს პარალელურად. მას შემდეგ, რაც გადამცემი UART იღებს მონაცემთა ავტობუსის პარალელურ მონაცემებს, ის ამატებს დაწყების ბიტს, პარიტეტულ ბიტს და გაჩერების ბიტს, რაც ქმნის მონაცემთა პაკეტს. შემდეგი, მონაცემთა პაკეტი გამოდის სერიულად, ბიტ -ბიტი Tx პინზე. მიმღები UART კითხულობს მონაცემთა პაკეტს ბიტი -ბიტით მის Rx პინზე. მიმღები UART შემდეგ მონაცემებს აბრუნებს პარალელურ ფორმაში და შლის საწყის ბიტს, პარიტეტულ ბიტს და სტოპის ბიტებს. დაბოლოს, მიმღები UART გადასცემს მონაცემთა პაკეტს მონაცემთა ავტობუსის პარალელურად მიმღების ბოლოს:

ნაბიჯი 6: სურათი როგორ მუშაობს UART

სურათი როგორ მუშაობს UART
სურათი როგორ მუშაობს UART

ნაბიჯი 7:

UART გადაცემული მონაცემები ორგანიზებულია პაკეტებში. თითოეული პაკეტი შეიცავს 1 დაწყების ბიტს, 5 -დან 9 მონაცემთა ბიტს (UART- ის მიხედვით), სურვილისამებრ პარიტეტულ ბიტს და 1 ან 2 გაჩერების ბიტს:

ნაბიჯი 8: UART გადაცემული მონაცემები ორგანიზებულია პაკეტების სურათში

UART გადაცემული მონაცემები ორგანიზებულია პაკეტების სურათში
UART გადაცემული მონაცემები ორგანიზებულია პაკეტების სურათში

ნაბიჯი 9:

დაწყების ბიტი

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

მონაცემთა ჩარჩო

მონაცემთა ჩარჩო შეიცავს გადაცემულ ფაქტობრივ მონაცემებს. ეს შეიძლება იყოს 5 ბიტი 8 ბიტამდე, თუ გამოიყენება პარიტეტული ბიტი. თუ პარიტეტული ბიტი არ გამოიყენება, მონაცემთა ჩარჩო შეიძლება იყოს 9 ბიტიანი. უმეტეს შემთხვევაში, მონაცემები პირველ რიგში იგზავნება უმცირესი მნიშვნელობით.

პარიტეტი

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

BITS STOP

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

ნაბიჯი 10: UART ტრანსმისიის ეტაპები

1. გადამცემი UART იღებს მონაცემებს პარალელურად მონაცემთა ავტობუსიდან:

ნაბიჯი 11: სურათის გადამცემი UART იღებს მონაცემებს პარალელურად მონაცემთა ავტობუსიდან

გამოსახულების გადამცემი UART იღებს მონაცემებს პარალელურად მონაცემთა ავტობუსიდან
გამოსახულების გადამცემი UART იღებს მონაცემებს პარალელურად მონაცემთა ავტობუსიდან

ნაბიჯი 12: 2. გადამცემი UART ამატებს დაწყების ბიტს, პარიტეტულ ბიტს და გაჩერების ბიტს მონაცემთა ჩარჩოში:

2. გადამცემი UART ამატებს დაწყების ბიტს, პარიტეტულ ბიტს და გაჩერების ბიტს მონაცემთა ჩარჩოში
2. გადამცემი UART ამატებს დაწყების ბიტს, პარიტეტულ ბიტს და გაჩერების ბიტს მონაცემთა ჩარჩოში

ნაბიჯი 13: 3. მთელი პაკეტი სერიულად იგზავნება გადამცემი UART– დან მიმღებ UART– ზე. მიმღები UART ასახავს მონაცემთა ხაზს წინასწარ კონფიგურირებულ Baud Rate– ზე:

3. მთელი პაკეტი იგზავნება სერიულად გადამცემი UART– დან მიმღებ UART– ზე. მიმღები UART ასახავს მონაცემთა ხაზს წინასწარ კონფიგურირებულ Baud Rate– ზე
3. მთელი პაკეტი იგზავნება სერიულად გადამცემი UART– დან მიმღებ UART– ზე. მიმღები UART ასახავს მონაცემთა ხაზს წინასწარ კონფიგურირებულ Baud Rate– ზე

ნაბიჯი 14: 4. მიმღები UART უარყოფს საწყისი ბიტს, პარიტეტულ ბიტს და შეწყვეტის ბიტს მონაცემთა ჩარჩოდან:

4. მიმღები UART უარყოფს დაწყების ბიტს, პარიტეტულ ბიტს და შეწყვეტის ბიტს მონაცემთა ჩარჩოდან
4. მიმღები UART უარყოფს დაწყების ბიტს, პარიტეტულ ბიტს და შეწყვეტის ბიტს მონაცემთა ჩარჩოდან

ნაბიჯი 15: 5. მიმღები UART გადააქცევს სერიულ მონაცემებს უკან პარალელურად და გადასცემს მონაცემთა ავტობუსს მიმღების ბოლოს:

5. მიმღები UART გარდაქმნის სერიულ მონაცემებს პარალელურად და გადასცემს მას მონაცემთა ავტობუსში მიმღების ბოლოს
5. მიმღები UART გარდაქმნის სერიულ მონაცემებს პარალელურად და გადასცემს მას მონაცემთა ავტობუსში მიმღების ბოლოს

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

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

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

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

მონაცემთა ჩარჩოს ზომა შემოიფარგლება მაქსიმუმ 9 ბიტით არ უჭერს მხარს მრავალ მონას ან მრავალ სამაგისტრო სისტემას თითოეული UART- ის ბადის სიჩქარე უნდა იყოს ერთმანეთის 10% -ის ფარგლებში ამ სერიის მესამე ნაწილის გაგრძელება, I2C საკომუნიკაციო პროტოკოლი, რომ გაეცნოთ ელექტრონული მოწყობილობების კომუნიკაციის სხვა გზას. ან თუ ეს უკვე არ გაქვთ, გადახედეთ პირველ ნაწილს, SPI საკომუნიკაციო პროტოკოლის საფუძვლებს.

და როგორც ყოველთვის, შემატყობინეთ კომენტარებში, თუ თქვენ გაქვთ რაიმე შეკითხვა ან სხვა რაიმე დასამატებელი! თუ მოგეწონათ ეს სტატია და გინდათ რომ ნახოთ მსგავსი, აუცილებლად მიჰყევით მას

პატივისცემით

მ.ჯუნაიდი

გირჩევთ: