Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
DMITR / USED / DIPLOM1.DOC
Скачиваний:
8
Добавлен:
16.04.2013
Размер:
410.62 Кб
Скачать

3.4 Самодиагностика и выявления возможных неисправностей.

Выявление возможных неисправностей происходит на нижнем уровне данных (программа на ассемблере для МК51). И представляет собой сравнение принимаемых с АЦП данных с определенными контрольными значениями (характерными для неисправностей). В зависимости от положительного результата проверки на ЭВМ передаётся сигнал о возможной неисправности:

- не подключен датчик электропроводности;

- не работает генератор в блоке измерения электропроводности;

- не подключен датчик температуры;

- сгорел датчик температуры.

3.5 Программа контроллера для сбора и обработки информации.

Программа контроллера для сбора и пересылки информации состоит из нескольких частей: основная программа (ри.10), подпрограмма приёма информации с АЦП (рис.11), подпрограмма связи с ЭВМ через последовательный порт (рис 13), которая выполняется когда приходит прерывание от последовательного порта. Реализация системы прерываний для микроконтроллера МК51 показана на рисунке 12.

В начале основной программы происходит описание символических переменных, установка 0-го банка регистров, установка указателя стека, описание вектора прерывания от связи. Затем инициализируется таймер: выбор 1-го таймера, перевод его в третий режим работы, загрузка константы скорости в таймер для 28800 Бод, разрешение работы таймера. Инициализация последовательного порта проходит следующим образом: приёмопередатчик кристалла устанавливается в режим 9-бит с программируемой скоростью, разрешение приёма сообщений с взведённым 9-м битом, разрешение работы приёмопередатчика, разрешение прерываний от приёмопередатчика, общее разрешение прерываний. После этого выполняется основной цикл программы: сброс бита разрешения приёма, ожидание бита, установка адреса для записи принятых значений, выбор номера канала и вызов для него процедуры оцифровки.

Рис.10 Блок-схема основной программы для МК51.

Рассмотрим работу подпрограммы приёма информации с АЦП (рис.11). Контроллер формирует временную диаграмма для работы с АЦП и передаёт синхронизирующие сигналы по линии SCLK, затем устанавливается количество битов в байте управления и он сдвигается через перенос (в цикле выталкиваем 8 бит). После задержки (10 ns), устанавливаем количество бит в слове данных, и считываем вначале полубайт, а затем оставшиеся 8 бит, и записываем их в область памятиStAd.

Рис.11 Блок-схема подпрограммы приёма информации с АЦП.

Прежде чем перейти к подпрограмме работающей с последовательным портом посмотрим как реализована система прерываний (рис. 12).

При приходе прерывания от последовательного порта, выполняется специальная подпрограмма обработки этого прерывания (рис. 13). Как она работает. Вначале производится проверка, и если приходит прерывание от передатчика, то сбросить его и выйти. Если нет, то производится проверка полученного байта, если пришёл байт с установленным 9 битом (старт байт) то выполняется инициализация процедуры чтения данных из памяти, затем подсчёт контрольной суммы, передача блока данных на ЭВМ и завершение подпрограммы. Если пришел байт без установленного 9 бита (байт данных, всего их 4), то если переданы все байты - передаётся контрольная сумма, а если нет - передаётся байт и подсчитывается контрольная сумма.

Рис.12 Работа прерываний.

Рис. 13 Подпрограмма работы с последовательным портом.

Тут вы можете оставить комментарий к выбранному абзацу или сообщить об ошибке.

Мы не исправляем ошибки в тексте (почему?), но будем благодарны, если вы все же напишите об ошибках.

Соседние файлы в папке USED