Смекни!
smekni.com

Розробка інформаційно-вимірювальної системи для перевірки гідромоторів (стр. 7 из 8)

- діапазон роботи АЦП: від 0 до 6 В;

- час перетворення АЦП: 70...280 мс;

- клас точності 0,05 [5]

4.2 Вбудований аналого-цифровий перетворювач

Мікроконтролери AT90S8515 оснащені 10-розрядним ADC послідовного наближення. ADC під’єднано до 6-розрядного аналогового мультиплексора, що дозволяє використати будь-який вивод порта С в якості входу ADC. ADC містить підсилювач вибірки/зберігання, що утримує напругу входу ADC під час перетворення на незмінному рівні. Блок-схема ADC представлена на рисунку 4.2. Для живлення ADC використовуються два окремих виводи: AVCC і AGND. Вивод AGND повинен бути під’єднаний до GND а напруга AVCC не повинна відрізнятися від напруги VCC більш ніж на 0.4 В.

Зовнішня напруга порівняння подається на вивод AREF і повинна бути в діапазоні від 2.7 В до AVCC.

Робота аналого-цифрового перетворювача

Аналого-цифровий перетворювач може працювати в двох режимах: режимі однократного перетворення і режимі циклічного перетворення. В режимі однократного перетворення кожне перетворення ініціюється користувачем. В режимі циклічного перетворення ADC здійснює вибірку і оновлення вмісту регістру даних ADC безупинно. Вибір режиму виробляється бітом ADFR регістру ADCSR.

Робота ADC дозволяється установкою в стан 1 біту ADEN в регістрі ADCSR. Першому перетворенню, що починається після дозволу ADC, передує порожнє ініціалізуюче перетворення. На користувачі це відбивається лише тим, що перше перетворення буде займати 27 тактових циклів, замість звичайних 14.

Перетворення починається з установки в стан 1 біта початку перетворення ADSC. Цей біт знаходиться в стані 1 протягом всього циклу перетворення і скидається, по завершенні перетворення, апаратно. Якщо в процесі виконання перетворення виконується зміна каналу даних, те ADC спочатку закінчить поточне перетворення і лише потім виконає перехід до іншого каналу.

Оскільки ADC формує 10-розрядний результат, то по завершенні перетворення результуючі дані розміщуються в двох регістрах даних ADCH і ADCL. Для забезпечення відповідності результуючих даних рівню, що зчитується використовується спеціальна логіка захисту.


Рисунок 4.2 – Блок-схема аналого-цифрового перетворювача

Цей механізм працює слідуючим чином: при зчитуванні даних першим повинен бути зчитаний регістр ADCL. Як тільки ADCL зчитаний звернення ADC до регістрів даних блокується. Таким Чином, якщо після зчитування стану ADCL, але до зчитування ADCH, буде завершене наступне перетворення, жоден з регістрів не буде оновлений і записаний раніше результат не буде викривлений. Звернення ADC до регістрів ADCH і ADCL дозволяється по завершенні зчитування вмісту регістру ADCH.

ADC має своє власне переривання, що може бути активоване по завершенню перетворення. Коли звернення ADC до регістрів заборонено, в процесі зчитування регістрів ADCL і ADCH, переривання буде активуватися, навіть якщо результат буде втрачений.

4.3 Вбудований універсальний асинхронний приймач-передавач

Мікроконтролери AT90S8515 оснащені полнодуплексними універсальними приймачами-передавачами (UART). Їхні основні можливості наступні:

- Генератор забезпечує будь-яку швидкість передачі інформації в бодах

- Висока швидкість передачі при низькій частоті XTAL

- 8-розрядний або 9-розрядний формати даних

- Фільтрація шуму

- Визначення переповнення

- Визначення помилок формування кадрів

- Детектування біта неправдивого старту

- Три окремих переривання: по завершенню передачі (TX Complete), по порожньому регістру даних, що передаються (TX Data Register Empty) і по завершенню прийому (RX Complete).

Передача даних

Блок-схема передавача UART показана на рисунку 4.3.

Передача даних ініціюється записом даних, що передаються, в регістр даних I/O UART (UDR). Дані пересилаються з UDR в зсувний регістр передачі в наступних випадках:

- Новий символ записаний в UDR після того як був виведений з регістру стоповый біт символу, що передував. Зсувний регістр завантажується негайно.

- Новий символ записаний в UDR раніше, ніж був виведений стоповий біт символу, що передував. Зсувний регістр завантажується після виходу стопового біту символу, що передається, який знаходиться в зсувному регістрі.

Якщо з 10 (11)-розрядного зсувного регістру передачі виведена вся інформація (зсувний регістр передачі порожній) дані з UDR пересилаються в зсувний регістр. В цей час встановлюється біт UDRE (UART Data Register Empty) регістру статусу UART (USR). При встановленому в стан 1 біті UDRE UART готов прийняти наступний символ. Запис в UDR очищає біт UDRE. В той самий час, коли дані пересилаються з UDR в 10 (11)-розрядний зсувний регістр, біт 0 зсувногорегістру скидається в стан 0 (стан 0 - стартовий біт) а біт 9 або 10 встановлюється в стан 1 (стан 1 - стоповий біт). Якщо в регістрі управління UART (UCR) встановлений біт CHR9 (тобтовибраний режим 9-розрядного слова даних), то біт TXB8 регістру UCR пересилається в біт 9 зсувногорегістру передачі.

Рисунок 4.3 – Передавач UART

Відразу після пересилання даних в зсувний регістр тактом бод-генератора стартовий біт зсувається на вивід TXD. За ним слідує LSB даних. Коли буде виданий стоповий біт зсувний регістр завантажується новою порцією даних, якщо вона була записана в UDR під час передачі. В процесі завантаження біт UDRE знаходиться в встановленому стані. Якщо ж нові дані не будуть завантажені в UDR до видачі стопового біту, прапор UDRE залишається встановленим. В цьому випадку, після того як стоповий біт буде знаходитись на виводі TXD протягом одного такту, в регістрі статусу UART (USR) встановлюється прапор завершення передачі TXC (TX Complete Flag).

Встановлений в стан 1 біт TXEN регістру UCR дозволяє передачу UART. При очищеному біті TXEN (скинутому в стан 0) вивод PD1 може бути використаний в якості виводу I/O загального призначення. При встановленому біті TXEN передавач UART підключається до PD1 і використає його в якості виводу виходу, незалежно від установки біту DDD1 в DDRD. Логіка відновлення даних виробляє вибірку станів виводу RXD з частотою в 16 раз більшою, ніж частота бодів. При знаходженні лінії в пасивному стані одиночна вибірка нульового логічного рівня буде інтерпретуватися як падаючий фронт стартового біту і буде запущена послідовність детектування стартового біту. Вважається, що перша вибірка виявила перший нульовий логічний рівень імовірного стартового біту. На вибірках 8, 9 і 10 приймач знову тестує вивод RXD на зміну логічних станів. Якщо дві або більш з цих трьох вибірок виявлять логічні 1, то даний імовірний стартовий біт відкидається як шумовий сплеск і приймач почне виявляти і аналізувати наступні переходи з 1 в 0.

Рисунок 4.4 – Приймач UART

Якщо ж був виявлений дійсний стартовий біт, то починає вироблятися вибірка наступних за стартовим бітом інформаційних бітів. Ці біти також тестуються на вибірках 8, 9 і 10. Логічний стан біту приймається по двом і більше (з трьох) однаковим станам вибірок. Всі біти вводяться в зсувний регістр приймача з тим значенням, що було визначене тестуванням вибірок. Тестування вибірок бітів символів, що приймаються показане на рисунку 4.5.

Рисунок 4.5 –Тестування виборок даних, що приймаються

При надходженні стопового біта необхідно щоб не менше двох вибірок з трьох підтвердили прийом стопового біта (показали високий рівень). Якщо ж дві або більш вибірок покажуть стан 0, то, при пересиланні прийнятого байта в UDR, в регістрі статусу UART (USR) встановлюється біт помилки кадру FE (Framing Error). Для відкриття помилки кадру користувач перед читанням регістру UDR повинен перевіряти стан біту FE. Прапор FE очищається при зчитуванні вмісту регістру даних UART (UDR). Незалежно від того прийнятий правильний стоповий біт або ні, дані пересилаються в регістр UDR і встановлюється прапор RXC в регістрі статусу UART (USR). Регістр UDR фактично є двома фізичними окремими регістрами, один з яких служить для передачі даних, а інший для прийому. При зчитуванні UDR звернення ведеться до регістру прийому даних, при записі звернення ведеться до регістру передачі. Якщо вибраний режим обміну 9-розрядними словами даних (встановлений біт CHR9 регістру UCR), при пересиланні даних в UDR біт RXB8 регістру UCR завантажується в біт 9 зсувного регістру передачі. Якщо після отримання символу до регістру UDR не було звернення, починаючи з останнього прийому, в регістрі UCR встановлюється прапор переповнення (OR). Це означає, що нові дані, що пересилаються в зсувний регістр не можуть бути передані в UDR і втрачені. Біт OR буферований і доступний тоді, коли в UDR читається байт вірогідних даних. Користувачу, для відкриття переповнення, необхідно завжди перевіряти прапор OR після зчитування вмісту регістру UDR.

При очищеному (скинутому в логічний стан 0) біті RXEN регістру UCR приймач заборонений. Це означає, що вивод PD0 може використовуватися в якості виводу I/O загального призначення. При встановленому біті RXEN, приймач UART підключається до виводу PD0, що працює як вивод входу, незалежно від установки біту DDD0 в DDRD.

При установці UART виводу PD0 на роботу в якості входу, біт PORTD0 може використовуватися для управління навантажувальним резистором виводу.[6]

4.3 Вибір перетворювача рівнів сигналу

За стандартною логікою одиниця представляється рівнем напруг від 2,4 до 5 В, а нуль – від 0 до 0,8 В. Проте, при передачі по каналу RS-232 нуль та одиниця кодуються однаковими за величиною(від 5 до 12 В), але різними за знаком сигналами.

Так як для передач по RS-232 стандартні логічні сигнали повинні бути перетворені в сигнали другого рівня, необхідно передбачити у схемі відповідні засоби перетворення. Десять років тому, для цієї мети використовувались спеціальні каскади з трьох-чотирьох транзисторів, пари діодів і майже десятка резисторів. Зараз ситуація значно змінилась: провідні виробники мікросхем повністю завершенні перетворювачі, які потребують мінімальної кількості додаткових елементів. До них відносяться МАХ202Е від МАХІМ і повністю їй ідентична AD232 від Analog Devices. Всередині обидві мікросхеми містять перетворювач напруги +5 В у ±10 В і каскади, що здійснюють перетворення логічних сигналів стандартного рівня у сигнали рівня по стандарту RS-232.