Опубликован: 24.04.2009 | Доступ: свободный | Студентов: 1190 / 366 | Оценка: 4.39 / 4.28 | Длительность: 18:45:00
Специальности: Программист
Лекция 3:

Стандарты интерфейса ввода/вывода для внешних устройств

< Лекция 2 || Лекция 3: 123456 || Лекция 4 >

Интерфейс с моторами и реле

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

Даже хотя уровни напряжения могут быть совместимыми, типичный контакт цифрового выхода, находящийся в порте В/В обеспечивает только несколько миллиампер тока, но мотору или реле могут требоваться амперы тока. Управление большой индуктивной нагрузкой, такой как мотор или реле, непосредственно из контакта цифровой логической ИС, может легко взорвать внутренний управляющий транзистор в типичной схеме цифрового вывода.

Для моторов и реле доступны специальные управляющие схемы, которые имеют более мощные транзисторы, которые предоставляют больший управляющий ток. Управляющая схема размещается между контактом обычного вывода цифровой логики и сильноточным устройством для обеспечения требуемых более высоких уровней тока. H-мост является полезным устройством, созданным для управления и реверсирования моторов постоянного тока (DC). Схемы H-моста доступны в ИС или небольших предварительно собранных модулях. H-мост содержит четыре больших мощных транзистора. Для одиночного контакта вывода можно добавить небольшую схему, используя отдельный мощный транзистор для управления устройством. Диоды иногда соединяются через нагрузку на индуктивных устройствах, таких как моторы, реле и соленоиды. Когда ток в индуктивной нагрузке отключается, то генерируется пик обратного напряжения (обратный EMF). Диод помогает рассеивать энергию и защищает управляющий транзистор.

Управление скоростью моторов DC с помощью управляющей схемы можно реализовать, изменяя время включения/выключения (рабочий цикл) его цифрового управляющего сигнала. Чтобы избежать прерывистых движений и излишнего шума, управляющий сигнал должен пульсировать с частотой несколько килогерц (значительно выше естественной частоты ответа мотора и редукторов). Многие роботы используют два управляющих мотора по одному для каждого колеса. Скорость мотора даже той же модели существенно варьируется, и синхронизация двух моторов для движения с одинаковой скоростью является трудной задачей без некоторой обратной реакции, такой как кодировщик межосевого угла.

При мгновенном реверсировании моторов DC, генерируются большие обратные напряжения EMF, которые могут создавать избыточный шум в линиях питания. Моторы также потребляют больший ток при первом запуске. В некоторых случаях генерируемый в линиях питания шум может быть достаточно сильным чтобы повредить процессор. Развязывающий конденсатор емкостью 10 -1000 микрофарад между линиями питания рядом с управляющей схемой может помочь отфильтровать шум источника питания, генерируемый при включении и выключении моторов. Обычно параллельно соединяется конденсатор емкостью 0.1 мф, чтобы фильтровать высокочастотный шум, так как диэлектрические материалы в электролитических конденсаторах не работает на высоких частотах (т.е., значение С не будет постоянным для частоты в реальных устройствах). Некоторые системы, чтобы уменьшить шум, добавляют также небольшую программную задержку по времени, когда реверсируют мотор. Мотор сначала выключается на небольшое время (100-500 мсек), прежде чем посылается команда реверсирования.

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

Сетевые интерфейсы CAN и LIN

Controller Area Network (CAN) является последовательной сетью, которая была разработана компаниями Bosch и Mercedes в середине 1980-х гг. для взаимодействия с несколькими контроллерами в автомобиле (www.can.bosch.com). Она может поддерживать скорости данных до 1Мбод и до 110 устройств. Существует два стандарта CAN, ISO 11519 имеет предел в 125 Kбод, а ISO 11898 имеет предел в 1Мбод. CAN широко используется в автомобильной промышленности, и с учетом широкой доступности микросхем поддержки CAN, ее можно также найти сегодня во многих встроенных устройствах.

Это тип шины с несколькими контроллерами с обнаружением конфликтов и арбитражем шины, похожая несколько на Ethernet. Вместо хранения адресной информации сообщения CAN содержат уникальный номер сообщения, и меньшие номера сообщений имеют более высокий приоритет, когда двум контроллерам шина требуется одновременно. Контроллеры Part-A CAN поддерживают 11-битные сообщения, а Part-B поддерживает 11 или 29-битные идентификаторы сообщений. Каждое устройство на шине проверяет номер сообщения и определяет, нужно ли ему читать сообщение с шины.

Кадр сообщения CAN 2.0A

Рис. 3.11. Кадр сообщения CAN 2.0A

Кадр сообщения CAN версии 2.0A, показанный на рисунке 3.11, состоит из семи различных битовых полей:

  • Поле Start of Frame (SOF). Значение бита "0" указывает начало кадра сообщения.
  • Поле сообщения и арбитража, содержащее 11-битный идентификатор сообщения и бит Remote Transmission Request (RTR). Бит RTR равный "0" указывает, что это сообщение является Data Frame. Значение "1" указывает, что сообщение является Remote Transmission Request. Remote Frame является запросом (чтения) одним узлом данных из некоторого другого узла на шине. Remote Frames не содержит Data Field, другое посланное в ответ сообщение будет содержать данные.
  • Управляющее поле (Control Field), содержащее шесть битов. Два самых старших бита (r0 и r1) в настоящее время не используются. Четырех-битный код длины данных (Data Length Code, DLC) указывает число байтов данных в сообщении.
  • Поле данных (Data Field) содержит от нуля до восьми байтов данных.
  • Поле циклического избыточного кода (CRC) содержит 15-битный код ошибки CRC и бит ограничитель "1".
  • Поле подтверждения (ACK), состоящее из двух битов. Бит Slot, который передается как бит "1", но в последующем перезаписывается доминантными битами, переданными из всех других узлов, которые успешно получили сообщение. Второй бит является битом ограничителем "1".
  • Поле конца кадра (EOF) состоит из семи битов "1".
  • После конца кадра следует поле приостановки (INT), состоящее из трех битов "1". После 3-битного периода INT, шина будет свободна. Новый цикл шины может начаться в любое время после периода INT.

CAN идеально подходит для приложений, которым требуется высокоскоростные передачи с короткой длиной сообщений . Она имеет более высокие скорости данных, лучше защищена от шума, и имеет дополнительное обнаружение ошибок, чем более старые последовательные стандарты, такие как RS-232. Поврежденный узел пытается также изолировать себя от шины. Используется две сигнальные линии, CAN-high и CAN-low. Они действуют в дифференциальном режиме. Провода могут иметь в длину десятки метров при самым высоких скоростях передачи, а концы шины завершаются резистором (обычно 120 ом), чтобы уменьшить отражения.

Интерфейс сети LIN

Существует также более новый более дешевый, использующий меньшее напряжение, и меньшие скорости передачи данных (20Кбод) стандарт последовательной шины, предназначенной для использования в автомобилях на уровнях ниже CAN. Она называется Локальной сетью коммутации (LIN). LIN предназначена для взаимодействия процессора подсистемы с его интеллектуальными датчиками, в то время как CAN используется для соединения подсистем вместе на более высоком уровне. LIN может поддерживаться с помощью стандартного последовательного UART и встроенного программного обеспечения микроконтроллера, или с помощью специальных ИС. LIN (ISO-9141) имеет только 1 контроллер шины, имеющий максимум до 15 подчиненных, использует только 1 сигнальный провод, и не требует кварцевых генераторов в каждом устройстве (www.lin-subbus.org).

Типичный кадр LIN, состоящий  из Synch Break, Synch Field, Identifier, Data Field и Checksum

Рис. 3.12. Типичный кадр LIN, состоящий из Synch Break, Synch Field, Identifier, Data Field и Checksum

Каждый байт данных в кадре, как видно на рисунке 3.12 следует стандартному 10-битному последовательному формату (т. е., старт-бит, восемь битов данных, стоп-бит). Кадр состоит из следующих полей:

  • Разрыв синхронизации - Sync Break (посылается контроллером LIN)
    • Как минимум 13 битов - Начало кадра
    • Поле синхронизации - Sync Field (управляющая задача LIN)
    • 1 бит - Ограничитель синхронизации
    • 0x55 (8-битные данные, старт & стоп биты) – Используется для синхронизации
  • Поле идентификатора - Identifier Field (посылается контроллером LIN)
    • 8 бит данных, старт & стоп биты
    • Биты с 0 по 3 - LIN ID
    • Биты с 4 до 5 - Управление длиной
    • Биты с 6 по 7 – Четность
  • Поле данных - Data Field (посылается подчиненным LIN) 2, 4 или 8 байтов (каждый из 8-битных данных, старт & стоп битов)
  • 8-битная контрольная сумма (посылается подчиненным LIN)

Дополнительная информация

  • Приложение E содержит информацию о назначении контактов нескольких наиболее широко используемых коннекторов В/В.
  • Книги Parallel Port Complete и Serial Port Complete, написанные Jan Axelson и опубликованные издательством Lakeview Research (www.lvr.com) содержат исчерпывающее описание использования параллельного и последовательного портов.
  • При отладке последовательного устройства, соединенного с настольным ПК, эмулятор терминала RealTerm выводит больше информации и поддерживает больше форматов данных, чем программа HyperTerminal, имеющаяся в Windows. Она доступна для свободной загрузки по адресу: http://realterm.sourceforge.net/
  • Для тестирования и отладки устройств I2C или SPI доступен дешевый адаптер USB/последовательный с I2C/SPI, который работает с RealTerm (http://i2cchip.com). Многие новые осциллографы также декодируют I2C и SPI (см. упражнение 1).
  • Технический справочник по интерфейсу оборудования IBM PS/2 корпорации IBM 1988 г. содержит исходную информацию по PS/2 для клавиатуры и мыши в главе "Клавиатура и контроллер вспомогательных устройств".
  • Книга Rapid Prototyping of Digital Systems, автора James Hamblen также содержит информацию о параллельном, последовательном и дополнительном PS/2 интерфейсах, включая скан-коды, команды, и форматы пакетов данных. Скан коды, обычно используемые в ПК, можно найти также в Web и во многих справочниках по ПК.
  • Книга Indispensable PC Hardware Book 4th Edition, автора Hans-Peter Messmer, содержит много дополнительных подробностей об унаследованном оборудовании ПК.
  • Полная спецификация I2C доступна на сайте Philips Semiconductors (www.phillipssemiconductor.com), а SMB на сайте (www.smbus.org). Руководство по Motorola MC68HC11 (www.freescale.com) и различные руководства National Semiconductor (www.national.com) содержат дополнительную информацию о SPI. Аналоговые устройства (http://www.analog.com) составляют большое разнообразие дешевых конверторов A/D и D/A с интерфейсами SPI и параллельным портом.
  • Форум USB Implementers был основан компаниями, которые разработали спецификацию USB www.usb.org.
  • Свободно доступное руководство по основам USB можно найти по адресу http://www.beyondlogic.org/usbnutshell/usb1.htm.
  • Книги USB Complete, автора Jan Axelson, и USB Design by Example, автора John Hyde, содержат дополнительную информацию по созданию устройств USB.
  • Проекты общедоступного исходного кода для CE, включающие драйверы USB Web Cam и Phidgets доступны по адресу http://msdn.microsoft.com/embedded/community/ community/CommunityProjects/.
< Лекция 2 || Лекция 3: 123456 || Лекция 4 >