Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Шина I2C
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
Страницы: 1, 2
aaarrr
Цитата(ReAl @ Aug 22 2008, 16:54) *
У микрочиповских однопроводных EEPROM разве не манчестер-2?

Чума. Для шестиногих PIC'ов самое то smile.gif
=GM=
Цитата(zhevak @ Aug 22 2008, 10:30) *
Его достоинство -- работать там, где нет возможности передавать постоянную составляющую, для связи МК-ПК не даст ему преимущества. А учитывая повышенную сложность его реализации, приходишь к выводу, что есть более простые решения

Ну, положим, сложность манчестера вы преувеличиваете, он сопоставим по сложности с rs232, и на порядок проще, чем тот же I2C. Преимущества очевидны, один провод, нет постоянки, посылай хоть по радио. Но самое главное преимущество - СУЩЕСТВЕННОЕ ослабление требований к стабильности клоков приёмника и передатчика. Допустима общая нестабильность 25% на ОДИН бит, в то же время в rs232 всего 5% на ДЕСЯТЬ бит, что позволяет работать на МК с внутренним генератором без калибровки.

Цитата(ReAl @ Aug 22 2008, 11:54) *
У микрочиповских однопроводных EEPROM разве не манчестер-2?

Да, он самый. Спасибо за ссылку, не знал, с удовольствием почитал. Много чего надстроили над физуровнем(:-)
aaarrr
Цитата(=GM= @ Aug 22 2008, 18:03) *
Ну, положим, сложность манчестера вы преувеличиваете, он сопоставим по сложности с rs232, и на порядок проще, чем тот же I2C.

Нет, это вы преуменьшаете. RS232 проще хотя бы потому, что приемнику не нужно восстанавливать тактовую частоту. I2C - вообще синхронная шина.

Попробуйте на МК написать слейв, работающий как микрочиповский EEPROM - в диапазоне 10-100kHz.
=GM=
Цитата(aaarrr @ Aug 22 2008, 13:11) *
RS232 проще хотя бы потому, что приемнику не нужно восстанавливать тактовую частоту

Ну, это формальный подход, на самом деле, в манчестере тоже можно обойтись без восстановления, хотя можно и восстановить если надо. Пара-тройка дополнительных строчек кода.
Цитата(aaarrr @ Aug 22 2008, 13:11) *
I2C - вообще синхронная шина

Хоть это и синхронный протокол, но гораздо сложнее манчестера. Одни старт-стопные условия замучают. Попробуйте съэмулировать с помощью АВР МК работу иипром с иис-протоколом хотя бы на скорости 400 кГц. Я знаю, о чём говорю, поскольку в своих изделиях применяю программный иис обмен на скорости 5Мбод, 200 нс такт.
Цитата(aaarrr @ Aug 22 2008, 13:11) *
Попробуйте на МК написать слейв, работающий как микрочиповский EEPROM - в диапазоне 10-100kHz

Легко, при условии, что и вы в свою очередь напишете программу приёма одного байта по рс232 для того же диапазона скоростей. Заодно и объясните всем, на каком принципе вы будете различать байты 0хF0, 0xF8, 0xFC и тому подобное. (Замечу в скобках, что код для приёма будет работать на любой скорости 10-100, несмотря на то, что скорости заявленной иипром различаются в 10 раз, а манчестер допускает увеличение скорости на интервале одного бита не более, чем на 100%.)
zltigo
Цитата(aaarrr @ Aug 22 2008, 16:11) *
..что приемнику не нужно восстанавливать тактовую частоту.

Манчестеров несколько разновидностей и в "правильной" восстановление тактовой (битовой) частоты сводится к той или иной реализации банального "одновибратора" запускаемого по фронту с длительностью приближающейся к длительности посылки бита. Естественно, это не для произвольного диапазона скоростей, а зачем в реальных реализациях произвольная скорость?
aaarrr
Цитата(=GM= @ Aug 22 2008, 19:03) *
Ну, это официозный подход, на самом деле, в манчестере тоже можно обойтись без восстановления, хотя можно и восстановить если надо. Пара-тройка дополнительных строчек кода.

Если диапазон частот 10-100, то без восстановления делать нечего. Микрочиповские EEPROM'ы восстанавливают.

Цитата(=GM= @ Aug 22 2008, 19:03) *
Хоть это и синхронный протокол, но гораздо сложнее манчестера. Одни старт-стопные условия замучают.

Очередная цитата из стандарта:
Цитата
6.2 START and STOP conditions
Within the procedure of the I2C-bus, unique situations
arise which are defined as START (S) and STOP (P)
conditions (see Fig.5).
A HIGH to LOW transition on the SDA line while SCL is
HIGH is one such unique case. This situation indicates a
START condition.
A LOW to HIGH transition on the SDA line while SCL is
HIGH defines a STOP condition.


Ну очень сложно.

Цитата(=GM= @ Aug 22 2008, 19:03) *
Попробуйте съэмулировать с помощью АВР МК работу иипром с иис-протоколом хотя бы на скорости 400 кГц. Я знаю, о чём говорю, поскольку в своих изделиях применяю программный иис обмен на скорости 5Мбод, 200 нс такт.

Во-первых, I2S или I2C? Стандарт I2C не предусматривает передачи на скоростях выше 3.4 Mbit/s. Во-вторых, вы уже продемонстрировали, что не знаете элементарных вещей, поэтому позволю себе усомниться в ваших словах.

Цитата(=GM= @ Aug 22 2008, 19:03) *
Легко, при условии, что и вы в свою очередь напишете программу приёма одного байта по рс232 для того же диапазона скоростей. Заодно и объясните всем, на каком принципе вы будете различать байты 0хF0, 0xF8, 0xFC и тому подобное.

Видите ли, стандарт RS232 не предполагает работу на плавающей скорости и не предусматривает механизмов для ее обеспечения (autobaud не в счет).

Цитата(=GM= @ Aug 22 2008, 19:03) *
(Замечу в скобках, что код для приёма будет работать на любой скорости 10-100, несмотря на то, что скорости заявленной иипром различаются в 10 раз, а манчестер допускает увеличение скорости на интервале одного бита не более, чем на 100%.)

С восстановлением тактовой по синхропоследовательности будет.
zhevak
Цитата(=GM= @ Aug 22 2008, 21:03) *
на каком принципе вы будете различать байты 0хF0, 0xF8, 0xFC и тому подобное.


1. Приемник, работающий по протоколу Манчестер-2, ре-синхронизируется при каждом принятом. Приемник, работающий по последовательному протоколу (UART), осуществляет синхронизацию в начале последовательности по приему стартового бита.
Иначе говоря, поскольку в UART синхрогнизация осуществляется один раз на 10 посылок (Start, 8 inforamtion bits and Stop), то получается, что устойчивость к стабильности частоты у UART-а на порядок ниже.

Т.е. получается вроде как Манчестер-2 более пригоден на практике. Но сейчас многие МК имеют внутренние RC-генераторы со стабильностью 2% и менее, что вполне достаточно для устойчивой связи по последовательному итерфейсу. А с другой стороны, кварцевые резонаторы не так уж дорого и стоят.
Т.е. опять-таки получается, что проблема (преимущество М-2) надумано.


2. Проблема остановки потока информации. (Например, клавиатура.) При использовании UART это решается легко. Устовие Stop на линии может длиться бесконечно долго. По условию Старт начинаем набирать байт.

Вопрос. Что мы будем делать в М-2 в такой же ситуации? По-битовая синхронизация -- это конечно хорошо. Но нужна еще и по-байтовая синхронизация, а так же не надо забывать про по-пакетную синхронизацию. Т.е. при использовании М-2 для устройств типа клавиатура, мышь или еще какой-нибудь датчик, соблюсти все виды синхронизации оказывается сложнее, чем в том же UART-е.
zltigo
Цитата(zhevak @ Aug 22 2008, 20:09) *
Т.е. получается вроде как Манчестер-2 более пригоден на практике.

На практике у них совсем разные области применения - манчестер прежде всего в синхронных потоках работает.
Rst7
Цитата
А вот интересно, почему в качестве протокола для обмена в МК (и ПК) не используется код манчестер-2?


В быту не используют wink.gif Вояки, например, очень любят MIL-STD 1553 - как раз между всякими вычислителями и прочей начинкой ездящего/летающего/плавающего оружия данные гонять.

С другой стороны - эзернет на скорости 10МБит/с - он же, манчестер-2. Тут есть проникновение в быт wink.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.