Електроний посібник з
дисципліни "Мікропроцесорні системи"
 
Дипломный проект
Режим 0 виконує завдання синхронного обміну. Під час роботи в цьому режимі застосовується додатковий провід тактування для синхронізації приймача зовнішнього пристрою. Схему підключення зовнішнього пристрою зображено на рис. 8.6.
8.1. Режим роботи 0
Рис. 8.6. Схема підключення периферійних пристроїв
до контролера в режимі 0
 
Рис. 8.7. Структура посилки в режимі 1
  Структуру посилки в режимі 1 зображено на рис. 8.7. У посилці передаються 8-бітові дані, які доповнюються 2 службовими бітами: старт-біт (передається на початку посилки) і стоп-біт (передається наприкінці посилки).
Передача даних проводиться через вихід Txd. Приймання даних - через вхід Rxd.
  Якщо передача в режимі 1 відсутня, то вихід Txd перебуває в стані 1. Після занесення даних в SBUF передавача, до лінії зв'язку передається старт- біт, за ним 8 бітів даних, а потім стоп-біт. Старт-біт передається нульовим, а стоп-біт одиничним рівнем. Таким чином, навіть якщо серед даних передаються всі 0 або всі 1, у повідомленні можна виділити початок і кінець передачі байта.
                                                     Структурну схему УСАПП у режимі 1 зображено на рис. 8.8.
Рис. 8.8. Структурна схема УСАПП у режимі 1
  Тактування приймання й передачі в режимі 1 здійснюється від таймера 1, що працює в режимі 2 (автоматичне перезавантаження). Швидкість передачі визначається значенням константи, що завантажується в TH1.
На тактування зсувного регістра передавача частота з виходу таймера надходить через дільник на 16.
  У режимі 1 відсутній сигнал зовнішнього тактування приймача. Імпульси синхронізації приймача формуються з тактової частоти таймера 1 спільно зі схемами детектора спаду, детектора бітів і керованого дільника на 16.


Рис. 8.9. Перевірка старт-біта в середині інтервалу
для захисту від імпульсної перешкоди
  Режим 0 виконує завдання синхронного обміну. Під час роботи в цьому режимі застосовується додатковий провід тактування для синхронізації приймаПередача й приймання інформації здійснюється через вхід Rxd, імпульси синхронізації - через Txd. Обміну підлягають 8-бітові дані. Мікроконтролер у цьому режимі є ведучим. Він ініціює обмін, здійснюючи початкову передачу даних. Якщо потрібно, передає запит на приймання інформації, після чого переходить у режим приймання. Потім формує тактові імпульси для зовнішнього пристрою й ухвалює призначену для нього інформацію. Швидкість обміну при цьому фіксована й дорівнює 1/12 Fosc. Для ініціювання передачі необхідно занести до регістра SCON у розряди MSO, MS1 нулі й записати в SBUF перший байт повідомлення. Наступний байт може бути записано в SBUF тільки після передачі байта. Прапор закінчення передачі перебуває в біті SCON.1 (TI), формується апаратно після закінчення передачі байта. Він може викликати переривання за адресою 23Н. Після закінчення обробки переривання прапор необхідно скинути програмно. Допускається опитування прапора без використання переривання. Після встановлення прапора TI в SBUF можна записати наступний біт повідомлення. Якщо було передано останній байт повідомлення, досить скинути прапор TI і більше він формуватися не буде. Для поновлення передачі необхідно в SBUF записати перший байт повідомлення й процес передачі повторюється.
  Для переведення УСАПП у режим приймання потрібно встановити в SCON.4 одиницю.
  Режим 0 призначено для обміну інформацією із пристроями, що розташовані на платі контролера, при дотриманні правил перешкодозахисту й мінімальній довжині провідників. Він забезпечує максимальну швидкість обміну по послідовному каналу.
ча зовнішнього пристрою. Схему підключення зовнішнього пристрою зображено на рис. 8.6.
Режим роботи 1.
Режим асинхронного обміну найбільш часто застосовується. Це пояснюється тим, що формат обміну даними у цьому режимі такий самий, як і у послідовному інтерфейсі персональних комп'ютерів (СОМ).
  Приймання починається під час виявлення детектором спаду переходу з 0 в 1. При цьому скидається в 0 дільник на 16 приймача. На 7-му, 8-му і 9-му такті дільника опитується значення входу приймача RxD (рис. 8.9) і, якщо за трьома вимірами більше 1, старт-біт не зачитується, йде його подальший пошук. Таким чином, відбувається підстроювання фази тактування приймача за сигналами з лінії зв'язку. Вона забезпечує підтвердження значення прийнятих даних у середині тактового інтервалу. А мажоритарне опитування (за трьома крапками на інтервалі) - захист від імпульсних перешкод.
  При прийманні, крім контролю старт-біта, здійснюється контроль стоп- біта. Якщо він не дорівнює 1, посилка не зачитується й дані губляться.
  Як правило, обмін даними між контролерами проводиться декількома байтами. Цю послідовність байтів називають повідомленням. Для визначення початку повідомлення використовують або не застосовуване в посилці оригінальне значення першого байта, або так званий тайм-аут, коли протягом певного часу передача даних перед передачею чергового повідомлення не відбувається.
Рис. 8.10. Схема підключення двох
контролерів у режимі 1
  Як правило, обмін між пристроями в послідовному форматі відбувається за алгоритмом запит - відповідь, або передача - підтвердження. При цьому ініціатором  обміну  є  провідний  контролер  або  Master.  Другий  контролер називають веденим або Slave. Задання на програму обміну інформацією між контролерами можна сформулювати в такий спосіб: необхідно передати через послідовний інтерфейс масив даних, розміщених з адреси Adr1, довжиною в L байт; прийняти у відповідь масив довжиною Lotv і записати його з адреси Adr2.
  На рис. 8.11 наведено схему алгоритму й програми, що виконує такий обмін без використання переривань.

Рис. 8.11. Блок-схема алгоритму обміну повідомленнями
 
  На початку програми задається другий режим таймера 1, а також заноситься константа в ТН1, що забезпечує швидкість обміну 19,2 кбіт/c.
  Потім настроюється УСАПП на перший режим роботи, а також заноситься перший байт масиву в SBUFF. Контроль передачі байта здійснюється шляхом програмного опитування біта TI в SCON. Після закінчення передачі чергового байта цей біт установлюється в одиницю. В SBUFF заноситься значення наступного елемента масиву, нарощується покажчик масиву, скидається в 0 біт TI, декрементується й перевіряється на нуль лічильник елементів масиву. Якщо останній елемент масиву передано, програма переходить на приймання відповіді на запит, якщо він був не останнім, то вертається на контроль біта TI. Після закінчення передачі масиву УСАПП переводиться в режим приймання, для цього біт REN (SCON.4) установлюється  в  1. Потім  формується  значення  покажчика  приймального масиву, установлюється його довжина й відбувається опитування й контроль біта RI (SCON.0). Одиниця в цьому біті означає, що приймач закінчив приймання чергового байта, тепер необхідно зчитати буфер, щоб звільнити його для приймання наступного байта. Після зчитування з SBUFF значення заноситься в масив приймання, нарощується покажчик елементів масиву, скидається біт RI, декрементується й перевіряється на нуль лічильник елементів масиву. Якщо останній байт масиву прийнято, біт REN скидається в 0, приймання припиняється й програма переходить на продовження виконання завдання керування.
  Режим роботи 2.
  У цьому режимі, крім старт- і стоп-біта та 8 бітів даних, додається дев'ятий біт, значення якого можна задавати програмно. Він використовується для підвищення вірогідності приймання інформації (для передачі значення біта контролю парності), або для передачі ознаки початку повідомлення в багатоконтролерних мережах, де першим байтом передається номер адресата. Частота приймання/передачі може дорівнювати 1/32 або 1/64 частоти резонатора залежно від значення SMOD (PCON.7).
  Режим роботи 3.
  Режим 3 збігається з режимом 2 за форматом повідомлення але швидкість обміну може задаватися таймером 1, як і в режимі 1.

                                                                            Контрольні запитання

1. Яку кількість бітів містить посилка УАПП МК51 в режимі 1?
2. Яку кількість бітів містить посилка УАПП МК51 в режимі 2?
3. Який біт регістра SCON УАПП МК51 дозволяє роботу контролера в мережевому режимі?
4. Який сигнал УАПП МК51 використовується в системі переривань при передачі інформації?
5. Який сигнал УАПП МК51 використовується в системі переривань при прийманні інформації?
6. Скільки режимів роботи має послідовний порт МК51?
7. Яку кількість бітів містить посилка УАПП МК51 в режимі 0?
8. Який перехід в лінії зв’язку характеризує початок посилки?
9. Який перехід в лінії зв’язку характеризує завершення посилки?
10.Який біт регістра SCON УАПП МК51 дозволяє приймання інформації?
Приклад програми:
Mass equ 30h; початок переданого масиву
Recivmas equ 50h ; початок прийнятого масиву
Flag equ 0h ; ознака закінчення обміну даними
Razmer equ 2h ; R2
Ukaz equ 0h ; R0
;OSNOVNAYA PROGRAMMA
main: mov TMOD,#20h; reg 2 taim 1
mov PCON,#80h;SMOD=1
mov TL1,#0fdh
mov TH1,#0fdh; частота обміну 19,2
kgc setb TCON.6; режим роботи USART
setb SCON.6
setb SCON.7    
setb SCON.3    mov Ukaz,#mass+1
mov Razmer,#9; довжина масиву
setb Flag
;PEREDACHA
mov SBUF, Mass; передача першого байта
m1t: jnb SCON.1,m1t
m2t: mov SBUF,@R0 inc r0
m2: clr SCON.1
djnz r2,m1t; контроль кінця масиву передачі
m1:
;PRIEM
mov Ukaz,#recivmas
mov Razmer,#10; довжина масиву приймання
setb SCON.4
m1r: jnb SCON.0,m1r
reciw: mov @R0,SBUF; зчитування прийнятого байта
inc R0     clr SCON.0
djnz r2,m1r; контроль кінця приймання
m2r: ljmp m2r END