Gallery

მიკროკონტროლერის მახასიათებლები

მიკროკონტროლერები. პირველი გაცნობა.  

მიკროკონტროლერის მახასიათებლები. 

ნორვეგიული უნივერსიტეტის Norwegian University of Science and Technology (NTNU) ორმა სტუდენტმა ალფ ბოგენმა და ვეგარდ ვოლენმა 1995 წელს ამერიკულ ფირმა Atmel -ს შესთავაზეს ახალი  არქიტექტურის 8-ბიტიანი RISC ( Reduced instruction set computer – კომპიუტერი ბრძანებათა შემოკლებული სიით ) მიკროკონტროლერის წარმოებაში დანერგვა. იდეამ მოწონება ჰპოვა და 1996 წლის ბოლოს გამოშვებულ იქნა საცდელი მიკროკონტროლერი AT90S1200. ახალი მიკროკონტროლერის ბირთვი დაპატენტებული იქნა სახელწოდებით AVR.

მას შემდეგ  AT სერიას შეემატა Attiny_xxx, ATmega_xxx, ATxmega_xxx სტანდარტული ოჯახები, რომელთაც ფართო გამოყენება ჰპოვეს ელექტრონიკაში.
სერიის ყველა მიკროკონტროლერის დაწვრილებითი აღწერა შეიძლება  მოძიებული იქნას ფირმა – დამამზადებლის საიტზე: http://www.atmel.com/products/microcontrollers/avr/default.aspx

მიკროკონტროლერის სრული აღწერა, მახასიათებლები, ჩართვის ტიპიური სქემები და სხვა ინფორმაცია, ყოველი მიკროკონტროლერისთვის, თავმოყრილია მის სპეციფიკაციაში -დატაშიტში (Datasheet),  რომელიც მისი გამოყენებისათვის აუცილებელ მთავარ დოკუმენტს წარმოადგენს. სხადასხვა მოწყობილობების აღწერები, რომლებშიც გამოიყენება ესა თუ ის მიკროკონტროლერი, აგრეთვე ქვეყნდება ფირმა – დამამზადებლის საიტზე. ასეთი ტიპის  დოკუმეტები ატარებენ სახელწოდებას „აპნოუტი“ (Application Notes). მათი გაცნობა მოცემული მიკროკონტროლერისათვის, შეიძლება მეტად სასარგებლო გამოდგეს ამ მიკროკონტროლერის ბაზაზე აგებული მოწყობილობების კონსტრუირებისას.

ATmaga8 მიკროკონტროლერის დატაშიტი შეიძლება ჩამოტვირთულ იქნას ბლოგის ფაილ – სერვერიდანაც. ბლოგის მარჯვენა მხარეს მოთავსებულია სპეციალური განყოფილება „Files” საიდანაც შესაძლებელია ბლოგში გამოყენებული ფაილების ჩამოტვირთვა. აქ თავმოყრილია ბლოგში გამოყენებული პროგრამების ტექსტები, ალგორითმები, სქემები  და სხვა ფაილები, რომელთა ჩამოტვირთვა მკითხველს გაუადვილებს ბლოგის მასალებზე მუშაობას.

ATmaga8 მიკროკონტროლერის დატაშიტის “Features” განყოფილებაში ვკითხულობთ, რომ მისი ბრძანებების სია მოიცავს 130 ბრძანებას, რომელთა უმრავლესობა სრულდება სატაქტო გენერატორის ერთ ტაქტში. იგი შეიცავს 32 რვა ბიტიან საერთო დანიშნულების რეგისტრს;  8 კილობაიტი მოცულობის პროგრამულ ფლეშ მახსოვრობას (FlashROM); 512 ბაიტი მოცულობის  მუდმივ მახსოვრობას (EEPROM), რომელიც ელექტრულად პროგრამირდება; 1 კილობაიტი მოცულობის ოპერატიულ მახსოვრობას (SRAM)  და კიდევ უამრავ სხვა მოწყობილობას.

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

აქ კი განვმარტავ, რომ მიკროკონტროლერი თანმიმდევრობით ასრულებს ბრძანებებს, რომლებიც პროგრამულ მეხსიერებაში -FlashROM არის ჩაწერილი.

ბრძანება 1
ბრძანება 2
…..
მიკროკონტროლერის დაპროგრამების არსი სწორედ იმაში მდგომარეობს, რომ ეს ბრძანებები FlashROM-ში იქნას ჩაწერილი. ჩაწერის შემდეგ, კვების წყაროს გამორთვისას ბრძანებები რჩება წაუშლელი, FlashROM იმახსოვრებს მათ. ROM ნიშნავს Read Only Memory. ამ ტერმინს იყენებენ მუდმივი მახსოვრობის აღსანიშნავად (განსხვავებით ოპერატიული მახსოვრობისაგან, რომელიც განკუთვნილია ინფორმაციის სწრაფი ჩაწერა – წაკითხვისათვის). Flash – ტექნოლოგია კი უზრუნველყოფს ინფორმაციის შენახვას ამორთული კვების წყაროს პირობებში (მსგავსად ყველასთვის ცნობილი USB Flash Drive მოწყობილობებისა).

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

თვით ბრძანებების სტრუქტურა ასეთია:

ჩაიწეროს რიცხვი „2“ რეგისტრში N 7
ჩაიწეროს რიცხვი „4“ რეგისტრში N 9
რეგისტრი N 9-ის შიგთავსს დაემატოს რაგისტრი N 7-ის შიგთავსი
…..

ბრძანებების ამ თანმიმდევრობის შერულების შემდეგ რეგისტრში N 9 აღმოჩნდება ჩაწერილი რიცხვი „6“.  რეგისტრები 8 თანრიგიანია, რაც ნიშნავს, რომ ისინი მოიცავენ 8 ორობით თანრიგს. მათი შიგთავსი შეძლება იცვლებოდეს ორობითი 0000 0000-დან (0) ორობით 1111 1111-მდე  (ათობითი 255). მაშასადამე, ასეთი რეგისტრის შიგთავსმა შეიძლება მიიღოს 256 სხვადასხვა მნიშვნელობა (0-დან 255-ის ჩათვლით), რაც დიდ რიცხვებთან მუშაობას შეუძლებელს ხდის. ამას გარდა, დატაშიტში ნათქვამია, რომ საერთო დანიშნულების რეგისტრების რაოდენობა სულ 32 არის, რაც ზღუდავს დიდი რაოდენობის, თუნდაც პატარა რიცხვებთან მუშაობას, დიდ რაოდენობას, უბრალოდ, რეგისტრები არ ეყოფა.  გამოსავალი მდგომარეობს ისეთი მახსოვრობის გამოყენებაში, რომელსაც შეუძლია ძალიან სწრაფად ჩაიწეროს გარკვეული მოცულობის ინფორმაცია რეგიტრებიდან და ასევე სწრაფად გადმოგზავნოს ინფორმაცია უკან, რეგისტრებში. ეს საშუალებას მოგვცემს ჯერ ერთი, გამოვანთავისუფლოთ დაკავებული რეგისტრები და ამით შევიძინოთ რიცხვების დიდ რაოდენობასთან მუშაობის საშუალება და, მეორეც, ამ მახსოვრობაში ჩაწერილი 8 თანრიგიანი რიცხვების თანრიგები სპეციალური გარდაქმნების საშუალებით, გავაერთიანოთ დიდ, მრავალთანრიგიან რიცხვებად. ასეთ მახსოვრობას წარმოადგენს ოპერატიული მახსოვრობა SRAM (static random access memory), რომელიც დროებით (კვების წყაროს გამორთვამდე) ინახავს საშუალედო ინფორმაციას.

და ბოლოს, გამოთვლების შედეგად მიღებული ინფორმაცია, აგრეთვე უნდა იყოს სადღაც შენახული, რათა მიკროკონტროლერმა კვების წყაროს გამორთვისა და ხელმეორედ ჩართვის შემდეგ, ისარგებლოს წინათ განხორციელებული ოპერაციების (გამოთვლების) შედეგებით.
ასეთ მახსოვრობას წარმოადგენს მუდმივი მახსოვრობა (EEPROM – Electrically Erasable Programmable Read-Only Memory), სადაც მიკროკონტროლერი თვითონ წერს გამოთველების შედეგებს. და რომელიც კვების წყაროს გამორთვის შემდეგ არ იშლება.  მნიშნელოვანია განვასხვაოთ FlashROM, სადაც ინახება თვითონ პროგრამა, ანუ ბრძანებები, და EEPROM, სადაც ინახება პროგრამის მუშაობის შედეგად მიღებული მონაცემები ან პროგრამის მუშაობისათვის საჭირო ინფორმაცია, მაგ., სხვადასხვა ცხრილები, რომელიც წინასწარ იწერება მასში მიკროკონტროლერის დაპროგრამებისას  (FlashROM-ის მსგავსად).

დატაშიტიდან ვგებულობთ აგრეთვე, რომ ATmaga8 მიკროკონტროლერს გააჩნია 23 ინფორმაციის შეყვანა-გამოყვანის ხაზი. ამ გამომყვანებზე გამოდიან ელექტრული სიგნალები სხვა მოწყობილობების სამართავად, ან ამ გამომყვანების საშუალებით  ხორციელდება მიკროკონტროლერში ინფორმაციის შეყვანა, რომელიც გამომყვანებს მიეწოდება ასევე ელექტრული სიგნალების სახით. გამომყვანები გაერთიანებული არიან ე.წ. პორტებში (PortB -PB, PortD – PD და PortC – PC, რომელთაგან ორი მოიცავს 8 გამომყვანს თვითოეული, ხოლო მესამე – 7 გამომყვანს.

დატაშიტიდან ჩანს, რომ ATmaga8 მიკროკონტროლერის კვების ძაბვა VCC შეიძლება იყოს 4,5 -5,5 ვოლტის ფარგლებში, ხოლო ATmaga8L მიკროკონტროლერისა 2,7 – 5,5 ვოლტის ფარგლებში.
თუ მიკროკონტროლერის გამომყვანს მიეწოდება სიგნალი, რომლის ძაბვა კვების ძაბვის ერთ მეხუთედზე ნაკლებს შეადგენს (<0,2 VCC), მაშინ მიკროკონტროლერი მას აღიქვამს როგორც ლოგიკურ „0“-ს, ხოლო თუ სიგნალის ძაბვა კვების ძაბვის ექვს მეათედზე მეტია (>0,6 VCC), მაშინ იგი აღიქმება როგორც ლოგიკური „1“.
გამომყვანებზე გამოსული ლოგიკური „1“-ის შესაბამისი სიგნალის ძაბვის მნიშვნელობა 5ვ კვების დროს 4,2 ვოლტს შეადგენს, ხოლო 3ვ კვების დროს  – 2,2 ვოლტს.
მაქსიმალური დენის ძალა, რომელსაც უზრუნველყოფს გამომყვანი, 40 მილიამპერს შეადგენს.

პიველ ჯერზე, ეს ინფორმაცია სრულიად საკმარისია მიკროკონტროლერის პროგრამირების შესწავლის დასაწყებად.

დატოვეთ კომენტარი

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / შეცვლა )

Twitter picture

You are commenting using your Twitter account. Log Out / შეცვლა )

Facebook photo

You are commenting using your Facebook account. Log Out / შეცვლა )

Google+ photo

You are commenting using your Google+ account. Log Out / შეცვლა )

Connecting to %s