Безкоштовна технічна бібліотека ЕНЦИКЛОПЕДІЯ РАДІОЕЛЕКТРОНІКИ ТА ЕЛЕКТРОТЕХНІКИ Нові режими у комбінованому вимірювальному приладі. Енциклопедія радіоелектроніки та електротехніки Енциклопедія радіоелектроніки та електротехніки / Вимірювальна техніка У ході експлуатації комбінованого приладу [1] програма його мікроконтролера значно удосконалена. Нова версія 2.03 цієї програми надає користувачеві на додаток до вже наявних режимів вимірювання частоти вхідного сигналу і одноразової розгортки в логічному аналізаторі. Нові функції реалізовані суто програмним способом, до апаратної частини приладу жодних змін вносити не довелося. Режим одноразової розгортки був із самого початку передбачений в осцилографі приладу, проте автор не реалізував його в логічному аналізаторі, хоча він не менш корисний. У новій версії програми мікроконтролера цей недогляд виправлено. Тепер можна говорити, що логічний аналізатор, як і осцилограф приладу, має два режими роботи розгортки: регулярний та одноразовий. Вони практично ідентичні за двома винятками. По-перше, у логічному аналізаторі не вимірюється напруга вхідного сигналу. Ця операція тут немає сенсу, оскільки досліджуються сигнали стандартних логічних рівнів. По-друге, додаткова інформація про положення інформаційного кадру на осі часу в режимі логічного аналізатора, що виводиться на екран, не накладається на область осцилограм і не заважає їх спостереженню. Тому її виключення не реалізовано через непотрібність. Приклад зображення на екрані індикатора в режимі одноразової розгортки логічного аналізатора показано на рис. 1.
З режиму регулярної розгортки аналізатора цей режим входять натисканням клавішу "5". У ньому діють такі керуючі кнопки: "4" - переміщення кадру вліво (до початку буфера); "5" - зупинка переміщення за відліками сигналу; "6" - переміщення кадру праворуч (до кінця буфера); "0" - вибір кроку переміщення (відлік чи кадр); "D" - вихід із режиму одноразової розгортки. Повний опис режиму одноразової розгортки не наводиться, оскільки він досить повно викладено в [2] стосовно осцилографу. Що ж до режиму вимірювання частоти, то мікроконтролер сімейства ATxmega дозволяє реалізувати кілька варіантів. Поряд з класичним підрахунком числа періодів вимірюваного сигналу за одиницю часу, таймери-лічильники цього мікроконтролера здатні виконувати прямий вимір періоду проходження імпульсів вхідного сигналу, що дозволяє легко розрахувати частоту їхнього прямування. Перевага цього методу - малий час виміру, проте прийнятна точність зберігається лише до частоти не вище кількох десятків кілогерц. У зв'язку з цим вимірювання частоти сигналу в приладі проводиться вищезгаданим класичним методом. Його принцип простий. Один таймер-лічильник формує вимірювальний інтервал часу, другий підраховує імпульси вхідного сигналу протягом цього інтервалу. Якщо тривалість вимірювального інтервалу 1 с, то накопичене за цей час у другому лічильнику число є частота сигналу в герцах. Однак на шляху реалізації цього є складності. По-перше, всі таймери-лічильники мікроконтролера сімейства ATxmega [3] – 16-розрядні. Значить, максимальна частота, що коректно вимірюється таким лічильником, обмежена переповненням його рахункового регістру і дорівнює 216 - 1 = 65535 Гц. Цього явно мало з огляду на те, що елементи мікроконтролера працездатні до частоти 32 МГц. Найпростіший шлях збільшити максимальну частоту, що вимірюється - зменшення вимірювального інтервалу. Наприклад, скорочення його вчетверо призведе до зростання вчетверо максимального значення вимірюваної частоти. Водночас у стільки ж разів зросте дискретність її вимірювання, адже кожен імпульс "важитиме" вчетверо більше. Тому такий шлях недоцільний. Домогтися збільшення максимальної частоти, що вимірювається без зростання дискретності вимірювання можна тільки збільшенням розрядності лічильника імпульсів вхідного сигналу. Архітектура мікроконтролера ATxmega дає таку можливість, дозволяючи послідовно з'єднувати кілька таймерів-лічильників. Щоб отримати 32-розрядний лічильник, достатньо об'єднати два 16-розрядні таймери-лічильники. Переповнення 32-розрядного лічильника за секунду може статися лише на частоті 2 - 1 = 4294967295 Гц, так що верхня межа частоти, що вимірюється в цьому випадку обмежена тільки частотними властивостями елементів мікроконтролера і дорівнює 32 МГц. По-друге, необхідно "довести" вхідний сигнал від лінії порту до таймера-лічильника і змусити останній рахувати імпульси в широкому інтервалі частоти їхнього прямування. По-третє, необхідно забезпечити суворо синхронну роботу всіх елементів мікроконтролера, що беруть участь у процесі рахунку, незалежно від роботи інших його вузлів, щоб уникнути різного роду непрогнозованих збоїв рахунку. Подолати ці складності допоможе наявний у мікроконтролерах сімейства ATxmega чудовий інструмент – система подій [4]. З її допомогою можна сформувати всі необхідні для роботи сигнали та транспортувати їх від джерела до приймача з мінімально можливою та, що дуже важливо, стабільною затримкою. Функціональна схема реалізованого в аналізованому приладі частотоміра зображена на рис. 2. Апаратура порту введення-виведення дозволяє аналізувати стан кожної його лінії та генерувати події у разі їх зміни. Наприклад, формувати події по кожному наростаючому або спадаючому перепаду вхідного сигналу. Таймери-лічильники здатні вважати не лише внутрішні синхроімпульси мікроконтролера, а й сигнали подій. З цього стає зрозумілим, як організовано рахунок імпульсів вхідного сигналу.
Сигнал подають на лінію PF3, яка налаштована як вхід і генерує події по наростаючих перепадів сигналу (по одній події на кожний період). Таймер-лічильник TCC1 працює в режимі лічильника подій, що доставляються каналом 3 маршрутизатора подій. Він же генерує і відправляє канал 4 маршрутизатора події переповнення (OVF) свого 16-розрядного рахункового регістра. Їх підраховує таймер-лічильник TCD1, налаштований працювати у режимі 16-разрядного лічильника подій, що доставляються каналом 4. Раз на секунду за сигналом закінчення рахункового інтервалу, що формується таймером-лічильником TCF0, налаштованого на рахунок імпульсів синхронізатора мікроконтролера, програма "склейує" результати роботи таймерів лічильників TCC1 і TCD1 в одне 32-розрядне слово і надає його значення змінної. Потім вона перезапускає всі таймери-лічильники, починаючи новий цикл вимірювання частоти. Основні характеристики у режимі вимірювання частоти
Основними джерелами похибки вимірювання частоти слід вважати: 1. Неточність установки тактової частоти мікроконтролера, у результаті реальна тривалість вимірювального інтервалу відрізняється від однієї секунди. Ця похибка має дві складові: систематична і випадкова. Систематична складова - результат нерівності фактичного середнього значення тактової частоти в номінальному. Вона має постійний характер, її можна компенсувати. Про те, як це зробити, буде розказано нижче. Випадкова складова похибки виникає внаслідок флюктуації тактового частоти генератора. Факторів, які її породжують, чимало. Це нестабільність і пульсації напруги живлення, власний шум елементів генератора, вплив температури та ін. У приладах високого класу для мінімізації шкідливого впливу подібних факторів застосовується цілий комплекс заходів, аж до термостабілізації та віброзахисту тактового генератора. Однак похибка цього виду можна лише зменшити, повністю позбутися її не можна. В авторському примірнику приладу вона не перевищує ±0,001%. Це означає, що частота 5 МГц вимірюється помилкою ±50 Гц. 2. Похибка дискретизації результату виміру. Вона знайома всім, хто будь-коли мав справу з будь-яким цифровим вимірювальним приладом. Походження цієї похибки пояснюють графіки на рис. 3. Залежно від взаємного розташування на осі часу меж вимірювального інтервалу та реєстрованих лічильником перепадів вимірюваного сигналу результат рахунку може різнитися на одиницю. Наприклад, у наведеному малюнку випадку може бути пораховано 6 або 7 імпульсів при фактичній частоті їх повторення близько 6,6 Гц (при тривалості інтервалі рахунку 1 с). Цей ефект зберігається за будь-якого співвідношення вимірюваної частоти та інтервалу рахунку. При багаторазовому повторенні виміру молодша цифра його результату "скаче" на одиницю від циклу до циклу. Відносна величина цієї похибки зростає обернено пропорційно до вимірюваної частоти. Наприклад, частота близько 100 Гц буде виміряна із середньою відносною похибкою ±0,5 %. На частоті кілька мегагерц і вище похибкою дискретизації можна знехтувати. Тут переважає випадкова складова тривалості вимірювального інтервалу.
Блок програми, що виконує вимірювання частоти, розроблено, як і вся програма, у системі розробки програм BASCOM AVR. При вході в режим частотоміра програма відповідним чином налаштовує елементи внутрішньої структури мікроконтролера, що беруть участь у вимірюванні частоти: - лінію PF3, на яку надходить вхідний сигнал, конфігурує як вхід, що генерує події по наростаючих перепадах сигналу, а канал 3 маршрутизатора подій - на передачу сигналів про ці події: Portf_pin3ctrl=1 Evsys_ch3mux=&B01111011 - налаштовує таймер-лічильник TCF0 на генерацію вимірювального інтервалу тривалістю 1: config Tcf0=Normal,Prescale=7 Tcf0_per=31249 - Налаштовує таймер-лічильник TCC1 на підрахунок подій, що надходять через канал 3 маршрутизатора від лінії PF3: config Tcc1=Normal Tcc1_ctrla=&B00001011 Tcc1_ctrld=&B00001011 а канал 4 маршрутизатора - на передачу сигналів про переповнення таймера-лічильника TCC1: Evsys_ch4mux=&B11001000 - налаштовує таймер-лічильник на підрахунок подій, що надходять із каналу 4 маршрутизатора: config Tcd1=Normal Tcd1_ctrlа=&в00001100 Tcd1_ctrld=&в00011100 В результаті таймери-лічильники TCC1 та TCD1 утворюють єдиний 32-розрядний лічильник. Тепер система готова до підрахунку періодів сигналу, що вимірюється. Більше того, він уже ведеться, оскільки кожен із розглянутих пристроїв починає працювати відразу після ініціалізації. Але щоб отримати правильний результат, необхідно в момент початку інтервалу вимірювання почати підрахунок подій з нуля. Тому цикл вимірювання слід починати з одночасного обнулення всіх трьох таймерів-лічильників, що беруть у ньому участь. Особливо важливо прив'язати до початку вимірювального інтервалу (моменту перезапуску таймера TCF0) момент перезапуску таймера-лічильника TCC1, що працює з найбільшою швидкістю. Питання суворої прив'язки моменту перезапуску таймера-лічильника TCD1 на початок вимірювального інтервалу так гостро не стоїть. Перша подія, яку він повинен порахувати, відбудеться тільки при переповненні таймера-лічильника TCC1. Хоча можливість одночасного перезапуску кількох таймерів-лічильників у мікроконтролері передбачена, але реалізується вона лише через систему подій. Використовувати її в даному випадку не вдається, так як таймер-лічильник TCC1 налаштований на прийом сигналів подій з каналу 3 і приймати сигнали подій з інших каналів без переналаштування не може. Тому подати таймерам-лічильникам команду перезапуску може лише процесор, причому лише по черзі. Цикл вимірювання частоти складається з двох етапів: власне вимірювання та формування його результату. Етап виміру описують наступні п'ять рядків програми: Tcf0_ctrlfset=&B00001000 Tcc1_ctrlfset=&B00001000 Tcd1_ctrlfset=&B00001000 Bitwait Tcf0_intflags.0, Set Evsys_ch3mux=&B00000000 Перші три рядки цього фрагмента перезапускають таймери-лічильники у порядку TCF0, TCC1, TCD1. Тому таймер-лічильник TCC1 починає вважати події не в момент початку вимірювального інтервалу, що відраховується таймером-лічильником TCF0, а із затримкою Δt1 щодо цього моменту (рис. 4). Вона дорівнює тривалості виконання процесором операції перезавантаження таймера-лічильника TCC1. Слідом із такою самою затримкою процесор перезапускає таймер-лічильник TCD1, після чого починає чекати момент закінчення вимірювального інтервалу. Коли цей момент настане, таймер-лічильник TCF0 встановить у нульовому розряді регістра TCF0_JNTFLAGS прапор запиту переривання по переповненню.
Виявивши цей прапор, процесор повинен заборонити таймеру-лічильнику TCC1 подальший рахунок подій (періодів сигналу, що вимірюється). Зробити це можна по-різному. У нашому випадку останньою операцією етапу виміру процесор просто відключає канал 3 маршрутизатора подій. На цю операцію йому потрібен час Δt2 (Рис. 4), протягом якого рахунок періодів триває. Якщо Δt2 ≠ Δt1реальна тривалість рахунку подій (вимірювання частоти) відрізняється на Δt2 - Δt1 від заданої тривалості вимірювального інтервалу це породжує ще одну складову похибки вимірювання. Щоб усунути її, потрібно зробити ці затримки рівними. Однак у програмі мовою високого рівня (у тому числі BASCOM AVR) визначити точні значення їх тривалості важко, оскільки програмісту невідомий алгоритм трансляції конструкцій мови, що використовуються в машинні команди. Тому в реальній програмі фрагменти, що виконують перезапуск таймера-лічильника TCC!, а також фіксують закінчення вимірювального інтервалу та зупиняють TCC!, написані мовою асемблера, причому вжито заходів щодо забезпечення однакової тривалості виконання цих фрагментів. Цим досягається рівність Δt2 = Δt1 і, отже, рівність реальної тривалості вимірювального інтервалу заданої. Далі розглянемо реалізований у приладі спосіб усунення систематичної похибки, пов'язаної з нерівністю тактової частоти мікроконтролера номінальному значенню. Як зазначалося вище, наслідок такої невідповідності - відхилення тривалості вимірювального інтервалу від необхідного значення 1 і пропорційне йому відхилення вимірюваного значення частоти від фактичного. Насамперед це відхилення потрібно виміряти. Для цього буде потрібний зразковий генератор сигналу частотою в кілька мегагерц або комплект з будь-якого досить стабільного генератора і зразкового частотоміра. Сигнал генератора подають на гнізда 8 і 3 (загальний) роз'єм X5 приладу. Коди з файлу Osc-Volt-2_03.hex, що додається до статті, завантажують у програмну пам'ять мікроконтролера приладу. Після включення прилад переводять у режим частотоміра та вимірюють частоту зразкового генератора. Вимір потрібно повторити 10-20 разів, після чого обчислити середнє виміряне значення частоти Fвнесені поправки. Поправочний коефіцієнт обчислюють за формулою K = Fобр/Fвнесені поправки, де Fобр - Частота зразкового генератора. Щоб ввести коефіцієнт K у програму, у файлі Osc-Volt-2_03.bas (початковому тексті програми) необхідно знайти закоментований рядок compensation: 'Temp2=Temp2*1.000004 Вона позначена міткою Compensation: для полегшення пошуку. Її слід розкоментувати, а множник 1.000004 (це значення справедливо для авторського екземпляра приладу) замінити знайденим значенням поправочного коефіцієнта K. Після цього необхідно скомпілювати відкориговану програму і завантажити коди з отриманого файлу HEX в програмну пам'ять мікроконтролера. Як вже було сказано, сигнал, частоту якого необхідно виміряти, подають на гніздо 8 роз'єму Х5 приладу, звідки він надходить на вхід мікроконтролера PF3. Зрозуміло, що мікроконтролер здатний правильно сприйняти тільки такий сигнал, рівні якого відповідають прийнятим у трьох або п'ятивольтної логіки. Для вимірювання частоти сигналів іншої форми (наприклад, синусоїдальних) потрібний додатковий формувач. Хороші результати дає застосування щупа-компаратора, описаного у [5]. Його можна підключити до гнізда Х5 приладу. Потрібно лише подати з плати А! приладу на вільне гніздо 2 цього роз'єму напруга +5 або +3,3 для живлення щупа (він працездатний при будь-якому із зазначених значень напруги). Підключають щуп за схемою, зображеною на рис. 5.
Вигляд екрана індикатора приладу в режимі частотоміра показано на рис. 6.
У цей режим входять з регулярного режиму логічного аналізатора натисканням клавіші "ЛА". Перемикають пристрій із режиму частотоміра в інші режими натисканнями на такі клавіші: "ОС" - у режим осцилографа; "ЛА" - у режим логічного аналізатора; "ГН" - режим генератора сигналів. Програму мікроконтролера можна завантажити з ftp://ftp.radio.ru/pub/2015/09/combi2-03.zip. література
Автор: О. Савченко Дивіться інші статті розділу Вимірювальна техніка. Читайте та пишіть корисні коментарі до цієї статті. Останні новини науки та техніки, новинки електроніки: Машина для проріджування квітів у садах
02.05.2024 Удосконалений мікроскоп інфрачервоного діапазону
02.05.2024 Пастка для комах
01.05.2024
Інші цікаві новини: ▪ Окуляри доповненої реальності Microsoft HoloLens для хірургів ▪ Отримано нову кристалічну форму кремнію ▪ Система розпізнавання жестів на базі 60-ГГц радіохвиль Стрічка новин науки та техніки, новинок електроніки
Цікаві матеріали Безкоштовної технічної бібліотеки: ▪ Розділ сайту Електрику. Добірка статей ▪ стаття Фармакологія. Шпаргалка ▪ стаття Чим ми дихаємо? Детальна відповідь ▪ стаття Підрізування крон дерев, що ростуть уздовж ліній зв'язку. Типова інструкція з охорони праці ▪ стаття Сигналізатор витоку побутового газу. Енциклопедія радіоелектроніки та електротехніки ▪ стаття Папір, що зростається. Секрет фокусу
Залишіть свій коментар до цієї статті: All languages of this page Головна сторінка | Бібліотека | Статті | Карта сайту | Відгуки про сайт www.diagram.com.ua |