- •Пояснительная записка к курсовой работе
- •Оглавление
- •1. Постановка задачи.
- •1.1. Стандартное задание
- •1.2. Индивидуальное задание
- •2. Техническое задание
- •3. Описание аппаратных и программных средств лабораторного комплекса
- •3.1. Структура аппаратных средств
- •3.1.1. Структурная схема лабораторного комплекса
- •3.1.2. Плата мк – системы
- •3.1.2.1. Конфигурируемые узлы мк c8051f064
- •Интерфейс прямого доступа к памяти (dma)
- •3.1.2.2. Внешняя память xram
- •3.1.2.3. Входные усилители
- •3.1.2.4. Микросхема моста uart-usb
- •3.1.2.5. Сопряжение платы с pc
- •3.1.2.6. Питание платы
- •3.1.3. Требования к pc
- •3.1.4. Осциген
- •. Перечень программных средств лабораторного комплекса
- •Средства программирования и отладки мк-системы
- •Интегрированная среда разработки фирмы SiLabs ide 2.0
- •3.2.1.2. Ассемблер, компилятор и линкер интегрированной среды разработки Keil
- •3.2.2. Средства разработки Windows-приложений
- •3.2.2.1. Среда разработки
- •3.2.2.2. Библиотека win32 api функций
- •3.2.3. Приложения для осцигеНа.
- •3.2.3.1. Драйвер конфигурируемого выносного блока
- •3.2.3.2. Windows-приложение ogView
- •3.2.4. Драйвер виртуального com-порта фирмы SiLabs
- •Организация бесконечного цикла встроенного приложения
- •Отключение сторожевого таймера
- •Переключение с внутреннего генератора на внешний
- •Конфигурирование портов ввода/вывода
- •Конфигурирование аналого-цифровых преобразователей adc
- •Конфигурирование интерфейса dma
- •Инициализация последовательного интерфейса uart
- •Выбор и инициализация таймера для установки скорости обмена данными по последовательному каналу
- •Инициализация таймера для установки времени дискретизации входного сигнала
- •Прием данных с pc
- •Другие используемые функции
- •Конфигурирование узлов мк с учетом данных, пришедших с pc
- •Разработка Windows-приложения
- •4.4.1. Особенности использования среды разработки
- •4.4.2. Описание файлов проекта
- •4.4.3. Обобщенная схема алгоритма многопоточного приложения
- •4.4.4. Внешний вид и описание графического интерфейса, принципы построения программы
- •Описание структуры и организация программы
- •4.4.5.1. Назначение подключаемых файлов
- •4.4.5.2. Описание прототипов функций
- •4.4.5.3. Функция WinMain()
- •4.4.5.4. Функция главного окна
- •4.4.5.5. Организация дополнительных потоков, их назначение
- •4.4.5.6. Рабочие функции дополнительных потоков
- •4.4.5.7. Синхронизация потоков
- •4.4.5.8. Особенности обработки сообщений Windows в программе
- •4.4.6.2. Организация настроек com-порта в графическом интерфейсе
- •4.4.6.3. Использование функций WaitCommEvent(), WaitForSingleObject(), WaitForMultiplyObject()
- •Работа оператора с приложением
- •4.4.7.1. Последовательность запуска приложения на мк и пк в лаборатории
- •4.4.7.2. Адаптация к спектру входного сигнала
- •Описание протокола rs-232
- •Список используемых источников информации
- •Приложения
- •Исходные тексты модулей программы для мк
- •Фрагменты листингов файлов мк-приложения, полученные в результате трансляций: map-file и др
- •Исходные тексты файлов Windows-приложения
4.4.6.2. Организация настроек com-порта в графическом интерфейсе
В графическом интерфейсе пользователь может выбрать только номер COM порта для использования (чтения/записи), остальное задает сама программа. Выбор осуществляется с помощью комбобокса «COMBOCOM» в верхней части окна приложения. Есть возможность выбрать только «СОМ1», «СОМ2» или «СОМ3», причем по умолчанию задан порт «СОМ3».
4.4.6.3. Использование функций WaitCommEvent(), WaitForSingleObject(), WaitForMultiplyObject()
WaitForSingleObject(hConnectEvent,INFINITE);
hConnectEvent = CreateEvent(NULL,TRUE,FALSE,NULL) – ф-ия создания обьекта события (ожидания), вручную сбрасываемое событие.
Infinite – время ожидания
Функция WaitForSingleObject – одна из функций ожидания, позволяющая организовать для синхронизации процессов и потоков ожидание события одного объекта синхронизации. Первым параметром передается хэндл объекта, который надо ожидать.
В нашей программе мы ждем сигнал объекта (COM-порта) :
//ждем сигнал обеъкта (COM port)
if (WaitForSingleObject(inf.hEvent, INFINITE) == WAIT_OBJECT_0)
//затем получаем результат переполнения операции с COM портом
//если все еще ждем, функция возвращает FALSE
if (GetOverlappedResult(port, &inf, &dwWritten, FALSE))
success = 1; //successful write
Остальные функции (WaitCommEvent(), WaitForMultiplyObject()) не используются.
Работа оператора с приложением
4.4.7.1. Последовательность запуска приложения на мк и пк в лаборатории
Для первого запуска приложения со стороны МК необходима интегрированная среда SiLabs IDE для загрузки программы в память микроконтроллера.
Последовательность запуска разработанного программного комплекса выглядит следующим образом:
Запускаем SiLabs IDE.
Открываем файл с исходным кодом программы для МК (ххх.c).
Компилируем и линкуем программу.
Подключаемся к МК и загружаем в него программу.
Запускаем программу на МК.
Запускаем программу на ПК (wnd.exe).
4.4.7.2. Адаптация к спектру входного сигнала
Поскольку нами используется метод
кусочно-линейной аппроксимации, для
получения в достаточной мере "сглаженной"
картинки рекомендуется подбирать
значение частоты выборок так, чтобы
выполнялось соотношение:
,
где fв – частота
выборок, fс – частота
входного сигнала.
Соответственно, число выборок необходимо
подбирать в зависимости от того, сколько
периодов функции желает увидеть на
экране оператор, с учетом соотношения:
,
где fв – частота
выборок, fс – частота
входного сигнала, Q –
число выборок, N – число
периодов, отображаемых на графике
восстановленного сигнала.
Описание протокола rs-232
Для связи ПК и контроллера используется стандартный протокол RS-232С. Со стороны контроллера по этому протоколу работает UART. Способ настройки UART0 описан в главе один в первой части.
Немного о протоколе RS-232С. Протокол позволяет передавать и принимать последовательности бит данных длиной от 5 до 9 штук, пред началом передачи посылается стартовый бит (логический ноль), после передачи информационных и проверочных битов посылается стоповый бит (логическая единица). Возможен контроль ошибок при передаче при помощи одного, полтора или двух битов чётности. Изменяемая скорость передачи данных. В курсовой работе используется скорость 115200 бит/с.
В нижеследующей табл.4.1 приводится распиновка стандартного 9-контактного штырькового разъёма для связи по протоколу RS-232C:
Название сигнала |
Имя цепи |
Назначение |
Направление |
|||
EIA |
CCITT |
DB9 |
|
|
||
DCD |
CF |
109 |
1 |
Связь модемов установлена |
в ПК |
|
RX (RxD, Sin) |
BB |
104 |
2 |
Принимаемые данные |
в ПК |
|
TX (TxD, Sout) |
BA |
103 |
3 |
Передаваемые данные |
из ПК |
|
DTR |
CD |
108/2 |
4 |
Готовность ПЭВМ к работе |
из ПК |
|
SG (GND) |
AB |
102 |
5 |
Сигнальная земля |
- |
|
DSR |
CC |
107 |
6 |
Готовность модема к работе |
из ПК |
|
RTS |
CA |
105 |
7 |
Запрос на передачу |
из ПК |
|
CTS |
CB |
106 |
8 |
Готовность модема к передаче |
в ПК |
|
RI |
CE |
125 |
9 |
Индикатор вызова |
в ПК |
|
Табл.4.1. Распиновка стандартного 9-контактного штырькового разъема для связи по протоколу RS-232
При выполнении данной курсовой работы распиновка ног разъёма не существенна, т.к. для соединения контроллера и ПК использовался специальный мост CP0121 UART – USB, который расположен не плате (Evaluation Board) EK C8051F064. Со стороны ПК используется специальный драйвер, который позволяет эмулировать порт COM3 или COM6. При этом данные, на самом деле, принимаются и передаются через один из портов USB.
