Ruslan-maniak 0 March 11, 2014 Posted March 11, 2014 (edited) · Report post Приветствую, коллеги. Завожу связь между двумя модемами 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 March 11, 2014 by Ruslan-maniak Quote Share this post Link to post Share on other sites More sharing options...
DmitryM 0 March 11, 2014 Posted March 11, 2014 · Report post 2. Далее, не важно с чистым ответным тоном либо с теми 2 синусоидами, в обоих модемах, и в ответном и в вызывающем в QAM status регистре по очереди возникают сообщения: детектирована V.32 преамбула (V.32 preamble detected) и Повторное начало настройки (Emergency retrain started). Оба сообщения относятся к режиму Настройки скорости (Training / Rate negotiation) что я так же вижу в этом регистре. И второй пункт зацикливается. Что делать не допераю. Может что сделать нужно, но вроде же это автоматический режим. У кого какие комментарии? Может кто что подскажет? Подробнее осветите QASR->MODE, QASR->SNR. Какие уровни у Вас заданы по приему/передаче в RMR/TMR. Quote Share this post Link to post Share on other sites More sharing options...
Ruslan-maniak 0 March 12, 2014 Posted March 12, 2014 (edited) · Report post QAM status register в обоих модемах по очереди принимает следующее значение: 0b0100110000000100 (обнаружена V.32 преамбула, сигнал/шум ещё не определено, режим установления скорости (Training / Rate negotiation)) 0b0101010000000100 (аварийно начата новая настройка (Emergency retrain started), сигнал/шум ещё не определено, режим установления скорости (Training / Rate negotiation)) Уровни приёма передачи задавал разные, но картина не менялась. Но если честно я не сильно разбираюсь в этом вопросе, если есть что посоветовать - с удовольствием выслушаю. На самых низких уровнях иногда отвечающий модем выдаёт, что "carrier lost". Edited March 12, 2014 by Ruslan-maniak Quote Share this post Link to post Share on other sites More sharing options...
DmitryM 0 March 12, 2014 Posted March 12, 2014 · Report post 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 по таймеру. Quote Share this post Link to post Share on other sites More sharing options...
Ruslan-maniak 0 March 12, 2014 Posted March 12, 2014 · Report post Но я так полагаю что ретрэйн мне пока не интересен? Пока модем хотя бы раз не установил связь. Ведь так? Вот кстати при уровне -10.5 дБ, и происходит "carrier lost". Quote Share this post Link to post Share on other sites More sharing options...
DmitryM 0 March 12, 2014 Posted March 12, 2014 · Report post Но я так полагаю что ретрэйн мне пока не интересен? Пока модем хотя бы раз не установил связь. Ведь так? Не совсем так, retrain - это принудительно заставить модем возобновить попытку соединения. Вот кстати при уровне -10.5 дБ, и происходит "carrier lost". У Вас 2-проводное соединение? Смотрите обвязку аналоговой части. На каком расстоянии включены модемы? Если на столе, то -10.5 Дб достаточно чтобы установить соединение что называется "влет" с качеством "Very good; could increase rate or retrain" или "Good". У себя наблюдаю именно такую картину. Quote Share this post Link to post Share on other sites More sharing options...
Ruslan-maniak 0 March 12, 2014 Posted March 12, 2014 (edited) · Report post Да, 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 March 12, 2014 by Ruslan-maniak Quote Share this post Link to post Share on other sites More sharing options...
DmitryM 0 March 12, 2014 Posted March 12, 2014 · Report post Да, 2-проводное. Просто он у меня не перестаёт устанавливать связь, по этому я и говорю что пока нужды в ретрэйне нет. Я даже осциллографом вижу на линии как секунд 6 шлётся какая-то информация, затем секунд 5 - пауза и всё по новой. И так без конца. Хорошо, посмотрю аналоговую часть. сейчас у меня, грубо говоря, код выглядит следующим образом: Можно перевести в режим TX single Tone, и измерить уровень в линии, уровень заворота, а также чувствительность приемника, если генерить, например, 2100Hz. Quote Share this post Link to post Share on other sites More sharing options...
Ruslan-maniak 0 March 12, 2014 Posted March 12, 2014 · Report post Хорошо, попробую. То есть вы считаете что проблема в аналоговой линии? Просто Answer тон (2100 Гц) модем распознаёт всегда. Quote Share this post Link to post Share on other sites More sharing options...
DmitryM 0 March 12, 2014 Posted March 12, 2014 · Report post Хорошо, попробую. То есть вы считаете что проблема в аналоговой линии? Просто Answer тон (2100 Гц) модем распознаёт всегда. Я у себя на столе проблем с установлением соединения не наблюдал. Всегда связываются друг с другом и даже со сторонним модемом. А вот когда пытался увеличить уровень сигнала до 0 дБ (и TX и RX), то могли не договориться. Осциллограф показал что сильный заворот в дифсистеме. Вернулся на -10.5. Можете показать как производится преобразование 2<=>4 ? Quote Share this post Link to post Share on other sites More sharing options...
Ruslan-maniak 0 March 13, 2014 Posted March 13, 2014 · Report post Попробую раздобыть схему (там всё сложно). На -10.5 почти всегда на 2ой-3ей попытке настройки скорости происходит carrier lost в отвечающем модеме. Quote Share this post Link to post Share on other sites More sharing options...
DmitryM 0 March 13, 2014 Posted March 13, 2014 · Report post Попробую раздобыть схему (там всё сложно). Да всю не надо, только участок обвязки аналоговой части. На -10.5 почти всегда на 2ой-3ей попытке настройки скорости происходит carrier lost в отвечающем модеме. Хм. Вот это и смущает. Quote Share this post Link to post Share on other sites More sharing options...
Ruslan-maniak 0 March 14, 2014 Posted March 14, 2014 (edited) · Report post Да, действительно проблема была в аналоговой обвязке. Схемотехник в входном фильтре, который прямо перед RXAFB засандалил вместо 100 пФ - 100 нФ. заменили - всё заработало. Огромное спасибо. А кстати по поводу ретрэйна по таймеру - это просто для профилактики связи? А с какой периодичностью вы совершаете ретрэйн? И ещё один вопрос: получается модемы сами выбирают максимально возможную скорость при данном качестве связи? Просто у меня за 10 секунд связь скатывается до 4800 Бод - наблюдаю это в QAM status регистре. Edited March 14, 2014 by Ruslan-maniak Quote Share this post Link to post Share on other sites More sharing options...
DmitryM 0 March 14, 2014 Posted March 14, 2014 · Report post А кстати, по поводу ретрэйна по таймеру - это просто для профилактики связи? А с какой периодичностью вы совершаете ретрэйн? Retrain по факту не установления связи (T=120 с или если количество неподтвержденных посылок превысило порог). Если связь есть, никакого retrain. Контроль по потоку данных. И ещё один вопрос: получается модемы сами выбирают максимально возможную скорость при данном качестве связи? На то он и автомодем. Просто у меня за 10 секунд связь скатывается до 4800 Бод - наблюдаю это в QAM status регистре. Не наблюдал такого, связь стабильная 14400. Со сторонним модемом, как установилась 9600 (определяется сторонним модемом, в этом режиме он на такой же модем не поднимает выше 9600), так и стоит как вкопанная. Quote Share this post Link to post Share on other sites More sharing options...
Ruslan-maniak 0 May 8, 2014 Posted May 8, 2014 · Report post Вновь хочу поднять эту тему. Появилась цель связать по одной линии несколько этих модемов в автоматическом режиме. Взял три модема. Любые 2 из них прекрасно связываются друг с другом в автоматическом режиме. Однако если к этим 2 подрубить третий на линию. То связь мгновенно рушится и больше не восстанавливается. Связь отслеживаю по статусу автомодема, сам ничего не шлю в линию, в линии только служебное общение автомодемов. Сконфигурированы они так: 1 вызывающий (Calling) и 2 отвечающих (Answer). Кто соединял их таким способом - подскажите что я не так делаю. Quote Share this post Link to post Share on other sites More sharing options...