хронного порту і найголовніше - від зміни логічного рівня на ніжці.
Зберігатися інформація буде у флеш-пам'яті з подальшою передачею на ПК по УСАПП. Прийом інформації може здійснювати будь Дата логгер асинхронного порту. Для обробки даних можна застосувати програму MICROSOFT EXEL.
Годинник реального часу
Годинник реального часу. Джерелом тактирования є «вартовий» кварцовий резонатор з основною частотою генерації рівною 215 герц. Лічильником циклів є 8ми розрядний таймер 0 (хоча у AM128 може бути використаний другим таймер). Коефіцієнт розподілу обраний рівним 32, а режим роботи - таймер, тобто коефіцієнт перерахунку дорівнює 256. У тілі програми відбувається регулярна перевірка біта Tifr.0. При виявленні даного біта встановленим, вміст «Tact» збільшується. Введення такої перевірки і проміжного лічильника дозволило позбутися переривання, але накладає обмеження на час роботи циклу програми на рівні 240 мС. Досягнення значення цього лічильника 4х означає витікання секунди (256 * 32 * 4=32768=215) .Далі йде перенос з розряди хвилин, годин, днів і т.д.
FIFO буфер
Поняття FIFO буфер (в пер. з англ. «Перший увійшов - перший вийшов») тісно пов'язане з сучасними програмами, що працюють з портами. Розглянемо FIFO буфер нашого УСАПП.
Будь мікроконтролер має 8ми бітний регістр лінії вхідних даних, але як правило, передача містить більше 1го байта поспіль. Тому, щоб не втратити інформацію при прийомі, треба кудись переміщати прийшов байт, звільняючи місце для наступних байтів. Для цього в моїй програмі використовується первинний 9ти байтний буфер Rs_pack_b, інформація в який записується по вектору переривання.
Однак отримана інформація потребує обробки і якщо, під час обробки станеться прийом байта по УСАПП, то відбудеться збій. З метою виключення такого збою, використовується вторинний 9ти байтний буфер Rs_buf. Саме з нього береться інформація для обробки.
Результати компіляції програми
Середовищем розробки програм служить середу Bascom - Avr фірми MSC Electronics. Розмір програми в ROM пам'яті: 10 кБ (використано 9% загального обсягу). Похибка швидкості УСАПП: 3,55%.
4.2 Система пакетного прийому і передачі команд та інформації
Як правило, канал зв'язку повинен володіти високою надійністю і достатньою швидкістю. З цією метою передача інформації передається 10ти байтними посилками або, висловлюючись професійною мовою, пакетами. Перший байт в пакеті є Id номером і повинен збігатися з IP адресою модуля, який попередньо задається в програмі. У моїй програмі IP=128. Другим байтом в пакеті, отправляемом від хоста (ПК) є код команди, а останнім -число 13. У разі порушення будь-якого правила, модуль звітує про помилку.
Наведу таблицю, яка містить коди команд, їх призначення та вміст, що відправляються від хоста (ПК) до модуля.
Назва командиКод команди Rs_buf0Содержімое Rs_buf1- Rs_buf8Ответ від модуля обязателенКласс команд звіту про внутрішні ошібках1Год, міс., дата, годину, хв., сек.ДаПріказ модулю: надіслати знач. дати і времені139НетДаУстановіть розмір ЖКІ10Rs_buf1 4: 16 * 1. 5: 16 * 2 6: 16 * 4 7: 20 * 2 серпні: 20 * 4 11: 40 * 2 12: 40 * 4 Інакше: 16 * 2НетКоманди управління осціллограммаміУзнать останній номер осцилограми лічильник помилок флеш-накопітеля14Rs_buf1=1 Так (139 14 1) Скинути номер осцилограми лічильник помилок флеш-накопітеля14Rs_buf1=2 (139 14 2) Наказ модулю: надіслати вміст конкретної осціллограмми14Rs_buf1=3 Rs_buf2=n Так (139 14 3) Запуск заміру осціллограмми14Rs_buf1=4 Так (139 14 3)
І аналогічна таблиця, яка містить коди команд, їх призначення та вміст ,, відправляються від модуля до хосту (ПК).
Назва командиКод команди Rs_buf0Содержімое Rs_buf1- Rs_buf8Отсилка значення дати і часу годинника реального времені129Год, міс., дата, годину, хв., сек.В значеннях знач. дати і часу явних помилок не обнаружено139Rs_buf1=1Обнаружени явні помилки у значеннях знач. дати і времені139Rs_buf1=2Команда в даним кодом НЕ поддержівается139Rs_buf1=3Полученние IP і ID НЕ совпадают139Rs_buf1=4Сторожевой таймер виявив збій у роботі программи.139Rs_buf1=5В пакеті даних помилка останнього байта139Rs_buf1=6Флеш-накопичувач не готовий до работе139Rs_buf1=8Размер РКІ буде встановлений після перезагрузкі139Rs_buf1= 10Команди управління осціллограммаміОтсилка останнього номер осцилограми і лічильника помилок флеш-накопітеля14Rs_buf1=1 Rs_buf2=счётч. осцілл. Rs_buf3=счётч. ошібокСброшен номер осцилограми лічильник помилок флеш-накопітеля14Rs_buf1=2 Відправка вмісту конкретної осціллограмми14Rs_buf1=3 Rs_buf2 ... Rs_buf5Запуск заміру осцилограми стався від команди У...