РЕФЕРАТ 2
Перечень принятых сокращений 3
Содержание 4
Введение 6
1. Анализ предметной области 8
1.1. Последовательный порт RS-232 8
1.1.1. Принцип работы RS-232 8
1.1.2. Преимущества и недостатки использования последовательного
интерфейса RS-232 10
1.2. Циклические коды 11
1.3. Поле Галуа 12
1.4. Кодирование и декодирование данных 15
1.5. Выбор языка программирования и платформы для разработки 16
2. Реализация 18
2.1. Описание работы приложения 18
2.2. Описание функций 24
2.2.1. Класс MainWindow 25
2.2.2. Класс Setting 27
2.2.3. Класс ComPort 28
2.2.4. Классы BCH и RS 29
2.2.5. Меню программы 30
2.2.6. Функции обмена данными 31
2.3. Отладка и тестирование 32
3. Инструкция пользователя 35
3.1. Главное окно программы 35
3.2. Окно настроек последовательного порта 37
3.3. Меню приложения 38
3.4. Обработка исключительных ситуаций 39
4. Безопасность жизнедеятельности 41
Заключение 42
Список используемых источников 43
Приложение А. Листинги программы 44
Файл «mainwindow.h» 44
Файл «mainwindow.cpp» 45
Файл «comport.h» 56
Файл «comport.cpp» 57
Файл «setting.h» 61
Файл «setting.cpp» 61
Файл «bch.h» 63
Файл «bch.cpp» 64
Файл «rscode.h» 69
Файл «rscode.cpp» 69
Приложение B. Презентация 81
Обмен данными является неотъемлемой частью современной жизни. Развитие сети интернет позволило передавать данные на большие расстояния с высокой скоростью. Однако часто бывает необходимо связываться напрямую, не разворачивая компьютерные сети.
На сегодняшний день в компьютерных системах используются различные интерфейсы, способные обеспечивать обмен информацией между устройствами. Одним из таких является интерфейс стандарта RS-232. Данный интерфейс используется в компьютерах достаточно давно, он зарекомендовал себя как простой и надежный интерфейс [1].
Несмотря на развитие технологий, нельзя обеспечить стопроцентную достоверность передаваемой информации. При передаче данные могут быть подвержены изменениям. К ним можно отнести затухание, глушение сигнала или искажение полезного сигнала шумом из внешней среды. При использовании проводных средств причиной возникновения данных проблем может служить расстояние, на которое передается сообщение, то есть длина кабеля, а также его качество.
Решением данных проблем является использование алгоритмов кодирования и декодирования информации, а также восстановления данных. К ним относятся код Боуза - Чоудхури - Хоквингема (БЧХ) и его частный случай код Рида - Соломона.
Использование кодов БЧХ дополняет передаваемые данные проверочными битами во время кодирования информации. Во время декодирования избыточная информация позволяет определить, было искажено сообщение или нет. В случае, если данные были подвержены воздействия внешней среды, есть возможность восстановить часть утерянной информации. БЧХ код позволяет работать с двоичными данными, а его частный случай , код Рида - Соломона, с шестнадцатеричными. Это позволяет работать с большим количеством информации.
Целью данной работы является разработка системы передачи данных посредством последовательного порта с использованием кодов БЧХ и Рида - Соломона. Приложение позволяет передавать сообщение как введенное с клавиатуры, так и данные из текстового файла. Передаваемая информация может быть отправлена тремя способами:
1. В исходном виде.
2. Закодированная с использованием кода БЧХ.
3. Закодированная с использованием кода Рида - Соломона.
Полученные приемником данные декодируются и выводятся пользователю на экран.
В ходе выполнения выпускной квалификационной работы были изучены методы кодирования и декодирования данных, возможность передачи данных посредством последовательного порта стандарта RS-232 и восстановление данных в случае их искажения при передаче. Также были получены навыки объектно-ориентированного программирования на языке С++ в среде разработки Qt.
Результатом выполненной работы является приложение, позволяющее обмениваться кодированной информацией с помощью последовательного порта. Разработанное программное обеспечение позволяет восстанавливать искаженные данные, полученные под действием внешней среды, благодаря использованию кодов БЧХ и Рида - Соломона.
Была выполнена экспериментальная проверка работоспособности. Для отладки программы использовался кабель стандарта RS-232 замкнутый сам на себя, а также пара виртуальных COM портов. В процессе разработки приложения были выявлены различные проблемы. При попытке чтения данных с порта данная операция не выполнялась. Данная проблема была связна с устаревшей версией Qt, решением стала установка более новой версии. Помимо этого, при чтении данных по сигналу ReadyRead()данная операция сильно нагружала процессор. Было принято решение осуществлять чтение данных по таймеру.
В дальнейшем приложение может быть усовершенствовано путем добавления более тонкой настройки параметров последовательного порта. Также можно расширить функционал работы с файлами, что добавит дополнительные поддерживаемые форматы.
1. Кузьминов А.Ю. Интерфейс RS232: Связь между компьютером и микроконтроллером: От DOS к WINDOWS98/XP. - М.: Издательский дом «ДМК-пресс» - 320 с.
2. Владимиров С. Математические основы теории помехоустойчивого кодирования: Курс лекций - СПб ГУТ, 2014.
3. Охорзин В., Кукунин Д., Новодворский М. Построение каскадных кодов на основе кодов Боуза - Чоудхури - Хоквингема и Рида - Соломона: Курс лекций - СПб ГУТ, 2013.
4. Бланшет Ж., Саммерфилд М. Qt 4: программирование GUI на C++. Пер. с англ. 2-е изд., доп. — М.: КУДИЦ-ПРЕСС, 2008. — 736 с.
5. Боровский А.Н. Qt4.7+. Практическое программирование на C++. - СПб.: БХВ-Петербург, 2012. — 496 с.: ил. — (Профессиональное программирование).
6. Лафоре Р. Объектно-ориентированное программирование в С++. 4-е изд. - СПб.: Питер, 2016. - 928 с.: ил. - (Серия «Классика computer science»).
7. Справочник по электронным компонентам - URL:
http://www.gaw.ru.
8. Сидельников В. Теория кодирования: Справочник по принципам и методам кодирования - МГУ. - 2006 г., 289 с.
9. Qt, справочная документация - URL:https://doc.qt.io/.
10. Форум программистов и сисадминов Киберфорум - URL: https://www.cyberforum.ru/.
11. Система вопросов и ответов о программировании Stack Overflow - URL:https://stackoverflow.com/.
12. Научная библиотека избранных естественно-научных изданий - URL:https://scask.ru/.