Сдам Сам

ПОЛЕЗНОЕ


КАТЕГОРИИ







Розрахунок швидкості передачі даних





Швидкість (частота передачі бітів) послідовного обміну Vпд в залежності від режиму роботи послідовного порту визначається або частотою синхронізації мікроконтролера fBQ (режими 0 і 2), або частотою переповнення таймера/лічильника1 Fov T/C1 (режими 1 і 3)

У режимі 0 швидкість послідовного обміну максимальна. Вона постійна і складає: Vпд = fBQ/12

Якщо у режимі 0 fBQ = 12Мгц:

.

При необхідності працювати зі зміненою у 2 рази швидкістю використовується режим 2 послідовного порту. У цьому режимі швидкість послідовної передачі залежить від стану біта SMOD регістра SCON і частоти fBQ:

Vпд = (2SMOD/64) * fBQ [біт/с]

Тобто при SMOD = 0, Vпд = fBQ/64, а при SMOD = 1, Vпд = fBQ/32. Якщо fBQ = 12Мгц

, SMOD = 0,

, SMOD = 1.

У режимах 1, 3 є можливість змінити швидкість послідовної передачі у більш широкому діапазоні:

Vпд = (2SMOD/32) * FOV T/C1 [біт/с],

де FOV T/C1 – частота переповнення Т/Л1.

Для використання Т/Л1 в якості джерела для задання швидкості обміну необхідно:

- заборонити переривання від Т/Л1;

- запрограмувати роботу Т/Л1 в якості таймера або в якості лічильника, встановивши при цьому для нього один з режимів 0, 1 або 2;

- увімкнути Т/Л1 на лічбу.

Звичайно для синхронізації послідовного порту таймер Т/Л1 вмикається у режим автозавантаження (режим 2). У цьому випадку швидкість послідовного обміну визначається за формулою:

Vпд = (2SMOD * fBQ)/(32 * 12 * [256-(TH1)]) [біт/с],

де (ТН1) – десятковий код вмісту ТН1.

Якщо необхідний послідовний обмін з дуже низькою швидкістю, то можна використовувати Т/Л1 у режимі 16-розрядного таймера (режим 1), дозволивши при цьому переривання від Т/Л1 з метою перезавантаження TL1/TH1 у підпрограмі обслуговування переривання.

У таблиці 28 наведений ряд стандартних швидкостей послідовного обміну і те, як вони можуть бути реалізовані в МК-рі.

  Таблиця 28 – Формування стандартних швидкостей обміну через послідовний порт
Режим роботи послідовного порту Швидкість прийому/ передачі, Кбод fBQ, МГц SMOD Розряди TMOD TH1 Примітка
C/T M1 M0
Режим 0 Макс.: 1000   Х Х Х Х Х  
Режим 2 Макс.: 375     Х Х Х Х  
Режим 1, 3 62,5           FFH  
  19,2 11,059         FDH  
  9,6 11,059         FDH  
  4,8 11,059         FAH  
  2,4 11,059         E4H  
  1,2 11,059         E8H  
  0,1375 11,986         18H  
  0,110           72H  
  0,110           FEH TL1 = EBH

Приклад написання програми

Вихідні дані для програмування:

- швидкість обміну – 110 біт/с (бод);

- fBQ = 6 МГц;

- режим роботи послідовного порту – 3;

- режим роботи T/Л1 – 2;

- вид обміну – під керуванням мікропроцесора (програмно-управляючий);

- біт SMOD регістра PCON сигналом "RESET" встановлений у 0.

програма ініціалізації послідовного порту і фрагменти програмно-керуючого обміну:

 

; ініціалізація послідовного порту

; для роботи зі швидкістю 110 бод

; на частоті тактового сигналу 6 МГц;

INT1: CLR TCON.6; зупинка таймера;

CLR IE.3; заборона переривань від T/Л1;

CLR IE.4; заборона переривань від УАПП;

MOV TH1,#72H; значення, що автоматично завантажується,

; для отримання швидкості 110 бод;

MOV SCON,#11011000B; встановлення режиму 9-розрядного УАПП;

MOV TMOD,#00100000B; встановлення режиму автозавантаження

; таймера 1;

SETB TCON.6; запуск таймера1;

; прийом символу від зовнішнього пристрою;

CIN: JNB RI,CIN; очікування завершення прийому;

MOV A,SBUF; читання отриманого символу;

CLR RI; скидання прапорця прийому;

; передача символу на зовнішній пристрій;

COUT: JNB TI,COUT; очікування закінчення передачі

; попереднього символу;

CLR TI; скидання прапорця передачі;

MOV SBUF,A; видача символу.

 

Варіанти індивідуальних завдань Таблиця 29 – Завдання до лабораторної роботи №7  
Текст індивідуального завдання
  a) Запрограмувати УАПП в реж.1, V = 3000 бод. b) В реж.2 вивести через УАПП вміст регістрів поточного банку. c) Написати фрагмент програми, який при прийнятті слова (2 байта) через УАПП (по перериванню) викликає підпрограму SerialRecive з передачею прийнятого слова через DPTR як параметр.
  a) Запрограмувати УАПП в реж.3, V = 6000 бод. b) В реж.0 вивести через УАПП вміст нульового банку РОН. c) Написати фрагмент програми, який при прийнятті даних через УАПП по перериванню в реж.3 (9-й біт - доповнення до парності) обчислює контрольну суму, порівнює її з прийнятою і в разі збігу викликає підпрограму SerialRecive з передачею прийнятого байта через акумулятор як параметр
  a) Запрограмувати УАПП в реж.1, V = 8000 бод. b) В реж.0 прийняти через УАПП 8 байт і записати їх в перший банк РОН-ів. c) Написати фрагмент програми, який при прийнятті даних через УАПП по перериванню в реж.1 обчислює контрольну суму і передає дані через УАПП в реж.3. (9-й біт - доповнення до парності)
  a) Запрограмувати УАПП в реж.3 з відбраковкою отриманих даних, в яких 9-й біт дорівнює 0. V = 8000 бод. b) Написати фрагмент програми, який передає через УАПП вміст регістрів А і В. c) Написати програму, яка по перепаду 1 → 0 приймає 8 біт даних через Р2 і передає їх через УАПП в реж.1
  a) Запрограмувати УАПП в реж.2. Швидкість задати довільно. b) Написати фрагмент програми, який приймає через УАПП два байти і записує їх у регістри А і В. c) Написати програму, яка при прийнятті даних через УАПП видає їх через Р2 супроводжуючи перепадом 1 → 0.
  а), b), c) Написати підпрограму, що використовує УАПП як передавач СПД з інформаційною ОС. V = 2400 бод. Протокол функціонування СПД розробити самостійно. Підказка: приймач СПД повинен мати можливість розрізнити дані, що передаються вперше від даних, шо передаються повторно
 
Продовження таблиці 29
Текст індивідуального завдання
  а), b), c) Написати фрагмент програми, що використовує УАПП в якості приймача СПД з інформаційною ОС. При прийнятті даних і відсутності помилок викликати підпрограму SerialRecive з передачею прийнятого байта через А як параметр. V = 9600 бод. Протокол функціонування СПД розробити самостійно. Підказка 1: байт вважається прийнятим правильно, якщо від передавача отримано новий байт, або передача відсутня заданий час. Підказка 2: приймач СПД повинен мати можливість розрізнити дані, що передаються вперше від даних, що передаються повторно.
  а), b), c) Написати підпрограму, що використовує УАПП як передавач СПД з перезапитом. V = 4800 бод. Протокол функціонування СПД розробити самостійно. Підказка: як протокол виявлення помилок зручно використовувати перевірку на парність
  а), b), c) Написати фрагмент програми, що використовує УАПП в якості приймача СПД з перезапитом. При прийнятті даних і відсутності помилок викликати підпрограму SerialRecive з передачею прийнятого байта через А як параметр. V = 2400 бод. Протокол функціонування СПД розробити самостійно. Підказка: як протокол виявлення помилок зручно використовувати перевірку на парність
  а), b), c) Реалізувати приймач СПД з топологією шина, що працює в режимі керуючий‑керовані (див. конспект лекцій). Після прийняття 8 байт даних (без урахування байта адреси керованої ОМЕВМ) і розміщення їх у першому банку РОН викликати підпрограму SerialRecive. V = 1200 бод.
 

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

1. Місце та склад модуля УАПП у структурі мікроконтролера.

2. Режими роботи УАПП.

3. Роль регістра SMOD у програмуванні послідовного порту мікроконтролера МК-51.

4. Методи розрахунку швидкості передачі даних.

 







Живите по правилу: МАЛО ЛИ ЧТО НА СВЕТЕ СУЩЕСТВУЕТ? Я неслучайно подчеркиваю, что место в голове ограничено, а информации вокруг много, и что ваше право...

Конфликты в семейной жизни. Как это изменить? Редкий брак и взаимоотношения существуют без конфликтов и напряженности. Через это проходят все...

Что будет с Землей, если ось ее сместится на 6666 км? Что будет с Землей? - задался я вопросом...

ЧТО ТАКОЕ УВЕРЕННОЕ ПОВЕДЕНИЕ В МЕЖЛИЧНОСТНЫХ ОТНОШЕНИЯХ? Исторически существует три основных модели различий, существующих между...





Не нашли то, что искали? Воспользуйтесь поиском гугл на сайте:


©2015- 2024 zdamsam.ru Размещенные материалы защищены законодательством РФ.