Введение
Сегодня в мире ежедневно успешно проектируется и используется огромное количество различных электронных устройств и систем. Современная жизнь немыслима без компьютеров, а сам факт, что сейчас на экранах мониторов вы читаете эту статью, стал возможен только благодаря сети Интернет и возможностям современной науки и электронной техники. Однако многие устройства человек использует чаще компьютеров. Без этих устройств уже нельзя вообразить нашу повседневную жизнь, такой, как мы привыкли ее видеть. Это встроенные приборы, управляемые различными микроконтроллерами. К примеру, банкомат построен на базе несложного терминала, который имеет сетевое подключение, и интерфейсные модули для дисплея, клавиатуры, устройству выдачи купюр и так далее. Всем знакомые электронные часы, управляются микросхемой, отсчитывающей отрезки времени в микросекундах и отображающей на экране текущее время. А сотовый телефон и вовсе имеет собственную операционную систему, со своими файлами, директориями и подпрограммами.
Первой компьютерной системой на кристалле специально созданной для управления - микроконтроллером, была микросхема Intel 8048 <#"802249.files/image001.gif">
Рис. 1.1. Функциональная схема
устройства
Микропроцессорная система.
· Микроконтроллер PIC18F8680 со встроенными модулями EUSART, SPI.
· 3-канальный 12-разрядный АЦП MAX1247 с SPI-интерфейсом.
· 1-канальный 10-разрядный ЦАП AD561.
· Клавиатура 20 клавиш (матрица 5*4)
· LCD-индикатор ACM-1602
· Схема сопряжения в фотоимпульсным датчиком углового положения ФИ2.
Ввод данных в устройство:
· Аналоговые сигналы (3 канала) - через АЦП.
· Числовые данные и управление функциями - через клавиатуру.
· Цифровая информация с внешних цифровых источников через интерфейс RS-485.
· Фотоимпульсный датчик.
Вывод данных из устройства:
· Аналоговый сигнал управления (1 канал) - через ЦАП.
· Цифровая и буквенная информация - через дисплей.
· Данные о текущем состоянии
устройства и цифровые данные для внешних цифровых устройств - через интерфейс RS-485.
. Описание принципиальной схемы
Описание основных блоков устройства и
обоснование выбора элементной базы, а также общее описание функционирования.
.1 Микроконтроллер PIC18F8680
18F8680 - 8-разрядный микроконтроллер с RISC-архитектурой фирмы Microchip. Он служит основой системы. Наличие в задании требования реализации интерфейса SPI и RS-485 привело к решению применить микроконтроллер со встроенными модулями этих интерфейсов. Выбор архитектуры PIC вызван предыдущим опытом работы с процессорами данного типа, богатым функциональным оснащением и высоким быстродействием кристалла при умеренной цене. На рисунке 2.1.1 приведена функциональная схема.
Основные особенности микроконтроллера:
1) 8-разрядная RISC архитектура: 35 команд (большинство выполняется за 1 м.ц.), производительность до 10 миллионов операций в секунду при тактовой частоте 40 МГц;
2) 64 кБайт FLASH-памяти программ, программируемой внутрисхемно;
) 4 кБайт энергонезависимой памяти данных;
) 1 кБайт встроенной статической оперативной памяти;
) 2 16-разрядных и 2 8-разрядных таймера-счетчика
) Модули EUSART и SPI;
7) 16-канальный 10-разрядный АЦП;
) программируемый сторожевой таймер;
) встроенный генератор сигнала сброса при
включении питания и по снижению уровня напряжения питания;
.
Рис. 2.1.1. Функциональная схема.
Микроконтроллеры семейства PIC имеют эффективную систему команд, состоящую всего из 35 инструкций. Все инструкции выполняются за один цикл, за исключением условных переходов и команд, изменяющих программный счетчик, которые выполняются за 2 цикла. Один цикл выполнения инструкции состоит из 4 периодов тактовой частоты. Таким образом, учитывая то, что рабочая частота контроллера составляет 0 Гц ... 20 МГц, минимальное время выполнения инструкции равняется 200 нс. Каждая инструкция состоит из 14 бит, делящихся на код операции и операнд (возможна манипуляция с регистрами, ячейками памяти и непосредственными данными).
Высокая скорость выполнения команд в PIC достигается за счет использования двухшинной Гарвардской архитектуры вместо традиционной одношинной Фон-Hеймановской. Гарвардская архитектура основывается на наборе регистров с разделенными шинами и адресным пространством для команд и для данных. Набор регистров означает, что все программные объекты, такие как порты ввода/вывода, ячейки памяти и таймер, представляют собой физически реализованные аппаратные регистры.
На рис.2.1.2 представлена карта памяти данного
микроконтроллера.
Рис.2.1.2. Карта памяти
Программирование контроллера осуществляется любым программатором, совместимым с процессорами PIC, через стандартизованный разъем.
Тактирование МК будет осуществляться от
внутреннего RC-генератора
с частотой 4 МГц При этом на выводе RA6
получим тактовый сигнал с частотой в 4 раза меньшей, чем частота RC-генератора.
Этот вывод будет задействован для синхронизации внешней логики.
.2. Интерфейс RS-485
Интерфейс RS-485 (другое название - EIA/TIA-485) - один из наиболее распространенных стандартов физического уровня связи. Физический уровень - это канал связи и способ передачи сигнала (1 уровень модели взаимосвязи открытых систем OSI).
Сеть, построенная на интерфейсе RS-485,
представляет собой приемопередатчики, соединенные при помощи витой пары - двух
скрученных проводов. В основе интерфейса RS-485 лежит принцип дифференциальной
(балансной) передачи данных. Суть его заключается в передаче одного сигнала по
двум проводам. Причем по одному проводу (условно A) идет оригинальный сигнал, а
по другому (условно B) - его инверсная копия. Другими словами, если на одном
проводе "1", то на другом "0" и наоборот. Таким образом,
между двумя проводами витой пары всегда есть разность потенциалов: при
"1" она положительна, при "0" - отрицательна (рис.2.2.1).
Рис.2.2.1. Принцип передачи сигнала.
Именно этой разностью потенциалов и передается сигнал. Такой способ передачи обеспечивает высокую устойчивость к синфазной помехе. Синфазной называют помеху, действующую на оба провода линии одинаково. К примеру, электромагнитная волна, проходя через участок линии связи, наводит в обоих проводах потенциал. Если сигнал передается потенциалом в одном проводе относительно общего, как в RS-232, то наводка на этот провод может исказить сигнал относительно хорошо поглощающего наводки общего ("земли"). Кроме того, на сопротивлении длинного общего провода будет падать разность потенциалов земель - дополнительный источник искажений. А при дифференциальной передаче искажения не происходит. В самом деле, если два провода пролегают близко друг к другу, да еще перевиты, то наводка на оба провода одинакова. Потенциал в обоих одинаково нагруженных проводах изменяется одинаково, при этом информативная разность потенциалов остается без изменений. Аппаратная реализация интерфейса - микросхемы приемопередатчиков с дифференциальными входами/выходами (к линии) и цифровыми портами.- полудуплексный интерфейс. Прием и передача идут по одной паре проводов с разделением по времени. В сети может быть много передатчиков, так как они могут отключаются в режиме приема.
Цифровой выход приемника (RO) подключается к
порту приемника (RX). Цифровой вход передатчика (DI) к порту передатчика (TX).
Поскольку на дифференциальной стороне приемник и передатчик соединены, то во
время приема нужно отключать передатчик, а во время передачи - приемник. Для
этого служат управляющие входы - разрешение приемника (RE) и разрешения
передатчика (DE). Так как вход RE инверсный, то его можно соединить с DE и
переключать приемник и передатчик одним сигналом с любого порта контроллера.
При уровне "0" - работа на прием, при "1" - на передачу.
Драйвер подключается согласно рис.2.2.2
<#"802249.files/image006.gif"> <#"802249.files/image007.jpg">
Рис. 2.3.1. Униполярный режим 0-10В
Отличительные особенности:
· Встроенный высокостабильный источник опорного напряжение на стабилитроне
· Лазерная подгонка параметров при производстве (максимальная погрешность 1/4 LSB для AD561K, T)
· Быстрое время установления выхода - 250 нс с погрешностью в 1/2 LSB
· Гарантируется монотонность передаточной характеристики во все температурном диапазоне.
· Совместимость цифровых входов с уровнями ТТЛ, ДТЛ и КМОП
· Монолитная конструкция в виде микросхемы
· Доступность в малогабаритных корпусах
· Доступность военно-промышленного исполнения MIL-STD-883
Назначение выводов АЦП описывается в табл.1.
Табл.1
|
BIPOLAR OFFSET |
Выход напряжения смещения для двуполярного режима. Не используется. |
|
SPN |
Вывод резистора цепи обратной связи. |
|
Iout |
Аналоговый выход ЦАП |
|
D1-D10 |
|
|
-15 |
Питание -15В |
|
+5 |
Питание + 5В |
|
GROUND |
Общий |
.4 Аналого-цифровой преобразователь MAX1247
MAX1247-это 4-канальные 12-разрядные системы сбора данных, которые содержат 4-канальный мультиплексор, широкополосное устройство выборки и хранения, последовательный интерфейс с высокой скоростью преобразования и обладает низким энергопотреблением. Аналоговые входы являются программно конфигурируемыми для работы в униполярном, биполярном и симметричном и дифференциальном режимах.
-проводной последовательный интерфейс напрямую сопрягается с устройствами SPI без использования дополнительных логических согласующих ИС (рис.2.4.1). Данные преобразователи построены по методу последовательного приближения.
MAX1247 имеет
вход аппаратного управления режимом отключения SHDN
(активный-НИЗКИЙ) и программно выбираемый режим отключения, и могут быть
запрограммированы на автоматическое отключение по завершению преобразования.
Обращение к последовательному интерфейсу автоматически активизирует ИС, а малое
время включения позволяет приборам быть отключенными между преобразованиями, что
дополнительно снижает потребляемый ток. Данная микросхема поставляется в
корпусах DIP и QSOP.
Рис.2.4.1. Подключение к МК
Определим выводы, которые будут задействованы для реализации поставленной задачи:
· CH0,CH1,CH3 - входы, по которым ведется снятие аналоговых сигналов с внешних датчиков (3 канала)
· COM - общий вывод для аналоговых входов
· SCLK, Din,Dout,CS - выходы АЦП, по которым осуществляется передача данных в МК по SPI интерфейсу. Они подключаются к выводам RC3,RC5,RC4,RF7 микроконтроллера соответственно.
· Vcc,AGND,DGND - силовые выводы для питания микросхемы
· SSTRB - используется для определения занятости АЦП.
· Остальные выводы не используются.
В табл.2 представлено подробное описание выводов
микросхемы.
Табл.2
|
AGND,DGND |
Аналоговый и цифровой общий вывод микросхемы. |
|
CH0-CH3 |
Аналоговые входы 0-3. |
|
COM |
Общий вывод для аналоговых входов. |
|
CS |
Выбор кристалла |
|
Din |
Вход последовательных данных. |
|
Dout |
Выход последовательных данных. |
|
Refadj |
Вход буферного усилителя ИОН. Соединен с Vcc |
|
SCLK |
Вход последовательного тактового сигнала. |
|
SHDN |
Вход выключения. Низкий уровень отключает прибор. |
|
SSTRB |
Выход последовательного строба. Низкий уровень- прибор преобразует, Высокий-преобразование закончено. |
|
Vcc |
Положительное напряжение питания |
|
Vref |
Вход/выход опорного напряжения. Отключен. |
.5 Подключение клавиатуры
Для ввода цифровой и буквенной информации в приложениях на базе микроконтроллеров используются клавиатуры. Клавиатура представляет собой блок из нескольких кнопок, объединенных конструктивно и связанных между собой электрически по матричной схеме.
Порты, подключенные к строкам, настроены на выход и в начальном состоянии на этих выводах напряжение логического нуля. Порты, подключенные к столбцам, настроены на вход, внутренние подтягивающие резисторы отключены и эти линии “придавлены к нулю питания” с помощью внешних резисторов номиналом в 10 КОм.
Процедура сканирования клавиатуры выглядит следующим образом. Выставляем 1 на выводе RA0 и проверяем состояние выводов RB2-RB5. Если на каком-либо из выводов установлена 1, значит, на клавиатуре в данный момент нажата кнопка, подключенная к первой строке. Сохраняем биты RA0-RA5 и RB2-RB5- по этому коды мы будем определять номер нажатой кнопки. Если ни одна из кнопок не нажата, продолжаем процедуру сканирования.
Сбрасываем 1 на выводе RA0 и устанавливаем 1 на выводе PD1. Снова проверяем состояние выводов RB2-RB5, и в случае нажатия кнопки сохраняем биты RA0-RA5 и RB2-RB5 в переменной.
Повторяем описанную последовательность для оставшихся строк.
Переключения кнопок клавиатуры сопровождаются дребезгом контактов, который микроконтроллер может “воспринимать” как многократные нажатия. В приложениях, использующих клавиатуры, это нежелательное явление, поэтому в программе опроса клавиатуры обязательно должна быть какая-нибудь защита. Обычно делают так - факт нажатия кнопки регистрируется, если она удерживается в течение нескольких циклов опроса.
Код, получаемый в процессе сканирования
клавиатуры, часто требуется преобразовать в символьное значение номера/буквы
кнопки (например, для передачи по USART`у). Для этого можно создать таблицу
перекодировки - двумерный массив. В первом столбце таблицы будут храниться коды
кнопок, а во втором соответствующие символьные значения. Методом последовательного
перебора в таблице можно находить нужное значение.
2.6 Осуществление индикации
Для отображения информации будет использоваться LCD
индикатор ACM-1602. Его
характеристики приведены ниже в таблицах 3 и 4.
Табл.3
|
Тип модуля |
знакосинтезирующий (текстовый) ЖКИ |
|
|
Формат модуля |
16 x 2 |
|
|
Тип поляризатора |
полупрозрачный (transflective) |
|
|
Подсветка |
желто-зеленая светодиодная |
|
|
Тип стекла |
STN серый |
|
|
Угол обзора |
6:00 часов (bottom view) |
|
|
Температурный диапазон |
Расширенный, -20..+70 °С |
KS0066U (аналог HD44780) |
|
Кодировка |
английская + русская |
|
|
Габариты модуля |
80.0 (W) x 36.0 (H) x 13.5 (D) мм |
|
|
Размер точки (пикселя) |
0.56 (W) x 0.61 (H) мм |