
- •1. Введение.
- •2. Разработка аппаратного обеспечения.
- •2.3.2. Работа блока цап .
- •2.4. Согласование .
- •2.5.3. Расчет минимального напряжения на выходе модуля
- •2.5.4. Расчет надежности.
- •2.5.5. Расчет потребляемой мощности.
- •2.5.6. Тепловой расчет.
- •2.5.7. Расчет точности коэффициентов усиления.
- •3. Разработка программного обеспечения для pic-процессора.
- •3.1. Структура данных.
- •3.2. Принцип построения программы.
- •3.3 Структурная схема программы.
- •3.3.1 Тело основного цикла.
- •3.3.2. Работа модуля ацп.
- •3.3.3. Работа модуля цап.
- •3.3.4. Работа модуля ачх.
- •3.3.5. Работа модуля вах.
- •3.4. Интерфейсы:
- •3.4.1. Интерфейс общения с rs-232.
- •3.4.2. Интерфейс общения с цаПом max513.
- •3.5. Расчеты:
- •3.5.2.1. Расчет констант для задержки в модуле ацп.
- •3.5.2.2. Расчет констант для задержки в модуле цаПа.
- •4. Разработка программного обеспечения для пк.
- •4.1. Структура данных.
- •4.2. Принцип построения программы.
- •4.3. Структурная схема программы.
- •4.3.1. Модуль отображения.
- •4.3.2. Модуль преобразования Фурье.
- •4.3.3. Модуль ачх.
- •4.3.4. Модуль вах.
- •4.3.5. Интерфейс с асинхронным портом pic-процессора.
- •4.3.6. Модуль работы с файлами.
- •4.3.7. Модуль редактора.
- •4.3.8. Модуль генератора.
- •5. Инструкция по эксплуатации.
- •5.1. Порядок работы.
- •5.2. Управляющие клавиши .
- •5.3. Проверка связи с платой уэип.
- •5.4. Получение новой осциллограммы.
- •5.5. Получение нового ачх.
- •5.6. Получение нового вах.
- •5.7. Преобразование Фурье.
- •5.8. Работа с файлами.
- •5.9. Редактирование сигналов.
- •5.10. Генерация сигналов.
- •6. Заключение.
Какую работу нужно написать?
3.3 Структурная схема программы.
Структурная схема программы представлена на плакате.
3.3.1 Тело основного цикла.
После PowerON Reset по вектору reset программа попадает на процедуру начальной инициализации, которая подготавливает контролер к началу работы. В ее функции входит:
подготовка портов к работе,
подготовка таймеров,
подготовка начальных данных (инициализация).
После начальной инициализации управление передается циклу ожидания команд, в котором, при приеме команды управление передается процедуре обработки данной команды.
3.3.2. Работа модуля ацп.
Модуль АЦП является основным модулем программы , так как в нем осуществляются основные измерения .
Снятие осциллограммы можно разбить на два этапа :
Настройка коэффициентов .
Оцифровка сигнала .
Мы априорно предположим , что за время измерения сигнала его амплитуда не будет иметь значительных скачков , а значит мы сначала сможем определить максимальное значение сигнала в измеряемом диапазоне времени , а затем , установив коэффициенты таким образом , чтобы максимальная амплитуда , умноженная на соответствующие коэффициенты , соответствовала интервалу опорного напряжения АЦП ( 5 вольтам) , а затем собственно измерить сигнал.
Программно это организованно в виде нескольких процедур , вызываемых поочередно .
Вначале запускается процедура ( ADKOF ) установки необходимого коэффициента . Входным параметром для данной процедуры является переменная KOIF2 , которая в младшем полубайте содержит код усиления , а в старшем полубайте код ослабления . Процедура , в зависимости от значения находящимся в переменной , выставляет на выводах RC1, RD0, RD1 код ослабления , а на RD2,RD3, RD4 код усиления . Вначале устанавливается максимальный коэффициент ослабления .
После установки начального коэффициента ослабления запускается процедура ( KOIFAD ) определяющая коэффициенты усиления и ослабления , соответствующие максимальной амплитуде . Алгоритм работы данной процедуры следующий если новое оцифрованное значение попадает в интервал :
0x00 - 0x80 Это значит , что коэффициент ослабления большой и его надо уменьшить , или надо увеличить коэффициент усиления , в зависимости от текущего значения коэффициентов .
0x81 - 0xEF Это означает , что амплитуда принятого числа находится в интервале от Uоп- до Uоп/2 и соответственно нет необходимости менять коэффициенты .
0xF0-0xFF Это значит , что коэффициент ослабления маленький и его надо увеличить , или надо уменьшить коэффициент усиления , в зависимости от текущего значения коэффициентов .
По окончании анализа выбранный коэффициент записывается в переменную KOIF2 . После анализа коэффициентов усиления и ослабления , соответствующих максимальной амплитуде их надо установить , чтобы последующие измерения проводились с найденными коэффициентами. Далее снова запускается процедура ADKOF.
Когда подготовительные операции завершены программа запускает процедуру AD , которая и осуществляет оцифровку сигнала. У этой процедуры входным параметром является время дискретизации преобразования . При входе в процедуру AD сначала происходит инициализация внутренних переменных (счетчик цикла, указатель косвенной адресации). Затем организуем цикл на 180 значений. Внутри цикла сначала происходит снятие оцифрованного значения сигнала , помещение его в регистр аккумулятор , пересылка из аккумулятора в ячейку хранения (при пересылке значения из аккумулятора в ячейку хранения используется косвенная адресация), увеличение на единицу значения указателя косвенной адресации , уменьшение на единицу счетчика цикла и если значение счетчика не равно 0 , вызывается процедура задержки , обеспечивающая необходимую дискретизацию и передает управление на начало цикла. Если счетчик равен 0, то происходит выход из цикла, и осуществляется выход из процедуры.
Чтобы оцифрованный сигнал можно было бы отобразить на экране персонального компьютера надо передать данные, используя асинхронный последовательный порт. Для этого предназначена процедура TX. В ней , также как в процедуре AD организуется цикл на 180 значений. Используя косвенную адресацию мы последовательно передаем 180 значений сигнала , записанных по адресам 0x26 - 0x7F и 0xA6 - 0xFF в регистр TXREG и далее происходит передача байта из TXREG через асинхронный порт SCI в СОМ-порт. После передачи 180 байт передается значение коэффициентов, при которых проводились измерения .