- •Техническое задание
- •Реферат
- •Перечень условных обозначений, единиц и терминов
- •Введение
- •1 Структурная организация
- •2 Алгоритмы обработки и управления
- •3 Выбор элементной базы
- •3.1 Выбор омк
- •4 Принципиальная электрическая схема
- •5 Программное обеспечение
- •6 Алгоритм тестирования
- •7 Тестовый пример
- •8 Инструкция по эксплуатации контроллера
- •Заключение
- •Список использованных источников
- •Приложение а
- •Приложение б
- •Приложение в
6 Алгоритм тестирования
Сейчас в подавляющем большинстве МПС большое внимание уделяется средствам контроля и диагностики, позволяющим выявить и отследить неполадки в системе.
Отладка – это процесс обнаружения ошибок, определения источников их появления по результатам тестирования и устранения выявленных неисправностей [6].
Наиболее сложна эта процедура в цифровых вычислительных системах, что объясняется особенностями их организации и взаимодействия программно-аппаратных средств. Сложность отладки микропроцессорных устройств состоит в том, что для локализации неисправности необходимо прежде всего определить, где возникла неисправность - в аппаратных средствах или программном обеспечении [2].
Трудность отладки микропроцессорных систем обусловлена рядом таких факторов, как сложность организации БИС, из которых состоят МПУ, асинхронный режим обмена информацией между элементами МПУ, режимом разделения времени, при котором по некоторым шинам в различные моменты времени могут передаваться как данные, так и адресная информация, большое количество требуемых точек контроля и т.д.
В основе почти всех методов отладки лежит та или иная гипотетическая модель неисправностей, выбираемая на основе практического опыта эксплуатации и настройки данного устройства или системы.
Особенностью микропроцессорных устройств является свойство "интеллектуальности", что позволяет использовать самотестирование с помощью программ, записанных в специальных ПЗУ тестирования или в ОЗУ [2].
Тестирование ПЗУ. ПЗУ хранит команды и константы, поэтому отказ ПЗУ обычно приводит к нарушению функционирования микропроцессорного устройства. В ПЗУ отказы возникают из-за частого перепрограммирования микросхем, пробоя МОП - транзисторов.
Тестирование ПЗУ заключается в проверке сохранности размещенных в нем кодов. В микропроцессорных системах наибольшее распространение получили тесты, в которых используется сжатие информации, хранимой в ПЗУ. Получаемое в результате сжатия исходного массива данных контрольное кодовое слово при программировании ПЗУ записывается вместе с основной информацией. В дальнейшем, при тестировании производится сжатие массива данных, считываемых из ПЗУ в данный момент времени, и сравнение полученного результата сжатия с контрольным словом [7].
Лучшие результаты тестирования ПЗУ обеспечивает формирование контрольных циклических избыточных кодов (CRC). Этот метод широко используется при сигнатурном анализе. Содержимое ПЗУ считывается в виде непрерывной последовательности битовых данных, вводится в 16-разрядный сдвиговый регистр PrC. Результат, фиксируемый в РгС после ввода всех бит ПЗУ, представляет собой CRC. Описанная процедура может быть реализована программным путем.
Тестирование ОЗУ. Нарушение работы ОЗУ не приводит к таким катастрофическим последствиям, как нарушение работы ПЗУ. Однако контроль за правильностью его функционирования обязателен и особенно важен в том случае, если в ОЗУ размещается системная информация. Отказ ОЗУ может быть связан с неисправностью отдельных БИС, с чувствительностью к перекрестным наведенным помехам, с коротким замыканием внешних по отношению к БИС линий шин адреса и данных, с отсутствием сигналов управления, с неисправностью схемы регенерации в динамических ОЗУ.
Вполне информативный тест для ОЗУ - "бегущая единица". Он используется в том случае, если возникает подозрение на неисправность отдельных разрядов или ячеек ОЗУ. Тестирование ОЗУ этим методом заключается в следующем. Контролируемое ОЗУ обнуляется, а в первую ячейку записывается код 01h. Затем проверяется правильность записи и нулевые значения остальных ячеек. Далее значение кода изменяется на 02h, 04h, …,80h. В процессе тестирования реализуются цикл сдвига записываемого кода, контроль нулевых ячеек, формирование следующего адреса. Этот тест более информативен, но требует больших затрат времени [2]. Такой тест позволяет обнаруживать чувствительность соседних линий данных к перекрестным наведенным помехам, которые проявляются в двух соседних разрядах при считывании из проверяемой ячейки состояния "1".
Также важно для системы проверять исправность портов. В данном случае это легко сделать «заглушками» – то есть соединяем выходы одного порта на входы другого порта и смотрим, получили ли мы на входе тестируемого порта, то, что было на выходе тестирующего порта [2].
Для проверки работоспособности параллельного порта воспользуемся «заглушками» и алгоритмом «Шахматная доска». На выходы порта запишем код 55h и считываем его. В случае несоответствия формируется код ошибки и фиксируются адреса неисправных ячеек. Затем тест повторяем для инверсного значения (ААh) [2]. Поскольку для вывода нам требуются порты B и D, протестируем их с помощью данного алгоритма:
PORTB = 0x55;
PORTD = 0x55;
delay_ms(5000);
PORTB = 0xAA;
PORTD = 0xAA;
delay_ms(5000);
PORTB = 0x00;
PORTD = 0x00;
В результате на выходах параллельных портов последовательно появятся данные коды, представляющие собой чередование 0 и 1.
Далее протестируем порт C на чтение. Для этого выведем его значения на порт В:
PORTВ = PINС;
delay_ms(5000);
PORTC = 0x00;
В результате данные, записанные в порт С, совпадут с данными, выведенными на портах В.
Для проверки последовательного канала UART воспользуемся методом «эхоконтроля». Для этого соединяют ножки контроллера TxD и RxD и запишем в порт некоторое значение. Считанное из последовательного порта значение должно совпадать с отправленным. Протестируем порт UART с помощью этого алгоритма:
putchar(‘a’);
volatile char c = getchar();
В результате данные, записанные в последовательный порт, совпадут с принятыми данными из этого порта.
Для тестирования блока прерываний воспользуемся следующим алгоритмом. Сформируем внешние запросы прерываний на выходе одного из параллельных портов. В обработчике прерываний осуществим вывод некоторого значения в другой порт. Если данное значение вывелось на ножки порта, следовательно, контроллер прерываний работоспособен.
Алгоритм тестирования МПУ представлен на рисунке 7.
Рисунок 7 – Алгоритм тестирования МПУ
