- •« Проектування програмного забезпечення мікропроцесорів приладових систем »
- •1.Постановка задачі
- •2. Опис роботи
- •2.2 Підрахунок мінімальної кількості виводів мікроконтролера
- •3.7 Оцінка похибки вимірювання
- •2.3 Вибір мікроконтролера
- •2.4 Будова контролера
- •3. Блок-схема алгоритму роботи програмного забезпечення
- •3.1 Опис алгоритму роботи програми
- •4. Програмний код
- •4.1 Опис функцій програмного забезпечення
- •5 Опис середовища розробки програмного забезпечення
- •6 Програмування мікроконтролера
- •Висновок
- •Перелік посилань:
6 Програмування мікроконтролера
Завантаження
програми в мікроконтролер відбувається
через універсальний
асинхронний приймач-передавач
(UART – Universal Asynchronous Receiver-Transmitter) –
периферійний пристрій мікроконтролера,
який дозволяє послідовно
передавати ти приймати дані по двох однопровідних лініях. UART має можливість працювати в режимі повного дуплексу і не використовувати при цьому додаткової лінії для синхронізації.
Часто UART застосовують у парі з інтерфейсом RS-232 для зв’язку периферійного пристрою з персональним комп’ютером. Сигнали UART та RS-232 відрізняються в основному рівнями логічної одиниці та нуля. Якщо UART використовує рівні стандартні для КМОН чи ТТЛ логіки, то стандарт RS-232 передбачає використання напруги від -3В до -25В для кодування логічної одиниці та напруги від 3В до 25В для кодування логічного нуля.
Передавання даних відбувається пакетами по 8 або 9 біт (молодші біти передаються першими). Синхронізація приймача та передавача відбувається таким чином (рисунок 6.1). У спокої лінія утримується передавачем у стані логічної одиниці. Якщо виникає необхідність передати дані то передавач передає нульовий старт біт, вісім або дев’ять інформаційних бітів, та обов’язково одиничний стоп-біт, що повертає лінію в стан очікування. Дев’ятий інформаційний біт можна використати для перевірки цілісності байта.
При прийманні посилання, приймач постійно прослуховує лінію RXD і в момент переходу з одиничного в нульовий стан (прийом старт-біта) внутрішній таймер прийому скидаєтьсь в нуль, щоб синхронізувати його із таймером передавача. По синхронізованому внутрішньому таймеру контролер за період переривання кожного інформаційного біта тричі опитує лінію RXD, а у вхідний буфер записується значення, отримане принаймні в двох вимірах із трьох. Після
прийому всіх інформаційних біт та стоп-біта приймач переходить у стан очікування нового старт-біта. [1]
Рисунок 6.1 – Часова діаграма роботи UART
Для успішного обміну приймач і передавач має бути налаштованим на одну і ту ж швидкість передавання та довжину посилання. Допустиме відхилення частоти передавача та приймача визначається з умов недопущення роз синхронізації за час передачі посилання і не може перевищувати 3%.
UART в сімействі мікроконтролерів MCS51 (до якого відноситься ADuC841) передбачає роботу в чотирьох режимах, які вибираються регістром SCON.
В нульовому, синхронному, режимі дані передаються та приймаються через вхід RXD, вихід TXD передає синхроімпульси. В першому-третьому режимах дані передаються асинхронно виводом TXD, а приймаються RXD.
в першому режимі передається старт-біт, 8 біт даних та стоп-біт;
у другому та третьому режимах передається старт-біт, 9 біт даних і стоп-біт.
Щоб задати частоту передачі даних по UART використовуємо таймер 3,
який в мікроконтролері ADuC841, призначений для даної задачі. Для того щоб
здійснювати
передачу дан
их
з відповідною швидкістю необхідно
налаштувати регістр T3CON,
який відповідає за режим
роботи таймера 3.
В
RS-232
для
передачі даних використовується рознім
DB-9.
Рисунок 6.2 - Зовнішній вигляд розніму RS-232 (мама)
Рисунок 6.3 - Зовнішній вигляд розніму RS-232 (папа)
Рисунок 6.4 – Розпіновка виводів для RS-232
Таблиця 6.1 – Опис сигналів інтерфейсу
Назва |
Напрямок |
Опис |
Контакт (9 – контактний рознім) |
DCD |
IN |
Carrie Detect (Визначає несучий біт) |
1 |
Продовження
таблиці 6.1 – Опис сигналів інтерфейсу
RXD |
IN |
Receive Data (Прийом даних) |
2 |
TXD |
OUT |
Transmit Data (Передача даних) |
3 |
DTR |
OUT |
Data Terminal Ready (Готовність терминалу) |
4 |
SG |
- |
System Ground (Спільний вивід) |
5 |
DSR |
IN |
Data Set Ready (Готовність даних) |
6 |
RTS |
OUT |
Request to Send (Запит на відправку) |
7 |
CTS |
IN |
Clear to Send (Готовність приєму) |
8 |
RI |
IN |
Ring Indicator (Індикатор) |
9 |
Призначення сигналів наступне:
DCD – виявлення даних (детектування сигналу);
RxD - данні, які приймає комп’ютер в послідовному коді (логіка від’ємна);
TxD - данні, які передає комп’ютер в послідовному коді (логіка від’ємна);
DTR – готовність даних до виводу;
SG – нулевий провід;
DSR – готовність даних. Використовується для задання режиму модему;
RTS – сигнал запиту передачі. Активний весь час передачі;
CTS – сигнал очищення для передачі. Активний кесь час передачі. Дає сигнал про готовність приймача;
RI – індикатор виклику.
Багато
сучасних модифікацій материнських плат
і моделі ноутбуків не обладнанні COM
– портом. Тому для запису програми в
мікроконтролер потрібно перехідник
«USB - RS232»
(дивитися
рисунок 6.5).
Ми використовуємо кабель – перехідник
«USB - RS232», який призначений для підключення
до USB
порта комп’ютера та пристрою для
вимірювання ширини робочих поясків
поршневих кілець, який використовує
послідовний інтерфейс RS-232.
Кабель перехідник успішно вирішує
завдання сумісності пристроїв працюючих
на інтерфейсі RS-232.
Управління кабелем перехідником
здійснюється через комп’ютер або
ноутбук з допомогою спеціальних програм
(драйверів).
Рисунок 6.5 – Зовнішній вигляд кабелю USB-RS232
Рисунок 6.6 – USB – RS232
Порт
«RxD»
працює на вхід, а «TxD»
працює на вихід. В середовищі розробки
програми Keil
uVision
для запису програми в контролер потрібно
скористатися комбінацією гарячих клавіш
Alt+A+D
або використати іконку «Download»
в вкладці «Flash»
(рисунок 6.3), а також вона стає активною
після компіляції програми в головному
вікні Keil uVision.
Рисунок 6.3 – Завантаження прошивки в контролер
Для успішного збереження програми в мікроконтролер середовище розробки Keil uVision повинно бути не нижче версії 4v900.
