Смекни!
smekni.com

Віртуальний вимірювальний комплекс на базі учбового лабораторного стенду EV 8031 (стр. 9 из 19)

Алгоритм налагодження USART складається з налагодження режиму роботи USART. Це поперше кількість стартових, стопових біт, перевірка на додавання або недодавання, кількість інформаційних біт, дозволити/ заборонити прийом і дозволити/заборонити передачу, дозволити/ заборонити обробку переривань за закінченням приймання або за закінченням передавання. Далі налагоджується швидкість записом у регістр UBRR обчисленого або взятого із таблицї даташиту [1]. У пороцессі розробки була знайдена помилка в роботі мікроконтроллера: він пошкоджує данні регістру UBRR, при виконнанні запису у інші регістри, які відносяться до налагоджування USART. Було прийнято рішення встановлювати швидкість USART останньою операцією його налагодження. В нашому випадку перевірка за додатними/недотаними числами не використовується, кількість інформаціонних біт – 8, 1 стартовий та 1 стоповий біт. Для початку передавання у порт данних необхідно зачекати доки попередній сеанс передачі закінчиться. Це виконується перевіркою біта UDRE регістру UCSRA. Далі для початку передавання байту потрібно записати його у регістр UDR. Після цього USART у фоновому режимі починає передачу і зупиняється коли байт переданий.

Для передачі масиву данних необхідно виконувати такі сеанси для кожного байту масиву.

Прийом по USART більш складний за передачу. Справа у тому, що прийом повинен бути у фоновому режимі, інакше це треба буде робити у головному циклі програми. Після прийому першого байту, треба чекати і приймати байти тільки на час називаємий таймаут, інакше якщо зв’язок раптом обірветься, або прийнятий байт буде результатом завади на лінії передачі, мікроконтроллер увійде у бекінечний цикл(зависання програми). Для цього USART має переривання RXC(Recieve complete). Коли байт надходить до рнгістру UDR спрацьовує переривання, мікроконтроллер починає виконувати обробник переривання. У обробнику перевіряється наявність першого байту команди, і якщо перший байт вірний, наступного разу виконується ініціалізація таймеру на час таймауту(цей час обчислюєтся згідно зі швидкістю прийому/передачі і кількості приймаємих байт) і піднімається прапорець, згідно з яким починається налаштовування приймаємих байт у пам’яті. Прийом продовжується доки не спрацює переривання за таймером, налаштованим на час таймауту. Обробник переривання таймеру зупиняє відлік і виконує діагностику прийнятої послідовності. Згідно з нею налаштовуються відповідні регістри, флаги і обчислюється код за яким виконується перехід до необхідного алгоритму.

3.1.4 Розробка головного циклу програми

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

3.2 Розробка програмного забеспечення ПК

Розробка програмного забезпечення ПК починається з вибору мови програмування, та визначення, які ресурси комп’ютера і ОС необхідні для реалізації програми. Тому, для розробки програмного забеспечення була обрана мова програмування Delphi 7, а для звертання до ком порту використаний компонент SerialNG. Код цього компонента відкритий, не забороняється його використання у комерційних проектах. Також для відображення проаналізованих данних використаний стандартний компонент Chart, він дозволяє створювати графіки, та налагоджувати способ виводу. Інщі компоненти використані у програмі є загальновідомими і опис іхнього призначення можна знайти у [3].

3.2.1 Розробка інтерфейсу логічного аналізатора

Рис. 18 Інтерфейс користувача логічного аналізатора

Розробка прграмного забеспечення для ПК починається із розробки інтер фейсу користувача. Інтерфейс логічного аналізатора повинен мати елементи керування вибором частоти, вибором пкскового каналу і виглядом сиглалу запуску(за підвищенням або спадом). Головне, користувачеві повинно бути надано діаграму усіх 8-ми каналів за часом, та елементи, які дозволяють виконувати зручний перегляд та пошук необхідних послідовностей. Загальний вигляд розробленого інтерфейсу наданий на рис. 18.


3.2.2 Розробка інтерфейсу генератора слів

Інтерфейс користувача генератору слів повинен мати елементи керування режимом роботи генератора: циклічний, одноразовий та шаговий. Також він повинен дозволяти змінювати швидкість генерації, запускати та зупиняти генерацію. Головним елементом інтерфейсу генератора, є список вводу необхідної послідовності. Він повинен передбачати помилки при вводі шістнадцятирічних чисел, та налаштовуванню діапазонів. Загальний вигляд інтерфейсу користувача зображений на рис. 19.

Рис. 19 Інтерфейс користувача генератору слів

Також мова інтерфейсу яка була використана це російська.


3.2.3 Розробка інтерфейсу прийому/передачі

В усіх випадках, зв’язок виконаний через COM порт. Як і випадку із мікроконтроллером, необхідно спочатку налагодити порт. Сучасні ОС не дозволяють отримувати безпосередній доступ до портів вводу виводу, метою цього є боротьба за беспеку. Але вони надають спеціальні функції для реалізації таких дій. В данному випадку була обрана ОС Windows 2000 або XP. Вона має необхідний обсяг сервісних функцій для реалізації данної дії, їх називають API. Але при розробці за допомогою API виникли деякі проблеми. Більшість яких була зв’язана із великим обсягом часу для розробки стійкого коду роботи із послідовним портом. Були отримані деякі показники, але програма приймала сбійні байти, і інколи зависала. Тому було прийнято рішення використати компонент. Delphi дозволяє створювати і використовувати візуальні компоненти. Ці компоненти спрощують програмування, якщо при розробці непотрібні нестандартні компоненти, але незабороняється іх створювати або встановлювати. В інтернеті можна знайти безліч похідних кодів і багато з них можна використовувати вільно. Одним з таких компонентів є компонент SerialNG. Оскільки останнім часом велика кількість файлів “мігрує” з серверу на сервер, місце знаходження данного компоненту не вказується, але його назви достатньо для пошуку за допомогою відомих пошукових серверів(також не приводиться у цілях реклами). Цей компонент дозволяє візуально налагодити роботу із послідовним портом і нескладний у використанні.

3.2.3 Розробка алгоритму програми

Загальний алгорим за яким працює програма наданий у додатках. Текст програми не містить складних алгоритмів. Можна тільки зазначити, що для фільтрації вводу були використані перехоплювачі повідомлень WM_KEYPRESSED. Обробники таких перехоплювачів змінюють код отриманого символу на неіснуючий, якщо символ виходить за рамки встановлені при розробці обробника. Оскільки код виконаний у вигляді одного програмного модуля, проблем із використанням COM порту не виникає. Треба зазначити, що доступ який надає ОС Windows 2000/XP до порту є монопольним, і якщо на момент виконання данної програми будуть використовуватись інщі програми, які отримують доступ до COM порту, доступ залишиться тільки у вашої програми. Навпаки ж якщо якась з сторонніх програм виконується і доступ до порту належить їй, данна програма не зможе отримати доступ.

4 ТЕСТУВАННЯ ПРОГРАМНОГО ЗАБЕСПЕЧЕННЯ

При тестуванні програмного забеспечення були використані сторонні програмні та апаратні засоби. Одними з таких засобів є монітор послідовних портів wTerm.(рис. 20) Він надає зручний інтерфейс для контролю, передачі, та прийманню данних за допомогою послідовних портів. Перший тест це реакція на команди які надходять із інтерфейсу користувача до стенду. Для цього треба спочатку перевірити стенд. За допомогою wTerm в порт передається необхідна послідовність керуючих слів, якщо стенд прийняв послідовність і працює правильно він повинен у відповідь передати відповідь + 1024 байти проаналізованих данних. Для перевірки правильноі працездатності інтерфейсу користувача потрідно з’єднати 2 порти ПК нульмодумним кабелем(прийом передача - схрещені), і wTerm настроїти на роботу із портом COM2. Якщо після натиснення кнопки запуску логічного аналізатора у вікні прийому wTerm з’явиться необхідна послідовність, можна спробувати передати логічному аналізатору відповідь у форматі керуючі слова + 1024 байти данних. Якщо данні з’являться у елементі перегляду логічних станів логічного аналізатору можна візуально перевірити іх на достовірність. Аналогічни чином перевіряється генератор слів, тільки для аналізу видаваємих данних використовується осцилограф або ЛА стороннього виробництва. Остаочна перевірка закінчується повноцінною працездатністю програмного забеспечення. Стенд підєднується до порту COM1 і за допомогою генератору сигналів стороннього виробництва перевіряється працездатність ЛА, аналогічно перевіряється ГС, і останній режим – ЛА+ГС можна перевірити з’єднавши шину ЛА і шину ГС перемичками. Після генерації у пошаговому режимі сгенерована послідовність повинна з’являтись у вікні логічного аналізатора.

Остаточна перевірку можна виконати за допомогою генератору сигналів послідовно змцнюючи частоту генерації, таким чином намагаючись зняти реальні технічні показники системи. Але показники які необхідні для проведення лабораторних робіт за аналізом вхідного завдання повністю відповідають показникам працесдатності системи.