Пикап-станция для ВЭПП–3 UDP

1 Общее описание

Новый блок электроники (или пикап-станция) предназначен для измерения координат пучка на основе измерения средних значений сигналов с 4-х электродов пикапа. Средние значения сигнала пучка за 1 оборот дают пооборотные измерения. Средние значения сигнала пучка за Ne оборотов (где Ne программируется) дают накопленные данные. Блок выполнен в корпусе 1 U евромеханики шириной 19 дюймов и глубиной 340 мм. К нему подводятся 4 кабеля с электродов пикапа, 3 кабеля с синхросигналами, кабель Ethernet 100 Mb/sec и гнездо сетевого питания 220В 50 Гц. Виды блока со стороны передней и задней панелей показаны на Рис. 1 и 2.

<b>Рис. 1.</b> Вид на пикап-станцию со стороны передней панели.
Рис. 1. Вид на пикап-станцию со стороны передней панели.
<b>Рис. 2.</b> Вид на пикап-станцию со стороны задней панели.
Рис. 2. Вид на пикап-станцию со стороны задней панели.

На передней панели находятся 3 разъема типа SMA, 3 светодиода (2 красных и 1 зеленый) и гнездо для подключения кабеля Ethernet. Левый SMA разъем предназначен для подачи синхросигнала с частотой ВЧ FHF = 18F0, где F0 = 4.03 МГц – частота обращения. Это синусоидальный сигнал с частотой 72.54 МГц и амплитудой от 0.2 В. Средний SMA разъем предназначен для подачи синхросигнала частотой 3 Гц. Правый SMA разъем предназначен для подачи импульса “Впуск”, привязанный по времени с инжекцией пучка в накопитель. Амплитуда этих синхросигналов – от ~1.2 В до ~3 В. Гнездо Ethernet через кабель соединяется с локальной сетью, частота работы 100 Мбит/сек. Назначение светодиодов:

На задней панели находятся 4 разъема типа SMA для соединения с пикапом и гнездо сетевого питания 220 В. Нумерация входов справа налево, если находиться лицом к задней панели.

2 Принцип действия пикап-станции

Блок-схема пикап-станции для ВЭПП–3 представлена на Рис. 3.

<b>Рис. 3.</b> Блок-схема пикап-станции для ВЭПП-3.
Рис. 3. Блок-схема пикап-станции для ВЭПП–3.

Обработка сигнала заключается в выделении и измерении 18-й гармоники частоты обращения 18F0(~72.54 МГц). Примерный вид сигнала на входе АЦП для одного оборота показан на Рис. 4. Длительность сигнала (на полуширине) – примерно равна 30% периода обращения T0

<b>Рис. 4.</b> Примерный вид сигнала на входе АЦП.
Рис. 4. Примерный вид сигнала на входе АЦП.

Данный сигнал оцифровывается АЦП с частотой дискретизации 28F0(~112.8 МГц), то есть на каждый период обращения приходится 28 точек отсчетов АЦП. Частота сигнала на входе АЦП за счет свертки от дискретизации будет равна 28F018F0 = 10F0. В FPGA цифровой сигнал детектируется квадратурным синхронным детектором и интегрируется за каждый период обращения. Результатом являются данные пооборотных измерений, которые записываются в память и одновременно накапливаются (суммируются напряжения от отдельных оборотов). Результатом накопления являются так называемые “медленные” (или накопленные) данные – сумма напряжений с электрода пикапа за Ne оборотов, где Ne – длительность элементарного цикла измерения в оборотах. Величина Ne может программироваться, максимальная величина Ne составляет 224. Емкость памяти пооборотных измерений составляет 128К оборотов. Существует также так называемый буфер памяти “быстрых” измерений (“Fast” data) емкостью 2К, каждая ячейка которой является суммой напряжений с электрода пикапа за Nav оборотов, где величина Nav программируется в диапазоне от 1 до 213. Задается величина Nav кодом регистра 12.

Матрица ключей позволяет подключать любой из каналов обработки сигналов к любому электроду пикапа, что позволяет устранить влияние неодинаковости каналов на результат измерения. Управляется матрица ключей двухбитным кодом Sw. Соответствие между номерами каналов обработки сигналов Ch и электродами пикапа n в зависимости от кода состояния матрицы ключей Sw приведено в Таблице 1.

Таблица 1.
  Sw=0 Sw=1 Sw=2 Sw=3
Ch 0 1 2 3 0 1 2 3 0 1 2 3 0 1 2 3
n 1 2 3 0 0 3 2 1 2 1 0 3 3 0 1 2

Существуют 2 режима работы пикап-станции:

1) Режим с переключением каналов, когда периодически к каждому из каналов по очереди подключаются разные электроды пикапа (основной режим).

2) Режим без переключения каналов (вспомогательный режим).

Временная диаграмма работы пикап-станции в первом режиме показана на Рис. 5.

<b>Рис. 5.</b> Временная диаграмма работы пикап-станции в основном режиме.
Рис. 5. Временная диаграмма работы пикап-станции в основном режиме.

Полный цикл измерения TΣ в данном режиме состоит из 4-х элементарных циклов, каждому из которых соответствует свой код состояния матрицы ключей Sw. Длительность каждого элементарного цикла Te = T0 × Ne, где T0 – период обращения. Величина Ne задается программно записью в регистры 1,2 соответствующих кодов.

По окончании полного цикла измерения TΣ накопленные результаты измерений (16 чисел типа double по 64 бит) Ui,j лежат в 16 выходных регистрах, откуда могут быть прочитаны и использованы для вычисления положения пучка. Накопленные сигналы с электродов пикапа Ui,j, где i – код комбинации ключей Sw(0–3), j – номер канала электроники (0–3). Используя Таблицу 1 соответствия каналов и электродов пикапа, на основе этих данных получаем матрицу 4×4 напряжений сигналов Ui,n, где i – код комбинации ключей Sw(0–3), n номер электрода пикапа (0–3). Таким образом, для каждого электрода пикапа n по окончании полного цикла измерений мы имеем 4 напряжения сигнала для различных каналов электроники Ch.

Во втором режиме (без переключения каналов) полный цикл измерения TΣ состоит только из одного элементарного цикла. Код состояния матрицы ключей Sw в данном режиме фиксированный и равен M, величина M задается битами 0, 1 регистра 3. Данный режим задается установкой “1” бита 0 регистра 0. Как правило, этот режим используется для получения большого массива пооборотных измерений и является вспомогательным.

3 Программирование пикап-станции

Для приема-передачи данных в пикап-станции реализован UDP сервер. Сервер получает параметры, которые записывает в соответствующие регистры, а также команды на выполнение/остановку измерений и получение результатов измерений.

Все пикап-станции имеют фиксированный номер порта 2195. Номер порта компьютера, с которого происходит обращение к пикап-станции, может быть произвольным. Именно на этот порт и придет ответ пикап-станции.

Из всех ICMP пакетов пикап-станция отвечает только на PING. Другие ICMP пакеты игнорируются.

Основные результаты измерений могут быть 3-х типов:

1) Накопленные данные – 16 64-битных числа типа double, которые соответствуют сигналам с 4-х электродов пикапа Uij для четырех кодов состояния матрицы ключей Sw, а также 4 16-битных числа типа unsigned short int, которые соответствуют максимумам сигналов в кодах АЦП (в диапазоне 0–16383);

2) Пооборотные данные – 4 массива до 128К 32-битных чисел типа float, которые соответствуют сигналам с 4-х электродов пикапа. Существует возможность накапливать в каждой точке обоих массивов напряжения сигналов до 256 оборотов (это задается кодом в регистре 12). Это позволяет увеличить интервал наблюдения пучка до 3 сек и наблюдать какие-нибудь медленные колебания пучка;

3) “Быстрые” данные – 4 массива до 2К 32-битных чисел типа float, которые соответствуют сигналам с 4-х электродов пикапа; каждая ячейка массива является суммой напряжений с электрода пикапа за Nav оборотов.

Дополнительно могут высылаться данные АЦП (результаты оцифровки сигнала с помощью АЦП с частотой выборок ~112.8 МГц или осциллограммы) – 4 массива по 128 16-битных числа типа unsigned short int, которые соответствуют сигналам с 4-х электродов пикапа. Эти данные не нужны для штатной работы, а используются для диагностики пикап-станции.

Запуск измерения пикап-станции может быть внутренним – сразу после прихода соответствующей команды, или внешним – по приходу одного из двух внешних синхроимпульсов: либо сигнала “Впуск”, привязанного к моменту инжекции пучка (или удара по пучку), либо синхросигнала 3 Гц. Срабатывание от этих синхросигналов задается установкой в “1” битов 13 или 12 регистра 0 соответственно.

Порядок байт, используемый при передаче данных из компьютера в блок и обратно – big endian (от старшего байта к младшему). Все пакеты, посылаемые пикап-станцией, содержат байт идентификации (байт 0), по которому можно однозначно определить тип пакета.

3.1 Описание регистров параметров

В Таблицах 2–12 приведено описание регистров параметров. Всего регистров 16 (номера 0–15). Длина каждого регистра – 2 байта.

Регистр 0 (0x00)

Таблица 2. Описание регистра 0 (адрес 0х00).
Номера битов 15 14 13 12 11–1 0
Описание Не исполь-зуются Включение режима “Timeback” (1 – включено) Внутренний запуск (0) или внешний запуск (1) измерений. Синхронизация с частотой 3 Гц, «1»-есть, «0»-нет Не исполь-зуются Выключение режима переключения ключами (1)

Если бит 0 регистра 0 равен “0”, то работа осуществляется в соответствии с Рис. 5 (основной режим). Если бит 0 регистра 0 равен “1”, то выполняется только один элементарный цикл с фиксированным кодом Sw, задаваемым кодом регистра 3.

Регистр 1 (0x01)

Таблица 3. Описание регистра 1 (адрес 0х01).
Номера битов 15–8 7–0
Описание Не используется Ne длительность элементарного цикла измерения в оборотах (младшие 8 бит)

Регистр 2 (0x02)

Таблица 4. Описание регистра 2 (адрес 0х02).
Номера битов 15–0
Описание Ne – длительность элементарного цикла измерения в оборотах (старшие 16 бит)}

Регистр 3 (0x03)

Таблица 5. Описание регистра 3 (адрес 0х03).
Номера битов 15–2 1–0
Описание Не используются Код состояния матрицы ключей Sw во втором режиме

Регистр 4 (0x04)

Таблица 6. Описание регистра 4 (адрес 0х04).
Номера битов 15–0
Описание Число оборотов с момента сброса пучка, после которого останавливается процесс записи в буфер пооборотных измерений в режиме “Timeback”

Регистр 6 (0x06)

Таблица 7. Описание регистра 6 (адрес 0х06).
Номера битов 15–8 7–4 3–0
Описание Не используются Код усиления 2-го каскада (дБ) Код усиления 1-го каскада (дБ)

При установке кода усиления вначале задается код усиления 1-го каскада (0–15) и только, когда он достигнет 15, затем задается код усиления 2-го каскада (0–15).

Регистр 8 (0x08)

Таблица 8. Описание регистра 8 (адрес 0х08).
Номера битов 15–0
Описание Код минимального времени между двумя измерениями code_TMIN

При запуске каждого измерения начинает отсчитываться интервал времени:

TMIN = code_TMIN×1024×40 нс.

Следующее измерение запустится не ранее, чем через время TMIN после начала предыдущего измерения.

Регистр 9 (0x09)

Таблица 9. Описание регистра 9 (адрес 0х09).
Номера битов 15–1 0
Описание Не используются Номер ячейки памяти буфера пооборотных измерений, при которой прекратилась запись в этот буфер в режиме “Timeback” (старший бит)

Регистр 10 (0x0a)

Таблица 10. Описание регистра 10 (адрес 0х0a).
Номера битов 15–0
Описание Номер ячейки памяти буфера пооборотных измерений, при которой прекратилась запись в этот буфер в режиме “Timeback” (младшие 2 байта)

Регистр 11 (0x0b)

Таблица 11. Описание регистра 11 (адрес 0х0b).
Номера битов 15–0
Описание Содержит код опорной частоты (см. описание команды 0х06)

Регистр 11 работает только на чтение.

Регистр 12 (0x0c)

Таблица 12. Описание регистра 12 (адрес 0х0с).
Номера битов 15–13 12–0
Описание Не используются Задает число накапливаемых оборотов для каждой точки буфера “быстрых” измерений (Nav).

Код code12, находящийся в младших 13 битах регистра 12, задает число накапливаемых оборотов для каждой точки буфера “быстрых” измерений Nav = code12 + 1. Если этот код равен нулю, то мы получаем пооборотные измерения без всяких накоплений. За счет этого кода можно растянуть время наблюдения до:

T = 2048×8192×248нс ≈ 4.16 сек.

Регистр 13 (0x0d)

Таблица 13. Описание регистра 13 (адрес 0х0d).
Номера битов 15–8 7–0
Описание Не используются Задает начальную задержку с момента прихода внешнего синхроимпульса до старта цикла измерения (в тактах АЦП – 1/(28F0))

Регистр 14 (0x0e)

Таблица 14. Описание регистра 14 (адрес 0х0e).
Номера битов 15–0
Описание Нижний порог суммы сигналов с 2-х электродов пикапа для режима “Timeback” в формате float (младшие 2 байта)

Регистр 15 (0x0f)

Таблица 15. Описание регистра 15 (адрес 0х0f).
Номера битов 15–0
Описание Нижний порог суммы сигналов с 2-х электродов пикапа для режима

Регистр 16 (0x10)

Таблица 16. Описание регистра 16 (адрес 0х10).
Номера битов 15–0
Описание Измеренная сумма сигналов с 2-х электродов пикапа для режима “Timeback” в формате float (младшие 2 байта)

Регистр 16 работает только на чтение.

Регистр 17 (0x11)

Таблица 17. Описание регистра 17 (адрес 0х11).
Номера битов 15–0
Описание Измеренная сумма сигналов с 2-х электродов пикапа для режима “Timeback” в формате float (старшие 2 байта)

Регистр 17 работает только на чтение.

Регистр 18 (0x12)

Таблица 18. Описание регистра 18 (адрес 0х12).
Номера битов 15–1 0
Описание Не используются В режиме “Timeback” является индикатором остановки процесса записи в буфер пооборотных измерений: 0 – запись идет, 1 – запись остановлена

Регистр 18 работает только на чтение.

3.2 Структура команд

Стек команд.

Команды, посылаемые из компьютера в пикап-станцию, содержат 6 байт. На Рис. 6 показана структура команды.

<b>Рис. 6.</b> Структура команды.
Рис. 6. Структура команды.

Команда содержит код команды (байт 0) и 5 байт параметров команды. Байт 1 для команд записи в рабочие регистры и чтения из рабочих регистров содержит номер регистра, для команд запроса данных определяет номер кадра ответных пакетов данных. Байты 2, 3 для команды записи в рабочий регистр содержат данные, которые нужно записать в регистр, для команд запроса пооборотных данных определяют номер начальной страницы буфера пооборотных измерений, для остальных команд не имеют значения. Байты 4, 5 для команд запроса пооборотных данных определяют номер конечной страницы буфера пооборотных измерений, для остальных команд не имеют значения.

После получения команды пикап-станция сразу же посылает пакет подтверждения получения команды “ACK” (Acknowledgement) – 4 байта, показанные на Рис. 7.

<b>Рис. 7.</b> Ответ “ACK” на полученную команду.
Рис. 7. Ответ “ACK” на полученную команду.

Байт 0 – тип пакета (0х10). Байт 1 – код команды, байт 2 – номер регистра, байт 3 – статус. Если команда правильна, то есть, это существующая команда, и номер регистра лежит в диапазоне 0–15, то статус равен 0х0F. Если поступает несуществующая команда, то статус равен 0х10. Если номер регистра лежит за диапазоном 0–15, то статус равен 0х20.

В пикап-станции реализован двухуровневый стек команд. Имеется буфер команд и рабочий регистр команд. Первоначально, поступающая команда записывается в буфер. Если пикап-станция в момент прихода какой-либо команды свободна (не занята выполнением предыдущей команды), то сразу же произойдет перезапись из буфера команд в рабочий регистр команд, и команда начнет выполняться. Если пикап-станция в момент прихода какой-либо команды занята выполнением предыдущей команды, то перезапись из буфера команд в рабочий регистр команд (с последующим выполнением команды) произойдет только после выполнения предыдущей команды. Если в момент ожидания выполнения команды поступит еще одна команда, то она перезапишет команду, находившуюся в буфере. Существует несколько исключений. Если запущен цикл измерения, либо цикл инициализации генератора опорной частоты, либо цикл инициализации генератора калибровочного сигнала, то некоторые команды (например, команда чтения рабочего регистра) могут быть выполнены сразу, не дожидаясь окончания цикла. Подробнее об этом будет сказано ниже.

3.3 Описание типов команд

Команда 0x00 - запись в регистры параметров

Номер регистра содержится в байте 1 команды, записываемые данные – в байтах 2, 3. В ответ на эту команду пикап- станция сразу же посылает 4 байта “АСК”. Момент выполнения записи в регистры зависит от того, запущен в момент прихода команды цикл измерения (или инициализации генераторов опорной частоты и калибровочного сигнала) или нет. Если цикл измерения запущен, то процесс записи в регистр осуществится только после его окончания.

Команда 0x01 - чтение АЦП

Чтение массива данных АЦП (осциллограмма). В ответ на эту команду пикап-станция сразу же посылает 4 байта “АСК”. Далее посылается пакет из 1034 байт (Рис. 8), включающий “шапку” из 10 байт и 512 2-х байтных слов типа unsigned short intв кодах АЦП (диапазон – 0–16383).

<b>Рис. 8.</b> Структура получаемого пакета в ответ на команду 0х01.
Рис. 8. Структура получаемого пакета в ответ на команду 0х01.

Данные содержат 128 точек по времени (выборок) АЦП по 4-м каналам, соответствующих 4-м напряжениям сигналов с электродов пикапа. Каждая точка включает в себя 4 напряжения сигналов с электродов пикапа, следующих по очереди: U0, U1, U2, U3, U0, U1 и т.д. Значения лежат в диапазоне 0–16383, для получения реальных напряжений нужно вычесть 8192.

Содержимое “шапки” приведено на Рис. 9.

<b>Рис. 9.</b> Содержимое “шапки” при посылке данных АЦП.
Рис. 9. Содержимое “шапки” при посылке данных АЦП.

Байт 0 – тип пакета (0xF1), по нему идентифицируется полученный компьютером пакет. Байт 2 соответствует байту 1 команды. На Рис. 6 он называется “Номер регистра”. Байт 9 – номер измерения, которому соответствует данная осциллограмма (0–255). После каждого измерения счетчик номера измерения инкрементируется на 1. После 255 он сбрасывается в 0 и т.д. Байтам 3–8 присвоены числа 3–8.

Момент посылки данных АЦП зависит от того, запущен в момент прихода команды 0x01 цикл измерения (или инициализации) или нет. Если цикл измерения запущен, то отправка пакета данных начнется только после его окончания.

Команда 0x02 – чтение накопленных данных

В ответ на эту команду пикап- станция сразу же посылает 4 байта “АСК”. Далее посылается пакет из 146 байт (Рис. 10), включающий:

а) “шапку” из 10 байт,

б) накопленные напряжения сигналов с пикапа Uij(16 8-байтных слов типа double),

в) максимумы оцифрованных сигналов в кодах АЦП для 4-х каналов Mi(4 2-байтных слова типа unsigned short int).

На основе прочитанных кодов накопленных напряжений сигналов code_U нужно вычислить реальные средние значения напряжений на входах АЦП Uпо формуле:

U = code_U/(2047×28×(Ne+1)).

Вычисленные таким образом средние значения напряжений будут относиться к оцифрованным с помощью АЦП сигналам в диапазоне –8192 –> +8191.

<b>Рис. 10.</b> Структура получаемого пакета в ответ на команду 0х02.
Рис. 10. Структура получаемого пакета в ответ на команду 0х02.

Максимумы сигналов АЦП лежат в диапазоне 0–16383, для получения реальных напряжений нужно вычесть 8192. Эти максимумы позволяют без чтения осциллограммы (команды 0х01) понять, какую часть диапазона АЦП занимает сигнал и при необходимости сменить код усиления. Содержимое “шапки” приведено на Рис. 11.

<b>Рис. 11.</b> Содержимое “шапки” при посылке накопленных данных.
Рис. 11. Содержимое “шапки” при посылке накопленных данных.

Байт 0 – тип пакета (0xF2), по нему идентифицируется полученный компьютером пакет. Байт 2 – соответствует байту 1 команды. На Рис. 6 он называется “Номер регистра”.

Команда 0x03 – запуск цикла измерения

В ответ на эту команду пикап-станция сразу же посылает 4 байта “АСК”. Затем, если пикап-станция работает в режиме с внутренним запуском (биты 12, 13 регистра 0 равны 0), сразу же запустится цикл измерения. Если же пикап-станция работает в режиме с внешним запуском (либо бит 12, либо бит 13 регистра 0 равен 1), цикл измерения запустится только после прихода внешнего синхроимпульса. По окончании цикла измерения пикап-станция посылает пакет из 2-х байт “CONF” (“Confirmation”), показанный на Рис. 12. Данный пакет сигнализирует о том, что цикл измерения успешно завершился, можно читать данные.

<b>Рис. 12.</b> Пакет “CONF”, посылаемый после окончания цикла измерения.
Рис. 12. Пакет “CONF”, посылаемый после окончания цикла измерения.

Команда 0x04 – чтение регистра параметров

Номер регистра, чтение которого запрашивается, содержится в байте 2 команды. В ответ на эту команду пикап-станция сразу же посылает 4 байта “АСК”. Затем сразу же посылает 4-х байтовый пакет данных, показанный на Рис. 13.

<b>Рис. 13.</b> Структура получаемого пакета в ответ на команду 0х04.
Рис. 13. Структура получаемого пакета в ответ на команду 0х04.

Байт 0 – тип пакета (0xF4), по нему идентифицируется полученный компьютером пакет. Байт 1 – номер регистра, из которого читается содержимое.

Байты 2, 3 – само содержимое прочитанного регистра – 2 байта. Пакет данных посылается сразу, независимо от того, запущен цикл измерения (или инициализации) или нет.

Команда 0x05 – остановка цикла измерения

В ответ на эту команду пикап-станция сразу же посылает 4 байта “АСК”. Затем сразу же выполняет данную команду, то есть останавливает цикл измерения. Вообще, полезно перед каждым новым запуском измерения подавать данную команду.

Команда 0x06 - инициализация PLL

Инициализация генератора опорной частоты FОП = 28F0(~112.8 МГц).

В ответ на эту команду пикап-станция сразу же посылает 4 байта “АСК”. Затем сразу же выполняет данную команду, то есть инициализирует генератор опорной частоты. Процесс инициализации занимает по времени около 600 мс. По окончании инициализации пикап-станция посылает пакет из 2-х байт “CONF”, показанный на Рис. 14.

<b>Рис. 14.</b> Пакет “CONF”, посылаемый после окончания инициализации генератора опорной частоты.
Рис. 14. Пакет “CONF”, посылаемый после окончания инициализации генератора опорной частоты.

Данную процедуру необходимо выполнять каждый раз после включения пикап- станции. Измерить опорную частоту можно, прочитав регистр 11. Связь между опорной частотой FОП и прочитанным кодом code:

FОП = (25×code)/8192 МГц.

Контроль за опорной частотой позволяет отследить просадки (кратковременные выключения) питания. В отсутствие инициализации или в отсутствии синхросигнала частотой F0 опорная частота лежит за пределами диапазона 28F0 ± 1 МГц. Таким образом, критерием правильности установки опорной частоты является нахождение этой частоты в диапазоне 111.8 – 113.8 МГц.

Команда 0x07 – обнуление счетчика номера измерения

В ответ на эту команду пикап-станция сразу же посылает 4 байта “АСК”. Затем сразу же выполняет данную команду, то есть обнуляет номер измерения. Данная команда полезна для работы группы пикап-станций, когда нужно привязать получаемые от пикап- станций данные к конкретному измерению.

Команда 0x0b – чтение памяти пооборотных измерений

В ответ на эту команду пикап-станция сразу же посылает 4 байта “АСК”. Затем, в зависимости от того, запущен цикл измерения или нет, она, либо сразу же посылает данные (если цикл измерения не запущен), либо ожидает окончания цикла измерения, и только затем посылает данные.

Память содержит измеренные напряжения с электродов пикапа за 128 К (131072) оборотов. Содержимое памяти показано на Рис. 16.

<b>Рис. 16.</b> Содержимое памяти пооборотных данных.
Рис. 16. Содержимое памяти пооборотных данных.

Каждый оборот включает в себя 4 напряжения с электродов пикапа U0, U1, U2, U3, представляющих собой 4-байтовые числа типа float. Связь между прочитанным кодом code_U и реальным средним значением напряжения на входе АЦП U:

U = code_U/(2047×28).

Вычисленные таким образом средние значения напряжений будут относиться к оцифрованным с помощью АЦП сигналам в диапазоне –8192 –> +8191.

Логически весь объем памяти разбит на 2048 страниц, каждая страница содержит 64 оборота (Рис.17).

<b>Рис. 17.</b> Структура памяти пооборотных данных.
Рис. 17. Структура памяти пооборотных данных.

С помощью команды 0х0В можно прочитать любую порцию страниц. Диапазон читаемых страниц задается самой командой (см. Рис. 6). Начальная страница Np1 содержится в байтах 2, 3 команды. Конечная страница Np2 содержится в байтах 4, 5 команды. В ответ на команду посылается Np страниц в диапазоне от Np1 до Np2 включительно (Np = Np1Np2 + 1). Каждая страница посылается отдельным пакетом со своей 10-байтовой “шапкой” (Рис. 18).

<b>Рис. 18.</b> Структура одного из пакетов, содержащего страницу <i>N</i>.
Рис. 18. Структура одного из пакетов, содержащего страницу N.

Размер каждого пакета равен 1034 байт. Вначале идет 10-байтовая “шапка”, затем напряжения с электродов пикапа за 64 оборота, каждый оборот состоит из напряжений U0, U1, U2, U3 с электродов 0, 1, 2, 3 соответственно. Структура “шапки” показана на Рис. 19.

<b>Рис. 19.</b> Содержимое “шапки” при посылке пакета пооборотных данных.
Рис. 19. Содержимое “шапки” при посылке пакета пооборотных данных.

Байт 0 – тип пакета (0xFВ), по нему идентифицируется полученный компьютером пакет.

Байт 1 – код команды (0х0В).

Байт 2 – номер “кадра” (0–255), он эквивалентен байту 1 команды (“Номер регистра”), то есть задается запрашиваемым устройством.

Байты 3, 4 – номер пакета (равный номеру страницы).

Байты 5, 6 – начальная страница Np1 запрашиваемой порции страниц.

Байты 7, 8 – конечная страница Np2 запрашиваемой порции страниц. Байт 9 – номер измерения.

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

Команда 0x0c – запись в регистр параметров с последующим чтением

Данная команда объединяет команды 0х00 и 0х04. Номер регистра содержится в байте 1 команды, записываемые данные – в байтах 2, 3. В ответ на эту команду пикап-станция сразу же посылает 4 байта “АСК”. Момент выполнения записи в регистры зависит от того, запущен в момент прихода команды цикл измерения (или инициализации генераторов опорной частоты и калибровочного сигнала) или нет. Если цикл измерения запущен, то процесс записи в регистр осуществится только после его окончания. Затем, после записи в регистр сразу же осуществляется его чтение. Пикап-станция посылает 4-байтовый пакет, показанный на Рис. 13.

Команда 0x0d – чтение памяти “быстрых” измерений (“Fast” data)

По этой команде читается память “быстрых” измерений емкостью 2К (2048) точек. Если Nav = 0, то содержимое данной памяти такое же, что и для первых 2048 оборотов памяти пооборотных измерений. В ответ на эту команду пикап-станция сразу же посылает 4 байта “АСК”. Затем, в зависимости от того, запущен цикл измерения или нет, она, либо сразу же посылает данные (если цикл измерения не запущен), либо ожидает окончания цикла измерения, и только затем посылает данные.

Структура памяти “быстрых” измерений полностью аналогична структуре памяти пооборотных измерений. Отличие только в емкости памяти. Данная память состоит из 32 страниц по 64 точки в каждой странице (Рис. 20). “Шапка” также полностью аналогична “шапке” при команде 0х0В, только байт 1 – код команды равен 0х0D (Рис. 21).

<b>Рис. 20.</b> Структура памяти “быстрых” измерений.
Рис. 20. Структура памяти “быстрых” измерений.

<b>Рис. 21.</b> Содержимое “шапки” при посылке пакета “быстрых” измерений.
Рис. 21. Содержимое “шапки” при посылке пакета “быстрых” измерений.

Команда 0x0f – синхронное чтение регистра параметров

Данная команда аналогична команде 0х04, единственное ее отличие в том, что процесс посылки пакета данных (4 байта) привязан по времени к окончанию цикла измерения. Если цикл измерения не запущен, то и посылки данных не будет. Если после подачи команды 0х03 с внешним запуском подать команду 0х0F, то содержимое регистра придет после окончания цикла измерения (сразу после “CONF”).

3.4 Сводная таблица типов пакетов от пикап-станции

Таблица 19
Байт идентификации (байт 0) Длина пакета (байт) Тип пакета
0х10 4 Пакет подтверждения получения команды – “АСК”
0х11 2 Пакет, сигнализирующий о завершении цикла измерения (инициализации) – “CONF”
0хF1 1034 Массив данных АЦП (осциллограмма)
0хF2 82 Накопленные данные
0хF4 4 Содержимое рабочего регистра
0хFВ 1034 Массив пооборотных или “быстрых” данных (1 страница)

3.5 Временные диаграммы работы пикап-станции

На Рис. 23 показана временная диаграмма работы пикап-станции в режиме работы с внешним запуском при запросе на пооборотные данные. Вначале подается команда 0х03. Сразу же из пикап-станции придет подтверждение “АСК” получения команды. Реально цикл измерения запустится по приходу внешнего синхроимпульса “Впуск”. Компьютер далее должен дождаться окончания цикла измерения – прихода из пикап-станции пакета “CONF”. После этого он с помощью команды 0x0B запрашивает и получает пооборотные данные. Далее компьютер может запрашивать и другие типы данных. Скорость передачи данных пооборотных измерений примерно 50 Мбит/сек. Массив данных 8К оборотов передается примерно за 21 мс.

<b>Рис. 23.</b> Временная диаграмма работы пикап-станции с внешним запуском.
Рис. 23. Временная диаграмма работы пикап-станции с внешним запуском.

На Рис. 24 показана временная диаграмма, поясняющая работу стека команд. Допустим, одна за другой в пикап-станцию приходят 2 команды: 0x0B и 0х02. Команда 0x0B будет сразу же выполняться – пикап-станция будет посылать пооборотные данные, а команда 0х02 будет ожидать своей очереди в буфере команд. По окончании цикла передачи пооборотных данных пикап-станция вначале пошлет пакет “АСК” (раньше она его послать не может из-за того, что занят передатчик), а затем и сами накопленные данные.

<b>Рис. 24.</b> Временная диаграмма, поясняющая работу стека команд.
Рис. 24. Временная диаграмма, поясняющая работу стека команд.

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 в формате float (4 байта): в регистр 14 записать младшие 2 байта, в регистр 15 записать старшие 2 байта. Напомним, что величина напряжения пооборотных измерений равна:

Uti = 2048×28×UADCi,

где UADCi – среднее значение напряжения сигнала канала i в кодах АЦП (±8191).

2) В регистре 0 бит 14 установить в 1, что означает режим автоматической прокрутки.

3) В регистр 4 записать число оборотов Nоб, в течение которых будет заполняться буфер пооборотных измерений после сброса пучка (0–65535). Реальное число оборотов, в течение которых будет заполняться буфер пооборотных измерений после сброса пучка, будет на 16 оборотов больше, то есть Nоб + 16.

Запуск режима автоматической прокрутки (непрерывной записи в память) осуществляется с помощью команды 3, как и обычный запуск. Программная остановка режима автоматической прокрутки осуществляется с помощью команды 5, как и для обычного режима.

После запуска режима автоматической прокрутки запись в память будет осуществляться до тех пор, пока сумма сигналов по каналам 0 и 2 (Ut0 + Ut2) будет больше числа, записанного в регистрах 14, 15. Если прочитывать статусный регистр 18, то в этом случае должна быть 0. После остановки данного режима в регистре 18 будет находиться 1.

После остановки режима автоматической прокрутки номер ячейки памяти N, при котором прекратилась запись, будет лежать в регистрах 9, 10. Ячейка памяти с номером N–1 – это последняя ячейка, в которой произошла запись перед остановкой. В ячейке с номером N лежат испорченные данные, и эту ячейку нужно отбросить. После остановки нужно прочитать весь буфер пооборотных измерений (131072 оборота), и, зная номер ячейки N, преобразовать его, свернув по времени. После этого надо отбросить последнюю ячейку, соответствующую номеру N, оставив таким образом 131071 оборот.

Во время работы режима автоматической прокрутки медленные измерения не работают, но в регистрах 16, 17 будет находиться сумма сигналов по каналам 0 и 2 (Ut0 + Ut2) в формате float (4 байта): в регистре 16 – младшие 2 байта, в регистре 17 – старшие 2 байта. Кроме того, во время работы режима автоматической прокрутки можно записывать нижний предел суммы 2-х напряжений пооборотных измерений в регистры 14, 15. Один из возможных сценариев работы в данном режиме – постоянно прочитывая регистры 16, 17, постоянно корректировать нижний предел, записывая коды в регистры 14, 15. Это позволит отделить остановку режима вследствие резкого сброса пучка от остановки из-за медленной деградации пучка.