RoboBus
Версия от 16:31, 13 сентября 2008; =DeaD= (обсуждение | вклад)
RoboBus - открытый стандарт системной шины, предназначенной для взаимодействия электронных модулей в роботехнике.
Содержание
История
Прототипом шины RoboBus является шина из проекта МиниБот. Не считая небольших оговорок RoboBus в точности повторяет шину этого проекта и отличается только четко прописанными правилами разработки модулей на этой шине, гарантирующими максимальную возможность одновременного использования любых модулей (в разумных пределах, разумеется). Дата появления первой детальной спецификации шины - 12.09.2008.
Основные особенности
- Изначально шина проектируется для схемы с главным МК и множеством подчиненных модулей, хотя в принципе есть I2C Multimaster;
- Использовано основное напряжение логического уровня 3.3В, так как на нём работает большое количество периферии (радиомодули, карты памяти, экранчики от сотовых и т.п.) и многочисленные высокопроизводительные микроконтролеры (серия AVR xmega, AVR32, ARM);
- На разъем выведены I2C(TWI), UART, SPI - все модули с этими интерфейсами могут быть прозрачно подключены к шине почти без доработок;
- Возможно программирование любого модуля через системный разъем (не надо делать на плате 2 разъема - шины и программатора);
- Возможно восстановить МК после направильного выставления FUSE-битов и наличии соотв. программатора (на разъем выведен XTAL1);
- Наиболее вероятным контроллером, который будет использоваться в модулях и под который в некоторой степени оптимизирована шина, считается AVR;
Системный разъем
В качестве системного разъема используется IDC-14.
Нумерация системного разъема указана по шлейфу, а не по контактам разъема!
Правила совместного использования модулей на шине RoboBus
Использование линий питания
- В системе допускается существование всего 1 источника очищенного питания по линии 3.3V, все остальные модули должны потреблять это питание;
- Так же не допускается существование нескольких источников очищенного питания по линии 5V.
- Общий потребляемый по линиям 3.3V и 5V ток не должен превышать 1А в каждом случае (ограничение используемых разъемов).
- Контроль за не превышением допустимого тока потребления по линиям 3.3V и 5V возложен на пользователя модулей (как и в архитектуре персонального компьютера - за требуемой мощностью источника питания следит тот кто собирает компьютер).
Использование интерфейсов SPI\I2C\UART модулями
- При наличии в системе устройств, управляемых по интерфейсу SPI, должен присутствовать ровно 1 главный модуль. Главным считается модуль, который выступает мастером SPI.
- При использовании I2C (кроме режима I2C Multimaster), должен присутствовать ровно 1 главный модуль. Главным считается модуль, который выступает мастером I2C.
- При использовании UART, должен присутствовать ровно 1 главный модуль и ровно 1 подчиненный модуль.
Требования по совместимости модулей с RoboBus
Модуль считается совместимым с шиной RoboBus, если он:
- Совместим с системным разъемом;
- Не разрушается при подаче напряжения из допустимых интервалов на соответствующие контакты разъема;
- Сам не подает на контакты разъема напряжения выходящие за рабочие рамки;
- Удовлетворяет требованиям по принципиальной схеме;
- Удовлетворять правилам использования общих портов ввода\вывода;
- Удовлетворяет правилам работы по протоколам обмена;
Максимально допустимые уровни напряжения
- На контактах питания 3.3V не менее -0.3V и не более 3.6V;
- На контактах питания 5V не менее -0.3V и не более 5.5V;
- На всех сигнальных разъемах (3-13 контакты) не менее -0.3V и не более 3.6V;
Рабочие уровни напряжения
- На контакте питания 3.3V уровень напряжения 3.0-3.6V;
- На всех сигнальных разъемах (3-13 контакты) 0.0-3.6V;
- На контакте питания 5V уровень напряжения 4.5-5.5V;
Требования к принципиальным схемам модулей
- Если модуль основан на МК типа AVR:
- Сигнал RESET от МК должен быть через джампер выведен на пин 3 системной шины;
- Сигнал XTAL1 от МК должен быть через джампер выведен на пин 7 системной шины;
- Сигналы MOSI, MISO, SCK от МК должны быть выведены соответственно на пины 4-5-6 системной шины;
- Общая линия ввода/вывода, используемая как сигнал выбора устройства SPI, должна быть подтянута резистором 3.3 - 4.7 кОм к линии 3.3V, таким образом, что если ни одно устройство на шине не использует эту линию как выход, на ней присутствует уровень логической единицы;
- В модулях, которые могут выступать в качестве мастера I2C, линии SDA и SCL должны быть подтянуты резисторами 1 - 3,3 кОм к линии 3.3V, таким образом, что если ни одно устройство на шине не использует эту линию как выход, на ней присутствует уровень логической единицы.
- Для модулей которые планируются для использования только в качестве I2C-Master рекомендуется предусмотреть возможность отключения этих резисторов;
- Для модулей которые планируются для частичного использования как I2C-Slave обязательна возможность отключения этих резисторов;
Требования по использованию общих портов ввода\вывода
- Каждый модуль использующий общие порты ввода/вывода (GP0-2) должен иметь возможность установить джамперами, какие порты системного разъема используются этим модулем;
Требования по соблюдению протоколов обмена
- Модули должны поддерживать один из штатных протоколов обмена - TWI(I2C), UART или SPI, если модуль не удовлетворяет заявленному протоколу обмена то он считается несовместимым с RoboBus;
- Модули на протоколе SPI должны иметь возможность выбора линии CS из общих портов ввода\вывода, если модуль начинает отвечать на запросы при выключенной своей линии CS он считается неудовлетворяющим стандарту RoboBus;
- Активный уровень сигнала выбора устройства SPI - логический ноль;