Мікроконтролери Розділ 2
Текст мікроконтролерів Розділ 2
2.8.2018 Мікроконтролери Розділ 2

Пам'ять - це частина мікроконтролера, функцією якого є зберігання даних. Найкращий спосіб пояснити це - описати його як велику шафу з безліччю шухлядок. Якщо ми припустимо, що висувні ящики позначені таким чином, що їх не плутати, то будь-який їх вміст буде легкодоступним. Досить знати назву шухляди, і тому його вміст буде нам точно відомий.
Компоненти пам'яті точно такі як. Для певного запису ми отримуємо вміст названого місця пам'яті і все. Присутні дві нові концепції: адресація та розташування пам’яті. Пам'ять складається з усіх місць пам'яті, і адресат - це не що інше, як вибір одного з них. Це означає, що ми повинні вибрати місце
пам’яті на одному кінці, а на іншому - чекати змісту цього місця. Окрім вибору з місця пам'яті, пам'ять повинна також дозволяти записувати в нього. Це робиться шляхом надання додаткової лінії, яка називається лінією управління. Ми будемо називати цей рядок R/W (читання/запис). Рядок управління використовується наступним чином: якщо R/W = 1 зчитується, idac R/W = 0, тоді запишіть у місце пам'яті. Пам'ять - це перший елемент, але нам потрібні інші, щоб наш мікроконтролер працював.
1.2 Центральний процесор
Давайте додамо ще 3 місця пам’яті для конкретного блоку, який буде мати вбудовану функцію додавання, множення, ділення, віднімання. Частина, яку я щойно додав, називається «центральний процесор» (ЦП). Його місця пам'яті називаються регістрами.
2.8.2018 Мікроконтролери Розділ 2
Таким чином, регістри є місцями пам’яті, роль яких полягає у допомозі, виконуючи різні математичні та інші операції з даними, де б дані не знаходились. Давайте подивимось на поточну ситуацію. У нас є дві незалежні сутності (пам’ять і центральний процесор), які взаємопов’язані, і тому будь-який обмін інформацією приховується, як і її функціональність. Якщо, наприклад, ми хочемо додати
вмісту двох місць пам'яті та повернення результату назад у пам'ять, нам знадобиться зв'язок між пам'яттю та процесором. Простіше кажучи, нам потрібно мати певний «шлях», по якому дані циркулюють від одного блоку до іншого.
Шлях називається «автобус» - автобус. Фізично він представляє групу з 8, 16 або більше потоків. Існує два типи шин: адресна шина та шина даних. Перший складається із стільки рядків, скільки адреси пам’яті (у бітах), яку ми хочемо адресувати, а другий такий же широкий, як і дані, в нашому випадку 8 біт або лінія зв’язку. Перший служить для передачі адрес з центрального процесора в пам’ять, а другий - для підключення всіх блоків всередині мікроконтролера.
Що стосується функціональних можливостей, ситуація покращилася, але також виникла нова проблема: у нас є підрозділ, який здатний працювати самостійно, але не має контакту ні із зовнішнім світом, ні з нами! Щоб подолати цей недолік, давайте додамо блок, що містить значення пам’яті, одна голова якої підключена до шини даних, а інша - до шини даних.
вихідні лінії мікроконтролера, які можна побачити неозброєним оком як шпильки до електронного компонента.
2.8.2018 Мікроконтролери Розділ 2
Ці місця, які ми щойно додали, називаються "портами". Існують різні типи портів: вхідні, вихідні або двосторонні. Працюючи з портами, насамперед необхідно вибрати, з яким портом працювати, а потім надсилати дані або брати дані з порту.
При роботі з ним порт поводиться як місце в пам'яті. Щось із цього просто написано або прочитано, і це легко помітити на штифтах мікроконтролера.
Цим я додав до вже існуючої одиниці можливість спілкування із зовнішнім світом, проте цей спосіб спілкування має свої недоліки. Одним з основних недоліків є кількість рядків, які потрібно використовувати для передачі даних. Що, якби їх довелося перевезти за кілька кілометрів? Кількість рядків, помножена на кількість кілометрів, не має
обіцяє економічно ефективний проект. Все, що нам потрібно зробити, - це зменшити кількість рядків до такої міри, щоб ми не зменшили функціональність. Припустимо, ми працюємо лише з 3 лініями, причому один рядок використовується для передачі даних, інший для прийому, а третій використовується як еталонний рядок як для вхідної, так і для вихідної частини. Щоб це працювало, нам потрібно встановити правила обміну даними. Ці правила називаються протокольними. Тому протокол визначається заздалегідь, щоб між ними не було непорозумінь
можливості, що спілкуються між собою. Наприклад, якщо одна людина говорить французькою, а інша - англійською, малоймовірно, що вони швидко та ефективно уживуться між собою. Нехай с
ми маємо такий протокол: Логічна одиниця "1" встановлюється на лінії передачі до початку передачі. Одного разу
розпочинається передача, ми опускаємо лінію передачі до логічного «0» на певний проміжок часу (який ми позначимо як Т), щоб сторона, яка приймає, знала, що є дані, які потрібно отримати, щоб вона активувала механізм прийому. Повернемось тепер до частини передачі і почнемо ставити нулі та одиниці
на лінії електропередачі по порядку, від найменш значущого біта до найзначнішого. Нехай кожен біт залишається на рядку протягом періоду часу, рівного Т, і в кінці, або після 8-го біта, повертає логічну одиницю "1" назад на рядок, який буде означати кінець передачі даних. -описане називається у фаховій літературі NRZ (Non-Return to Zero).
2.8.2018 Мікроконтролери Розділ 2
2.8.2018 Мікроконтролери Розділ 2
Звичайно, коли це відбувається з комп’ютером, ми просто скидаємо його і продовжуємо працювати. Однак для вирішення нашої проблеми у мікроконтролері немає кнопки скидання, яку можна натиснути. Щоб подолати цю перешкоду, нам потрібно ввести ще один блок, який називається сторожовими собаками. Цей блок насправді є ще одним лічильником вільного запуску, де наша програма повинна писати нуль при кожному його правильному виконанні. досягнення максимального значення. Це призведе до того, що програма запуститься знову, і виправить цей час протягом усього часу. Це важливий елемент будь-якої програми, яка повинна бути надійною для людського нагляду.
1.8 Аналого-цифровий перетворювач
Оскільки сигнали від периферійних пристроїв суттєво відрізняються від тих, які мікроконтролер може зчитувати (нуль та одиниця), вони повинні бути перетворені таким чином, щоб мікроконтролер не міг бути зрозумілим. Це завдання виконується блоком для аналого-цифрового перетворення або AD-перетворювачем. Цей блок відповідає за перетворення інформації про певне аналогове значення у двійкове число та за його передачу в блок ЦП у формі, яка
блок процесора може його обробити.
Таким чином, мікроконтролер тепер закінчений, і все, що залишається зробити, це помістити його в електронний компонент, де він буде отримувати доступ до внутрішніх блоків через зовнішні штифти. На зображенні нижче показано, як виглядає мікроконтролер всередині.
Фізична конфігурація внутрішньої частини мікроконтролера
2.8.2018 Мікроконтролери Розділ 2
Тонкі лінії, що йдуть зсередини на бік мікроконтролера, представляють природний зв’язок внутрішніх блоків із штифтами капсули мікроконтролера. Наступна схема представляє центральну секцію мікроконтролера.
Для реального додатку одного мікроконтролера недостатньо. На додаток до мікроконтролера, вам потрібна програма для запуску та кілька інших елементів, що становлять логічний інтерфейс до елементів виконання (про що буде сказано в наступних розділах).
2.8.2018 Мікроконтролери Розділ 2
Написання програм - це особливий напрямок роботи для мікроконтролера і називається «програмуванням». Спробуємо написати невеличку програму, яку ми створимо самі і яку зможе зрозуміти кожен.
STARTREGISTER1 = LOCATION_AREGISTER2 ПАМ'ЯТІ = LOCATION_BPORTA ПАМ'ЯТІ = REGISTER1 + REGISTER2END
Програма збирає вміст двох місць пам'яті і бачить їх суму в порту А.
Перший рядок програми полягає у переміщенні вмісту місця пам'яті "А" до одного з регістрів центрального процесора. Оскільки нам потрібні інші дані, ми також перемістимо їх до іншого реєстру центрального процесора.
Наступна інструкція дає вказівку центральному процесорному блоку зібрати вміст двох регістрів і надіслати результат до порту А, щоб сума цієї збірки була видимою.
для всіх зовні. Для більш складної проблеми програма для її вирішення буде довшою.
Програмування може виконуватися на декількох мовах, таких як Assembler, C та Basic, які є найбільш вживаними мовами. Асемблер належить до мов низького рівня, які програмуються повільно, але використовують найменший простір пам'яті і дають найкращі результати при врахуванні швидкості виконання програми.
Оскільки мова є найбільш часто використовуваною в програмуванні мікроконтролерів, про неї мова піде в наступному розділі. Програми на мові C легше писати, легше розуміти, але вони краще працюють, ніж програми Assembler. Основне вивчати найпростіше, його інструкції найближчі до способу мислення людини, але як мова Росії
Програмування на С також повільніше, ніж Асемблер-