Обработка аналоговых сигналов на основе МК 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 Мб (Скачать)

Санкт-Петербургский  государственный технический университет  
Кафедра информационных измерительных технологий

ПОЯСНИТЕЛЬНАЯ ЗАПИСКА К КУРСОВОЙ РАБОТЕ

Дисциплина: Аппаратные средства вычислительной техники

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

 

Выполнил  студент гр.   3085/2 М.В. Губанов

Проверил          В.И. Лобан

" " 20__ г.

 

 

 

 

 

 

 

 

 

Санкт-Петербург  
2012

 

Содержание

Содержание 2

  1. Постановка задачи 6

1.1. Стандартное задание  6

1.2. Индивидуальное задание 6

  1. Техническое задание 7
  2. Описание аппаратных и программных средств лабораторного комплекса 8
    1. Структура аппаратных средств 8
      1. Структурная схема лабораторного комплекса 8
      2. Плата МК – системы 9
        1. Конфигурируемые узлы МК C8051F064 11
        2. Внешняя память XRAM 16
        3. Входные усилители 17
        4. Микросхема моста UART-USB 18
        5. Сопряжение платы с PC 20
        6. Питание платы 21
      3. Требования к PC 21
      4. ОСЦИГЕН 21
    2. Перечень программных средств лабораторного комплекса 22
      1. Средства программирования и отладки МК-системы 22
        1. Интегрированная среда разработки фирмы SiLabs IDE 2.0 22
        2. Ассемблер, компилятор и линкер интегрированной среды разработки Keil 23
      2. Средства разработки Windows-приложений 24
        1. Среда разработки 24
        2. Библиотека WIN32 API функций 24
      3. Приложения для ОСЦИГЕНа. 25
        1. Драйвер конфигурируемого выносного блока 25
        2. Windows-приложение OGView 25
      4. Драйвер виртуального COM-порта фирмы SiLabs 26
  3. Разработка программного комплекса для решения целевой задачи 26
    1. Функциональная схема реализации функций запоминающего осциллографа 26
    2. Состав и механизм взаимодействия приложений программного комплекса 27
      1. Схема программного комплекса 27
      2. Протокол обмена между PC-приложением и МК-приложением 27
      3. Таблица допустимых команд 27
      4. Размещение в памяти значений выборок сигнала со стороны МК и ПК 28
    3. Разработка приложения для МК-системы 29
      1. Обобщенная схема алгоритма 29
      2. Обоснование выбора языка программирования и среды разработки 30
      3. Описание файлов проекта приложения 30
        1. Модули приложения 30
        2. Модули, подключаемые на этапе линкования 30
      4. Структура и организация программы 30
      5. Схемы алгоритмов и описание функций приложения 30
        1. Перечень функций приложения 30
        2. Организация бесконечного цикла встроенного приложения 31
        3. Отключение сторожевого таймера 31
        4. Переключение с внутреннего генератора на внешний 32
        5. Конфигурирование портов ввода/вывода 33
        6. Конфигурирование аналого-цифровых преобразователей ADC 32
        7. Конфигурирование интерфейса DMA 34
        8. Инициализация последовательного интерфейса UART 35
        9. Выбор и инициализация таймера для установки скорости обмена данными по последовательному каналу 36
        10. Инициализация таймера для установки времени дискретизации входного сигнала 36
        11. Выбор режимов работы внешней памяти XRAM и ее интерфейса 36
        12. Инициализация прерываний 37
        13. Формирование цифровых отсчетов и их сохранение во внешней памяти XRAM 37
        14. Передача данных на PC 37
        15. Прием данных с PC 37
        16. Другие используемые функции 38
        17. Конфигурирование узлов МК с учетом данных, пришедших с PC 38
    4. Разработка Windows-приложения 39
      1. Особенности использования среды разработки 39
      2. Описание файлов проекта 39
      3. Обобщенная схема алгоритма многопоточного приложения 40
      4. Внешний вид и описание графического интерфейса, принципы построения программы 40
      5. Описание структуры и организация программы 41
        1. Назначение подключаемых файлов 41
        2. Описание прототипов функций 41
        3. Функция WinMain() 42
        4. Функция главного окна 42
        5. Организация дополнительных потоков, их назначение 43
        6. Рабочие функции дополнительных потоков 43
        7. Синхронизация потоков 43
        8. Особенности обработки сообщений Windows в программе 43
        9. Функция рисования графика восстановленного сигнала 45
        10. Разметка осей графика 45
        11. Использование контекстуальной памяти для рисования графика 45
      6. Работа с COM-портом, описание WinAPI-функций и структур данных 46
        1. Инициализация COM-порта, обоснование выбора режима (синхронный, асинхронный), объема буфера приема/передачи данных 46
        2. Организация настроек COM-порта в графическом интерфейсе 48
        3. Использование функций WaitCommEvent(), WaitForSingleObject(), WaitForMultiplyObject() 49
      7. Работа оператора с приложением 49
        1. Последовательность запуска приложения на МК и ПК в лаборатории 49
        2. Примеры последовательности 49
        3. Адаптация к сепктру входного сигнала 49
      8. Описание протокола RS-232 49
  4. Список используемых источников  информации 87
  5. Приложения 50
    1. Исходные тексты модулей программы для МК 50
    2. Фрагменты листингов файлов МК-приложения, полученные в результате трансляций: MAP-file и др 56
    3. Исходные тексты файлов Windows-приложения 58
    4. Алгоритмы 72
      1. Обобщенный алгоритм программы для МК 72
      2. Дополнительные алгоритмы программы для МК 73
        1. Алгоритм процедуры отключения WDT 73
        2. Алгоритм функции SYSCLK_Init 74
        3. Алгоритм функции Port_Init 75
        4. Алгоритм функции ADCInit 76
        5. Алгоритм функции DMAInit 77
        6. Алгоритм работы функции UART0_Init 79
        7. Алгоритм функции Timer3_Init 80
        8. Алгоритм функции main 81
        9. Алгоритм функции Config 82
        10. Алгоритм функции SendData 83
        11. Алгоритм функции ReceiveData 84
      3. Обобщенный алгоритм программы Windows-приложения 85
        1. Алгоритм работы функции рисования графика 85
        2. Алгоритм обработки сообщений 86

 

 

  1. Постановка задачи.

1.1. Стандартное задание

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

Задачей работы является разработка комплекса программ, реализующих  на базе лабораторного комплекса, виртуальный прибор с функциями запоминающего осциллографа. Устройство должно оцифровывать низкочастотный входной сигнал, например гармонический сигнал амплитудой до 1В с частотой 10-1000Гц, и воспроизводить его на экране РС во временной области и дополнительно спектр сигнала – в частотной области.

Лабораторный комплекс для 8-разряднах  МК включает в себя РС, генератор  аналогового сигнала (ОСЦИГЕН) и  отладочную плату микроконтроллера фирмы SiLabs C8051F064EK, на которой помимо, собственно, микроконтроллера имеется также мост UART-USB CP2101, обеспечивающий связь с РС. Оцифровка аналогового сигнала, поступающего на вход микроконтроллера, производится с помощью встроенного аналого-цифрового преобразователя (АЦП).

Комплекс программ, реализующий  запоминающий осциллограф, состоит из приложения со стороны микроконтроллера (МК-приложения) и Windows-приложения со стороны РС.

Приложение со стороны РС, помимо построения графика, должно предоставлять  возможность задания пользователем  параметров оцифровки сигнала таких, как частота выборок, количество выборок, используемый АЦП и его режимы работы, а также возможность выбора используемого виртуального COM-порта. Строящийся график должен быть нормирован по осям абсцисс (время) и ординат (напряжение).

1.2. Индивидуальное задание

Требования к интерфейсу:

Не менее трёх различных контролов  управления; 
Построение графика в отдельном окне; 
Использование контекстуальной памяти; 
Масштабирование по осям абсцисс и ординат

Требования к программе:

Трёхпоточное приложение 
Синхронный режим COM-порта

Требования к программе MK:

Asm+c модули

2. Техническое задание

Требуется  разработать комплекс программных средств для управления микропроцессорной системой. В состав комплекса должна входить программа  для управления микропроцессорной системой  и программа для ПК для операционной системы Windows, реализующая графический интерфейс программного комплекса. Задачей, которая решается при помощи комплекса, является снятие цифровых отсчётов аналогового напряжения, подаваемого на вход микропроцессора и вывод формы аналогового напряжения, восстановленного на основе цифровых отсчётов полученных от микропроцессорной системы в окне программы для ПК.

Для связи микропроцессора и  ПК используется стандартный последовательный протокол RS-232C.

Задачи программного комплекса:

1. Снятие цифровых отсчётов аналогового  напряжения, подаваемого на вход  МК;

2. Вывод формы аналогового напряжения, восстановленного на основе отсчётов  в окне программы для ПК.

Требования к программе со стороны  ПК

Программа со стороны ПК представляет собой многопоточное приложение, построенное на основе только стандартной API Win32 без использования дополнительных библиотек. Программа реализует оконный интерфейс. Программа строится на базе главного окна. Все элементы управления представляют собой дочерние окна главного окна. Программа позволяет выбирать один из трех последовательных портов для связи с микропроцессором. Существует возможность задавать настройки АЦП микропроцессора: выбор режима работы АЦП (однофазный или дифференциальный), выбор числа цифровых отсчётов и ввод частоты цифровых отсчетов. Все настройки, как для портов, так и для АЦП задаются в главном окне. Запуск процесса оцифровки реализуется нажатием соответствующей кнопки в окне программы. Построение графика производится в главном окне в специальном месте при помощи совместимой контекстуальной памяти. Вся настройка, запуск и вывод графика производится в главном и встроенных дочерних окнах.

Требования к программе со стороны  микропроцессора

Используется 8-ми разрядный MCS-51 совместимый контроллер C8051F064 фирмы Silicon Laboratories. Программа представляет собой однопоточное приложение и позволяет произвести связь с ПК, получить от него параметры, дешифрировать их, настроить АЦП, произвести оцифровку аналогового сигнала и отправить на ПК результаты оцифровки. Программа строится на основе бесконечного цикла опроса последовательного порта.

3. Описание аппаратных и программных средств лабораторного комплекса

3.1. Структура аппаратных средств

3.1.1. Структурная схема лабораторного комплекса

Структурная схема лабораторного  комплекса (рис 3.1.) состоит из выносного блока осцигена – прибора виртуального осциллографа, платы микроконтроллера SiLabs C8051F064, отладочной платы микроконтроллера SiLabs C8051F064EB, в состав которой входит UART-USB мост CP2101, и персонального компьютера PC.

 

Рис.3.1. Структурная схема лабораторного  комплекса


 

Осциген генерирует аналоговый сигнал, поступающий на соответствующий  вход платы МК. Связь между МК и PC осуществляется через мост UART – USB. Со стороны PC передаются на плату МК соответствующие настройки, а со стороны МК на PC – оцифрованные данные с осцигена.

 

 

 

 

 

 

 

3.1.2. Плата МК – системы. 
В работе используется плата фирмы Silicon Laboratories С8051F064EK (рис.3.2).

а)

б)

Рис.3.2. Внешний вид (а) и эскиз с размещением разъемов и переключателей (б) платы C8051F064EK[1]


Рис.3.2.1. Описание разъемов и перемычек

 

 

 

Согласно данным сайта silabs.com [11], характерными особенностями платы C8051F064EK являются:

    • установленный МК C8051F064;
    • USB интерфейс;
    • JTAG разъем;
    • встроенный JTAG – USB отладчик;
    • высокочастотные разъемы на входах усилителей в каналах аналого-цифрового преобразователя (АЦП).

МК семейства C8051F06x используют процессорное ядро CIP-51 (рис.3.3), совместимое по системе команд с MCS-51 и превосходящее по производительности стандарт 8051. [3] Для разработки ПО могут использоваться стандартные ассемблеры и компиляторы.

Рис.3.3. Структурная схема ядра CIP-51

Основными особенностями ядра CIP-51  являются:

    • высокая производительность по сравнению со стандартом 8051;
    • 256 байт внутренней ОЗУ, 64 Кбайт Flash-памяти (см.рис.3.5);
    • развитая система прерываний;
    • вход сброса (вывод RESET, см.рис.3.3);
    • различные режимы энергопотребления (вывод J2 и отдельный регистр управления режимами питания, см.рис.3.3 и рис.3.4 соответственно);
    • встроенные средства отладки.

3.1.2.1. Конфигурируемые узлы МК C8051F064

В разрабоатываемом предложении будут  использоваться следующие периферийные устройства:

    • два высокоскоростных АЦП (ADC0 и ADC1);
    • интерфейс DMA для прямого доступа к памяти;
    • два УАПП (UART0 и UART1);
    • двухпроводная двунаправленная последовательная шина SMBus;
    • модуль SPI для обеспечения доступа к гибкой полнодуплексной синхронной последовательной шине;
    • программируемый массив счетчиков PCA;
    • пять таймеров – счетчиков (T/C1 и Т/C 2);
    • порты ввода – вывода (P1 (Р1.6), P2, P3, P5, P6, P7 – 8-разрядные и P4 – 3-разрядный). Р4-Р7 будут использоваться в интерфейсе внешней памяти XRAM off-chip. 

Рис.3.4. Структурная схема МК C8051F064 

16-разрядный аналого  – цифровой преобразователь (АЦП)

МК C8051F064 имеет два встроенных 16-разрядных АЦП (рис.3.5) – ADC0 и ADC1, которые могут использоваться в двух режимах:

    1. по отдельности в однофазном режиме;
    2. совместно в дифференциальном режиме.

Рис.3.5. Структурная схема 16-разрядного АЦП

Управление АЦП осуществляется при помощи соответствующих регистров  специального назначения.

Преобразование  может быть запущено следующими способами:

    • установкой бита AD0BUSY или AD1BUSY в 1;
    • переполнением таймера 2 или таймера 3;
    • внешним входным сигналом.

По окончании преобразования устанавливается  специальный бит состояния и  генерируется прерывание (если бит  глобального разрешения прерываний установлен в 1), после чего полученный 16-битный результат записывается в соответствующие регистры результата. Далее результат может быть загружен в память XRAM на кристалле объемом 4К байт или вне кристалла объемом 64К байт, используя интерфейс прямого доступа к памяти (DMA).

Интерфейс прямого доступа к памяти (DMA)

Интерфейс прямого доступа к  памяти DMA0 работает совместно с АЦП  платы (ADC0 и ADC1), позволяет записывать результаты их преобразования непосредственно  в XRAM. Интерфейс DMA настраивается программно с помощью SFR-регистров. DMA может работать в двух режимах, нулевой и первый, их отличие состоит в различном подходе к повторению команд:

  • в нулевом режиме (рис.3.6) инструкции DMA в блоке инструкций, загруженном из буфера команд DMA, выполняются все команды по 1 разу, после чего выполнение блока повторяется n раз (n – количество повторений). Блок инструкций ограничивается командой конца операций;

Рис.3.6. Функционирование DMA в режиме 0

  • в первом режиме (рис.3.7) n раз посторяется выполнение каждой команды блока.

Рис.3.7. Функционирование DMA в режиме 1

В нашей работе будем использовать DMA в режиме 0.

Универсальный асинхронный приемопередатчик (UART)

В состав МК C8051F064 входят два УАПП – UART0 и UART1.

UART0 имеет 4 режима  работы: нулевой – синхронный  и первый, второй, третий – асинхронные. UART1 поддерживат только первый и третий режимы. В работе можно использовать любой режим, но наиболее предпочтительными являются режимы первй и третий – в них скорость обмена данными регилируется в широких пределах. Предположим, что мы будем использовать UART0 в первом режиме. Первый режим (рис.3.8) обеспечивает стандартный асинхронный полнодуплексный обмен данными с использованием 10 бит для передачи одного байта данных (стартовый бит, 8 бит данных, стоповый бит). Данные передаются через внешний вывод TX0 и принимаются через внешний вывод RX0.

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