Перейти к содержанию
    

Выбираем униполярный самосинхронизирующийся код

Думаю, что не ошибка :)

Прошу прощения за тавтологию, но ошибка в младшем бите будет обнаружена, т.к. есть еще "running disparity", который вы измените поменяв бит, единственное, что ошибка обнаружится только при приеме следующего слова. К тому же любая нарушающая баланс ошибка, а не только одиночная, будет обнаружена :)

 

Мне кажется, что в данном случае не обнаружиться, поскольку K28.4 не нарушает баланс. В нём одинаковое число нулей и единиц.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Мне кажется, что в данном случае не обнаружиться, поскольку K28.4 не нарушает баланс. В нём одинаковое число нулей и единиц.
Боюсь, вы всё-таки ошибаетесь: кодовая группа К28.3, которую вы привели, должна следовать после отрицательной перменной составляющей, и в результате в конце ожидается положительная переменная составляющая, поэтому следующая кодовая группа должна иметь отрицательную переменную составляющую для компенсации.

В случае возникновения ошибки и приёма кодовой группы К28.4, которую вы привели и которая также должна следовать после отрицательной переменной составляющей, ожидаться будет положительная переменная составляющая для компенсации постоянного тока.

Таким образом, ожидаться будет противоположная переменная составляющая, поэтому ошибка будет обнаружена.

Кроме того, вы привели пример на зарезервированных кодовых группах, которые автор темы волен не использовать, как их не используют и в гигабитном изернете.

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

Вот ещё пример:

D3.1 110001 1001

D4.1 110101 1001

 

Это коды уже из группы данных. Так что они точно используются.

Код D3.1 является нейтральным. Мне пока не совсем понятен механизм перехода между

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В этом примере всё аналогично предыдущему: для кодовой группы D3.1 ожидается, что следующая кодовая группа будет положительной полярностью. А для кодовой группы D4.1 ожидается, что следующая будет отрицательной. Согласен? Поэтому обнаружить ошибку не составляет труда именно по несоответствию ожидаемой и действительно принятой полярности.

Код D3.1 является нейтральным. Мне пока не совсем понятен механизм перехода между положительной и отрицательной полярностью. Переход обязательно должен производиться, или возможена передача нескольких слов без перехода ?
На одну кодовую группу одной полярности должна приходиться кодовая группа другой полярности, притом подряд несколько одной полярности, потом подряд несколько другой полярности быть не может: только одна за другой. Между разными полярностями может вставать хоть сколько нейтральных, это не изменит баланса, поэтому на них плевать.
Изменено пользователем Janna

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

... для кодовой группы D3.1 ожидается, что следующая кодовая группа будет положительной полярностью.

Мне кажется, что не _следующая будет_, а _предыдущая была_ полярность RD-...

 

Вот ещё пример:

D3.1 110001 1001

D4.1 110101 1001

Понимаете, где бы ни был использован D3.1, это будет означать, что БЫЛ "RD-", а раз в D3.1 кол-во 0-й = кол-ву 1-ц, значит и на следующем БУДЕТ "RD-"! А если вместо D3.1 будет D4.1, это будет означать, что на следующем слове БУДЕТ "RD+", т.к. в D4.1 1-ц больше...

Изменено пользователем Victor

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Провёл следственный эксперимент :-)

Последовательно включил узлы encode8/10 и decode8/10

На вход подал тестовую последовательность и получил результат

Вход: код 10, выход

0x00 0x0B9 0x00

0x23 0x263 0x23

0x24 0x26B 0x24

0x23 0x263 0x23

0x24 0x254 0x24 - смена полярности

 

А вот теперь последовательность с ошибкой

0x00 0x0B9 0x00

0x23 0x263 0x23

0x24 0x263 0x23 - вот здесь ошибка

0x23 0x263 0x23

0x24 0x254 0x24 - смена полярности

 

Привожу временную диаграмму. Сигнал code_err это признак ошибки. Видно, что он не устанавливается.

d8_in - это входной байт

d10 - байт в кодировке 8/10

d10i - байт с ошибкой

d8_out - принятый байт

post-8284-1141891947_thumb.jpg

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Провёл следственный эксперимент :-)

Последовательно включил узлы encode8/10 и decode8/10

Интересно, а откуда взялись эти узлы, на чем написаны? Можно их посмотреть? :cheers:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Эти узлы собраны кодогенератором из ISE 7.1; Они у меня работают в реальной системе.

Могу их выслать, вместе с тестовым проектом.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Последовательно включил узлы encode8/10 и decode8/10

Привожу временную диаграмму. Сигнал code_err это признак ошибки. Видно, что он не устанавливается.

Да, эксперимент показал отсутствие ошибки. Но мы выше, ранее доказали, что ошибку обнаружить можно. Таким образом, можно высказать предположение, что сам алгоритм декодера несовершенен, не на 100% соответствует стандарту. (Лично я основываюсь на IEEE802.3, часть 3)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я бы сказал по другому:

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

А то, что будут обнаружены ВСЕ одиночные ошибки, никто не обещал.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Не хотелось бы скатываться на банальные перепирательства, но теория всё-таки первична. Поэтому, если что-то в теории возможно, а практическая реализация не позволяет, то это уже недостатки лишь практической реализации. Таким образом, если уж быть совсем точным, то

Эксперимент показал, что существуют одиночные ошибки, которые не могут быть обнаружены...
...данной реализацией декодера. И ничего более. Уж не собираетесь ли вы опровергать теорию (а это очень неблагодарное занятие...)?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Эксперимент показал, что существуют одиночные ошибки, которые не могут быть обнаружены по сигналу CODE_ERR Как я понял, речь шла о

http://www.xilinx.com/ipcenter/catalog/log...ecode_8b10b.pdf

CODE_ERR, an optional output, indicates that the 10-bit symbol on the data-in bus during the rising

edge of the clock was not a valid member of the code set. Active (logic 1) represents a CODE_ERR, and

inactive (logic 0) indicates that the 10-bit code was a valid member of the code set (although other

errors may still exist).

 

По моему, достаточно ясно сказано, что CODE_ERR не обнаружит все ошибки. Однако на Вашей картинке сигнал DISP_ERR ведь показал ошибки, почему Вы этот сигнал игнорируете?

Изменено пользователем =AK=

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

о..

и я подключюсь к интересующей теме

чета с этими ошибками сильно удалились от темы..

 

вопрос о выделении клока из кодированного потока данных все еще остается открытым (для меня лично).

 

итак:

есть

xapp250 от Xilinx который предлагает, используя внешний VCO, выделять клок. Как я понял из хода дискусии этот метод не устраивает не токма меня.

есть

xapp244 от Xilinx который предлагает делать семплирование бита, но он тоже не устраивает, потому как соотношение бауд рейта и системной частоты синхронизации приемника немногим больше 1.

есть

вариант кодировки манчестером, но вдвое расширять полосу канала тоже как то не улыбается, хотя там клок выделяется железно

есть

ну и совсем уж простое решение - передавать клок рядом с данными

 

 

хочется

самый "аппетитный" вариант это, что то похожее на xapp250 тока на внутренней PLL/DCM

тогда

с кодировкой 8b/10b все понятно - она дает сбалансированное кол-во 0-й и 1-ц в потоке, вопрос правда в следующем - на сколько такой поток можно использовать на внутренних DCM-ах, скажем S3

тогда

Схемотехника № 12 • декабрь 2004. описано скремблирование данных псевдослучайной последовательностью. но там проблема основная - синхронизация передающего и приемного регистра ПСП

 

вопросы к уважаемым

все ли перечислил, или чегой то забыл??

есть ли люди которые уже решали(решили) задачу именно выделения клока?? поделитесь плз. опытом

есть ли у альтеры какая нибудь апликуха на енту тему? а то я на их сайте не ориентируюсь

 

премного дякую заранее

:))

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

с кодировкой 8b/10b все понятно - она дает сбалансированное кол-во 0-й и 1-ц в потоке, вопрос правда в следующем - на сколько такой поток можно использовать на внутренних DCM-ах, скажем S3
Поскольку чередование нулей и единиц непериодично, то простой ПЛЛ с таким не справится. Для кода 8В/10В также требуется клок рекавери сёркит. А вот для стартстопной кодировки частота стартстопных бит фиксирована, поэтому на внутренней ПЛЛ можно выделить тактовую.

ЗЫ: не знаю, что такое DCM, не знаком с терминологией, отличной от альтеровской.

Схемотехника № 12 • декабрь 2004. описано скремблирование данных псевдослучайной последовательностью. но там проблема основная - синхронизация передающего и приемного регистра ПСП
Скремблирование, кажется, уже обсуждалось. Всегда найдётся такая последовательность бит, которая в результате скремблирования даст большое число нулей или единиц, что приведёт к срыву синхронизации. (если нет избыточности кодирования)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...