v4orb2.wiki

описание пикапов и диссектора ВЭПП3-4
git clone http://www.inp.nsk.su/~bekhte/v4orb2.wiki.git
Log | Files | Refs

commit e37f1d46950aa746c6c0e2a3861a3c2f85e977d9
parent 69fadf8de96303aa68f6c74a74a93b2254fd338c
Author: E.A.Bekhtenev <E.A.Bekhtenev@inp.nsk.su>
Date:   Wed Sep 14 17:32:31 +0700

add psv3udp

Diffstat:
psv3udp.img/image001.png | 0
psv3udp.img/image002.png | 0
psv3udp.img/image003.png | 0
psv3udp.img/image004.png | 0
psv3udp.img/image005.png | 0
psv3udp.img/image006.png | 0
psv3udp.img/image007.png | 0
psv3udp.img/image008.png | 0
psv3udp.img/image009.png | 0
psv3udp.img/image010.png | 0
psv3udp.img/image011.png | 0
psv3udp.img/image012.png | 0
psv3udp.img/image013.png | 0
psv3udp.img/image014.png | 0
psv3udp.img/image016.png | 0
psv3udp.img/image017.png | 0
psv3udp.img/image018.png | 0
psv3udp.img/image019.png | 0
psv3udp.img/image020.png | 0
psv3udp.img/image021.png | 0
psv3udp.img/image023.png | 0
psv3udp.img/image024.png | 0
psv3udp.md | 1964+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
23 files changed, 1964 insertions(+), 0 deletions(-)
diff --git a/psv3udp.img/image001.png b/psv3udp.img/image001.png Binary files differ. diff --git a/psv3udp.img/image002.png b/psv3udp.img/image002.png Binary files differ. diff --git a/psv3udp.img/image003.png b/psv3udp.img/image003.png Binary files differ. diff --git a/psv3udp.img/image004.png b/psv3udp.img/image004.png Binary files differ. diff --git a/psv3udp.img/image005.png b/psv3udp.img/image005.png Binary files differ. diff --git a/psv3udp.img/image006.png b/psv3udp.img/image006.png Binary files differ. diff --git a/psv3udp.img/image007.png b/psv3udp.img/image007.png Binary files differ. diff --git a/psv3udp.img/image008.png b/psv3udp.img/image008.png Binary files differ. diff --git a/psv3udp.img/image009.png b/psv3udp.img/image009.png Binary files differ. diff --git a/psv3udp.img/image010.png b/psv3udp.img/image010.png Binary files differ. diff --git a/psv3udp.img/image011.png b/psv3udp.img/image011.png Binary files differ. diff --git a/psv3udp.img/image012.png b/psv3udp.img/image012.png Binary files differ. diff --git a/psv3udp.img/image013.png b/psv3udp.img/image013.png Binary files differ. diff --git a/psv3udp.img/image014.png b/psv3udp.img/image014.png Binary files differ. diff --git a/psv3udp.img/image016.png b/psv3udp.img/image016.png Binary files differ. diff --git a/psv3udp.img/image017.png b/psv3udp.img/image017.png Binary files differ. diff --git a/psv3udp.img/image018.png b/psv3udp.img/image018.png Binary files differ. diff --git a/psv3udp.img/image019.png b/psv3udp.img/image019.png Binary files differ. diff --git a/psv3udp.img/image020.png b/psv3udp.img/image020.png Binary files differ. diff --git a/psv3udp.img/image021.png b/psv3udp.img/image021.png Binary files differ. diff --git a/psv3udp.img/image023.png b/psv3udp.img/image023.png Binary files differ. diff --git a/psv3udp.img/image024.png b/psv3udp.img/image024.png Binary files differ. diff --git a/psv3udp.md b/psv3udp.md @@ -0,0 +1,1964 @@ +Title: Новая пикап-станция для ВЭПП-3 + +{{TOC}} + +# Новая пикап-станция для ВЭПП-3. + +## 1. Общее описание. + +Новый +блок электроники (или пикап-станция) +предназначен для измерения координат +пучка на основе измерения средних +значений сигналов с 4-х электродов +пикапа. Средние значения сигнала пучка +за 1 оборот дают пооборотные измерения. +Средние значения сигнала пучка за +<i>N<sub>e</sub></i>оборотов (где <i>N<sub>e</sub></i>программируется) +дают накопленные данные. Блок выполнен +в корпусе 1 U евромеханики шириной 19 +дюймов и глубиной 340 мм. К нему подводятся +4 кабеля с электродов пикапа, 3 кабеля с +синхросигналами, кабель Ethernet 100 Mb/sec и +гнездо сетевого питания 220В 50 Гц. Виды +блока со стороны передней и задней +панелей показаны на Рис.1 и 2. + + +![image001][] + +[image001]:psv3udp.img/image001.png "title" width=800px + +Рис. 1. Вид на пикап-станцию со стороны передней панели. + +![image002](psv3udp.img/image002.png) + +Рис. 2. &nbsp;Вид на пикап-станцию со стороны задней панели. + +На передней панели +находятся 3 разъема типа SMA, 3 светодиода +(2 красных и 1 зеленый) и гнездо для +подключения кабеля Ethernet. Левый SMA разъем +предназначен для + +подачи +синхросигнала с частотой ВЧ <i>F<sub>HF</sub></i>= 18<i>F<sub>0</sub></i>, +где <i>F<sub>0</sub></i>= 4.03 МГц – +частота обращения. Это синусоидальный +сигнал с частотой 72.54 МГц и амплитудой +от 0.2 В. Средний SMA разъем предназначен +для подачи синхросигнала частотой 3 Гц. +Правый SMA разъем предназначен для подачи +импульса “Впуск”, привязанный по +времени с инжекцией пучка в накопитель. +Амплитуда этих синхросигналов – от +~1.2В до ~3В. Гнездо Ethernet через кабель соединяется +с локальной сетью, частота работы 100 +Мбит/сек. Назначение светодиодов: + +- зеленый светодиод +горит при включении питания и правильном +конфигурировании FPGA; + +- средний красный +светодиод загорается, когда появляется +связь блока с Ethernet сетью (наличие “Link”); + +- левый красный светодиод +загорается во время цикла измерения. + +На задней панели +находятся 4 разъема типа SMA для соединения +с пикапом и гнездо сетевого питания +220В. Нумерация входов справа налево, +если находиться лицом к задней панели.</p> + +## 2. Принцип действия пикап-станции. + +Блок-схема пикап-станции +для ВЭПП-3 представлена на Рис.3. + +![image003](psv3udp.img/image003.png) + +Рис.3. Блок-схема пикап-станции для ВЭПП-3. + +Обработка +сигнала заключается в выделении и +измерении 18-й гармоники частоты обращения +<i>18F<sub>0</sub></i>(~72.54 МГц). +Примерный вид сигнала на входе АЦП для +одного оборота показан на Рис.4. +Длительность сигнала (на полуширине) – +примерно равна 30% периода обращения <i>T<sub>0</sub></i> + +![image004](psv3udp.img/image004.png) + +<b>Рис.4.</b> Примерный вид сигнала на входе АЦП. + + +Данный сигнал оцифровывается АЦП с частотой +дискретизации <i>28F<sub>0</sub></i>(~112.8 МГц), то +есть на каждый период обращения приходится +28 точек отсчетов АЦП. Частота сигнала +на входе АЦП за счет свертки от +дискретизации будет равна <i>28F<sub>0</sub></i> – <i>18F<sub>0</sub></i> = <i>10F<sub>0</sub></i>. +В FPGA цифровой сигнал детектируется +квадратурным синхронным детектором и +интегрируется за каждый период обращения. +Результатом являются данные пооборотных +измерений, которые записываются в память +и одновременно накапливаются (суммируются +напряжения от отдельных оборотов). +Результатом накопления являются так +называемые “медленные” (или накопленные) +данные – сумма напряжений с электрода +пикапа за <i>N<sub>e</sub></i> оборотов, +где <i>N<sub>e</sub></i> – длительность +элементарного цикла измерения в оборотах. +Величина <i>N<sub>e</sub></i> может +программироваться, максимальная величина +<i>N<sub>e</sub></i> составляет +2<sup>24</sup>. +Емкость памяти пооборотных измерений +составляет 128К оборотов. Существует +также так называемый буфер памяти +“быстрых” измерений (“Fast” data) емкостью +2К, каждая ячейка которой является суммой +напряжений с электрода пикапа за <i>N<sub>av</sub></i> оборотов, +где величина <i>N<sub>av</sub></i> программируется +в диапазоне от 1 до 2<sup>13</sup>. +Задается величина <i>N<sub>av</sub></i> кодом регистра +12. + +Матрица ключей позволяет +подключать любой из каналов обработки +сигналов к любому электроду пикапа, что +позволяет устранить влияние неодинаковости +каналов на результат измерения. +Управляется матрица ключей двухбитным +кодом <i>Sw</i>. Соответствие между номерами +каналов обработки сигналов <i>Ch </i>и +электродами пикапа <i>n </i>в зависимости +от кода состояния матрицы ключей <i>Sw</i> приведено в Таблице 1. + +Таблица 1. + +<table width="617" cellpadding="4" cellspacing="0" style="page-break-before: always"> + <col width="28"> + <col width="28"> + <col width="28"> + <col width="28"> + <col width="23"> + <col width="4184"> + <col width="28"> + <col width="28"> + <col width="28"> + <col width="24"> + <col width="4184"> + <col width="28"> + <col width="28"> + <col width="28"> + <col width="24"> + <col width="4183"> + <col width="28"> + <col width="28"> + <col width="28"> + <col width="28"> + <tr valign="top"> + <td colspan="5" width="168" style="border-top: 1px solid #000000; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0.1cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm"> + <p>Sw=0 + </p> + </td> + <td colspan="5" width="137" style="border-top: 1px solid #000000; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0.1cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm"> + <p>Sw=1 + </p> + </td> + <td colspan="5" width="137" style="border-top: 1px solid #000000; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0.1cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm"> + <p>Sw=2 + </p> + </td> + <td colspan="5" width="141" style="border: 1px solid #000000; padding: 0.1cm"> + <p>Sw=3 + </p> + </td> + </tr> + <tr valign="top"> + <td width="28" style="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm"> + <p>Ch + </p> + </td> + <td width="28" style="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm"> + <p>0 + </p> + </td> + <td width="28" style="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm"> + <p>1 + </p> + </td> + <td width="28" style="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm"> + <p>2 + </p> + </td> + <td colspan="2" width="28" style="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm"> + <p>3 + </p> + </td> + <td width="28" style="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm"> + <p>0 + </p> + </td> + <td width="28" style="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm"> + <p>1 + </p> + </td> + <td width="28" style="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm"> + <p>2 + </p> + </td> + <td colspan="2" width="28" style="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm"> + <p>3 + </p> + </td> + <td width="28" style="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm"> + <p>0 + </p> + </td> + <td width="28" style="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm"> + <p>1 + </p> + </td> + <td width="28" style="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm"> + <p>2 + </p> + </td> + <td colspan="2" width="28" style="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm"> + <p>3 + </p> + </td> + <td width="28" style="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm"> + <p>0 + </p> + </td> + <td width="28" style="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm"> + <p>1 + </p> + </td> + <td width="28" style="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm"> + <p>2 + </p> + </td> + <td width="28" style="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0.1cm"> + <p>3 + </p> + </td> + </tr> + <tr valign="top"> + <td width="28" style="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm"> + <p>n + </p> + </td> + <td width="28" style="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm"> + <p>1 + </p> + </td> + <td width="28" style="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm"> + <p>2 + </p> + </td> + <td width="28" style="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm"> + <p>3 + </p> + </td> + <td colspan="2" width="28" style="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm"> + <p>0 + </p> + </td> + <td width="28" style="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm"> + <p>0 + </p> + </td> + <td width="28" style="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm"> + <p>3 + </p> + </td> + <td width="28" style="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm"> + <p>2 + </p> + </td> + <td colspan="2" width="28" style="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm"> + <p>1 + </p> + </td> + <td width="28" style="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm"> + <p>2 + </p> + </td> + <td width="28" style="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm"> + <p>1 + </p> + </td> + <td width="28" style="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm"> + <p>0 + </p> + </td> + <td colspan="2" width="28" style="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm"> + <p>3 + </p> + </td> + <td width="28" style="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm"> + <p>3 + </p> + </td> + <td width="28" style="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm"> + <p>0 + </p> + </td> + <td width="28" style="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm"> + <p>1 + </p> + </td> + <td width="28" style="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0.1cm"> + <p>2 + </p> + </td> + </tr> + <tr> + <td width="28" style="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm"> + <p><br/> + + </p> + </td> + <td width="28" style="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm"> + <p><br/> + + </p> + </td> + <td width="28" style="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm"> + <p><br/> + + </p> + </td> + <td width="28" style="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm"> + <p><br/> + + </p> + </td> + <td width="23" style="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm"> + <p><br/> + + </p> + </td> + <td width="4184" style="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm"> + <p><br/> + + </p> + </td> + <td width="28" style="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm"> + <p><br/> + + </p> + </td> + <td width="28" style="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm"> + <p><br/> + + </p> + </td> + <td width="28" style="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm"> + <p><br/> + + </p> + </td> + <td width="24" style="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm"> + <p><br/> + + </p> + </td> + <td width="4184" style="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm"> + <p><br/> + + </p> + </td> + <td width="28" style="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm"> + <p><br/> + + </p> + </td> + <td width="28" style="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm"> + <p><br/> + + </p> + </td> + <td width="28" style="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm"> + <p><br/> + + </p> + </td> + <td width="24" style="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm"> + <p><br/> + + </p> + </td> + <td width="4183" style="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm"> + <p><br/> + + </p> + </td> + <td width="28" style="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm"> + <p><br/> + + </p> + </td> + <td width="28" style="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm"> + <p><br/> + + </p> + </td> + <td width="28" style="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm"> + <p><br/> + + </p> + </td> + <td width="28" style="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0.1cm"> + <p><br/> + + </p> + </td> + </tr> +</table> + +Существуют 2 режима +работы пикап-станции: + +1) Режим с переключением +каналов, когда периодически к каждому +из каналов по очереди подключаются +разные электроды пикапа (основной +режим). + +2) Режим без переключения +каналов (вспомогательный режим). + +Временная диаграмма +работы пикап-станции в первом режиме +показана на Рис.5. + +![image005](psv3udp.img/image005.png) + +<b>Рис.5.</b>Временная диаграмма работы пикап-станции в основном режиме. + +Полный +цикл измерения <i>T<sub>Σ</sub></i> в данном +режиме состоит из 4-х элементарных +циклов, каждому из которых соответствует +свой код состояния матрицы ключей <i>Sw</i>. +Длительность каждого элементарного +цикла <i>T<sub>e</sub></i> = <i>T<sub>0</sub></i> × <i>N<sub>e</sub></i>, +где <i>T<sub>0</sub></i> – период +обращения. Величина <i>N<sub>e</sub></i> задается +программно записью в регистры 1,2 +соответствующих кодов. + +По +окончании полного цикла измерения <i>T<sub>Σ</sub></i> накопленные +результаты измерений (16 чисел типа +<i>double </i> по +64 бит) <i>U<sub>i,j</sub></i> лежат в 16 +выходных регистрах, откуда могут быть +прочитаны и использованы для вычисления +положения пучка. Накопленные сигналы +с электродов пикапа <i>U<sub>i,j</sub></i>, +где <i>i </i> – код комбинации +ключей <i>Sw</i>(0-3), <i>j</i> – номер +канала электроники (0-3). Используя Таблицу +1 соответствия каналов и электродов +пикапа, на основе этих данных получаем +матрицу 4×4 напряжений сигналов <i>U<sub>i,n</sub></i>, +где <i>i </i> – код комбинации +ключей <i>Sw</i>(0-3), <i>n</i> номер +электрода пикапа (0-3). Таким образом, для +каждого электрода пикапа <i>n</i> по окончании +полного цикла измерений мы имеем 4 +напряжения сигнала для различных каналов +электроники <i>Ch</i>. + +Во втором режиме (без переключения каналов) +полный цикл измерения <i>T</i><i>Σ</i> состоит +только из одного элементарного цикла. +Код состояния матрицы ключей <i>Sw</i> в данном +режиме фиксированный и равен <i>M</i>, +величина <i>M</i> задается +битами 0,1 регистра 3. Данный режим задается +установкой “1” бита 0 регистра 0. Как +правило, этот режим используется для +получения большого массива пооборотных +измерений и является вспомогательным. + +## 3. Программирование пикап-станции. + + +Для приема-передачи +данных в пикап-станции реализован UDP +сервер. Сервер получает параметры, +которые записывает в соответствующие +регистры, а также команды на +выполнение/остановку измерений и +получение результатов измерений. + +Все пикап-станции имеют +фиксированный номер порта 2195. Номер +порта компьютера, с которого происходит +обращение к пикап-станции, может быть +произвольным. Именно на этот порт и +придет ответ пикап-станции. + +Из всех ICMP пакетов +пикап-станция отвечает только на PING. +Другие ICMP пакеты игнорируются. + +Основные результаты +измерений могут быть 3-х типов: + +1) Накопленные данные – 16 64-битных числа +типа <i>double</i>, +которые соответствуют сигналам с 4-х +электродов пикапа <i>U<sub>ij</sub></i> для четырех +кодов состояния матрицы ключей <i>Sw</i>, +а также 4 16-битных числа типа <i>unsigned short int</i>, которые +соответствуют максимумам сигналов в +кодах АЦП (в диапазоне 0-16383); + +2) Пооборотные данные +– 4 массива до 128К 32-битных чисел типа +<i>float</i>, которые соответствуют сигналам +с 4-х электродов пикапа. Существует +возможность накапливать в каждой точке +обоих массивов напряжения сигналов до +256 оборотов (это задается кодом в регистре 12). +Это позволяет увеличить интервал +наблюдения пучка до 3 сек и наблюдать +какие-нибудь медленные колебания пучка; + +3) “Быстрые” данные – 4 массива до 2К +32-битных чисел типа <i>float</i>, +которые соответствуют сигналам с 4-х +электродов пикапа; каждая ячейка массива +является суммой напряжений с электрода +пикапа за <i>N<sub>av</sub></i> оборотов. + +Дополнительно могут +высылаться данные АЦП (результаты +оцифровки сигнала с помощью АЦП с +частотой выборок ~112.8 МГц или осциллограммы) +– 4 массива по 128 16-битных числа типа +<i>unsigned short int</i>, которые соответствуют +сигналам с 4-х электродов пикапа. Эти +данные не нужны для штатной работы, а +используются для диагностики пикап-станции. + +Запуск измерения +пикап-станции может быть внутренним – +сразу после прихода соответствующей +команды, или внешним – по приходу одного +из двух внешних синхроимпульсов: либо +сигнала “Впуск”, привязанного к моменту +инжекции пучка (или удара по пучку), либо +синхросигнала 3 Гц. Срабатывание от этих +синхросигналов задается установкой в +“1” битов 13 или 12 регистра 0 соответственно. + +Порядок байт, используемый +при передаче данных из компьютера в +блок и обратно – big endian (от старшего +байта к младшему). Все пакеты, посылаемые +пикап-станцией, содержат байт идентификации +(байт 0), по которому можно однозначно +определить тип пакета. + +## 3.1. Описание регистров параметров. + +В Таблицах 2-12 приведено +описание регистров параметров. Всего +регистров 16 (номера 0-15). Длина каждого +регистра – 2 байта. + +<b>Таблица2. </b> Описание регистра 0 (адрес 0х00). + +<table cellpadding="4" cellspacing="0"> + <tr valign="top"> + <td width="104" style="border-top: 1px solid #000000; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0.1cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm"> + <p>Номера битов + </p> + </td> + <td width="104" style="border-top: 1px solid #000000; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0.1cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm"> + <p>1-11, 15 + </p> + </td> + <td width="104" style="border-top: 1px solid #000000; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0.1cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm"> + <p>14 + </p> + </td> + <td width="104" style="border-top: 1px solid #000000; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0.1cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm"> + <p>13</p> + </td> + <td width="104" style="border-top: 1px solid #000000; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0.1cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm"> + <p>12 + </p> + </td> + <td width="104" style="border: 1px solid #000000; padding: 0.1cm"> + <p>0 + </p> + </td> + </tr> + <tr valign="top"> + <td width="104" style="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm"> + <p>Описание + </p> + </td> + <td width="104" style="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm"> + <p>Не исполь-зуются + </p> + </td> + <td width="104" style="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm"> + <p>Включение режима “Timeback” (1 – включено) + </p> + </td> + <td width="104" style="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm"> + <p>Внутренний запуск (0) или внешний + запуск (1) измерений. + </p> + </td> + <td width="104" style="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm"> + <p>Синхронизация с частотой 3 Гц, + «1»-есть, «0»-нет + </p> + </td> + <td width="104" style="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0.1cm"> + <p>Выключение режима переключения + ключами (1) + </p> + </td> + </tr> +</table> + + +Если бит 0 регистра 0 +равен “0”, то работа осуществляется в +соответствии с Рис.5 (основной режим). +Если бит 0 регистра 0 равен “1”, то +выполняется только один элементарный +цикл с фиксированным кодом <i>Sw</i>, +задаваемым кодом регистра 3. + +<b>Таблица 3. </b> Описание регистра 1 (адрес 0х01). + +<table cellpadding="4" cellspacing="0"> + <tr valign="top"> + <td width="209" style="border-top: 1px solid #000000; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0.1cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm"> + <p>Номера битов + </p> + </td> + <td width="209" style="border-top: 1px solid #000000; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0.1cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm"> + <p>8-15 + </p> + </td> + <td width="209" style="border: 1px solid #000000; padding: 0.1cm"> + <p>0-7 + </p> + </td> + </tr> + <tr valign="top"> + <td width="209" style="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm"> + <p>Описание + </p> + </td> + <td width="209" style="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm"> + <p><font size="2" style="font-size: 11pt">Начальная + задержка </font><font size="2" style="font-size: 11pt"><i>T</i></font><font size="1" style="font-size: 8pt"><i>DEL + </i></font><font size="2" style="font-size: 11pt">в периодах + частоты дискретизации АЦП (~8.86 нс) </font> + </p> + </td> + <td width="209" style="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0.1cm"> + <p><font size="2" style="font-size: 11pt"><i>Ne </i></font>– + <font size="2" style="font-size: 11pt">длительность + элементарного цикла измерения в + оборотах (младшие 8 бит) </font> + </p> + </td> + </tr> +</table> + +Начальная задержка <i>T<sub>DEL</sub></i> задержка +между приходом внешнего синхроимпульса +и запуском цикла измерения. + +<b>Таблица 4. </b> Описание регистра 2 (адрес 0х02). + +<table cellpadding="4" cellspacing="0"> + <tr valign="top"> + <td width="313" style="border-top: 1px solid #000000; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0.1cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm"> + <p>Номера битов + </p> + </td> + <td width="313" style="border: 1px solid #000000; padding: 0.1cm"> + <p>0-15 + </p> + </td> + </tr> + <tr valign="top"> + <td width="313" style="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm"> + <p>Описание + </p> + </td> + <td width="313" style="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0.1cm"> + <p><font size="2" style="font-size: 11pt"><i>Ne </i></font>– + <font size="2" style="font-size: 11pt">длительность + элементарного цикла измерения в + оборотах (старшие 16 бит) </font> + </p> + </td> + </tr> +</table> + +<b>Таблица 5. </b> Описание регистра 3 (адрес 0х03). + +<table cellpadding="4" cellspacing="0"> + <tr valign="top"> + <td width="208" style="border-top: 1px solid #000000; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0.1cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm"> + <p>Номера битов + </p> + </td> + <td width="208" style="border-top: 1px solid #000000; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0.1cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm"> + <p>2-15 + </p> + </td> + <td width="208" style="border: 1px solid #000000; padding: 0.1cm"> + <p>0-1 + </p> + </td> + </tr> + <tr valign="top"> + <td width="208" style="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm"> + <p>Описание + </p> + </td> + <td width="208" style="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm"> + <p>Не используются + </p> + </td> + <td width="208" style="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0.1cm"> + <p>Код состояния матрицы ключей <i>Sw </i>во + втором режиме + </p> + </td> + </tr> +</table> + +<b>Таблица 6. </b> Описание регистра 4 (адрес 0х04). + +<table cellpadding="4" cellspacing="0"> + <tr valign="top"> + <td width="312" style="border-top: 1px solid #000000; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0.1cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm"> + <p>Номера битов + </p> + </td> + <td width="312" style="border: 1px solid #000000; padding: 0.1cm"> + <p>0-15 + </p> + </td> + </tr> + <tr valign="top"> + <td width="312" style="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm"> + <p>Описание + </p> + </td> + <td width="312" style="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0.1cm"> + <p>Число оборотов с момента сброса + пучка, после которого останавливается + процесс записи в буфер пооборотных + измерений в режиме “Timeback” + </p> + </td> + </tr> +</table> + +<b>Таблица 7. </b> Описание регистра 6 (адрес 0х06). + +<table cellpadding="4" cellspacing="0"> + <tr valign="top"> + <td width="156" style="border-top: 1px solid #000000; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0.1cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm"> + <p>Номера битов + </p> + </td> + <td width="156" style="border-top: 1px solid #000000; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0.1cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm"> + <p>8-15 + </p> + </td> + <td width="156" style="border-top: 1px solid #000000; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0.1cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm"> + <p>4-7 + </p> + </td> + <td width="156" style="border: 1px solid #000000; padding: 0.1cm"> + <p>0-3 + </p> + </td> + </tr> + <tr valign="top"> + <td width="156" style="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm"> + <p>Описание + </p> + </td> + <td width="156" style="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm"> + <p>Не используются + </p> + </td> + <td width="156" style="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm"> + <p>Код усиления 2-го + каскада + </p> + <p>(дБ) + </p> + </td> + <td width="156" style="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0.1cm"> + <p>Код усиления 1-го + каскада + </p> + <p>(дБ) + </p> + </td> + </tr> +</table> + + +При установке кода +усиления вначале задается код усиления +1-го каскада (0-15) и только, когда он +достигнет 15, затем задается код усиления +2-го каскада (0-15). + + +<b>Таблица 8. </b>Описание регистра 8 (адрес 0х08). + +<table cellpadding="4" cellspacing="0"> + <tr valign="top"> + <td width="285" style="border-top: 1px solid #000000; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0.1cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm"> + <p>Номера битов + </p> + </td> + <td width="285" style="border: 1px solid #000000; padding: 0.1cm"> + <p>0-15 + </p> + </td> + </tr> + <tr valign="top"> + <td width="285" style="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm"> + <p>Описание + </p> + </td> + <td width="285" style="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0.1cm"> + <p><font size="2" style="font-size: 11pt">Код минимального + времени между двумя измерениями + </font><font size="2" style="font-size: 11pt"><i>code_T</i></font><font size="1" style="font-size: 8pt"><i>MIN + </i></font> + </p> + </td> + </tr> +</table> + +При запуске каждого измерения начинает +отсчитываться интервал времени: + +<i>T<sub>MIN</sub></i> = <i>code_T<sub>MIN</sub></i>×1024×40 нс. + +Следующее измерение запустится не ранее, чем через +время <i>T<sub>MIN</sub></i> после начала +предыдущего измерения. + +<b>Таблица 9. </b> Описание регистра 9 (адрес 0х09). + +<table cellpadding="4" cellspacing="0"> + <tr valign="top"> + <td width="208" style="border-top: 1px solid #000000; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0.1cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm"> + <p>Номера битов + </p> + </td> + <td width="208" style="border-top: 1px solid #000000; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0.1cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm"> + <p>1-15 + </p> + </td> + <td width="208" style="border: 1px solid #000000; padding: 0.1cm"> + <p>0 + </p> + </td> + </tr> + <tr valign="top"> + <td width="208" style="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm"> + <p>Описание + </p> + </td> + <td width="208" style="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm"> + <p>Не используются + </p> + </td> + <td width="208" style="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0.1cm"> + <p>Номер ячейки памяти буфера пооборотных + измерений, при которой прекратилась + запись в этот буфер в режиме “Timeback” + (старший бит) + </p> + </td> + </tr> +</table> + + +<b>Таблица 10. </b> Описание регистра 10 (адрес 0х0a). + +<table cellpadding="4" cellspacing="0"> + <tr valign="top"> + <td width="313" style="border-top: 1px solid #000000; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0.1cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm"> + <p>Номера битов + </p> + </td> + <td width="313" style="border: 1px solid #000000; padding: 0.1cm"> + <p>0-15 + </p> + </td> + </tr> + <tr valign="top"> + <td width="313" style="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm"> + <p>Описание + </p> + </td> + <td width="313" style="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0.1cm"> + <p>Номер ячейки памяти буфера пооборотных + измерений, при которой прекратилась + запись в этот буфер в режиме “Timeback” + (младшие 2 байта) + </p> + </td> + </tr> +</table> + +<b>Таблица 11. </b> Описание регистра 11 (адрес 0х0b). + +<table cellpadding="4" cellspacing="0"> + <tr valign="top"> + <td width="271" style="border-top: 1px solid #000000; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0.1cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm"> + <p>Номера битов + </p> + </td> + <td width="271" style="border: 1px solid #000000; padding: 0.1cm"> + <p>0-15 + </p> + </td> + </tr> + <tr valign="top"> + <td width="271" style="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm"> + <p>Описание + </p> + </td> + <td width="271" style="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0.1cm"> + <p>Содержит код опорной частоты (см. + описание команды 0х06) + </p> + </td> + </tr> +</table> + +Регистр 11 работает +только на чтение. + +<b>Таблица 12. </b> Описание регистра 12 (адрес 0х0с). + +<table cellpadding="4" cellspacing="0"> + <tr valign="top"> + <td width="209" style="border-top: 1px solid #000000; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0.1cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm"> + <p>Номера битов + </p> + </td> + <td width="209" style="border-top: 1px solid #000000; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0.1cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm"> + <p>8-15 + </p> + </td> + <td width="209" style="border: 1px solid #000000; padding: 0.1cm"> + <p>0-7 + </p> + </td> + </tr> + <tr valign="top"> + <td width="209" style="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm"> + <p>Описание + </p> + </td> + <td width="209" style="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm"> + <p>Не используются + </p> + </td> + <td width="209" style="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0.1cm"> + <p><font size="2" style="font-size: 11pt">Задает число + накапливаемых оборотов для каждой + точки буфера “быстрых” измерений + (</font><font size="2" style="font-size: 11pt"><i>N</i></font><font size="1" style="font-size: 8pt"><i>av</i></font><font size="2" style="font-size: 11pt">). + </font> + </p> + </td> + </tr> +</table> + +Код <i>code12</i>, +находящийся в младших 13 битах регистра +12, задает число накапливаемых оборотов +для каждой точки буфера “быстрых” +измерений <i>N<sub>av</sub></i> = <i>code12</i> + 1. Если этот +код равен нулю, то мы получаем пооборотные +измерения без всяких накоплений. За +счет этого кода можно растянуть время +наблюдения до: + +<i>T</i> = 2048×8192×248нс ≈ 4.16 сек. + + +<b>Таблица 13. </b> Описание регистра 13 (адрес 0х0d). + +<table cellpadding="4" cellspacing="0"> + <tr valign="top"> + <td width="209" style="border-top: 1px solid #000000; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0.1cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm"> + <p>Номера битов + </p> + </td> + <td width="209" style="border-top: 1px solid #000000; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0.1cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm"> + <p>8-15 + </p> + </td> + <td width="209" style="border: 1px solid #000000; padding: 0.1cm"> + <p>0-7 + </p> + </td> + </tr> + <tr valign="top"> + <td width="209" style="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm"> + <p>Описание + </p> + </td> + <td width="209" style="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm"> + <p>Не используются + </p> + </td> + <td width="209" style="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0.1cm"> + <p><font size="2" style="font-size: 11pt">Задает начальную + задержку с момента прихода внешнего + синхроимпульса до старта цикла + измерения (в тактах АЦП – 1/(28</font><font size="2" style="font-size: 11pt"><i>F</i></font><font size="1" style="font-size: 8pt"><i>0</i></font><font size="2" style="font-size: 11pt">)) + </font> + </p> + </td> + </tr> +</table> + +<b>Таблица 14. </b> Описание регистра 14 (адрес 0х0e). + +<table cellpadding="4" cellspacing="0"> + <tr valign="top"> + <td width="308" style="border-top: 1px solid #000000; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0.1cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm"> + <p>Номера битов + </p> + </td> + <td width="308" style="border: 1px solid #000000; padding: 0.1cm"> + <p>0-15 + </p> + </td> + </tr> + <tr valign="top"> + <td width="308" style="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm"> + <p>Описание + </p> + </td> + <td width="308" style="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0.1cm"> + <p>Нижний порог суммы сигналов с 2-х + электродов пикапа для режима “Timeback” + в формате <i>float </i>(младшие 2 байта) + </p> + </td> + </tr> +</table> + +<b>Таблица 15. </b> Описание регистра 15 (адрес 0х0f). + +<table cellpadding="4" cellspacing="0"> + <tr valign="top"> + <td width="308" style="border-top: 1px solid #000000; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0.1cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm"> + <p>Номера битов + </p> + </td> + <td width="308" style="border: 1px solid #000000; padding: 0.1cm"> + <p>0-15 + </p> + </td> + </tr> + <tr valign="top"> + <td width="308" style="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm"> + <p>Описание + </p> + </td> + <td width="308" style="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0.1cm"> + <p>Нижний порог суммы сигналов с 2-х + электродов пикапа для режима + </p> + </td> + </tr> +</table> + +<b>Таблица 16. </b> Описание регистра 16 (адрес 0х10). + +<table cellpadding="4" cellspacing="0"> + <tr valign="top"> + <td width="308" style="border-top: 1px solid #000000; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0.1cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm"> + <p>Номера битов + </p> + </td> + <td width="308" style="border: 1px solid #000000; padding: 0.1cm"> + <p>0-15 + </p> + </td> + </tr> + <tr valign="top"> + <td width="308" style="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm"> + <p>Описание + </p> + </td> + <td width="308" style="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0.1cm"> + <p>Измеренная сумма сигналов с 2-х + электродов пикапа для режима “Timeback” + в формате <i>float </i>(младшие 2 байта) + </p> + </td> + </tr> +</table> + +Регистр 16 работает только на чтение. + +<b>Таблица 17. </b> Описание регистра 17 (адрес 0х11). + +<table cellpadding="4" cellspacing="0"> + <tr valign="top"> + <td width="308" style="border-top: 1px solid #000000; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0.1cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm"> + <p>Номера битов + </p> + </td> + <td width="308" style="border: 1px solid #000000; padding: 0.1cm"> + <p>0-15 + </p> + </td> + </tr> + <tr valign="top"> + <td width="308" style="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm"> + <p>Описание + </p> + </td> + <td width="308" style="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0.1cm"> + <p>Измеренная сумма сигналов с 2-х + электродов пикапа для режима “Timeback” + в формате <i>float </i>(старшие 2 байта) + </p> + </td> + </tr> +</table> + +Регистр 17 работает только на чтение. + +<b>Таблица 18. </b>Описание регистра 18 (адрес 0х12). + +<table cellpadding="4" cellspacing="0"> + <tr valign="top"> + <td width="209" style="border-top: 1px solid #000000; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0.1cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm"> + <p>Номера битов + </p> + </td> + <td width="209" style="border-top: 1px solid #000000; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0.1cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm"> + <p>1-15 + </p> + </td> + <td width="209" style="border: 1px solid #000000; padding: 0.1cm"> + <p>0 + </p> + </td> + </tr> + <tr valign="top"> + <td width="209" style="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm"> + <p>Описание + </p> + </td> + <td width="209" style="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm"> + <p>Не используются + </p> + </td> + <td width="209" style="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0.1cm"> + <p>В режиме “Timeback” является индикатором + остановки процесса записи в буфер + пооборотных измерений: 0 – запись + идет, 1 – запись остановлена + </p> + </td> + </tr> +</table> + +Регистр 18 работает только на чтение. + +## 3.2. Структура команд. + +Стек команд. + +Команды, посылаемые из +компьютера в пикап-станцию, содержат 6 +байт. На Рис.6 показана структура команды. + +![image006](psv3udp.img/image006.png) + +<b>Рис.6.</b>Структура команды. + +Команда содержит код +команды (байт 0) и 5 байт параметров +команды. Байт 1 для команд записи в +рабочие регистры и чтения из рабочих +регистров содержит номер регистра, для +команд запроса данных определяет номер +кадра ответных пакетов данных. Байты +2,3 для команды записи в рабочий регистр +содержат данные, которые нужно записать +в регистр, для команд запроса пооборотных +данных определяют номер начальной +страницы буфера пооборотных измерений, +для остальных команд не имеют значения. +Байты 4,5 для команд запроса пооборотных +данных определяют номер конечной +страницы буфера пооборотных измерений, +для остальных команд не имеют значения. + +После получения команды +пикап-станция сразу же посылает пакет +подтверждения получения команды “ACK” +(Acknowledgement) – 4 байта, показанные на Рис.7. + +![image007](psv3udp.img/image007.png) + +<b>Рис.7.</b> Ответ “ACK” на полученную команду. + + +Байт 0 – тип пакета +(0х10). Байт 1 – код команды, байт 2 – номер +регистра, байт 3 – статус. Если команда +правильна, то есть, это существующая +команда, и номер регистра лежит в +диапазоне 0-15, то статус равен 0х0F. Если +поступает несуществующая команда, то +статус равен 0х10. Если номер регистра +лежит за диапазоном 0-15, то статус равен +0х20. + +В пикап-станции реализован +двухуровневый стек команд. Имеется +буфер команд и рабочий регистр команд. +Первоначально, поступающая команда +записывается в буфер. Если пикап-станция +в момент прихода какой-либо команды +свободна (не занята выполнением предыдущей +команды), то сразу же произойдет перезапись +из буфера команд в рабочий регистр +команд, и команда начнет выполняться. +Если пикап-станция в момент прихода +какой-либо команды занята выполнением +предыдущей команды, то перезапись из +буфера команд в рабочий регистр команд +(с последующим выполнением команды) +произойдет только после выполнения +предыдущей команды. Если в момент +ожидания выполнения команды поступит +еще одна команда, то она перезапишет +команду, находившуюся в буфере. Существует +несколько исключений. Если запущен цикл +измерения, либо цикл инициализации +генератора опорной частоты, либо цикл +инициализации генератора калибровочного +сигнала, то некоторые команды (например, +команда чтения рабочего регистра) могут +быть выполнены сразу, не дожидаясь +окончания цикла. Подробнее об этом будет +сказано ниже. + +## 3.3. Описание типов команд. + +1) <b>Команда 0x00 </b>- запись +в регистры параметров. Номер регистра +содержится в байте 1 команды, записываемые +данные – в байтах 2,3. В ответ на эту +команду пикап- станция сразу же посылает +4 байта “АСК”. Момент выполнения записи +в регистры зависит от того, запущен в +момент прихода команды цикл измерения +(или инициализации генераторов опорной +частоты и калибровочного сигнала) или +нет. Если цикл измерения запущен, то +процесс записи в регистр осуществится +только после его окончания. + +2) <b>Команда 0x01 </b>- чтение +массива данных АЦП (осциллограмма). В +ответ на эту команду пикап-станция сразу +же посылает 4 байта “АСК”. Далее +посылается пакет из 1034 байт (Рис.8), +включающий “шапку” из 10 байт и 512 2-х +байтных слов типа <i>unsigned short int</i>в кодах +АЦП (диапазон – 0-16383). + +![image008](psv3udp.img/image008.png) + +<b>Рис.8.</b> Структура получаемого пакета в ответ на команду 0х01. + +Данные содержат +128 точек по времени (выборок) АЦП по 4-м +каналам, соответствующих 4-м напряжениям +сигналов с электродов пикапа. Каждая +точка включает в себя 4 напряжения +сигналов с электродов пикапа, следующих +по очереди: U0, U1, U2, U3, U0, U1 и т.д. Значения +лежат в диапазоне 0-16383, для получения +реальных напряжений нужно вычесть 8192. + +Содержимое “шапки” +приведено на Рис.9. + +![image009](psv3udp.img/image009.png) + +<b>Рис.9.</b> Содержимое “шапки” при посылке данных АЦП. + +Байт 0 – тип пакета +(0xF1), по нему идентифицируется полученный +компьютером пакет. Байт 2 соответствует +байту 1 команды. На Рис.6 он называется +“Номер регистра”. Байт 9 – номер +измерения, которому соответствует +данная осциллограмма (0-255). После каждого +измерения счетчик номера измерения +инкрементируется на 1. После 255 он +сбрасывается в 0 и т.д. Байтам 3-8 присвоены +числа 3-8. + +Момент посылки данных +АЦП зависит от того, запущен в момент +прихода команды 0x01 цикл измерения (или +инициализации) или нет. Если цикл +измерения запущен, то отправка пакета +данных начнется только после его +окончания. + +3) <b>Команда 0x02 </b>– +чтение накопленных данных. В ответ на +эту команду пикап- станция сразу же +посылает 4 байта “АСК”. Далее посылается +пакет из 146 байт (Рис.10), включающий: + +а) “шапку” из 10 байт, + +б) +накопленные напряжения сигналов с +пикапа <i>U<sub>ij</sub></i>(16 8-байтных +слов типа <i>double</i>), + +в) +максимумы оцифрованных сигналов в кодах +АЦП для 4-х каналов <i>M<sub>i</sub></i>(4 2-байтных +слова типа <i>unsigned short int</i>). + +На основе прочитанных +кодов накопленных напряжений сигналов +<i>code_U </i>нужно вычислить реальные средние +значения напряжений на входах АЦП <i>U</i>по формуле: + +<i>U</i> = <i>code_U</i>/(2047×28×(<i>N<sub>e</sub></i>+1)). + +Вычисленные таким +образом средние значения напряжений +будут относиться к оцифрованным с +помощью АЦП сигналам в диапазоне -8192 –&gt; +8191. + +![image010](psv3udp.img/image010.png) + +<b>Рис.10.</b> Структура получаемого пакета в ответ на команду 0х02. + + +Максимумы сигналов АЦП +лежат в диапазоне 0-16383, для получения +реальных напряжений нужно вычесть 8192. +Эти максимумы позволяют без чтения +осциллограммы (команды 0х01) понять, какую +часть диапазона АЦП занимает сигнал и +при необходимости сменить код усиления. +Содержимое “шапки” приведено на Рис.11. + +![image011](psv3udp.img/image011.png) + +<b>Рис.11.</b> Содержимое “шапки” при посылке накопленных данных. + +Байт 0 – тип пакета +(0xF2), по нему идентифицируется полученный +компьютером пакет. Байт 2 – соответствует +байту 1 команды. На Рис.6 он называется +“Номер регистра”. + +4) <b>Команда 0x03 </b>– +запуск цикла измерения. + +В ответ на эту команду +пикап-станция сразу же посылает 4 байта +“АСК”. Затем, если пикап-станция работает +в режиме с внутренним запуском (биты +12, 13 регистра 0 равны 0), сразу же запустится +цикл измерения. Если же пикап-станция +работает в режиме с внешним запуском +(либо бит 12, либо бит 13 регистра 0 равен +1), цикл измерения запустится только +после прихода внешнего синхроимпульса. +По окончании цикла измерения пикап-станция +посылает пакет из 2-х байт “CONF” +(“Confirmation”), показанный на Рис.12. Данный +пакет сигнализирует о том, что цикл +измерения успешно завершился, можно +читать данные. + +![image012](psv3udp.img/image012.png) + +<b>Рис.12.</b> Пакет “CONF”, посылаемый после окончания цикла измерения. + +5) <b>Команда 0x04 </b>– +чтение регистра параметров. + +Номер регистра, чтение +которого запрашивается, содержится в +байте 2 команды. В ответ на эту команду +пикап-станция сразу же посылает 4 байта +“АСК”. Затем сразу же посылает 4-х +байтовый пакет данных, показанный на +Рис.13. + +![image013](psv3udp.img/image013.png) + +<b>Рис.13.</b> Структура получаемого пакета в ответ на команду 0х04. + +Байт 0 – тип пакета +(0xF4), по нему идентифицируется полученный +компьютером пакет. Байт 1 – номер +регистра, из которого читается содержимое. + +Байты 2,3 – само содержимое прочитанного +регистра – 2 байта. Пакет данных посылается +сразу, независимо от того, запущен цикл +измерения (или инициализации) или нет. + +6) <b>Команда 0x05 </b>– +команда остановки цикла измерения. + +В ответ на эту команду +пикап-станция сразу же посылает 4 байта +“АСК”. Затем сразу же выполняет данную +команду, то есть останавливает цикл +измерения. Вообще, полезно перед каждым +новым запуском измерения подавать +данную команду. + +7) <b>Команда 0x06</b> инициализация +генератора опорной частоты <i>F<sub>ОП</sub></i> = <i>28F<sub>0</sub></i>(~112.8 МГц). + +В ответ на эту команду +пикап-станция сразу же посылает 4 байта +“АСК”. Затем сразу же выполняет данную +команду, то есть инициализирует генератор +опорной частоты. Процесс инициализации +занимает по времени около 600 мс. По +окончании инициализации пикап-станция +посылает пакет из 2-х байт “CONF”, показанный +на Рис.14. + +![image014](psv3udp.img/image014.png) + +<b>Рис.14.</b> Пакет “CONF”, посылаемый после окончания инициализации +генератора опорной частоты. + +Данную процедуру необходимо выполнять каждый +раз после включения пикап- станции. +Измерить опорную частоту можно, прочитав +регистр 11. Связь между опорной частотой +<i>F<sub>ОП</sub></i> и прочитанным +кодом <i>code</i>: + +<i>F<sub>ОП</sub></i> = (25×<i>code</i>)/8192 МГц. + +Контроль за опорной частотой +позволяет отследить просадки +(кратковременные выключения) питания. +В отсутствие инициализации или в +отсутствии синхросигнала частотой <i>F<sub>0</sub></i> опорная +частота лежит за пределами диапазона +<i>28F<sub>0</sub></i> ± 1 МГц. Таким +образом, критерием правильности установки +опорной частоты является нахождение +этой частоты в диапазоне 111.8 – 113.8 МГц. + +8) <b>Команда 0x07 </b>– +обнуление счетчика номера измерения. + +В ответ на эту команду +пикап-станция сразу же посылает 4 байта +“АСК”. Затем сразу же выполняет данную +команду, то есть обнуляет номер измерения. +Данная команда полезна для работы группы +пикап-станций, когда нужно привязать +получаемые от пикап- станций данные к +конкретному измерению. + +9) <b>Команда 0x0B </b>– +чтение памяти пооборотных измерений. + +В ответ на эту команду +пикап-станция сразу же посылает 4 байта +“АСК”. Затем, в зависимости от того, +запущен цикл измерения или нет, она, +либо сразу же посылает данные (если цикл +измерения не запущен), либо ожидает +окончания цикла измерения, и только +затем посылает данные. + +Память содержит +измеренные напряжения с электродов +пикапа за 128 К (131072) оборотов. Содержимое +памяти показано на Рис.16. + +![image016](psv3udp.img/image016.png) + +<b>Рис.16.</b> Содержимое памяти пооборотных данных.< + + +Каждый оборот включает +в себя 4 напряжения с электродов пикапа +U0, U1, U2, U3, представляющих собой 4-байтовые +числа типа <i>float</i>. Связь между прочитанным +кодом <i>code_U </i>и реальным средним значением +напряжения на входе АЦП <i>U</i>: + +<i>U</i> = <i>code_U</i>/(2047×28). + +Вычисленные таким +образом средние значения напряжений +будут относиться к оцифрованным с +помощью АЦП сигналам в диапазоне -8192 –&gt; +8191. + +Логически весь объем +памяти разбит на 2048 страниц, каждая +страница содержит 64 оборота (Рис.17). + +![image017](psv3udp.img/image017.png) + +<b>Рис.17.</b> Структура памяти пооборотных данных. + +С помощью команды 0х0В можно прочитать +любую порцию страниц. Диапазон читаемых +страниц задается самой командой (см. +Рис.6). Начальная страница <i>N<sub>p1</sub></i> содержится +в байтах 2,3 команды. Конечная страница +<i>N<sub>p2</sub></i> содержится +в байтах 4,5 команды. В ответ на команду +посылается <i>N<sub>p</sub></i> страниц в +диапазоне от <i>N<sub>p1</sub></i> до <i>N<sub>p2</sub></i> включительно +(<i>N<sub>p</sub></i> = <i>N<sub>p1</sub></i> – <i>N<sub>p2</sub></i> +1). +Каждая страница посылается отдельным +пакетом со своей 10-байтовой “шапкой” +(Рис.18). + +![image018](psv3udp.img/image018.png) + +<b>Рис.18.</b> Структура одного из пакетов, содержащего страницу <i>N</i>. + +Размер каждого пакета +равен 1034 байт. Вначале идет 10-байтовая +“шапка”, затем напряжения с электродов +пикапа за 64 оборота, каждый оборот +состоит из напряжений U0, U1, U2, U3 с электродов +0,1,2,3 соответственно. Структура “шапки” +показана на Рис.19. + +![image019](psv3udp.img/image019.png) + +<b>Рис.19.</b>Содержимое “шапки” при посылке пакета пооборотных данных. + +Байт 0 – тип пакета (0xFВ), по нему идентифицируется +полученный компьютером пакет. + +Байт 1 – код команды (0х0В). + +Байт 2 – номер “кадра” +(0-255), он эквивалентен байту 1 команды +(“Номер регистра”), то есть задается +запрашиваемым устройством. + +Байты 3, 4 – +номер пакета (равный номеру страницы). + +Байты 5, 6 – начальная страница <i>N<sub>p1</sub></i> запрашиваемой +порции страниц. + +Байты 7, 8 – конечная +страница <i>N<sub>p2</sub></i> запрашиваемой +порции страниц. Байт 9 – номер измерения. + +В случае, если какой-либо +пакет из запрашиваемой порции окажется +испорченным, его можно будет получить +еще раз, запросив данную страницу. + +10) <b>Команда 0x0D </b>– +чтение памяти “быстрых” измерений +(“Fast” data). + +По этой команде читается память “быстрых” +измерений емкостью 2К (2048) точек. Если +<i>N<sub>av</sub></i> = 0, то +содержимое данной памяти такое же, что +и для первых 2048 оборотов памяти пооборотных +измерений. В ответ на эту команду +пикап-станция сразу же посылает 4 байта +“АСК”. Затем, в зависимости от того, +запущен цикл измерения или нет, она, +либо сразу же посылает данные (если цикл +измерения не запущен), либо ожидает +окончания цикла измерения, и только +затем посылает данные. + +Структура памяти +“быстрых” измерений полностью аналогична +структуре памяти пооборотных измерений. +Отличие только в емкости памяти. Данная +память состоит из 32 страниц по 64 точки +в каждой странице (Рис.20). “Шапка” также +полностью аналогична “шапке” при +команде 0х0В, только байт 1 – код команды +равен 0х0D (Рис.21). + +![image020](psv3udp.img/image020.png) + +<b>Рис.20.</b> Структура памяти “быстрых” измерений. + +![image021](psv3udp.img/image021.png) + +<b>Рис.21.</b> Содержимое “шапки” при посылке пакета “быстрых” измерений. + +11) <b>Команда 0x0F </b>– +синхронное чтение регистра параметров. + +Данная команда аналогична +команде 0х04, единственное ее отличие в +том, что процесс посылки пакета данных +(4 байта) привязан по времени к окончанию +цикла измерения. Если цикл измерения +не запущен, то и посылки данных не будет. +Если после подачи команды 0х03 с внешним +запуском подать команду 0х0F, то содержимое +регистра придет после окончания цикла +измерения (сразу после “CONF”). + +12) <b>Команда 0x0С </b>– +запись в регистр параметров с последующим +чтением. + +Данная команда объединяет +команды 0х00 и 0х04. Номер регистра содержится +в байте 1 команды, записываемые данные +– в байтах 2,3. В ответ на эту команду +пикап-станция сразу же посылает 4 байта +“АСК”. Момент выполнения записи в +регистры зависит от того, запущен в +момент прихода команды цикл измерения +(или инициализации генераторов опорной +частоты и калибровочного сигнала) или +нет. Если цикл измерения запущен, то +процесс записи в регистр осуществится +только после его окончания. Затем, после +записи в регистр сразу же осуществляется +его чтение. Пикап-станция посылает +4-байтовый пакет, показанный на Рис.13. + +### 3.4. Сводная таблица +типов пакетов от пикап-станции. + +<table cellpadding="4" cellspacing="0"> + <tr valign="top"> + <td width="205" style="border-top: 1px solid #000000; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0.1cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm"> + <p>Байт идентификации (байт 0) + </p> + </td> + <td width="205" style="border-top: 1px solid #000000; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0.1cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm"> + <p>Длина пакета + </p> + <p>(байт) + </p> + </td> + <td width="205" style="border: 1px solid #000000; padding: 0.1cm"> + <p>Тип пакета + </p> + </td> + </tr> + <tr valign="top"> + <td width="205" style="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm"> + <p>0х10 + </p> + </td> + <td width="205" style="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm"> + <p>4 + </p> + </td> + <td width="205" style="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0.1cm"> + <p>Пакет подтверждения получения + команды – “АСК” + </p> + </td> + </tr> + <tr valign="top"> + <td width="205" style="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm"> + <p>0х11 + </p> + </td> + <td width="205" style="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm"> + <p>2 + </p> + </td> + <td width="205" style="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0.1cm"> + <p>Пакет, сигнализирующий о завершении + цикла измерения (инициализации) – + “CONF” + </p> + </td> + </tr> + <tr valign="top"> + <td width="205" style="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm"> + <p>0хF1 + </p> + </td> + <td width="205" style="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm"> + <p>1034 + </p> + </td> + <td width="205" style="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0.1cm"> + <p>Массив данных АЦП (осциллограмма) + </p> + </td> + </tr> + <tr valign="top"> + <td width="205" style="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm"> + <p>0хF2 + </p> + </td> + <td width="205" style="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm"> + <p>82 + </p> + </td> + <td width="205" style="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0.1cm"> + <p>Накопленные данные + </p> + </td> + </tr> + <tr valign="top"> + <td width="205" style="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm"> + <p>0хF4 + </p> + </td> + <td width="205" style="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm"> + <p>4 + </p> + </td> + <td width="205" style="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0.1cm"> + <p>Содержимое рабочего регистра + </p> + </td> + </tr> + <tr valign="top"> + <td width="205" style="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm"> + <p>0хFВ + </p> + </td> + <td width="205" style="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm"> + <p>1034 + </p> + </td> + <td width="205" style="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0.1cm"> + <p>Массив пооборотных или “быстрых” + данных (1 страница) + </p> + </td> + </tr> +</table> + +## 3.5. Временные диаграммы работы пикап-станции. + +На Рис.23 показана +временная диаграмма работы пикап-станции +в режиме работы с внешним запуском при +запросе на пооборотные данные. Вначале +подается команда 0х03. Сразу же из +пикап-станции придет подтверждение +“АСК” получения команды. Реально цикл +измерения запустится по приходу внешнего +синхроимпульса “Впуск”. Компьютер +далее должен дождаться окончания цикла +измерения – прихода из пикап-станции +пакета “CONF”. После этого он с помощью +команды 0xFB запрашивает и получает +пооборотные + +данные. Далее компьютер +может запрашивать и другие типы данных. +Скорость передачи данных пооборотных +измерений примерно 50 Мбит/сек. Массив +данных 8К оборотов передается примерно +за 21 мс. + +![image023](psv3udp.img/image023.png) + +<b>Рис.23.</b> Временная диаграмма работы пикап-станции с внешним запуском. + +На Рис.24 показана +временная диаграмма, поясняющая работу +стека команд. Допустим, одна за другой +в пикап-станцию приходят 2 команды: 0xFB +и 0х02. Команда 0xFB будет сразу же выполняться +– пикап-станция будет посылать пооборотные +данные, а команда 0х02 будет ожидать своей +очереди в буфере команд. По окончании +цикла передачи пооборотных данных +пикап-станция вначале пошлет пакет +“АСК” (раньше она его послать не может +из-за того, что занят передатчик), а затем +и сами накопленные данные. + +![image024](psv3udp.img/image024.png) + +<b>Рис.24.</b> Временная диаграмма, поясняющая работу стека команд. + +## 3.6. Watchdog. + +Для предотвращения +“зависания” UDP сервера в пикап-станции +реализован watchdog. Если какое-то время из +Ethernet приемопередатчика не поступают +команды, либо приемопередатчик не +посылает никаких данных, на UDP сервер +поступает команда “Reset” – импульс +длительностью 80 нс. По окончании этого +импульса UDP сервер снова готов к приему +команд. Время, через которое при отсутствии +потока данных (в обоих направлениях) +подается команда “Reset”, зависит от +того, установлен или нет в единицу бит +13 регистра 0. Если этот бит установлен +(запуск измерения от внешнего синхроимпульса +“Впуск”), это время (timeout) равно 86 сек. +Если этот бит не установлен, данное +время (timeout) равно 0.67 сек. После подачи +команды “Reset” все таблицы IP адресов +UDP сервера обнуляются. Это означает, что +если, например, после подачи команды +0х03 в случае внешнего запуска синхроимпульс +“Впуск” придет более, чем через 86 сек, +пикап-станция по окончании цикла +измерения пошлет пакет “CONF” по адресу +“0.0.0.0”, а не по адресу компьютера, с +которого был сделан запрос. + +## 3.7. Режим “Timeback”. + +Для включения режима +автоматической прокрутки памяти +пикап-станции нужно сделать записи в +следующих регистрах: + +1) В регистры 14,15 записать +нижний предел суммы 2-х напряжений +пооборотных измерений каналов 0, 2 в +формате <i>float </i>(4 байта): в регистр 14 +записать младшие 2 байта, в регистр 15 +записать старшие 2 байта. Напомним, что +величина напряжения пооборотных +измерений равна: + +U<sub>ti</sub> = 2048×28×U<sub>ADCi</sub>, + +где U<sub>ADCi</sub> – среднее +значение напряжения сигнала канала <i>i</i> в кодах АЦП +(±8191). + +2) В регистре 0 бит 14 +установить в 1, что означает режим +автоматической прокрутки. + +3) +В регистр 4 записать число оборотов N<sub>об</sub>, +в течение которых будет заполняться +буфер пооборотных измерений после +сброса пучка (0-65535). Реальное число +оборотов, в течение которых будет +заполняться буфер пооборотных измерений +после сброса пучка, будет на 16 оборотов +больше, то есть N<sub>об</sub> + 16. + +Запуск режима +автоматической прокрутки (непрерывной +записи в память) осуществляется с помощью +команды 3, как и обычный запуск. Программная +остановка режима автоматической +прокрутки осуществляется с помощью +команды 5, как и для обычного режима. + +После +запуска режима автоматической прокрутки +запись в память будет осуществляться +до тех пор, пока сумма сигналов по каналам +0 и 2 (U<sub>t0</sub> + U<sub>t2</sub>) +будет больше числа, записанного в +регистрах 14,15. Если прочитывать статусный +регистр 18, то в этом случае должна быть +0. После остановки данного режима в +регистре 18 будет находиться 1. + +После остановки режима +автоматической прокрутки номер ячейки +памяти <i>N</i>, при котором прекратилась +запись, будет лежать в регистрах 9,10. +Ячейка памяти с номером <i>N-1 </i>– это +последняя ячейка, в которой произошла +запись перед остановкой. В ячейке с +номером <i>N </i>лежат испорченные данные, +и эту ячейку нужно отбросить. После +остановки нужно прочитать весь буфер +пооборотных измерений (131072 оборота), и, +зная номер ячейки <i>N</i>, преобразовать +его, свернув по времени. После этого +надо отбросить последнюю ячейку, +соответствующую номеру <i>N</i>, оставив +таким образом 131071 оборот. + +Во время работы режима автоматической +прокрутки медленные измерения не +работают, но в регистрах 16,17 будет +находиться сумма сигналов по каналам +0 и 2 (U<sub>t0</sub> + U<sub>t2</sub>) +в формате <i>float</i>(4 байта): в +регистре 16 – младшие 2 байта, в регистре +17 – старшие 2 байта. Кроме того, во время +работы режима автоматической прокрутки +можно записывать нижний предел суммы +2-х напряжений пооборотных измерений в +регистры 14, 15. Один из возможных сценариев +работы в данном режиме – постоянно +прочитывая регистры 16,17, постоянно +корректировать нижний предел, записывая +коды в регистры 14, 15. Это позволит отделить +остановку режима вследствие резкого +сброса пучка от остановки из-за медленной +деградации пучка.