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

 
 
 
Reply to this topicStart new topic
> Подстройка частоты, С1-ФЛ БИ
likeasm
сообщение Apr 6 2015, 07:56
Сообщение #1


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

Группа: Участник
Сообщений: 156
Регистрация: 15-04-10
Пользователь №: 56 673



Помогите у кого есть опыт работы с С1-И или С1-ФЛ БИ. Пытаюсь сделать автоподстройку частоты на случай пропадания связи, чтобы приемник и передатчик не разъехались. Имею несущую clk 24M, канальная скорость 9600bit. Пускаю счетчик импульса строба записи бита от 0 до 2499, который и собираюсь подстраивать. В nrz кодировании можно было бы по заднему фронту этот счетчик обнулять, тут же БИ кодирование и я не понимаю за что зацепиться можно.
Go to the top of the page
 
+Quote Post
Jackov
сообщение Apr 6 2015, 14:24
Сообщение #2


Местный
***

Группа: Участник
Сообщений: 294
Регистрация: 25-09-13
Из: Н.Новгород
Пользователь №: 78 485



Цитата(likeasm @ Apr 6 2015, 10:56) *
Пытаюсь сделать автоподстройку частоты на случай пропадания связи, чтобы приемник и передатчик не разъехались.

Так если связь пропадает, как вообще подстраивать?
Go to the top of the page
 
+Quote Post
vadimp61
сообщение Apr 6 2015, 15:07
Сообщение #3


Знающий
****

Группа: Участник
Сообщений: 599
Регистрация: 28-08-08
Из: Ростов папа
Пользователь №: 39 872



Тут надо быстро "цепляться" когда связь появляется, и чем быстрее тем лучше.
Это не HDB3(

Сообщение отредактировал vadimp61 - Apr 6 2015, 15:08
Go to the top of the page
 
+Quote Post
likeasm
сообщение Apr 6 2015, 15:58
Сообщение #4


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

Группа: Участник
Сообщений: 156
Регистрация: 15-04-10
Пользователь №: 56 673



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

vadimp61 я полагаю вам есть чем поделиться? может чем поможете?
Go to the top of the page
 
+Quote Post
krux
сообщение Apr 6 2015, 16:05
Сообщение #5


Профессионал
*****

Группа: Свой
Сообщений: 1 700
Регистрация: 2-07-12
Из: дефолт-сити
Пользователь №: 72 596



На практике никогда не приходилось городить Holdover для С1-И.
Вот много пришлось сделать разных "режимов совместимости" для встречной работы со всяким странным оборудованием - это да.

Цитата
приемник и передатчик не разъехались

вы же понимаете что два устройства, работающих от двух разных опорных генераторов, имеющих различный собственный дрейф всё равно разъедуться, только на разную величину (в зависимости от стабильности опорников)?
каков ваш критерий "разъезжания"?
одно проскальзывание бита в минуту / в час / в сутки?


--------------------
провоцируем неудовлетворенных провокаторов с удовольствием.
Go to the top of the page
 
+Quote Post
likeasm
сообщение Apr 6 2015, 17:02
Сообщение #6


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

Группа: Участник
Сообщений: 156
Регистрация: 15-04-10
Пользователь №: 56 673



Я понимаю, что любой кварц имеет погрешность. Критерия "разъезжания" мне пока хватит секунд 10 для тестирования.

Сообщение отредактировал likeasm - Apr 6 2015, 18:24
Go to the top of the page
 
+Quote Post
Jackov
сообщение Apr 6 2015, 17:35
Сообщение #7


Местный
***

Группа: Участник
Сообщений: 294
Регистрация: 25-09-13
Из: Н.Новгород
Пользователь №: 78 485



А почему не получается подстраивать счётчик по каждому фронту сигнала?
Go to the top of the page
 
+Quote Post
likeasm
сообщение Apr 6 2015, 18:23
Сообщение #8


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

Группа: Участник
Сообщений: 156
Регистрация: 15-04-10
Пользователь №: 56 673



Цитата(Jackov @ Apr 6 2015, 21:35) *
А почему не получается подстраивать счётчик по каждому фронту сигнала?

причина в кодировании сигнала

Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
Jackov
сообщение Apr 6 2015, 18:53
Сообщение #9


Местный
***

Группа: Участник
Сообщений: 294
Регистрация: 25-09-13
Из: Н.Новгород
Пользователь №: 78 485



Цитата(likeasm @ Apr 6 2015, 21:23) *
причина в кодировании сигнала

Вся равно не вижу проблемы.
Если всё правильно понял и если не ошибся в расчётах, то получается так.
Исходный сигнал 9600 бит/с. Каждому биту, согласно кодировке, соответствует 2 импульса. Получаем 9600*2 = 19200 импульсов/с. Длительность одного импульса 1/19200 = 52,083 мкс.
Тактовая частота 24 МГц. Длительность одного такта 1/24 000 000 = 0,0417 мкс.
В одном импульсе умещается 52,083/0,0417 = 1249 тактов.
Организовываем счётчик на 1249 тактов работы, после чего он должен обнулиться и считать заново, обнулять его так же надо и по каждому фронту (спадающему и нарастающему) сигнала.
Гдето на середине счёта (1249/2 = 624) формируем строб записи.
Go to the top of the page
 
+Quote Post
krux
сообщение Apr 6 2015, 19:11
Сообщение #10


Профессионал
*****

Группа: Свой
Сообщений: 1 700
Регистрация: 2-07-12
Из: дефолт-сити
Пользователь №: 72 596



если кодирование для вас - проблема, то почитайте по ключевым словам "blind oversampling clock and data recovery"
получаемый таким образом восстановленный тактовый сигнал имеет значительный джиттер, поэтому его приходится чистить аналоговой фапч.


--------------------
провоцируем неудовлетворенных провокаторов с удовольствием.
Go to the top of the page
 
+Quote Post
likeasm
сообщение Apr 6 2015, 19:16
Сообщение #11


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

Группа: Участник
Сообщений: 156
Регистрация: 15-04-10
Пользователь №: 56 673



Jackov спасибо за логику, счетчик на половину посылки, как-то не доперло сразу. Думаю будет работать, только получается стробов больше в два раза будет, чем надо. Отсюда вывод, что их придется анализировать через один.
Go to the top of the page
 
+Quote Post
Jackov
сообщение Apr 6 2015, 19:22
Сообщение #12


Местный
***

Группа: Участник
Сообщений: 294
Регистрация: 25-09-13
Из: Н.Новгород
Пользователь №: 78 485



Цитата(krux @ Apr 6 2015, 22:11) *
если кодирование для вас - проблема, то почитайте по ключевым словам "blind oversampling clock and data recovery"
получаемый таким образом восстановленный тактовый сигнал имеет значительный джиттер, поэтому его приходится чистить аналоговой фапч.
Так мы вроде тактовый сигнал не восстанавливаем. Мы определяем моменты записи состояний импульсов. В целом, полученные стробы можно использовать как команды на задвиг в сдвиговый регистр.

Цитата(likeasm @ Apr 6 2015, 22:16) *
Jackov спасибо за логику, счетчик на половину посылки, как-то не доперло сразу. Думаю будет работать, только получается стробов больше в два раза будет, чем надо. Отсюда вывод, что их придется анализировать через один.

Скорее всего нет, стробы нужны все. Мы таким образом получили только кодированный сигнал, теперь его надо прогнать через декодировщик, и уже после него получим исходные данные.
И счётчик должен быть не на 1249, а на 1248, т.к. он считает от нуля.

Сообщение отредактировал Jackov - Apr 6 2015, 19:24
Go to the top of the page
 
+Quote Post
likeasm
сообщение Apr 6 2015, 19:44
Сообщение #13


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

Группа: Участник
Сообщений: 156
Регистрация: 15-04-10
Пользователь №: 56 673



Цитата(Jackov @ Apr 6 2015, 23:22) *
теперь его надо прогнать через декодировщик, и уже после него получим исходные данные.

Верно, только декодер для данного типа сигнала - определение смены полярности последующего бита относительно предыдущего. Для обычного nrz кода при скорости 9600 и несущей 24M счетчик крутится от 0 до 2499. Тут канальная скорость тоже 9600 не смотря на то, что 1 бит кодируется как 01 или 10, отсюда у меня и вывод, что знакоперемену при счетчике от 0 до 1249 надо анализировать через строб.
Go to the top of the page
 
+Quote Post
vadimp61
сообщение Apr 7 2015, 03:07
Сообщение #14


Знающий
****

Группа: Участник
Сообщений: 599
Регистрация: 28-08-08
Из: Ростов папа
Пользователь №: 39 872



Цитата(likeasm @ Apr 6 2015, 18:58) *
Ну вся фишка в том, чтобы держать цикловую синхронизацию в синхронном потоке данных при пропадании канала связи на некоторое время, за счет несущего генератора с низкой погрешностью и постоянной подстройкой частоты в моменты присутствия канала связи. Естественно если канал пропал на время большее, чем может удержать погрешность несущей частоты, то тут уже другой разговор.

vadimp61 я полагаю вам есть чем поделиться? может чем поможете?


Там не все так просто
;Family ; Cyclone ;
; Device ; EP1C3T144C8 ;
; Timing Models ; Final ;
; Total logic elements ; 2,681 / 2,910 ( 92 % ) ;
; Total pins ; 20 / 104 ( 19 % ) ;
; Total virtual pins ; 0 ;
; Total memory bits ; 1,280 / 59,904 ( 2 % ) ;
; Total PLLs ; 0 / 1 ( 0 % ) ;

Часть емкости конечно ушло на РСМ шину, так как данные С1-ФЛ ходили по таймслоту 64кбит потока Е1.
Этот форум посещает человек который это делал, может он подскажет.
Там была цифровая ФАПЧ с подстройкой тактовой из данных.
В качестве источника сигнала С1-ФЛ был модем К-1Б
ЗЫ. Это было 5 лет назад(
Go to the top of the page
 
+Quote Post

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

 


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


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