Opened 2 years ago

Last modified 2 years ago

#393 new задача

Реализовать в ПЛИС платы VE-02 работу с СУВ платы EM01

Reported by: alx Owned by: anatoly
Priority: высокий Milestone: 1 очередь
Component: VE-02 Keywords:
Cc: san

Description

В настоящее время в ПЛИС платы VE-02 имеется поддержка модуля EM01 в части работы с речевым каналом (EM01 используется для организации канала ТЧ). Теперь начальником поставлена задача расширить используемые функции модуля EM01 (добавить поддержку сигнализации E&M), для чего требуется возможность работы не только с речевым каналом, но и с каналом СУВ.

В связи с описанной выше задачей требуется реализовать в ПЛИС платы VE-02 работу с СУВ платы EM01. В плате EM01 работа с СУВ производится посредством кофидека TP3070. Плата имеет два входа и два выхода СУВ (два канала СУВ):

  • вход СУВ 1 передается на вывод 26 (IL0) кофидека;
  • вход СУВ 2 передается на вывод 25 (IL1) кофидека;
  • сигнал с вывода 7 (IL2) кофидека передается на выход СУВ 1;
  • сигнал с вывода 6 (IL3) кофидека передается на выход СУВ 1;

Доступ к указанным выше входам/выходам кофидека осуществляется через интерфейс SPI, подключенный к выводам ПЛИС платы VE-02 следующим образом:

сигнал Вывод кофидека Вывод ПЛИС (модуль 1) Вывод ПЛИС (модуль 2)
CLK 13 C8 N13
CS 14 E9 K15
MISO 11 E8 P11
MOSI 12 C11 C11

Примечание: входы MOSI обоих модулей подключены к одной и той же цепи

Даташит на кофидек лежит в xchange\alx\tp3070vg.pdf.

Требуется:

  • периодически, не реже 1 раза в 2 мс читать из кофидека по шине SPI входное значение СУВ 1 и передавать его в позиции цикла, соответствующей СУВ A соответствующего модуля, по внутренней шине TMD в контроллер платы VE-02;
  • принимать по внутренней шине TDM от контроллера значение СУВ A и при каждом его изменении (либо периодически не реже 1 раза в 2 мс) записывать это значение в кофидек соответствующего модуля для вывода в СУВ 1.

СУВ 2 для данной задачи не требуется, но если это не трудно, возможно, будет полезно на всякий случай (на будущее) иметь поддержку и СУВ 2 тоже.

Change History (5)

comment:1 by alx, 2 years ago

Проверил переданную мне прошивку (xchange/alx/VE-02/PLD/v9/VE_02.rbf).

В направлении от входа в EM01 в шину TDM СУВ работает нормально.

В направлении из шины TDM на выход в порт EM01 СУВ передается с инверсией: при значении СУВ "1" в канале TDM выход порта замкнут на "землю". При значении СУВ "0" в канале TDM выход порта разомкнут. А должно быть наоборот - выход должен замыкаться на "землю" при значении СУВ "0". Прошу прощения за то, что изначально упустил этот момент в описании задачи.

Прошу проинвертировать СУВ в направлении из TDM на выход порта EM01.

comment:2 by alx, 2 years ago

Проверил новую переданную мне прошивку (xchange/alx/VE-02/PLD/v9/VE_02.rbf).

СУВ в направлении от TDM на выход EM01 теперь передается в правильной полярности.

Однако я обнаружил новую проблему. При постановке задачи я забыл упомянуть о том, что передача импульсов набора номера в каналах СУВ A также реализована в ПЛИС, и надо учитывать это при передаче СУВ в плату EM01.

Импульсы набора номера, генерируемые ПЛИС, накладываются на СУВ, который выдает контроллер по внутренней шине TDM, по XOR (см. cas_inversion в файле tdm_switch.pdf).

По идее, генерация импульсов набора номера должна работать для платы FO01, но я не помню, проверялось ли это вообще когда-либо. Возможно, что она не работала с самого начала существования платы VE-02...

Last edited 2 years ago by alx (previous) (diff)

comment:3 by alx, 2 years ago

Забегая немного вперед: также надо реализовать функцию CAS freez (см. cas_freez в файле tdm_switch.pdf): при единице в cas_freez СУВ А в направлении платы EM01 не должен обновляться (должен сохранять старое значение).

comment:4 by alx, 2 years ago

Проверил новую переданную мне прошивку (xchange/alx/VE-02/PLD/v9/VE_02.rbf).

К сожалению, стало хуже: генерация импульсов в направлении платы EM01 не заработала, но при этом пропала передача СУВ из шины TDM в плату EM01.

comment:5 by alx, 2 years ago

Проверил новую переданную мне прошивку (xchange/alx/VE-02/PLD/v9/VE_02.rbf).

Кажется, теперь все работает правильно.

Note: See TracTickets for help on using tickets.