RoboBus — различия между версиями
=DeaD= (обсуждение | вклад) |
Blindman (обсуждение | вклад) (→Требования по совместимости модулей с RoboBus) |
||
Строка 86: | Строка 86: | ||
# Удовлетворяет правилам работы по протоколам обмена; | # Удовлетворяет правилам работы по протоколам обмена; | ||
+ | Термины, используемые в условиях совместимости: | ||
+ | * '''Должен''' : соблюдение условия является безусловно обязательным | ||
+ | * '''Настоятельно рекомендуется''' : допускается невыполнение условия, однако его выполнение повышает надежность функционирования шины | ||
+ | * '''Рекомендуется''' : соблюдение условия является не является обязательным, однако его выполнение расширяет возможности шины | ||
=== Максимально допустимые уровни напряжения === | === Максимально допустимые уровни напряжения === | ||
− | # На контактах питания 3.3V не менее -0.3V и не более 3.6V; | + | # На контактах питания 3.3V напряжение '''должно''' быть не менее -0.3V и не более 3.6V; |
− | # На контактах питания 5V не менее -0.3V и не более 5.5V; | + | # На контактах питания 5V напряжение '''должно''' быть не менее -0.3V и не более 5.5V; |
− | # На всех сигнальных разъемах (3-13 контакты) не менее -0.3V и не более 3.6V; | + | # На всех сигнальных разъемах (3-13 контакты) напряжение '''должно''' быть не менее -0.3V и не более 3.6V; |
=== Рабочие уровни напряжения === | === Рабочие уровни напряжения === | ||
− | # На контакте питания 3.3V | + | # На контакте питания 3.3V напряжение '''должно''' быть в диапазоне 3.0-3.6V; |
− | # На всех сигнальных разъемах (3-13 контакты) 0.0-3.6V; | + | # На всех сигнальных разъемах (3-13 контакты) напряжение '''должно''' быть в диапазоне 0.0-3.6V; |
− | # На контакте питания 5V | + | # На контакте питания 5V напряжение '''должно''' быть в диапазоне 4.5-5.5V; |
=== Требования к принципиальным схемам модулей === | === Требования к принципиальным схемам модулей === | ||
# Если модуль основан на МК типа AVR: | # Если модуль основан на МК типа AVR: | ||
− | ## Сигнал RESET от МК должен быть через джампер выведен на пин 3 системной шины; | + | ## Сигнал RESET от МК '''должен''' быть через джампер выведен на пин 3 системной шины; |
− | ## Сигнал XTAL1 от МК рекомендуется через джампер выведести на пин 7 системной шины; | + | ## Сигнал XTAL1 от МК '''рекомендуется''' через джампер выведести на пин 7 системной шины; |
− | ## Сигналы MOSI, MISO, SCK от МК должны быть выведены соответственно на пины 4-5-6 системной шины; | + | ## Сигналы MOSI, MISO, SCK от МК '''должны''' быть выведены соответственно на пины 4-5-6 системной шины; |
− | # Общая линия ввода/вывода, используемая как сигнал выбора устройства SPI, должна быть подтянута резистором 3.3 - 4.7 кОм к линии 3.3V, таким образом, что если ни одно устройство на шине не использует эту линию как выход, на ней присутствует уровень логической единицы; | + | # Общая линия ввода/вывода, используемая как сигнал выбора устройства SPI, '''должна''' быть подтянута резистором 3.3 - 4.7 кОм к линии 3.3V, таким образом, что если ни одно устройство на шине не использует эту линию как выход, на ней присутствует уровень логической единицы; |
− | # В модулях, которые могут выступать в качестве мастера I2C, линии SDA и SCL должны быть подтянуты резисторами 1 - 3,3 кОм к линии 3.3V, таким образом, что если ни одно устройство на шине не использует эту линию как выход, на ней присутствует уровень логической единицы. | + | # В модулях, которые могут выступать в качестве мастера I2C, линии SDA и SCL '''должны''' быть подтянуты резисторами 1 - 3,3 кОм к линии 3.3V, таким образом, что если ни одно устройство на шине не использует эту линию как выход, на ней присутствует уровень логической единицы. |
− | ## Для модулей которые планируются для использования только в качестве I2C-Master рекомендуется предусмотреть возможность отключения этих резисторов; | + | ## Для модулей которые планируются для использования только в качестве I2C-Master '''настоятельно рекомендуется''' предусмотреть возможность отключения этих резисторов; |
− | ## Для модулей которые планируются для частичного использования как I2C-Slave | + | ## Для модулей которые планируются для частичного использования как I2C-Slave '''должна''' быть возможность отключения этих резисторов; |
+ | # '''Настоятельно рекомендуется''' сигнальные контакты системного разъема подключать к остальной схеме модуля через резисторы сопротивлением не менее 150 Ом | ||
=== Требования по использованию общих портов ввода\вывода === | === Требования по использованию общих портов ввода\вывода === | ||
− | # Каждый модуль использующий общие порты ввода/вывода (GP0-2) должен иметь возможность установить джамперами, какие порты системного разъема используются этим модулем; | + | # Каждый модуль использующий общие порты ввода/вывода (GP0-2) '''должен''' иметь возможность установить джамперами, какие порты системного разъема используются этим модулем; |
=== Требования по соблюдению протоколов обмена === | === Требования по соблюдению протоколов обмена === | ||
− | # Модули должны поддерживать один из штатных протоколов обмена - TWI(I2C), UART или SPI, если модуль не удовлетворяет заявленному протоколу обмена то он считается несовместимым с RoboBus; | + | # Модули '''должны''' поддерживать как минимум один из штатных протоколов обмена - TWI(I2C), UART или SPI, если модуль не удовлетворяет заявленному протоколу обмена то он считается несовместимым с RoboBus; |
− | # Модули на протоколе SPI должны иметь возможность выбора линии CS из общих портов ввода\вывода, если модуль начинает отвечать на запросы при выключенной своей линии CS он считается неудовлетворяющим стандарту RoboBus; | + | # Модули на протоколе SPI '''должны''' иметь возможность выбора линии CS из общих портов ввода\вывода, если модуль начинает отвечать на запросы при выключенной своей линии CS он считается неудовлетворяющим стандарту RoboBus; |
# Активный уровень сигнала выбора устройства SPI - логический ноль; | # Активный уровень сигнала выбора устройства SPI - логический ноль; |
Версия 04:08, 14 сентября 2008
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.
- При использовании UART, должен присутствовать ровно 1 главный модуль и ровно 1 подчиненный модуль.
- При использовании I2C, должен присутствовать ровно 1 главный модуль, который выступает мастером I2C (если не в режиме Multimaster).
Использование программаторов с RoboBus-модулями
- Программатор напрямую подключаемый к шине RoboBus должен удовлетворять всем её спецификациям. Особенно внимательно стоит отнестись к уровням напряжения. При выдаче на шину сигнала выше 3.6В на любую линию кроме 5V может произойти необратимое разрушение низковольтных микросхем используемых модулей.
- Для использования программаторов которые не работают с 3.3В схемами или питаются не от схемы и выдают на сигнальные линии 5V будет необходимо изготовить адаптер.
Требования по совместимости модулей с 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 должна быть возможность отключения этих резисторов;
- Настоятельно рекомендуется сигнальные контакты системного разъема подключать к остальной схеме модуля через резисторы сопротивлением не менее 150 Ом
Требования по использованию общих портов ввода\вывода
- Каждый модуль использующий общие порты ввода/вывода (GP0-2) должен иметь возможность установить джамперами, какие порты системного разъема используются этим модулем;
Требования по соблюдению протоколов обмена
- Модули должны поддерживать как минимум один из штатных протоколов обмена - TWI(I2C), UART или SPI, если модуль не удовлетворяет заявленному протоколу обмена то он считается несовместимым с RoboBus;
- Модули на протоколе SPI должны иметь возможность выбора линии CS из общих портов ввода\вывода, если модуль начинает отвечать на запросы при выключенной своей линии CS он считается неудовлетворяющим стандарту RoboBus;
- Активный уровень сигнала выбора устройства SPI - логический ноль;