- •Глава1. Первичные преобразователи для измерения электропроводности.
- •Глава2. Плата интерфейса.
- •2.1 Разработка блока управления
- •2.2 Выбор способа подключения платы к компьютеру.
- •2.3 Проектирование печатной платы в системе pcad .
- •Глава 3. Программное обеспечение.
- •3.1 Структура программного обеспечения кондуктометра.
- •3.2 Информационный обмен ацп-контроллер.
- •3.3 Информационный обмен контроллер- эвм.
- •3.4 Самодиагностика и выявления возможных неисправностей.
- •3.5 Программа контроллера для сбора и обработки информации.
- •3.6 Управление процедурой обмена через rs232.
- •3.7 Программа обработки информации.
- •3.8 Программа обработки информации.
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 Подпрограмма работы с последовательным портом.