Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

DIPLOM1 / 7. Глава 2

.docx
Скачиваний:
37
Добавлен:
09.02.2015
Размер:
397 Кб
Скачать

Глава 2.

В прошлой главе был составлен план разработки интерфейса управления цифровым СВЧ-аттенюатором, рассмотрим каждый его пункт в отдельности.

Для того чтобы осуществить связь нашего устройства управления с компьютером нужен преобразователь с USB интерфейса на интерфейс RS232. RS-232 (Recommended Standard 232) – стандарт, описывающий интерфейс для последовательной двунаправленной передачи данных между терминалом (DTE, Data Terminal Equipment) и конечным устройством (DCE, Data Circuit-Terminating Equipment). Интерфейс RS232, более известен как интерфейс «COM-порта», полностью аппаратно реализован на персональных компьютерах в виде микросхем и разъемов. Аппаратная реализация означает то, что он работает всегда, независимо от того, какая операционная система установлена на ПК (более того, он работает и без ОС). Программы могут взаимодействовать с COM-портами всеми доступными средствами: прямым кодом микропроцессора, аппаратными прерываниями, функциями BIOS, средствами ОС, компонентами языков высокого уровня. COM-порт, реализованный по стандарту RS-232 универсален. Он обеспечивает работу ПК с периферийными устройствами, взаимодействие с локальной сетью через модем (Ethernet), обмен данными между персональным компьютером и промышленным оборудованием (ModBus и др.).

Из большого количества преобразователей USB-RS232 был выбран преобразователь на базе микросхемы CP2102, ввиду его небольшой цены, но в то же время и хорошей надежности. Он изображен на рисунке 2.1. CP2102 содержит встроенный генератор на 48 МГц, контроллер UART с поддержкой всех модемных сигналов, буферы на прием и передачу, USB 2.0 (скорость передачи до 12 Мбит/c) контроллер и EEPROM, для хранения настроек, таких как энергопотребление от USB, серийный номер устройства, имя устройства и т.д. Изменять все эти параметры можно с помощью фирменной программы CP210x Set IDs.

Рисунок 2.1 – Преобразователь USB-RS232 CP2102

Рассмотрим его характеристики:

  1. Соответствие спецификации USB 2.0 (скорость 12 Мбит/c)

  2. Интегрированная EEPROM на 1024 байта, для хранения ID производителя, ID продукта, серийного номера, описания устройства и т.д.

  3. Скорость виртуального RS232 от 300 бит/c до 1 Мбит/с

  4. Поддержка формата передачи данных 5, 6, 7 и 8 байт данных; 1, 1.5 и 2 стоп-бита, различные контроли четности

  5. Буфер приемника – 576 байт, буфер передатчика – 640 байт

  6. Встроенные источники опорной частоты, встроенный стабилизатор на 3.3 В, 5В

  7. Драйвера для Windows 98/SE/2000/XP/Vista/7, Linux, MAC OS-9, MAC OS-X

  8. Диапазон рабочих температур: -40 до +85 °С

  9. Выводы преобразователя (представлены в таблице 2.1)

Таблица 2.1

Выводы

Функция

RXD

Принимаемые данные

TXD

Передаваемые данные

GND

Земля

3V3

3.3 В

+5V

5 В

Переходим к гальванической развязке. Гальваническая развязка будет реализована с помощью изолятора цифровых сигналов. Изоляторы цифровых сигналов в наше время стали хорошей альтернативой оптическим изоляторам. Для гальванической развязки узлов радиоэлектронной аппаратуры традиционно использовались трансформаторы и оптические изоляторы. С совершенствованием технологий появились новый способ гальванической развязки – цифровой изолятор. Цифровой изолятор представляет собой цифровую микросхему, предназначенную для организации гальванически разделенных каналов передачи цифровых сигналов, в том числе для согласования уровней логических сигналов и исключения паразитных контуров с замыканием через «землю». Изоляторы цифровых сигналов могут быть использованы для реализации гальванического разделения в изделиях промышленной автоматики, телекоммуникационном, медицинском или офисном оборудовании.

Сравнение с аналогичными решениями:

  1. Реализация изоляции на цифровых изоляторах заметно компактнее, в сравнении с оптронной развязкой.

  2. Параметры развязок на оптронах сильно зависят от температуры окружающей среды и питающих напряжений, а значит, это необходимо учитывать при расчете параметров цепей на их базе.

  3. Элементы гальванической развязки на оптронах необходимо рассчитывать с учетом деградации светопропускающего слоя оптрона. Так, например, среднее время до отказа для современных оптронов составляет 13-15 лет, в то время как для изоляторов цифровых сигналов расчетное время составляет около 90 лет (пример – цифровые изоляторы компании Silicon Labs). Деградация ограничивает срок службы изделия с оптронами, и она тем интенсивнее, чем в более высоких температурах эксплуатируется оптрон.

  4. Несимметричная передача данных в оптопарах не обеспечивает высокой устойчивости к синфазной помехе.

Сравнение технических характеристик цифровых изоляторов показаны в таблице 2.2.

Таблица 2.2

Характеристики

ISOpro Si84xx

(Silicon Labs)

xCPL

(Avago Technologies)

Способ передачи сигнала

Емкостная связь

Оптический сигнал

Максимальная скорость обмена данными, Мбит/c

150

50

Задержка распространения сигнала, нс

< 10

22

Джиттер при передаче периодического сигнала(пиковое значение), пс

< 250

< 1000

Искажение ШИМ-модулированного сигнала, нс

1.6

2

Энергопотребление на скорости 10 Мбит/с

< 6 мА, при 3.3 В

< 58 мА, при 3.3 В

Стойкость к электростатическим разрядам

(модели человеческого тела/заряженного устройства/машинная модель)

4 кВ/2 кВ/400 В

  1. кВ/1 кВ/-

Стойкость к кратковременной синфазной помехе, кВ/мкс

> 25

15

Стойкость к электрическому полю, В/м

> 14

3

Главным достоинством изоляторов цифровых сигналов, по сравнению с оптическими изоляторами, является более высокая скорость передачи данных. Кроме того, у них при одинаковых скоростях заметно меньше потребляемая мощность. А при создании многоканальных, и особенно, двунаправленных, гальванически развязанных линий передачи данных применение изоляторов цифровых сигналов, вместо оптических изоляторов, позволяет в несколько раз сократить габариты, потребляемую мощность и стоимость узлов гальванической развязки.

Изоляторы цифровых сигналов обладают следующими характеристиками:

  1. Максимальная скорость передачи данных

  2. Среднеквадратичное (действующее) значение изолируемого переменного напряжения

  3. Возможное направление передачи данных

  4. Диапазон рабочих температур

и другие.

В качестве гальванической развязки был выбран изолятор цифровых сигналов ISO7221AD американской компании Texas Instruments. Его схема показана на рисунке 2.2.

Рисунок 2.2 – Схема ISO7221AD

Рассмотрим его характеристики:

  1. Двунаправленная передача данных

  2. Максимальная скорость передачи данных – 1 Мбит/c

  3. Работает с напряжением в 3.3 В и 5 В

  4. Защита от электростатического разряда до 4 кВ

  5. Высокая устойчивость к электромагнитным помехам

  6. Диапазон рабочих температур: -40 – +125 °С

Изображение изолятора цифровых сигналов ISO7221A приведено на рисунке 2.3.

Рисунок 2.3 – Изолятор цифровых сигналов ISO7221A

Далее по списку у нас идёт главный компонент интерфейса управления - микроконтроллер. На сегодняшний день на рынке электроники существует много различных микроконтроллеров, имеющий разные характеристики и ориентированы на многие цели. Для реализации задачи управления ослаблением цифрового свч-аттенюатора была выбрана платформа Arduino Nano 3.0, построенная на микроконтроллере ATmega 328P. Выбор пал именно на платформу Arduino Nano потому, что это легкий и быстрый путь, к реализации этого проекта. Несмотря на большую стоимость, по сравнению с простым микроконтроллером, мы имеем преимущество по освоению языка программирования и написания программы управления цифровым СВЧ-аттенюатором. Платформа Arduino Nano представлена на рисунке 2.4.

Рисунок 2.4 – Платформа Arduino Nano

Рассмотрим краткие характеристики выбранной платформы, они показаны в таблице 2.3:

Таблица 2.3

Характеристики

Значение

Рабочее напряжение (логический уровень)

5 В

Входное напряжение (рекомендуемое)

7-12 В

Входное напряжение (предельное)

6-20 В

Цифровые входы/выходы

14 (6 из которых могут использоваться как выходы ШИМ)

Аналоговые входы

8

Постоянный ток через вход/выход

40 мА

Флеш-память

32 Кб, при этом 2 Кб используются для загрузчика

ОЗУ

2 Кб

EEPROM

1 Кб

Тактовая частота

16 МГц

Размеры

1.85 см x 4.2 см

Питание:

Arduino Nano может получать питание через подключение Mini-B USB, или от нерегулируемого 6-20 В (вывод 30), или регулируемого 5 В (вывод 27), внешнего источника питания.

Примечание: автоматически выбирается источник питания с самым высоким напряжением.

Память:

Микроконтроллер ATmega 328P имеет 32 кБ флэш-памяти для хранения кода программы (2 Кб используется для хранения загрузчика). Так же у него есть 2 Кб ОЗУ и 1 Кб EEPROM.

Выходы и входы:

Каждый из 14 цифровых выводов Arduino Nano 3.0 может настраиваться как вход, или выход. Выводы работают при напряжении 5 В. Каждый вывод имеет нагрузочный резистор (стандартно отключен) 10-50 кОм и может пропускать до 40 мА. Некоторые выводы имеют особые функции:

  1. Последовательная шина: 0 (RX) и 1 (TX)

Выводы используются для получения (RX) и передачи (TX) данных TTL. Данные выводы подключены к соответствующим выводам микросхемы последовательной шины FTDI USB-to-TTL.

  1. Внешнее прерывание: 2 и 3

Данные выводы могут быть сконфигурированы на вызов прерывания либо на младшем значении, либо на переднем или заднем фронте, или при изменении значения.

  1. ШИМ: 3, 5, 6, 9, 10, и 11

Любой вывод обеспечивает широтно-импульсную модуляцию с разрешением 8 бит.

  1. SPI: 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK)

Посредством данных выводов осуществляется связь SPI.

  1. LED: 13

Встроенный светодиод, подключенный к выводу 13. Если значение на выводе имеет высокий потенциал, то светодиод горит.

На платформе Nano установлены 8 аналоговых входов, каждый разрешением 10 бит (т.е. может принимать 1024 различных значения). Стандартно выводы имеют диапазон измерения до 5 В относительно земли, тем не менее имеется возможность изменить верхний предел. Некоторые выводы имеют дополнительные функции, которые перечислены ниже:

  1. I2C: 4 (SDA) и 5 (SCL)

Посредством выводов осуществляется связь I2C (TWI)

Дополнительная пара выводов платформы:

  1. AREF

Опорное напряжение для аналоговых входов.

  1. Reset

Низкий уровень сигнала на выводе перезагружает микроконтроллер. Обычно применяется для подключения кнопки перезагрузки на плате расширения, закрывающей доступ к кнопке на самой плате Arduino.

Соединение между выводами Arduino и портами Atmega328P изображено на рисунке 2.5.

Рисунок 2.5 Arduino-ATmega328P распиновка

Связь:

На платформе Arduino Nano установлено несколько устройств для осуществления связи с компьютером, другими устройствами Arduino или микроконтроллерами. ATmega328 поддерживают последовательный интерфейс UART TTL (5 В), осуществляемый выводами 0 (RX) и 1 (TX). Установленная на плате микросхема FTDI FT232RL направляет данный интерфейс через USB, а драйверы FTDI (включены в программу Arduino) предоставляют виртуальный COM порт программе на компьютере. Мониторинг последовательной шины (Serial Monitor) программы Arduino позволяет посылать и получать текстовые данные при подключении к платформе. Светодиоды RX и TX на платформе будут мигать при передаче данных через микросхему FTDI или USB подключение (но не при использовании последовательной передачи через выводы 0 и 1). Библиотекой SoftwareSerial возможно создать последовательную передачу данных через любой из цифровых выводов Nano. ATmega328 поддерживают интерфейсы I2C (TWI) и SPI. В Arduino включена библиотека Wire для удобства использования шины I2C. Более подробная информация находится в документации.

Программирование:

Платформа программируется посредством ПО Arduino. Микроконтроллеры ATmega328 поставляются с записанным загрузчиком, облегчающим запись новых программ без использования внешних программаторов. Связь осуществляется оригинальным протоколом STK500. Имеется возможность не использовать загрузчик и запрограммировать микроконтроллер через выводы блока ICSP (внутрисхемное программирование).

Автоматическая (программная) перезагрузка:

Arduino Nano разработана таким образом, чтобы перед записью нового кода перезагрузка осуществлялась самой программой, а не нажатием кнопки на платформе. Одна из линий FT232RL, управляющих потоком данных (DTR), подключена к выводу перезагрузки микроконтроллера ATmega328 через конденсатор 100 нФ. Активация данной линии, т.е. подача сигнала низкого уровня, перезагружает микроконтроллер. Программа Arduino, используя данную функцию, загружает код одним нажатием кнопки Upload в самой среде программирования. Подача сигнала низкого уровня по линии DTR скоординирована с началом записи кода, что сокращает таймаут загрузчика. Функция имеет еще одно применение. Перезагрузка Nano происходит каждый раз при подключении к программе Arduino на компьютере с ОС Mac X или Linux (через USB). Следующие полсекунды после перезагрузки работает загрузчик. Во время программирования происходит задержка нескольких первых байтов кода во избежание получения платформой некорректных данных (всех, кроме кода новой программы). Если производится разовая отладка скетча (программы), записанного в платформу, или ввод каких-либо других данных при первом запуске, необходимо убедиться, что программа на компьютере ожидает в течение секунды перед передачей данных.

Переходим к следующему пункту. Для того, чтобы отображать значение ослабления цифрового свч-аттенюатора и сделать индикацию включения интерфейса управления в устройстве будет использован ЖК-дисплей. Символьные LCD (жидкокристаллические) дисплеи сейчас являются самым распространенным средством отображения данных в микроконтроллерных системах. Питание дисплея требует 3.3-5 вольт, при потребляемом токе от 50 до 180 мА, для разных моделей, причем основная мощность уходит на подсветку. Если её отключить, то потребляемая мощность снизится с 0.1 – 0.8 Вт до 7 – 10 мВт, что вполне приемлемо для автономных систем с батарейным питанием.

В наши дни выпускается множество моделей, начиная от 8x1 (т.е. 8 символов в одной строке) и заканчивая 20x4 (20 символов в строке, 4 строки), по совершенно различной цене и разного цвета подсветки: желтые, белые, синие, красные и т.д.

Для интерфейса управления цифровым СВЧ-аттенюатором достаточно будет LCD-дисплея размером 16x2. Выбор пал на ЖК-дисплей фирмы …

Тут должны быть характеристики жк дисплея, но их тут нет…

Следующий пункт - программа микроконтроллера. Программа микроконтроллера будет написана на Arduino IDE. Arduino IDE, c примером простой программы показана на рисунке 2.6. Интегрированная среда разработки Arduino – это кроссплатформенное приложение на Java, включающее в себя редактор кода, компилятор и модуль передачи прошивки в плату.

Рисунок 2.6. Arduino IDE c примером простой программы

Среда разработки основана на языке программирования Processing (открытый язык программирования, основанный на Java) и спроектирована для программирования новичками, не знакомыми близко с разработкой программного обеспечения. Строго говоря, это С++, дополненный некоторыми библиотеками. Программы обрабатываются с помощью препроцессора (компьютерной программы, принимающий данные на входе и выдающие данные, предназначенные для входа другой программы), а затем компилируется с помощью AVR-GCC.

Среда разработки Arduino IDE состоит из встроенного текстового редактора программного кода, области сообщений, окна вывода текста(консоли), панели инструментов с кнопками часто используемых команд и нескольких меню. Для загрузки программ и связи среда разработки подключается к аппаратной части Arduino.

Программа, написанная в среде Arduino IDE, называется скетч. Скетч пишется в текстовом редакторе, имеющем инструменты вырезки/вставки, поиска/замены текста. Во время сохранения и экспорта проекта в области сообщений появляются пояснения, также могут отображаться возникшие ошибки. Окно вывода текста (консоль) показывает сообщения Arduino, включающие полные отчеты об ошибках и другую информацию. Кнопки панели инструментов позволяют проверить и записать программу, создать, открыть и сохранить скетч, открыть мониторинг последовательной шины.

Основные команды Arduino IDE:

  1. New – создание нового скетча

  2. Open – открытие меню доступа ко всем скетчам в блокноте

  3. Save – сохранение нового скетча

  4. Upload to I/O Board – компилирует программный код и загружает его в устройство Arduino

  5. Serial Monitor – открытие монитора последовательной шины

Особенности среды Arduino IDE:

  1. Блокнот

Средой Arduino используется принцип блокнота: стандартное место для хранения программ (скетчей). Скетчи из блокнота открываются через меню File > Sketchbook или кнопкой Open на панели инструментов. При первом запуске программы Arduino автоматически создается директория для блокнота. Расположение блокнота меняется через диалоговое окно Preferences.

  1. Закладки, файлы и компиляция

Arduino позволяет работать с несколькими файлами скетчей (каждый открывается в отдельной закладке). Файлы кода могут быть стандартными Arduino (без расширения), файлами С (расширение *.с), файлами С++ (*.срр) или головными файлами (.h).

  1. Загрузка скетча в Arduino

Перед загрузкой скетча требуется задать необходимые параметры в меню Tools > Board и Tools > Serial Port. Платформы описываются далее по тексту. В ОС Mac последовательный порт может обозначаться как dev/tty.usbserial-1B1 (для платы USB) или /dev/tty.USA19QW1b1P1.1 (для платы последовательной шины, подключенной через адаптер Keyspan USB-to-Serial). В ОС Windows порты могут обозначаться как COM1 или COM2 (для платы последовательной шины) или COM4, COM5, COM7 и выше (для платы USB). Определение порта USB производится в поле Последовательной шины USB Диспетчера устройств Windows. В ОС Linux порты могут обозначаться как /dev/ttyUSB0, /dev/ttyUSB1.

После выбора порта и платформы необходимо нажать кнопку загрузки на панели инструментов или выбрать пункт меню File > Upload to I/O Board. Современные платформы Arduino перезагружаются автоматически перед загрузкой. На старых платформах необходимо нажать кнопку перезагрузки. На большинстве плат во время процесса будут мигать светодиоды RX и TX. Среда разработки Arduino выведет сообщение об окончании загрузки или об ошибках.

При загрузке скетча используется Загрузчик (Bootloader) Arduino, небольшая программа, загружаемая в микроконтроллер на плате. Она позволяет загружать программный код без использования дополнительных аппаратных средств. Загрузчик (Bootloader) активен в течении нескольких секунд при перезагрузке платформы и при загрузке любого из скетчей в микроконтроллер. Работа Загрузчика (Bootloader) распознается по миганию светодиода (13 пин)

  1. Платформы

Выбор платформы влияет на: параметры (напр.: скорость ЦП и скорость передачи данных), используемые при компиляции и загрузке скетчей и на настройки записи загрузчика (Bootloader) микроконтреллера. Некоторые характеристики платформ различаются только по последнему параметру (загрузка Bootloader), таким образом, даже при удачной загрузке с соответствующим выбором может потребоваться проверка различия перед записью загрузчика (Bootloader).

  1. Библиотеки

Библиотеки добавляют дополнительную функциональность скетчам, например, при работе с аппаратной частью или при обработке данных. Для использования библиотеки необходимо выбрать меню Sketch > Import Library. Одна или несколько директив #include будут размещены в начале кода скетча с последующей компиляцией библиотек и вместе со скетчем. Загрузка библиотек требует дополнительного места в памяти Arduino. Неиспользуемые библиотеки можно удалить из скетча убрав директиву #include.

На Arduino.cc имеется список библиотек. Некоторые библиотеки включены в среду разработки Arduino. Другие могут быть загружены с различных ресурсов. Для установки скачанных библиотек необходимо создать директорию «libraries» в папке блокнота и затем распаковать архив. Например, для установки библиотеки DateTime ее файлы должны находится в подпапке /libraries/DateTime папки блокнота. 

  1. Аппаратные средства других разработчиков

Поддерживаемые аппаратные средства других производителей добавляются в соответствующую подпапку папки блокнота. Устанавливаемые платформы могут включать собственные характеристики (в меню платформы), корневые библиотеки, загрузчик(Bootloader) и характеристики программатора. Для установки требуется распаковать архив в созданную папку.  Для деинсталляции данных удаляется соответствующая директория.

  1. Мониторинг последовательной шины (Serial Monitor)

Отображает данные посылаемые в платформу Arduino (плата USB или плата последовательной шины). Для отправки данных необходимо ввести текст и нажать кнопку Send или Enter. Затем выбирается скорость передачи из выпадающего списка, соответствующая значению Serial.begin в скетче. На ОС Mac или Linux платформа Arduino будет перезагружена (скетч начнется сначала) при подключении мониторинга последовательной шины.

Имеется возможность обмена информацией с платформой через программы Processing, Flash, MaxMSP и т.д.

Питание будет осуществляться с помощью источника питания Agilent/Keihtley

ИНФА В ОТЧЕТЕ ПО ПРАКТИКЕ

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