Opened 4 years ago
Last modified 3 years ago
#362 assigned баг
Окончание FxS не реагирует на изменение СУВ
Reported by: | san | Owned by: | anatoly |
---|---|---|---|
Priority: | высокий | Milestone: | 1 очередь |
Component: | any | Keywords: | |
Cc: | anatoly |
Description
- Создал на плате VE-02 окончание FxS
- Со стороны коммутатора TDM изменяю значение СУВа для таймслота соответствующего окончанию с 1 на 0.
- Ожидаю, что окончание перейдёт из состояния Idle в Dialtone, однако этого не происходит.
Посмотреть на это можно в блоке 192.168.1.104, VE-02 в слоте 5, окончание FXS в канале 2.
Ревизия ПО VE-02 - 24
Change History (9)
comment:1 by , 4 years ago
follow-up: 3 comment:2 by , 4 years ago
Какие будут предложения по уточнению причины? Может перезапустить её? Если заработает, то первую причину наверное можно будет исключить... Или может быть можно как-то отдельно MSP переинициализировать?
comment:3 by , 4 years ago
Replying to san:
Какие будут предложения по уточнению причины? Может перезапустить её? Если заработает, то первую причину наверное можно будет исключить...
Если под первой причиной подразумевается "нарушение сигнала FS относительно данных на шине между ПЛИС и контроллером VE-02", то не понимаю, каким образом описанный эксперимент может это исключить. По-моему не может. Мне кажется, что это можно подтвердить/опровергнуть только с помощью осциллографа...
Или может быть можно как-то отдельно MSP переинициализировать?
Можно, но для этого надо специально модифицировать программу. Штатно sip_ua при каждом старте переконфигурирует ПЛИС.
comment:4 by , 4 years ago
Можно зайти с противоположной сотоны. Если нет возможности непосредственно понаблюдать осциллографом расположение FS, можно "потревожить" внутренности ПЛИС, например попереводив ее (с помощью spictl) в режим slave и обратно в master. Или, в конце концов, вообще переконфигурировать ПЛИС без перезапуска программы. Если это "исправит" ситуацию, наверное, можно сделать вывод, что проблема в ПЛИС...
follow-up: 6 comment:5 by , 4 years ago
переконфигурировать ПЛИС без перезапуска программы. Если это "исправит" ситуацию, наверное, можно сделать вывод, что проблема в ПЛИС...
Думаю это разумно. Проведи этот эксперимент, пожалуйста.
comment:6 by , 4 years ago
Replying to san:
Думаю это разумно. Проведи этот эксперимент, пожалуйста.
Провел эксперимент: записал в регистр ПЛИС 0x105 (ms_master) значение 1, а затем вернул значение 0. В результате речевые данные и СУВ от VE-02 в SW-01 стали приходить правильно (11010101 и 1101 соответственно), СУВы от SW-01 MSP также начал воспринимать правильно.
Предполагаю, что при старте ПЛИС какой-то счетчик (?), связанный с выдачей FS, был инициализирован неправильно, в результате сигнал FS из ПЛИС выходил со сдвигом относительно данных на 1 такт. Перевод ПЛИС в режим slave и обратно в master сработал как принудительная переинициализация счетчика, что привело к устранению пробемы.
Считаю, что будет полезно пересмотреть исходник ПЛИС на предмет выдачи FS - вдруг обнаружится причина проблемы...
Также должен отметить, что эксперимент не на 100% чистый, так как при переводе в режим slave ПЛИС перестает выдавать в сторону MSP тактовую частоту и сигнал FS, переводя соответствующие линии в режим входов. Пропадание тактовой частоты могло каким-то образом повлиять на работу MSP.
comment:7 by , 4 years ago
Cc: | added |
---|
Посмотрел исходный код ПЛИС. Как оказалось, в нормальном режиме (ms_master=0) сигнал FS на контроллер платы идет прямо с кросс-платы, а не формируется внутри ПЛИС. Следовательно, сдвиг на 1 бит возникал где-то в сигналах управления сдвиговыми регистрами. Управление там сложное, сразу не разобраться...
Подключаю автора ПЛИС. Толя, посмотри, пожалуйста, где и как мог возникнуть сдвиг на 1 бит.
comment:8 by , 4 years ago
Cc: | added; removed |
---|
Ой. Ошибся в имени Толи. :)
Толя, посмотри, пожалуйста, где и как мог возникнуть сдвиг на 1 бит.
comment:9 by , 3 years ago
Owner: | changed from | to
---|---|
Status: | new → assigned |
Я здесь вряд ли чем-то еще могу помочь. Передаю тикет Анатолию.
При передаче в плату комбинации СУВ 0101 (вместо исходной 1101) в лог выводится следующее:
Первая строчка говорит о том, что CSP получил из ПЛИС нулевое значение СУВ А (то есть из кроссплаты в VE-02 изменение СУВ А действительно поступило).
Вторая строчка говорит, что MSP видит в канале комбинацию СУВ 1011 (десятичное значение 11), что не соответствует ожидаемому 0101. Так как MSP сообщает, что СУВ A (старший бит в тетраде) равен 1 (что соответствует разомкнутому абонентскому шлейфу), канальное окончание остается в состоянии
Idle
.Далее я провел еще несколько экспериментов, передавая в канал различные комбинации СУВ. Вот результаты:
Судя по результатам, MSP принимает комбинацию СУВ со сдвигом на один бит, в результате чего СУВ B видится MSP как СУВ A, а настоящий СУВ А не видится вообще.
Наличие сдвига также подтверждается тем, что плата SW-01 видит от платы VE-02 комбинации СУВ 1110 во всех каналах вместо ожидаемых 1101.
Также сдвиг на один бит наблюдается в речевых каналах - в плату SW-01 приходят комбинации 11101010 вместо ожидаемых 11010101.
В качестве причин такого поведения могу предположить следующие: