|
CMX869B automodem, не договариваются по скорости |
|
|
|
Mar 11 2014, 07:36
|
Частый гость
 
Группа: Участник
Сообщений: 92
Регистрация: 27-12-12
Из: Томск
Пользователь №: 74 999

|
Приветствую, коллеги. Завожу связь между двумя модемами 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) что я так же вижу в этом регистре.
И второй пункт зацикливается. Что делать не допераю. Может что сделать нужно, но вроде же это автоматический режим. У кого какие комментарии? Может кто что подскажет?
Сообщение отредактировал Ruslan-maniak - Mar 11 2014, 07:44
|
|
|
|
|
Mar 12 2014, 02:14
|
Знающий
   
Группа: Свой
Сообщений: 583
Регистрация: 7-06-06
Из: Таганрог
Пользователь №: 17 840

|
Цитата(Ruslan-maniak @ Mar 12 2014, 03:00)  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 по таймеру.
|
|
|
|
|
Mar 12 2014, 04:41
|
Знающий
   
Группа: Свой
Сообщений: 583
Регистрация: 7-06-06
Из: Таганрог
Пользователь №: 17 840

|
Цитата(Ruslan-maniak @ Mar 12 2014, 05:32)  Но я так полагаю что ретрэйн мне пока не интересен? Пока модем хотя бы раз не установил связь. Ведь так? Не совсем так, retrain - это принудительно заставить модем возобновить попытку соединения. Цитата Вот кстати при уровне -10.5 дБ, и происходит "carrier lost". У Вас 2-проводное соединение? Смотрите обвязку аналоговой части. На каком расстоянии включены модемы? Если на столе, то -10.5 Дб достаточно чтобы установить соединение что называется "влет" с качеством "Very good; could increase rate or retrain" или "Good". У себя наблюдаю именно такую картину.
|
|
|
|
|
Mar 12 2014, 05:08
|
Частый гость
 
Группа: Участник
Сообщений: 92
Регистрация: 27-12-12
Из: Томск
Пользователь №: 74 999

|
Да, 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(); } Задержки и проверки в коде не стал отображать.
Сообщение отредактировал Ruslan-maniak - Mar 12 2014, 05:09
|
|
|
|
|
Mar 12 2014, 07:12
|
Знающий
   
Группа: Свой
Сообщений: 583
Регистрация: 7-06-06
Из: Таганрог
Пользователь №: 17 840

|
Цитата(Ruslan-maniak @ Mar 12 2014, 08:08)  Да, 2-проводное. Просто он у меня не перестаёт устанавливать связь, по этому я и говорю что пока нужды в ретрэйне нет. Я даже осциллографом вижу на линии как секунд 6 шлётся какая-то информация, затем секунд 5 - пауза и всё по новой. И так без конца. Хорошо, посмотрю аналоговую часть. сейчас у меня, грубо говоря, код выглядит следующим образом: Можно перевести в режим TX single Tone, и измерить уровень в линии, уровень заворота, а также чувствительность приемника, если генерить, например, 2100Hz.
|
|
|
|
|
Mar 13 2014, 02:07
|
Знающий
   
Группа: Свой
Сообщений: 583
Регистрация: 7-06-06
Из: Таганрог
Пользователь №: 17 840

|
Цитата(Ruslan-maniak @ Mar 13 2014, 03:03)  Попробую раздобыть схему (там всё сложно). Да всю не надо, только участок обвязки аналоговой части. Цитата На -10.5 почти всегда на 2ой-3ей попытке настройки скорости происходит carrier lost в отвечающем модеме. Хм. Вот это и смущает.
|
|
|
|
|
Mar 14 2014, 02:16
|
Знающий
   
Группа: Свой
Сообщений: 583
Регистрация: 7-06-06
Из: Таганрог
Пользователь №: 17 840

|
Цитата(Ruslan-maniak @ Mar 14 2014, 04:25)  А кстати, по поводу ретрэйна по таймеру - это просто для профилактики связи? А с какой периодичностью вы совершаете ретрэйн? Retrain по факту не установления связи (T=120 с или если количество неподтвержденных посылок превысило порог). Если связь есть, никакого retrain. Контроль по потоку данных. Цитата И ещё один вопрос: получается модемы сами выбирают максимально возможную скорость при данном качестве связи? На то он и автомодем. Цитата Просто у меня за 10 секунд связь скатывается до 4800 Бод - наблюдаю это в QAM status регистре. Не наблюдал такого, связь стабильная 14400. Со сторонним модемом, как установилась 9600 (определяется сторонним модемом, в этом режиме он на такой же модем не поднимает выше 9600), так и стоит как вкопанная.
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|