Обработка аналоговых сигналов на основе МК C8051F064

Автор: Пользователь скрыл имя, 13 Декабря 2012 в 09:08, курсовая работа

Описание работы

Цель курсовой работы – получение навыков программирования аппаратных комплексов, включающих взаимодействующие между собой различные 8- или 32-разрядные микроконтроллерные системы (МК-системы) и персональные компьютеры (РС), на языках Ассемблеров, С – для микроконтроллеров (МК) и языке С++ для РС с платформой Windows.

Содержание

1. Постановка задачи 6
1.1. Стандартное задание 6
1.2. Индивидуальное задание 6
2. Техническое задание 7
3. Описание аппаратных и программных средств лабораторного комплекса 8
3.1. Структура аппаратных средств 8
3.1.1. Структурная схема лабораторного комплекса 8
3.1.2. Плата МК – системы 9
3.1.2.1. Конфигурируемые узлы МК C8051F064 11
3.1.2.2. Внешняя память XRAM 16
3.1.2.3. Входные усилители 17
3.1.2.4. Микросхема моста UART-USB 18
3.1.2.5. Сопряжение платы с PC 20
3.1.2.6. Питание платы 21
3.1.3. Требования к PC 21
3.1.4. ОСЦИГЕН 21
3.2. Перечень программных средств лабораторного комплекса 22
3.2.1. Средства программирования и отладки МК-системы 22
3.2.1.1. Интегрированная среда разработки фирмы SiLabs IDE 2.0 22
3.2.1.2. Ассемблер, компилятор и линкер интегрированной среды разработки Keil 23
3.2.2. Средства разработки Windows-приложений 24
3.2.2.1. Среда разработки 24
3.2.2.2. Библиотека WIN32 API функций 24
3.2.3. Приложения для ОСЦИГЕНа. 25
3.2.3.1. Драйвер конфигурируемого выносного блока 25
3.2.3.2. Windows-приложение OGView 25
3.2.4. Драйвер виртуального COM-порта фирмы SiLabs 26
4. Разработка программного комплекса для решения целевой задачи 26
4.1. Функциональная схема реализации функций запоминающего осциллографа 26
4.2. Состав и механизм взаимодействия приложений программного комплекса 27
4.2.1. Схема программного комплекса 27
4.2.2. Протокол обмена между PC-приложением и МК-приложением 27
4.2.3. Таблица допустимых команд 27
4.2.4. Размещение в памяти значений выборок сигнала со стороны МК и ПК 28
4.3. Разработка приложения для МК-системы 29
4.3.1. Обобщенная схема алгоритма 29
4.3.2. Обоснование выбора языка программирования и среды разработки 30
4.3.3. Описание файлов проекта приложения 30
4.3.3.1. Модули приложения 30
4.3.3.2. Модули, подключаемые на этапе линкования 30
4.3.4. Структура и организация программы 30
4.3.5. Схемы алгоритмов и описание функций приложения 30
4.3.5.1. Перечень функций приложения 30
4.3.5.2. Организация бесконечного цикла встроенного приложения 31
4.3.5.3. Отключение сторожевого таймера 31
4.3.5.4. Переключение с внутреннего генератора на внешний 32
4.3.5.5. Конфигурирование портов ввода/вывода 33
4.3.5.6. Конфигурирование аналого-цифровых преобразователей ADC 32
4.3.5.7. Конфигурирование интерфейса DMA 34
4.3.5.8. Инициализация последовательного интерфейса UART 35
4.3.5.9. Выбор и инициализация таймера для установки скорости обмена данными по последовательному каналу 36
4.3.5.10. Инициализация таймера для установки времени дискретизации входного сигнала 36
4.3.5.11. Выбор режимов работы внешней памяти XRAM и ее интерфейса 36
4.3.5.12. Инициализация прерываний 37
4.3.5.13. Формирование цифровых отсчетов и их сохранение во внешней памяти XRAM 37
4.3.5.14. Передача данных на PC 37
4.3.5.15. Прием данных с PC 37
4.3.5.16. Другие используемые функции 38
4.3.5.17. Конфигурирование узлов МК с учетом данных, пришедших с PC 38
4.4. Разработка Windows-приложения 39
4.4.1. Особенности использования среды разработки 39
4.4.2. Описание файлов проекта 39
4.4.3. Обобщенная схема алгоритма многопоточного приложения 40
4.4.4. Внешний вид и описание графического интерфейса, принципы построения программы 40
4.4.5. Описание структуры и организация программы 41
4.4.5.1. Назначение подключаемых файлов 41
4.4.5.2. Описание прототипов функций 41
4.4.5.3. Функция WinMain() 42
4.4.5.4. Функция главного окна 42
4.4.5.5. Организация дополнительных потоков, их назначение 43
4.4.5.6. Рабочие функции дополнительных потоков 43
4.4.5.7. Синхронизация потоков 43
4.4.5.8. Особенности обработки сообщений Windows в программе 43
4.4.5.9. Функция рисования графика восстановленного сигнала 45
4.4.5.10. Разметка осей графика 45
4.4.5.11. Использование контекстуальной памяти для рисования графика 45
4.4.6. Работа с COM-портом, описание WinAPI-функций и структур данных 46
4.4.6.1. Инициализация COM-порта, обоснование выбора режима (синхронный, асинхронный), объема буфера приема/передачи данных 46
4.4.6.2. Организация настроек COM¬-порта в графическом интерфейсе 48
4.4.6.3. Использование функций WaitCommEvent(), WaitForSingleObject(), WaitForMultiplyObject() 49
4.4.7. Работа оператора с приложением 49
4.4.7.1. Последовательность запуска приложения на МК и ПК в лаборатории 49
4.4.7.2. Примеры последовательности 49
4.4.7.3. Адаптация к сепктру входного сигнала 49
4.4.8. Описание протокола RS-232 49
5. Список используемых источников информации 87
6. Приложения 50
6.1. Исходные тексты модулей программы для МК 50
6.2. Фрагменты листингов файлов МК-приложения, полученные в результате трансляций: MAP-file и др 56
6.3. Исходные тексты файлов Windows-приложения 58
6.4. Алгоритмы 72
6.4.1. Обобщенный алгоритм программы для МК 72
6.4.2. Дополнительные алгоритмы программы для МК 73
6.4.2.1. Алгоритм процедуры отключения WDT 73
6.4.2.2. Алгоритм функции SYSCLK_Init 74
6.4.2.3. Алгоритм функции Port_Init 75
6.4.2.4. Алгоритм функции ADCInit 76
6.4.2.5. Алгоритм функции DMAInit 77
6.4.2.6. Алгоритм работы функции UART0_Init 79
6.4.2.7. Алгоритм функции Timer3_Init 80
6.4.2.8. Алгоритм функции main 81
6.4.2.9. Алгоритм функции Config 82
6.4.2.10. Алгоритм функции SendData 83
6.4.2.11. Алгоритм функции ReceiveData 84
6.4.3. Обобщенный алгоритм программы Windows-приложения 85
6.4.3.1. Алгоритм работы функции рисования графика 85
6.4.3.2. Алгоритм обработки сообщений 86

Работа содержит 1 файл

Обобщенная пояснительная записка.doc

— 5.12 Мб (Скачать)

 

Рис.3.8. Временная диаграмма UART0 в  первом режиме

Вывод J17 на плате C8051F064EK (см.рис.3.2) – USB-разъем для передачи данных. На плате используется мост UART-USB для согласования обмена данными МК с портом USB и возможности эмуляции работы COM-порта через USB.

3.1.2.2. Внешняя память XRAM

Плата микроконтроллерной системы  содержит внешнюю память XRAM (рис.3.9) объемом 128 Кбайт.

Рис.3.9. Принципиальная схема внешней  памяти XRAM


A0…A15 – 16 адресных шин от контроллера, соответствующие 64 Кбайт памяти. Из них А0…А7 – младший байт, А8…А15 – старший. А16 – 17-ый адресный бит, отвечающий за выбор банка. Если подавать на А16 логический ноль, то использоваться будут 64 Кбайт с нулевого старшего бита. При подключении А16 к выходу микроконтроллера Р3.7 есть возможность выбирать между старшим и младшим адресным банком XRAM. Переключение происходит с помощью джампера J11. Также есть  возможность отключения блока внешней памяти XRAM при подаче логической единицы на вход CS с порта микроконтроллера P4.5.

3.1.2.3. Входные усилители

На плате имеется два усилителя (рис. 3.10). На выходе каждого из них  стоит фильтр. В случае подачи дифференциального (т.е разделенный на две составляющие с половинной амплитудой) сигнала по коаксиальному кабелю на вход AIN_0 подается прямой сигнал, на AIN_1 – инверсный. Их разность дает наш исходный сигнал.

Рис.3.10. Принципиальная схема входных  усилителей


Преимущество такой подачи в  том, что при вычитании инверсного сигнала из прямого аннулируются шумы. Есть также возможность отключить подачу сигнала по 2 проводам. Для этого необходимо отключить подачу сигнала на AIN_1 (при помощи джампера J12). В таком случае при помощи джампера J16 мы подаем на вход второго усилителя сигнал с выхода первого усилителя (т.е. такой же сигнал, что и на входе первого усилителя, только инвертированный). При постоянном токе коэффициент усиления равен 1, при переменном – 2 (за счет конденсатора в обратной цепи).

 

3.1.2.4. Микросхема моста UART-USB

При выполнении данной курсовой работы для соединения МК и ПК использовался  мост UART-USB CP2102 (рис.3.11), расположенный на плате C8051F064EK.

а)

б)

Рис.3.11. Структурная (а) и принципиальная (б) схемы микросхемы CP2102

Микросхема CF2102 представляет собой преобразователь сигналов USB в сигналы UART, не требующий никаких внешних элементов, кроме трех фильтрующих конденсаторов питания, трех необязательных ограничительных диодов – супрессоров, и одного резистора в цепи сброса. Микросхема содержит следующие функциональные узлы:

  • линейный регулятор напряжения, преобразующий входное напряжение с линии VBUS шины USB (от +4 В до +5,25 В) в напряжение примерно +3,3 В для питания ядра микроконтроллера и остальных встроенных периферийных узлов;
  • прецизионный встроенный кварцевый генератор, работающий на частоте 48 МГц;
  • USB приемопередатчик;
  • USB контроллер, состоящий из ядра микроконтроллера С8051F321 и оригинального программного обеспечения (Firmware), записанного в Flash- памяти программ; оригинальное Firmware обеспечивает доступ к 1 килобайту памяти программ, используемому для хранения идентификационных данных изделия, а также к двум буферам входных данных объемом в 576 байт и выходных данных объемом 640 байт (оба буфера размещаются во встроенной оперативной памяти);
  • программно-аппаратный узел UART, имеющий полный комплект основных и вспомогательных сигналов.

Особенно отметим, что микросхема CP2102 полностью совместима по выводам  с микросхемой CP2101. Производитель  не рекомендует закладывать в новые разработки предыдущий вариант микросхемы CP2101. Интерфейс USB соответствует спецификации 2.0. Он обеспечивает передачу данных на скорости до 12 Мбит/с. Интерфейс содержит встроенную систему защиты и не требует внешних элементов, однако изготовитель рекомендует устанавливать три внешних ограничивающих диода – супрессора на напряжение срабатывания - около 7 В, например SP0503BAHT (или аналог), для полной защиты входных цепей от электростатики и перенапряжений. Кроме того, реализованный интерфейс USB поддерживает «приостановленное состояние» (Suspend States), а включение / выключение этого состояния производится через одноименный вывод SUSPEND.

 

        1.  Сопряжение платы с PC

Со стороны МК используется вышеописанный  мост UART-USB. Со стороны ПК используется специальный драйвер, позволяющий эмулировать работу COM-порта. Тем самым мы обеспечим передачу данных по USB, используя UART МК.[4]

 

        1. Питание платы

Плата C8051F064EK (рис.3.2) модет питаться через DEBUG или DATA порты (выводы J1 и J7, соответственно) посредством USB – соеднинения. Выбор осуществляется с  помощью джампера J2. Узды платы имеют встроенные регуляторы напряжения, преобразующие входное напряжение в 3.3 В. Перемычка J4 позволяет выбрать один из портов в качестве внешнего источника опорного напряжения.

В курсовой работе плата будет питаться через DATA.

 

      1. Требования к PC

Программа для PC разрабатывается для PC под управлением ОС Windows XP. Компьютер  должен иметь как минимум два USB-порта для подключения платы (C8051F064EK). Желательно наличие третьего USB-порта для подключения осцигена и соответствующего ПО для работы с ним. В противном случае понадобиться второй компьютер с как минимум одним USB-портом и ПО для работы с осцигеном.

 

      1. ОСЦИГЕН

Для формирования аналогового сигнала  и подачи его на АЦП МК используется Осциген (рис.3.12). Управление Осцигеном происходит с ПК с помощью специального программного обеспечения.

Рис.3.12. Внешний вид Осцигена

Осциген – комбинированный прибор нового поколения, в котором предварительная  обработка данных выполняется аппаратными средствами прибора, а отображение информации и управление прибором выполняется программой на персональном компьютере[5]. Компьютерная обработка данных позволяет наблюдать, печатать и сохранять изображения результатов измерений, а также обмениваться данными с Windows-совместимыми приложениями (Excel, MATLAB и т.д.) для детального анализа и документирования. Программируемая структура прибора позволяет с помощью одних и тех же аппаратных средств реализовать множество разнотипных приборов, функционирующих согласованно и одновременно.

 

    1. Перечень программных средств лабораторного комплекса
      1. Средства программирования и отладки МК-системы
        1. Интегрированная среда разработки фирмы SiLabs IDE 2.0

Интегрированная среда разработки SiLabs IDE (рис.3.13) - это набор программного обеспечения, объединенного в единый пользовательский интерфейс, предназначенный для разработки программного обеспечения на языках Си и ассемблер, отладки и программирования микроконтроллеров в системе или с использованием аппаратных средств поддержки разработок производства компании SiLabs.[6]

Рис.3.13. Внешний вид рабочего окна SiLabs IDE

Интегрированная среда разработки включает:

    • интерфейс управления проектом (управление файлами проекта, каталог имен регистров специального назначения) (Project interface);
    • редактор текстов программ с настраиваемым цветовым оформлением подсветок и выделений (Full-featured editor);
    • полнофункциональный отладчик (debugger);
    • средства для подключения широкого набора компиляторов сторонних фирм (Tool Chain Integration);
    • Мастер создания кода начальной конфигурации микроконтроллера (Configuration Wizard).

В режиме отладки SiLabs IDE позволяет  просматривать содержимое:

    • регистров общего назначения;
    • регистров специального назначения;
    • памяти программ и данных;
    • стека;
    • переменных программы.

 

        1. Ассемблер, компилятор и линкер интегрированной среды разработки Keil

Keil μVision (рис.3.14), популярная IDE, комбинирует руководство проектом, редактирование исходного текста, отладку программы и др.[7]

Рис.3.14. Внешний вид рабочего окна программы Keil μVision3

Данная среда программирования кроме графического интерфейса и  отладчика включает компиляторы  для однокристальных микропроцессоров серий: C51, C166/167, C251, ARM более 70 производителей, в том числе таких как Analog Devices, Atmel, Daewoo, Dallas Semiconductor, Honeywell, Intel, Maxim, OKI, Philips, Samsung, Sanyo, Sharp, Siemens, TDK и многих других. Эти компиляторы могут быть использованы как "внешние" другими специализированными системами разработки программного обеспечения для промышленных контроллеров.

Среда µVision от компании Keil объединяет систему управления проектами, систему  разработки и редактор исходных кодов, интерактивный отладчик и симулятор  в одном мощном инструменте. Система  разработки программного обеспечения µVision является крайне легкой в использовании и помогает быстро создать программы, которые действительно работают. µVision редактор и отладчик интегрированы в одно приложение, которое представляет взаимосвязанные инструменты для разработки программного обеспечения.

Отладчик µVision от компании Keil поддерживает режим симуляции, используя только ПК, а также режим отладки, взаимодействуя с целевой системой (однокристальным  микроконтроллером) с помощью соответствующего интерфейса. µVision включает такие традиционные свойства, как простые и условные точки останова, окна наблюдения состояния переменных и контроля исполнения программы, а также другие специфические свойства.

 

      1. Средства разработки Windows-приложений
        1. Среда разработки

Программа для PC разрабатывалась в среде MS Visual Studio 2008 Express Edition. В ходе разработки использовалась библиотека WinAPI 32.

 

        1. Библиотека WIN32 API функций

Windows API — наиболее важная и  мощная дополнительная библиотека  функций. Application Programming Interface (API) — это  просто некоторый готовый набор функций, который могут использовать разработчики приложений.[8] В общем случае данное понятие эквивалентно тому, что раньше чаще называли библиотекой подпрограмм. Однако чаще всего под API подразумевается некоторая особая категория таких библиотек.

Таким образом, чаще всего под API подразумевается  набор функций, являющийся частью одного приложения, но при этом доступных  для использования в других программах.

Соответственно, Windows API — это набор  функций, являющийся частью самой операционной системы и в то же время — доступной для любого другого приложения.

Набор Win API реализован в виде динамических DLL-библиотек. Однако говоря о DLL необходимо сделать несколько важных замечаний.

В данном случае под DLL мы подразумеваем  традиционный вариант двоичных динамических библиотек, которые обеспечивают прямое обращение приложений к нужным процедурам — подпрограммам или функциям.

Обычно файлы динамических библиотек  имеют расширение .DLL, но это совсем не обязательно. Для Win16 часто применялось расширение .EXE, драйверы внешних устройств обозначаются с помощью .DRV.

 

      1. Приложения для ОСЦИГЕНа.
        1. Драйвер конфигурируемого выносного блока

Адрес, по которому расположен драйвер  конфигурирования выносного блока: C:\Program Files\OGView\Sys\OSCIGEN.RBF.

 

        1. Windows-приложение OGView

Для работы с ОСЦИГЕНом используется приложение OGView – 32-разрядное многооконное приложение для ОС Windows (рис.3.15).[9]

Рис.3.15. Внешний вид рабочего окна программы OGView

Функциональные возможности ПО OGView:

    • управление прибором ОСЦИГЕН;
    • выбор устройства, включая сетевые;
    • визуализация результатов измерений;
    • печать результатов;
    • экспорт – импорт результатов;
    • настройка параметров и вида отображаемых результатов и т.д.
      1. Драйвер виртуального COM-порта фирмы SiLabs[10]

Как было отмечено выше, для соединения платы с ПК, мы будем использовать мост UART-USB CP2102. Набор драйверов для этих мостов включает 2 драйвера:

Информация о работе Обработка аналоговых сигналов на основе МК C8051F064