Микропроцессоры и микроконтроллеры

 
 
 
«Если вы считаете, что C++ труден, попытайтесь выучить английский.»
Bjarne Stroustrup
Русский | Українська


Микропроцессоры и микроконтроллеры :: Принципи програмування MSC-51 :: Опис режимів роботи УАПП

Опис режимів роботи УАПП

Режим 0 - синхронізованою від МК введення-виведення байта. У цьому режимі висновок Rx D застосовується як для прийому, так і для передачі інформації. Через висновок Tx D видаються сінхроімпульси зсуву, які супроводжують кожен біт (імпульси з активним рівнем "0"). Інформація видається молодшими битами вперед.

rn

Частота (швидкість) передачі залежить від тактової частоти резонатора :

rn

на один біт.

rn

Передача даних ініціюється будь-який командою, яка записує байт даних в SBUF, наприклад, MOV SBUF, A. Після цього байт інформації автоматично переписуються в зсувний регістр передачі, а схема управління генерує сінхроімпульси зсуву, які надходять на зсувний регістр передачі і на висновок Tx D . При цьому вміст регістру передачі зсувається вправо та черговий біт інформації надходить на висновок Rx D . У розряди, які звільняються, записуються нулі. Таким чином, передається байт даних перетворюється в послідовний код схемами УАПП і синхронно з цим може перетворюватися у паралельний код зовнішнім зсуваються регістром. При завершенні передачі схема управління встановлює прапор TI (SCON.1). Загальний цикл передачі складає десять машинних циклів.

rn

Прийом даних починається при встановленні REN = 1, якщо був знятий запит на переривання, сформований на попередньому циклі прийому (тобто RI = 0). Після програмної установки біта REN блок керування включає схему формування сінхроімпульсов зсуву, які надходять синхронно на зсувний регістр прийому та на висновок Tx D .

rn

У зсуває регістрі прийому починає формуватися байт даних, значення біт якого зчитуються з входу Rx D у фазі S5P2 будь-якого МЦ. На початку десятого МЦ вміст зсуваються регистра переписуються в SBUF і встановлюється прапор запиту переривання RI (SCON.0).

rn

В даному режимі до висновків Rx D та Tx D МК51 можуть бути підключені зовнішні зсуваються регістри, які будуть формувати паралельний код при видачі інформації з МК, або будуть перетворювати паралельний код у послідовний при прийомі даних у МК. Таким чином, розробники контролера на основі МК51 одержують у розпорядження "повільний" паралельний порт.

rn

Подібна логіка перетворення інформації характерна також для режимів 1, 2 і 3, але висновок Tx D використовується тільки для передачі даних, а висновок Rx D - тільки для прийому.

rn

Режим 1 - в цьому режимі передаються через Tx D або приймаються з Rx D десять бітів інформації: старт-біт ( "0"), 8 біт даних і стоп-біт ( "1"). Структура кодової посилки показана на схемі (ріс.15.3):

rn

rn

Швидкість прийому-передачі змінюється програмним шляхом і залежить від значення біта управління PCON.7 (SMOD), і від частоти переповнення таймера 1, що означена FOVT1 :

rn

rn

Переривання від таймера 1 в цьому випадку має бути заблоковано. Сам Т/С1 може працювати в будь-якій з конфігурацій 0,1,2. Однак самої зручною є конфігурація 2 - автоперезагрузка стартового числа (TMOD (7-4) = 0010B). При цьому частота передачі:

rn

rn

Передача ініціюється будь-якої команди, в якій адреса призначення вказаний як SBUF (наприклад, MOV SBUF, A).

rn

Прийом починається після програмної установки біта REN в "1" при виявленні переходу сигналу на Rx D з "1" в "0" (старт-біт). МК51 автоматично виконує настройку внутрішнього лічильника відповідно з межами періодів бітів, які приймаються. У кожному періоді подання біта вхід Rx D опитують тричі, і значення біта, який приймається, визначається за правилом мажорітірованія - "два з трьох". При отриманні даних значення стоп-біта ( "1") фіксується в бите RB8 регістру SCON, і використовується для автоматичного контролю завершення прийому.

rn

Режим 2 - в цьому режимі передаються через Tx D або приймаються через Rx D 11 бітів інформації: старт-біт ( "0"), 8 біт даних, програмно задається біт контролю (так званий "дев'ятий" біт) і стоп-біт ( "1"). Структура кодової посилки показана на схемі (ріс.15.4):

rn

rn

При передачі "дев'ятий" біт може використовуватися, наприклад, для контролю парності кількості "1" в байт даних, який передається, тобто для перевірки достовірності отриманої інформації. При прийомі "дев'ятий" біт надходить в розряд RB8 регістру SCON, а стоп-біт ігнорується.

rn

Частота передачі залежить від біта SMOD і тактової частоти МК:

rn

rn

Режим 3 відрізняється від режиму 2 тільки можливістю програмного зміни швидкості прийому-передачі в широкому діапазоні в залежності від частоти переповнення таймера 1, так само, як в режимі 1.

rn

Умова нормального завершення прийому:

rn

- режим 1 - в останньому такті зсуву повинна виконуватися умова (стоп-біт) = 1 при встановленні SM2 = 1;

rn

- режими 2,3 - ( "дев'ятий" біт) = 1 при встановленні SM2 = 1.

rn

У випадку, якщо встановлено SM2 = 0, стоп-біт (для режиму 1) або "дев'ятий" біт (для режимів 2,3) фіксується в розряді RB8.

rn

Крім того, для будь-якого режиму до моменту завершення прийому черговий кодової посилки програмним шляхом повинно бути виконано RI = 0.

rn

При невиконанні зазначених умов прийнята інформація втрачається.

rn

Таким чином, установка SM2 = 1 дозволяє ігнорувати кодову посилку, в якій "дев'ятий" біт дорівнює "0", тобто проводити селекцію інформації. Це використовують при побудові протоколів обміну інформацією в мікроконтроллерной мережі.

rn

Важливо відзначити, що реалізація стандартних швидкостей передачі, зокрема, для зв'язку з послідовним портом ПЕОМ, не може бути досягнута на типової тактовою частотою МК51, що дорівнює 12 МГц. Так, найбільш популярні швидкості передачі 9600 біт /сек і 19200 біт /сек точно реалізуються за тактовою частотою МК51 рівною 11,0592 МГц, стартовому числі для таймера Т1, що дорівнює 253 і значення біта SMOD, що дорівнює 0 або 1 відповідно для зазначених швидкостей. Наведене значення тактової частоти МК51 може бути забезпечене шляхом підключення до МК51 відповідного кварцового резонатора.