- •Техническое задание
- •Реферат
- •Перечень условных обозначений, единиц и терминов
- •Содержание
- •Введение
- •1 Структурная организация
- •2 Алгоритмы обработки и управления
- •2.1 Алгоритм работы ведущего омк
- •3 Выбор элементной базы
- •3.1 Выбор омк
- •2.2 Алгоритм работы ведомого омк
- •3.2 Выбор пу
- •4 Принципиальная электрическая схема
- •5 Программное обеспечение
- •6 Алгоритм тестирования
- •7 Инструкция по эксплуатации контроллера
- •Заключение
- •Список использованных источников
- •Приложение а
- •Приложение б
- •Приложение в
3.2 Выбор пу
Для обеспечения передачи информации по общей шине на большое расстояние (т.к. протяженность трубопровода может быть значительной) необходимо использовать специальные интерфейсы, в частности RS-485. Чтобы передавать информацию от интерфейса, использующего потенциальные сигналы, через интерфейс с дифференциальными сигналами следует применять преобразователи уровней.
Преобразователь уровней MAX487 обеспечивает полудуплексную передачу по интерфейсу RS-485 на скорости до 0,25 Мбит в секунду и поддерживает подключение до 128 устройств к общей шине [4], что является достаточным для выполняемого задания.
4 Принципиальная электрическая схема
Электрическая схема МПУ и спецификация элементов, входящих в ее состав, приведены в приложениях А и Б.
На приведенной
схеме представлен вариант системы с 1
ведущим ОМК MASTER и 3 ведомыми
ОМК: SLAVE1, SLAVE2,
SLAVE3. К каждому из них
подключены ПУ U3, U5,
U9, U7
соответственно. Выходы TXD
и RXD ОМК, подключенные к
пинам RO и DI
ПУ обеспечивают передачу данных, выход
PD7 подключен к входам
и DE для управления
направлением передачи ПУ. Линия PD7
MASTER используется для
управления светодиодами.
Частотные сигналы поступают на входы ICP1 ведомых контроллеров.
Для стабилизации частоты работы микроконтроллера и повышения точности измерений применен кварцевый резонатор X1 с частотой 4 МГЦ с раскачивающими конденсаторами C1-C2. Он подключен к входам XTAL1, XTAL2 ведомых ОМК.
Светодиоды D2, D3 обеспечивают индикацию состояния системы: при отсутствии утечек, на выходе PD7 установлен уровень логической 1, и включен зеленый светодиод D2, иначе устанавливается уровень 0, и, благодаря инвертору U2, включается красный светодиод D3.
5 Программное обеспечение
В качестве языка программирования был выбран язык Си, поскольку он обеспечивает более высокую скорость разработки и упрощает процесс разработки по сравнению с ассемблером.
Для разработки программного обеспечения использовалась среда CodeVisionAVR. Достоинствами этой среды является наличие встроенных средств для генерации кода, отвечающего за настройку и инициализацию ОМК, большое количество предустановленных библиотек, реализующих различные функции, а также подробный и развернуты справочный материал, значительно облегчающий и ускоряющий процесс разработки и отладки.
Отладка и эмуляция работы системы проводилась в среде Proteus 7 Professional. Он поддерживает работу с языком Си, содержит обширную библиотеку ОМК и внешних компонентов, имеет развитый интерфейс пользователя, а разработка проекта включает создание принципиальной электрической схемы.
Листинг программ приведен в приложении В.
6 Алгоритм тестирования
Тестирование микропроцессорной системы является важной частью процесса использования в рабочих условиях.
Наиболее широкое распространение получил "метод раскрутки", при котором определяется системное ядро, работающее наиболее надежно, а далее к ядру постепенно присоединяются и контролируются остальные компоненты системы (от ядра к периферийным устройствам) [2].
Для тестирования ПЗУ наиболее целесообразно использовать метод контрольной суммы CRC, вычисляя контрольную сумму записанной в память программы. Тестирование ОЗУ, а также EEPROM может проводиться, например, записью в память кода вида «шахматная доска»: 55h и его последующим считыванием. При несоответствии считанных значений фиксируются адреса неисправных ячеек. Аналогичная процедура повторяется с использованием инверсного значения AAh.
Подобный тест может быть проведен с помощью приведенного ниже алгоритма:
bool error=false;
int tst = 0;
for (int i=0;i<512;i++)
{
*i= 55h;
tst=*i;
if (tst!=55h) error=true;
}
Если в результате его исполнения флаг error примет значение true, значит, в памяти присутствуют неисправные ячейки.
Поскольку в рассматриваемом случае каждый ОМК использует не более 2 линий параллельных портов, можно протестировать все возможные значения, которые могут принимать выходы и которые могут подаваться на вход. При использовании большого количества линий, следовало бы использовать алгоритм «шахматная доска».
Проверка работы UART осуществляется с помощью эхоконтроля, для этого соединяют TXD и RXD.
Для проверки правильности работы счетчиков-таймеров, обеспечивающих измерение частоты, можно сформировать эталонный сигнал одним СТ, а затем измерить его длительность другим.
В данном случае для тестирования правильности измерений, а также работы всей системы в целом, применим виртуальные приборы, в частности частотомеры. Измеренные значения, которые были переданы ведущему ОМК и сохранены в его ОЗУ, совпадают с показаниями виртуальных приборов, как видно на рисунке 10, следовательно, система работает правильно.
Рисунок 10 – Результат работы системы
