реклама на сайте
подробности

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> знатокам синхронных/асинхронных потоков
lutik
сообщение Dec 20 2006, 17:06
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 128
Регистрация: 30-06-04
Из: Odessa
Пользователь №: 216



доброго дня уважаемым.

есть задача такая, нужно передать асинхронный поток 9600 через 64-х килобитный тракт.
выглядет это так:
на одной стороне нужно засемплировать, ну скажкм uart, вложить семплы в один из таймслотов E1 а на другой стороне востановить.

нарвался на такие препротивнейшие грабли - если выполнять прямое семплирование, т.е. просто выдергивать из асинхронного потока по 8-мь бит и передавать через Е1, то концевая аппаратура не может подстроится под частоту передачи (ну или вернее я не могу ее подстроить) в результате наблюдается стойкое проскальзывание синхры..
а поток шифрованый.. со всеми вытекающими
sad.gif(
кто как решает такую задачу, подскажите плз.

ЗЫ:
сам я вижу решение - мерять счетчиком частоту импульсов с одной стороны и гнать это все на другую сторону..
тока чемороя много.
може кто знает проще решение


--------------------
однако..
Go to the top of the page
 
+Quote Post
Shamil
сообщение Dec 20 2006, 18:46
Сообщение #2


Частый гость
**

Группа: Свой
Сообщений: 160
Регистрация: 23-12-04
Из: Уфа
Пользователь №: 1 631



Цитата(lutik @ Dec 20 2006, 19:06) *
есть задача такая, нужно передать асинхронный поток 9600 через 64-х килобитный тракт.
выглядет это так:
на одной стороне нужно засемплировать, ну скажкм uart, вложить семплы в один из таймслотов E1 а на другой стороне востановить.


Так поток содержит стартстопные посылки (как в UART) или это непрерывный поток бит ???

Если старт-стопный метод передачи, то можно принимать по одному байту, передавать
на другую сторону в каком нибудь простеньком протоколе (позволяющем отличать
наличие значимых байт данных), а на другой стороне отдавать в формате стартстопной
посылки на скорости 9600+1e-4 (т.е. на максимально допустимой).
При этом выравнивание скоростей происходит за счет растяжки стоповых битов.

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

При этом возникает вопрос - какие у Вас заданы максимально допустимые дрожания
выходного сигнала ?

Методов передачи существует множество, но наиболее простые (наложение, SIP) дают
значительные дрожания, поэтому если требования по дрожаниям строгие (<15 % от тактового
интервала) приходиться на выходе ставить ФАПЧ (обычно цифровую ДАПФ) для подавления дрожаний, это уже посложнее будет.

Цитата(lutik @ Dec 20 2006, 19:06) *
сам я вижу решение - мерять счетчиком частоту импульсов с одной стороны и гнать это все на другую сторону..
тока чемороя много.

При строгих требованиях к дрожаниям просто не получается.
Go to the top of the page
 
+Quote Post
zltigo
сообщение Dec 20 2006, 19:42
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(lutik @ Dec 20 2006, 16:06) *
кто как решает такую задачу, подскажите плз.

Попробуйте для начала условия в которых задача решена должна быть описать. Иначе не понятно совсем sad.gif
В общем случае (плезиохронный поток вошел-вышел-забрали канальный интервал)такое решается не просто. Почитайте, например, о классической железке FALC56 там как-раз джентельменский набор для УСПЕШНОГО решения подобных задач в РАЗНООБРАЗНЫХ условиях - Фреймер, HDLC контроллер....В каких-то очень частных случаях можно и какую-нибудь приблуду изобретать.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
Oldring
сообщение Dec 20 2006, 20:00
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 3 041
Регистрация: 10-01-05
Из: Москва
Пользователь №: 1 874



Входной поток асинхронный по условию с максимальной скоростью сильно меньше скорости канала. Человек, очевидно, просто не знает как передавать признак отсутствия байта. Например, постоянно в состоянии ожидания передавать нуль, а перед каждым байтом данных передавать 1. И не забыть, что E1 не гарантирует доставку.


--------------------
Пишите в личку.
Go to the top of the page
 
+Quote Post
zltigo
сообщение Dec 20 2006, 20:56
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(Oldring @ Dec 20 2006, 19:00) *
Человек, очевидно, просто не знает как передавать признак отсутствия байта.

Для начала, начните с начала smile.gif Кроме 9600 UART имеем 2 входых потока 2Mbit и два выходных потока 2Mbit. Частоты и фазы в общем случае отличаются. Ну джиттер, слипы само собой имеют место быть.
Задача синхронизироваься и держать цикловую (и сверхцикловую?) синхронизацию, выделить в потоках указанный таймслот вынуть-вставить битики.
Ну а уж как пустые биты/фреймы передавать уже дело если и не десятое, то уж не первое. Если организуется битовый поток, то волшебное слово называется HDLC протокол, если сможете байтовый организовать, то SLIP протокол.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
lutik
сообщение Dec 20 2006, 21:07
Сообщение #6


Частый гость
**

Группа: Свой
Сообщений: 128
Регистрация: 30-06-04
Из: Odessa
Пользователь №: 216



Цитата
Попробуйте для начала условия в которых задача решена должна быть описать. Иначе не понятно совсем sad.gif

описывается задача примерно так:
есть асинхронный поток С1-ФЛ-БИ генерируемый устройством, которое нельзя не то что в схеме увидеть а даже на приборную его панель нельзя взглянуть.
есть плата в составе пиз!"№;тенного монстра коммутатора Е1. на плате есть пару микрух которые физику на С1 обеспечивают и альтера. на альтеру заходит Е1 2.048Мбит в один из таймслотов которого мне нужно положить сампленые отсчеты.
с другой стороны их (отсчеты) нужно извлечь и в С1 запихать.

Цитата
Почитайте, например, о классической железке FALC56 там как-раз джентельменский набор для УСПЕШНОГО решения подобных задач в РАЗНООБРАЗНЫХ условиях - Фреймер, HDLC контроллер

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

извиняюсь за мат..
но других слов нет

Цитата
В каких-то очень частных случаях можно и какую-нибудь приблуду изобретать.

случай, я бы сказал, исключительно частный

ЗЫ:
одна из функций этой платы (уже слава богу реализованых) - передача по Е1 телеграфных каналов (50-75 бод)
smile.gif)))))))))))))))

Цитата(Oldring @ Dec 20 2006, 19:00) *
Человек, очевидно, просто не знает как передавать признак отсутствия байта.

не знаю. с телефонией недавно работаю

Цитата(zltigo @ Dec 20 2006, 21:56) *
Для начала, начните с начала smile.gif Кроме 9600 UART имеем 2 входых потока 2Mbit и два выходных потока 2Mbit. Частоты и фазы в общем случае отличаются. Ну джиттер, слипы само собой имеют место быть.
Задача синхронизироваься и держать цикловую (и сверхцикловую?) синхронизацию, выделить в потоках указанный таймслот вынуть-вставить битики.

но не на столько стобы совсем уж smile.gif) .. сделано это давно

Цитата(zltigo @ Dec 20 2006, 21:56) *
Ну а уж как пустые биты/фреймы передавать уже дело если и не десятое, то уж не первое.

эт кому как. не сильно я се представляю как это делается и с какой стороны глюков ждать


--------------------
однако..
Go to the top of the page
 
+Quote Post
Oldring
сообщение Dec 20 2006, 21:13
Сообщение #7


Гуру
******

Группа: Свой
Сообщений: 3 041
Регистрация: 10-01-05
Из: Москва
Пользователь №: 1 874



Цитата(zltigo @ Dec 20 2006, 20:56) *
Для начала, начните с начала smile.gif Кроме 9600 UART имеем 2 входых потока 2Mbit и два выходных потока 2Mbit.


Интересно, откуда такое начало про 2 входных потока и 2 выходных? У автора про это ни слова. Кроме того, так как он уже говорит про "вложить семплы в один из таймслотов E1 а на другой стороне востановить" - значит у него есть железяка, которая берет байтики с локальной шины или какого-то внутреннего линка и засовывает их в E1, обеспечивая всю необходимую синхрнизацию. А слово HDLC я вообще-то тоже знаю - только зачем человека пугать?


--------------------
Пишите в личку.
Go to the top of the page
 
+Quote Post
zltigo
сообщение Dec 20 2006, 23:13
Сообщение #8


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(Oldring @ Dec 20 2006, 20:13) *
Интересно, откуда такое начало про 2 входных потока и 2 выходных?

А как Вы собираетесь физически подключаться? Параллельно smile.gif Или предполагаете, что на железку
приходит 2Mbit и терминиируется в 9600? Слишком шикарно, для реальных систем.
Цитата
значит у него есть железяка, которая берет байтики с локальной шины или какого-то внутреннего линка и засовывает их в E1, обеспечивая всю необходимую синхрнизацию.

Похоже именно этого у него и нет - была-бы и вопроса не было. Есть похоже есть какая-то "радиолюбительская" конструкция сделанная по первому наитию.
Цитата
А слово HDLC я вообще-то тоже знаю - только зачем человека пугать?

А чего пугать-то - возьмет фреймер и будет HDLC контроллер "в подарок".

Цитата(lutik @ Dec 20 2006, 20:07) *
есть плата в составе пиз!"№;тенного монстра коммутатора Е1. на плате есть пару микрух которые физику на С1 обеспечивают и альтера. на альтеру заходит Е1 2.048Мбит в один из таймслотов которого мне нужно положить сампленые отсчеты.

Если думаете, что словосочетание "пару микрух" объяснило с чем имеем дело, то Вы ошибаетесь sad.gif.
Одно понятно, что "заходит" скорее всего не E1, а что-то типа TDM - прием+передача+клок+фреймселест. Да?


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
Oldring
сообщение Dec 20 2006, 23:20
Сообщение #9


Гуру
******

Группа: Свой
Сообщений: 3 041
Регистрация: 10-01-05
Из: Москва
Пользователь №: 1 874



Цитата(zltigo @ Dec 20 2006, 23:13) *
А как Вы собираетесь физически подключаться? Параллельно smile.gif Или предполагаете, что на железку
приходит 2Mbit и терминиируется в 9600? Слишком шикарно, для реальных систем.
...
А чего пугать-то - возьмет фреймер и будет HDLC контроллер "в подарок".


Насколько я понял его последнее объяснение - непосредственно с E1 он не работает. И вообще, он вроде бы с самого начала писал про один слот E1, а не про E1. Про то как он в него будет что-то запихивать - он ничего не писал. А использовать штатный HDLC контроллер фреймера ради 9600 - тоже слишком жирно. Скорее всего он и так используется, но для других целей. biggrin.gif


--------------------
Пишите в личку.
Go to the top of the page
 
+Quote Post
zltigo
сообщение Dec 20 2006, 23:27
Сообщение #10


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(Oldring @ Dec 20 2006, 22:20) *
И вообще, он вроде бы с самого начала писал про один слот E1, а не про E1.

Короче - пока имеем в качестве описания "пару микрух", "Altera" и "E1", причем "E1" скорее всего имеет косвенное отношение к делу.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
lutik
сообщение Dec 21 2006, 00:07
Сообщение #11


Частый гость
**

Группа: Свой
Сообщений: 128
Регистрация: 30-06-04
Из: Odessa
Пользователь №: 216



Цитата(zltigo @ Dec 21 2006, 00:27) *
Цитата(Oldring @ Dec 20 2006, 22:20) *

И вообще, он вроде бы с самого начала писал про один слот E1, а не про E1.

Короче - пока имеем в качестве описания "пару микрух", "Altera" и "E1", причем "E1" скорее всего имеет косвенное отношение к делу.


вобщем Е1 действительно имеет косвенное отношение к делу.
ко мне на плату приходит локальный линк который потом мапится в групповой Е1.

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


--------------------
однако..
Go to the top of the page
 
+Quote Post
Partisan
сообщение Dec 21 2006, 09:37
Сообщение #12


Участник
*

Группа: Новичок
Сообщений: 19
Регистрация: 11-05-06
Пользователь №: 16 983



Прочитайте книгу "Синхронизация в телекоммуникационных системах" С.М. Сухмана, А.В. Бернова, Б.В. Шевкопляса.
http://www.zelax.ru/support/library
В частности, главу 4 - Проскальзывания синхронизации
Go to the top of the page
 
+Quote Post
tegumay
сообщение Dec 22 2006, 00:01
Сообщение #13


Местный
***

Группа: Свой
Сообщений: 264
Регистрация: 16-09-05
Из: Москва
Пользователь №: 8 640



хорошая глава =) читал


--------------------
;X
Go to the top of the page
 
+Quote Post
Волощенко
сообщение Dec 22 2006, 10:12
Сообщение #14


Местный
***

Группа: Свой
Сообщений: 347
Регистрация: 16-02-06
Из: г.Николаев, Украина
Пользователь №: 14 377



Не знаю, подойдет ли это Вам, но у нас эта проблема была решена в "железе", именно для 9600 в 64кбит.
Цепочка схем такая: RS-232, Mega128, преобразователь 8 параллельных бит в ST-BUS (последовательный поток) на MT8920, фреймер МТ9075, тракт ИКМ, ну а потом все тоже, только в обратном порядке. Основная задача всего изделия - это ИКМ30, а RS-232 как дополнительная функция для дистанционного мониторинга по RS-232.
Суть такова. На двух Mega128 к основному был добавлен еще такой алгоритм для обработки потоков от RS232 (благо соотношение скоростей 9600 и 64кбит это позволяло). Поступившие в Mega128 входные 8 бит делились на две тетрады, каждая из которых помечалась-слаживалась с 4-битным признаком первой и второй тетрады, затем они, как два байта, последовательно вставлялись в поток в соседние фреймы. Когда информации нет, то во фрейм передавался байт с признаком об ее отсутствии. Противоположная Mega128, опрашивает выделенный тайм-слот из фрейма, все это разворачивает, выделяет байт и сразу передает его в RS-232. Вот и все.
То есть синхронизировать ничего не потребовалось. Таким же образом передавали и на скорости 19200. Все это работает уже почти три года в составе ИКМ30.
Если у Вас иное схемное обрамление, то, возможно, придется применить CPLD. Удачи.

к Partisan спасибо за ссылку на книгу и на zelax.

Сообщение отредактировал Волощенко - Dec 22 2006, 10:36
Go to the top of the page
 
+Quote Post
tocha
сообщение Dec 22 2006, 13:56
Сообщение #15


Частый гость
**

Группа: Свой
Сообщений: 92
Регистрация: 16-05-05
Из: Kiev
Пользователь №: 5 080



Делал так.
На приёмной и передающей стороне ставится Fifo для выравнивания скоростей и передаваётся информацию о скорости на удалённую сторону. Там восстанавливается скорость и в С1.
Р.С. ГБшники приносили свою аппаратуру со стыком С1 - всё работало. Очень удивились. smile.gif
Go to the top of the page
 
+Quote Post

2 страниц V   1 2 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th July 2025 - 03:44
Рейтинг@Mail.ru


Страница сгенерированна за 0.01467 секунд с 7
ELECTRONIX ©2004-2016