|
|
  |
Подстройка частоты, С1-ФЛ БИ |
|
|
|
Apr 6 2015, 14:24
|
Местный
  
Группа: Участник
Сообщений: 294
Регистрация: 25-09-13
Из: Н.Новгород
Пользователь №: 78 485

|
Цитата(likeasm @ Apr 6 2015, 10:56)  Пытаюсь сделать автоподстройку частоты на случай пропадания связи, чтобы приемник и передатчик не разъехались. Так если связь пропадает, как вообще подстраивать?
|
|
|
|
|
Apr 6 2015, 16:05
|
Профессионал
    
Группа: Свой
Сообщений: 1 700
Регистрация: 2-07-12
Из: дефолт-сити
Пользователь №: 72 596

|
На практике никогда не приходилось городить Holdover для С1-И. Вот много пришлось сделать разных "режимов совместимости" для встречной работы со всяким странным оборудованием - это да. Цитата приемник и передатчик не разъехались вы же понимаете что два устройства, работающих от двух разных опорных генераторов, имеющих различный собственный дрейф всё равно разъедуться, только на разную величину (в зависимости от стабильности опорников)? каков ваш критерий "разъезжания"? одно проскальзывание бита в минуту / в час / в сутки?
--------------------
провоцируем неудовлетворенных провокаторов с удовольствием.
|
|
|
|
|
Apr 6 2015, 18:23
|
Частый гость
 
Группа: Участник
Сообщений: 156
Регистрация: 15-04-10
Пользователь №: 56 673

|
Цитата(Jackov @ Apr 6 2015, 21:35)  А почему не получается подстраивать счётчик по каждому фронту сигнала? причина в кодировании сигнала
Эскизы прикрепленных изображений
|
|
|
|
|
Apr 6 2015, 18:53
|
Местный
  
Группа: Участник
Сообщений: 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) формируем строб записи.
|
|
|
|
|
Apr 6 2015, 19:22
|
Местный
  
Группа: Участник
Сообщений: 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
|
|
|
|
|
Apr 6 2015, 19:44
|
Частый гость
 
Группа: Участник
Сообщений: 156
Регистрация: 15-04-10
Пользователь №: 56 673

|
Цитата(Jackov @ Apr 6 2015, 23:22)  теперь его надо прогнать через декодировщик, и уже после него получим исходные данные. Верно, только декодер для данного типа сигнала - определение смены полярности последующего бита относительно предыдущего. Для обычного nrz кода при скорости 9600 и несущей 24M счетчик крутится от 0 до 2499. Тут канальная скорость тоже 9600 не смотря на то, что 1 бит кодируется как 01 или 10, отсюда у меня и вывод, что знакоперемену при счетчике от 0 до 1249 надо анализировать через строб.
|
|
|
|
|
Apr 7 2015, 03:07
|
Знающий
   
Группа: Участник
Сообщений: 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 лет назад(
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|