Jump to content
    

Приветствую, коллеги. Завожу связь между двумя модемами cmx869B. Завёл все нужные мне протоколы в ручном режиме. А вот в автоматическом режиме с QAM модуляцией ни как. Судя по регистру QAM status, всё застопоривается когда модемы начинают договариваться о скорости обмена. Опишу что я наблюдаю на линии и в регистрах.

Есть 2 модема настроенных как Отвечающий (Answer) и Вызывающий (Calling).

1. Включаю отвечающий модем. Он начинает слать в линию тон 2100 Гц являющийся ответным и при этом в его QAM status регистре мы наблюдаем событие о том что он шлёт этот самый тон. Если в этот момент подключить к нему вызывающий модем, то в его QAM status регистре мы увидим что он детектирует этот тон. Вроде бы всё как надо. Однако через несколько секунд после включения, сигнал меняется на 2 сложенных синусоиды частотами примерно 2900 Гц и 610 Гц. И если уже с таким сигналом подключить к вызывающему модему, то ответный тон детектирован им не будет.

2. Далее, не важно с чистым ответным тоном либо с теми 2 синусоидами, в обоих модемах, и в ответном и в вызывающем в QAM status регистре по очереди возникают сообщения: детектирована V.32 преамбула (V.32 preamble detected) и Повторное начало настройки (Emergency retrain started). Оба сообщения относятся к режиму Настройки скорости (Training / Rate negotiation) что я так же вижу в этом регистре.

 

И второй пункт зацикливается. Что делать не допераю. Может что сделать нужно, но вроде же это автоматический режим. У кого какие комментарии? Может кто что подскажет?

Edited by Ruslan-maniak

Share this post


Link to post
Share on other sites

2. Далее, не важно с чистым ответным тоном либо с теми 2 синусоидами, в обоих модемах, и в ответном и в вызывающем в QAM status регистре по очереди возникают сообщения: детектирована V.32 преамбула (V.32 preamble detected) и Повторное начало настройки (Emergency retrain started). Оба сообщения относятся к режиму Настройки скорости (Training / Rate negotiation) что я так же вижу в этом регистре.

 

И второй пункт зацикливается. Что делать не допераю. Может что сделать нужно, но вроде же это автоматический режим. У кого какие комментарии? Может кто что подскажет?

 

Подробнее осветите QASR->MODE, QASR->SNR. Какие уровни у Вас заданы по приему/передаче в RMR/TMR.

Share this post


Link to post
Share on other sites

QAM status register в обоих модемах по очереди принимает следующее значение:

0b0100110000000100 (обнаружена V.32 преамбула, сигнал/шум ещё не определено, режим установления скорости (Training / Rate negotiation))

0b0101010000000100 (аварийно начата новая настройка (Emergency retrain started), сигнал/шум ещё не определено, режим установления скорости (Training / Rate negotiation))

 

Уровни приёма передачи задавал разные, но картина не менялась. Но если честно я не сильно разбираюсь в этом вопросе, если есть что посоветовать - с удовольствием выслушаю.

 

На самых низких уровнях иногда отвечающий модем выдаёт, что "carrier lost".

Edited by Ruslan-maniak

Share this post


Link to post
Share on other sites

QAM status register в обоих модемах по очереди принимает следующее значение:

0b0100110000000100 (обнаружена V.32 преамбула, сигнал/шум ещё не определено, режим установления скорости (Training / Rate negotiation))

0b0101010000000100 (аварийно начата новая настройка (Emergency retrain started), сигнал/шум ещё не определено, режим установления скорости (Training / Rate negotiation))

 

Уровни приёма передачи задавал разные, но картина не менялась. Но если честно я не сильно разбираюсь в этом вопросе, если есть что посоветовать - с удовольствием выслушаю.

 

На самых низких уровнях иногда отвечающий модем выдаёт, что "carrier lost".

 

Используется 2-проводное или 4-проводное подключение?

 

В моем случае используется 2-проводное, особое внимание настройке дифф-системы, поскольку при высоких уровнях передачи, собственный заворот забивает полезный сигнал.

Инициализация:

TMR => 0xF016; //Start-Stop -10,5 dB V.32b, V.32, V.22b, V.22 QAM AutoModem

RMR => 0xF036; //Start-Stop -10,5 dB V.32b, V.32, V.22b, V.22 QAM AutoModem

QMCR => mode_mdm ? 0x001F : 0x0017;//mode_mdm ? Answer_mode : Calling_mode

 

может дело в бите F в регистре QMCR, обратите на него внимание. "In V.32 or V.32 bis Automodem modes: If F is set to 1 a faster but less accurate echo cancellation training algorithm is used."

 

Ну и процедура retrain по таймеру.

Share this post


Link to post
Share on other sites

Но я так полагаю что ретрэйн мне пока не интересен? Пока модем хотя бы раз не установил связь. Ведь так?

 

Вот кстати при уровне -10.5 дБ, и происходит "carrier lost".

Share this post


Link to post
Share on other sites

Но я так полагаю что ретрэйн мне пока не интересен? Пока модем хотя бы раз не установил связь. Ведь так?

Не совсем так, retrain - это принудительно заставить модем возобновить попытку соединения.

Вот кстати при уровне -10.5 дБ, и происходит "carrier lost".

У Вас 2-проводное соединение? Смотрите обвязку аналоговой части. На каком расстоянии включены модемы? Если на столе, то -10.5 Дб достаточно чтобы установить соединение что называется "влет" с качеством "Very good; could increase rate or retrain" или "Good".

 

У себя наблюдаю именно такую картину.

Share this post


Link to post
Share on other sites

Да, 2-проводное. Просто он у меня не перестаёт устанавливать связь, по этому я и говорю что пока нужды в ретрэйне нет. Я даже осциллографом вижу на линии как секунд 6 шлётся какая-то информация, затем секунд 5 - пауза и всё по новой. И так без конца. Хорошо, посмотрю аналоговую часть. сейчас у меня, грубо говоря, код выглядит следующим образом:

 

    SetRegister(0xE0, 0x0180);
   
    SetRegister(0xE0, 0x0100);
   
    SetRegister(0xE1, 0xF016);

    SetRegister(0xE2, 0xF036);

    SetRegister(0xEA, 0x0017); //  SetRegister(0xEA, 0x001F);  - здесь в зависимости от модема (опрашивающий, отвечающий)

while(1)
{
   Qamstatus = GetQamModemStatusRegister();
}

Задержки и проверки в коде не стал отображать.

Edited by Ruslan-maniak

Share this post


Link to post
Share on other sites

Да, 2-проводное. Просто он у меня не перестаёт устанавливать связь, по этому я и говорю что пока нужды в ретрэйне нет. Я даже осциллографом вижу на линии как секунд 6 шлётся какая-то информация, затем секунд 5 - пауза и всё по новой. И так без конца. Хорошо, посмотрю аналоговую часть. сейчас у меня, грубо говоря, код выглядит следующим образом:

 

Можно перевести в режим TX single Tone, и измерить уровень в линии, уровень заворота, а также чувствительность приемника, если генерить, например, 2100Hz.

Share this post


Link to post
Share on other sites

Хорошо, попробую. То есть вы считаете что проблема в аналоговой линии? Просто Answer тон (2100 Гц) модем распознаёт всегда.

Share this post


Link to post
Share on other sites

Хорошо, попробую. То есть вы считаете что проблема в аналоговой линии? Просто Answer тон (2100 Гц) модем распознаёт всегда.

 

Я у себя на столе проблем с установлением соединения не наблюдал. Всегда связываются друг с другом и даже со сторонним модемом. А вот когда пытался увеличить уровень сигнала до 0 дБ (и TX и RX), то могли не договориться. Осциллограф показал что сильный заворот в дифсистеме. Вернулся на -10.5. Можете показать как производится преобразование 2<=>4 ?

Share this post


Link to post
Share on other sites

Попробую раздобыть схему (там всё сложно). На -10.5 почти всегда на 2ой-3ей попытке настройки скорости происходит carrier lost в отвечающем модеме.

Share this post


Link to post
Share on other sites

Попробую раздобыть схему (там всё сложно).

Да всю не надо, только участок обвязки аналоговой части.

На -10.5 почти всегда на 2ой-3ей попытке настройки скорости происходит carrier lost в отвечающем модеме.

Хм. Вот это и смущает.

Share this post


Link to post
Share on other sites

Да, действительно проблема была в аналоговой обвязке. Схемотехник в входном фильтре, который прямо перед RXAFB засандалил вместо 100 пФ - 100 нФ. заменили - всё заработало. Огромное спасибо.

А кстати по поводу ретрэйна по таймеру - это просто для профилактики связи? А с какой периодичностью вы совершаете ретрэйн?

И ещё один вопрос: получается модемы сами выбирают максимально возможную скорость при данном качестве связи? Просто у меня за 10 секунд связь скатывается до 4800 Бод - наблюдаю это в QAM status регистре.

Edited by Ruslan-maniak

Share this post


Link to post
Share on other sites

А кстати, по поводу ретрэйна по таймеру - это просто для профилактики связи? А с какой периодичностью вы совершаете ретрэйн?

Retrain по факту не установления связи (T=120 с или если количество неподтвержденных посылок превысило порог). Если связь есть, никакого retrain. Контроль по потоку данных.

И ещё один вопрос: получается модемы сами выбирают максимально возможную скорость при данном качестве связи?

На то он и автомодем.

Просто у меня за 10 секунд связь скатывается до 4800 Бод - наблюдаю это в QAM status регистре.

Не наблюдал такого, связь стабильная 14400. Со сторонним модемом, как установилась 9600 (определяется сторонним модемом, в этом режиме он на такой же модем не поднимает выше 9600), так и стоит как вкопанная.

Share this post


Link to post
Share on other sites

Вновь хочу поднять эту тему. Появилась цель связать по одной линии несколько этих модемов в автоматическом режиме. Взял три модема. Любые 2 из них прекрасно связываются друг с другом в автоматическом режиме. Однако если к этим 2 подрубить третий на линию. То связь мгновенно рушится и больше не восстанавливается. Связь отслеживаю по статусу автомодема, сам ничего не шлю в линию, в линии только служебное общение автомодемов. Сконфигурированы они так: 1 вызывающий (Calling) и 2 отвечающих (Answer). Кто соединял их таким способом - подскажите что я не так делаю.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...