- •Пояснительная записка к курсовой работе
- •Оглавление
- •1. Постановка задачи.
- •1.1. Стандартное задание
- •1.2. Индивидуальное задание
- •2. Техническое задание
- •3.1.2. Плата мк – системы
- •3.1.2.1. Конфигурируемые узлы мк c8051f064
- •3. Описание аппаратных и программных средств лабораторного комплекса
- •3.1. Структура аппаратных средств
- •3.1.1. Структурная схема лабораторного комплекса
- •Интерфейс прямого доступа к памяти (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-приложения
Конфигурирование портов ввода/вывода
Регистр XBR0:
R/W |
R/W |
R/W |
R/W |
R/W |
R/W |
R/W |
R/W |
Значение при сбросе: 00000000 |
CP0E |
ECI0E |
PCA0ME |
UART0EN |
SPI0EN |
SMB0EN |
|||
Бит 7 |
Бит 6 |
Бит 5 |
Бит 4 |
Бит 3 |
Бит 2 |
Бит 1 |
Бит 0 |
|
Бит 7: CP0E - бит подключения выхода компаратора 0 (CP0)
0 - CP0 не соединен с выводом порта
1 - CP0 соединен с выводом порта
Бит 6: ECI0E – бит подключения входа ECI ПМС0
0 – ECI не соединен с выводом порта
1 - ECI соединен с выводом порта
Биты 5-3: PCA0ME – биты подключения входов/выходов модуля ПМС0
000 – все входы/выходы модуля ПМС не соединены с выводами порта
001 – CEX0 соединен с выводом порта
010 – CEX0, CEX1 соединены с двумя выводами порта
011 – CEX0, CEX1, CEX2 соединены с тремя выводами порта
100 – CEX0, CEX1, CEX2, CEX3 соединены с четырьмя выводами порта
101 – CEX0, CEX1, CEX2, CEX3, CEX4 соединены с пятью выводами порта
110 – CEX0, CEX1, CEX2, CEX3, CEX4, CEX5 соединены с 6 выводами порта
Бит 2: UART0EN – бит подключения входов/выходов УАПП0
0 – входы/выходы УАПП0 не соединены с выводами порта
1 – TX0 и RX0 соединены с выводами P0.0 и P0.1 соответсвенно
Бит 1: SPI0EN - бит подключения входов/выходов модуля SPI0
0 – входы/выходы модуля SPI0 не соединены с выводами порта
1 – в 4-х проводном режиме MISO, MOSI, SCK и NSS соединены с 4 выводами
порта, в 3-х проводном MISO, MOSI, SCK соединены с 3 выводами порта.
Бит 0: SMB0EN – бит подключения входов/выходов модуля SMBus0
0 – входы/выходы модуля SMBus0 не соединены с выводами порта
1 – SDA и SCL соединены с двумя выводами порта
Регистр XBR2:
R/W |
R/W |
R/W |
R/W |
R/W |
R/W |
R/W |
R/W |
Значение при сбросе: 00000000 |
WEAKPUD |
XBARE |
- |
T4EXE |
T4E |
UART1E |
- |
- |
|
Бит 7 |
Бит 6 |
Бит 5 |
Бит 4 |
Бит 3 |
Бит 2 |
Бит 1 |
Бит 0 |
Бит 7: WEAKPUD - бит отключения слаботоковых подтяжек портов вводы/вывода
0 – слаботоковые подтяжки включены
1 - слаботоковые подтяжки отключены
Бит 6: XBARE – бит включения матрицы
0 – матрица отключена, все выводы портов P0, P1, P2 и P3 настроены на вход
1 - матрица включена
Бит 5: зарезервирован. Читается как 0b. Запись не оказывает никакого влияния.
Бит 4: T4EXE – бит подключения входа T4EX
0 – T4EX не соединены с выводом порта
1 – T4EX соединен с выводом порта
Бит 3: T4E - бит подключения входа T4
0 – T4 не соединены с выводом порта
1 – T4 соединен с выводом порта
Бит 2: UART1E – бит подключения входов/выходов УАПП1
0 – входы/выходы УАПП1 не соединены с выводами порта
1 – TX1 и RX1 соединены с двумя выводами порта
Биты 1-0: зарезервированы
Конфигурирование портов ввода – вывода происходит в функции Port_Init().
Приоритетный декодер матрицы, или «матрица», распределяет и назначает выводы портов цифровым периферийным модулям МК, используя приоритеты. Матрица назначает выводы портов периферийным модулям, если соответствующие биты подключения в регистрах конфигурации матрицы XBR0, XBR1, XBR2 и XBR3 установлены в 1.
Для нашей задачи необходимо правильно установить биты в регистрах конфигурирования матрицы, чтобы связать (или наоборот) выводы портов с цифровыми периферийными модулями.
1. Для разрешения работы УАППа необходимо установить в ‘1’ 2-ый бит (UART0EN) регистра XBR0 (запись значения b00000100 или 0x04 в XBR0).
2. Также необходимо установить в '1' бит глобального разрешения цифрового коммутатора 6-ой бит (XBARE) регистра XBR2 (запись значения b01000000 или 0x40 в XBR2).
Следующий код функции Port_Init(void) иллюстрирует вышеописанную процедуру:
XBR0=0x04; // Enable UART0 on crossbar
XBR1=0x00;
XBR2=0x40; // Enable crossbar and weak pull-ups
Помимо этого необходимо запрограммировать работу выходных драйверов.
Регистр PхMDOUT:
R/W |
R/W |
R/W |
R/W |
R/W |
R/W |
R/W |
R/W |
Значение при сбросе: 00000000 |
|
|
|
|
|
|
|
|
|
Бит 7 |
Бит 6 |
Бит 5 |
Бит 4 |
Бит 3 |
Бит 2 |
Бит 1 |
Бит 0 |
Биты 7-0: PхMDOUT – биты настройки выходного драйвера порта х
0 – соответствующий вывод P0.n настроен как выход с открытым стоком
1 – соответствующий вывод P0.n настроен как цифровой двухтактный выход
По умолчанию после RESETа каждая линия порта ввода/вывода запрограммирована для работы в режиме OPEN_DRAIN. В нашей работе необходимо перепрограммировать выходные драйвера Port0 и Port1 на работу в режиме PUSH_PULL.
P0MDOUT=0xFF; // enable Port0 outputs as push-pull
P1MDOUT |= 0x40; // enable Port1 Pin 6 output as Push-Pull
