v4orb2.wiki

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

commit d2b2ec0b5953c9e6d75ec849f1e182f5093e0b01
parent 3a084d289533556dac5814419a2942462872fd9d
Author: E.A.Bekhtenev <E.A.Bekhtenev@inp.nsk.su>
Date:   Wed Mar  1 07:33:31 +0700

upd

Diffstat:
dissector.md | 109++++++++++++++++++++++++++++++++++++++++++++++---------------------------------
1 file changed, 63 insertions(+), 46 deletions(-)
diff --git a/dissector.md b/dissector.md @@ -73,15 +73,15 @@ SMA разъем (“0-SEPAR”) предназначен для подачи и поступают частота ВЧ (“RF”) и импульс “нулевой” сепаратрисы (“0-SEPAR”). Схема “грубой” задержки представляет собой программируемый счетчик, который отсчитывает заданное количество периодов частоты ВЧ после переднего фронта импульса “нулевой” -сепаратрисы. Задается “грубая” задержка битами 0-7 регистра 6. Схема “плавной” -задержки имеет шаг 10 пс и диапазон 10.24 нс. Управляется она битами 0-9 регистра 8. +сепаратрисы. Задается “грубая” задержка битами 0-7 [регистра 6](#reg6). Схема “плавной” +задержки имеет шаг 10 пс и диапазон 10.24 нс. Управляется она битами 0-9 [регистра 8](#reg8). Подбирая правильные коды “грубой” и “плавной” задержек, схема таймирования обеспечивает оцифровку сигнала Диссектора точно на его вершине. Получение команд из компьютера и отсылка результатов измерения осуществляется через Ethernet интерфейс блока, работающий со скоростью 100 Мбит/сек. -# Режимы работы Блока АЦП. +# Режимы работы Блока АЦП[rejim] Существует 2 основных режима работы блока АЦП: @@ -91,8 +91,12 @@ SMA разъем (“0-SEPAR”) предназначен для подачи и В режиме пооборотных измерений осуществляется однократный запуск блока (программный или от внешнего импульса “START”) с заполнением внутренней и внешней памяти пооборотных измерений ([Рис.4](#fig4)). Длительность цикла измерения *T<sub>И</sub>* задается -программно кодами, записываемыми в регистры 1,2: *T<sub>И</sub> = Code_Т × T<sub>0</sub>*, где *T<sub>0</sub>* – период -частоты обращения, *Code_Т* – 24-битный код, записанный в регистры 1,2 (равный числу +программно кодами, записываемыми в [регистры 1,2](#reg1): + +*T<sub>И</sub> = Code_Т × T<sub>0</sub>* + +, где *T<sub>0</sub>* – период +частоты обращения, *Code_Т* – 24-битный код, записанный в [регистры 1,2](#reg1) (равный числу оборотов цикла измерения). Величина *Code_Т* должна быть больше размера массива пооборотных измерений, который пользователь хочет получить. @@ -101,7 +105,8 @@ SMA разъем (“0-SEPAR”) предназначен для подачи и [fig4]:dissector.img/fig4.png Кроме массива пооборотных измерений в данном режиме из блока можно получить -среднее значение амплитуды сигнала за время *T<sub>И</sub>* (с помощью команды 0х02). +среднее значение амплитуды сигнала за время *T<sub>И</sub>* (с помощью [команды 0х02](#cmd2)). + В режиме получения массива накопленных данных общий цикл измерения состоит из серии элементарных циклов измерения, показанных на [Рис.4](#fig4). Временная диаграмма, поясняющая работу в этом режиме, показана на [Рис.5](#fig5). @@ -110,12 +115,12 @@ SMA разъем (“0-SEPAR”) предназначен для подачи и [fig5]:dissector.img/fig5.png - В течение каждого элементарного цикла идет накопление сигнала. По окончании элементарного цикла накопленный сигнал записывается в ячейку внутренней памяти. По окончании общего (или суммарного) цикла измерения (*T<sub>Σ</sub>*) во внутренней памяти будет записан массив из *N<sub>e</sub> + 1* значений (средних значений амплитуды сигнала за времена *T<sub>И</sub>*). Как задавать величину *N<sub>e</sub>* будет описано ниже. + Режим получения массива накопленных может быть двух подвидов: 1. Режим сканирования задержки. @@ -127,10 +132,11 @@ SMA разъем (“0-SEPAR”) предназначен для подачи и величины задержки. В результате, по окончании полного цикла измерения мы получаем временную развертку сигнала Диссектора, что позволяет сразу правильно выставить задержку (соответствующую вершине сигнала). Диапазон -сканирования задержки задается в теле команды 6 на запуск данного цикла -измерения (см. ниже). Шаг плавной задержки задается кодом в регистре 9. -Длительность каждого элементарного цикла задается также кодами в регистрах 1,2. -Режим сканирования задержки задается записью нуля в бит 4 регистра 0. +сканирования задержки задается в теле [команды 6](#cmd6) на запуск данного цикла +измерения (см. ниже). Шаг плавной задержки задается кодом в [регистре 9](#reg9). +Длительность каждого элементарного цикла задается также кодами в [регистрах 1,2](#reg1). +Режим сканирования задержки задается записью нуля в бит 4 [регистра 0](#reg0). + Данный режим является настроечным. ## Режим получения профиля пучка. @@ -154,7 +160,6 @@ SMA разъем (“0-SEPAR”) предназначен для подачи и запускается от импульса “RAMP”. И так это происходит непрерывно. Остановить этот процесс можно, подав в блок [команду 5](#cmd5). - # Программирование Блока АЦП. Для приема-передачи данных в Блоке АЦП реализован UDP сервер. Сервер получает параметры, @@ -197,35 +202,35 @@ big endian (от старшего байта к младшему). Все пак ### регистра 0 - status[reg0] [Таблица 1. Описание регистра 0 (адрес 0х00).][tab1] -| Номера битов | 1,5-15 | 4 | 3 | 2 | 0 | -|:------------:|:---------------:|:-:|:-:|:-:|:-:| -| Описание |Не исполь-зуются | Сканировать (0) или нет (1) задержкой в режиме №2 | Внутренний (0) или внешний (1) запуск измерений от импульса “RAMP” | Внутренний (0) или внешний (1) запуск измерений от импульса “START” | Код усиления (0-1) | +| Номера битов | 15-5 | 4 | 3 | 2 | 1 | 0 | +|:------------:|:---------------:|:-:|:-:|:-:|:-:|:-:| +| Описание |Не исполь-зуются | Сканировать (0) или нет (1) задержкой в режиме №2 | Внутренний (0) или внешний (1) запуск измерений от импульса “RAMP” | Внутренний (0) или внешний (1) запуск измерений от импульса “START” |Не исполь-зуются | Код усиления (0-1) | ### регистр 1 - *N<sub>e</sub>*[reg1] [Таблица 2. Описание регистра 1 (адрес 0х01).][tab2] -| Номера битов | 0-15 | +| Номера битов | 15-0 | |:-------------:|:--------------------------------------------------------------------------:| | Описание | *N<sub>e</sub>* – длительность цикла измерения в оборотах (младшие 16 бит) | ### регистр 2 - *N<sub>e</sub>*[reg2] [Таблица 3. Описание регистра 2 (адрес 0х02).][tab3] -| Номера битов | 8-15 | 0-7 | +| Номера битов | 15-8 | 7-0 | |:------------:|:---------------:|:----:| | Описание | Не используются | *N<sub>e</sub>* – длительность цикла измерения в оборотах (старшие 8 бит) | ### регистр 3 - gap[reg3] [Таблица 4. Описание регистра 3 (адрес 0х03).][tab4] -| Номера битов | 8-15 | 0-7 | +| Номера битов | 15-8 | 7-0 | |:------------:|:---------------:|:----:| | Описание | Не используются | Коэффициент прореживания пооборотных измерений во внутренней памяти<br></br> (0 – прореживание выключено, 1 – записывается каждый второй оборот, 2 – каждый третий и т.д.) | ### регистр 4 - *N<sub>DEl0</sub>*[reg4] [Таблица 5. Описание регистра 4 (адрес 0х04).][tab5] -| Номера битов | 3-15 | 0-2 | +| Номера битов | 15-3 | 2-0 | |:-------------:|:---------------:|:---:| | Описание | Не используются | Начальная задержка импульса “0-сепаратрисы” *N<sub>DEl0</sub>* | @@ -236,7 +241,7 @@ big endian (от старшего байта к младшему). Все пак ### регистр 6 - sep[reg6] [Таблица 6. Описание регистра 6 (адрес 0х06).][tab6] -| Номера битов | 8-15 | 0-7 | +| Номера битов | 15-8 | 7-0 | |:-------------:|:---------------:|:------------------------:| | Описание | Не используются | Код сепаратрисы (0-*N<sub>MAX</sub>*) | @@ -248,14 +253,14 @@ big endian (от старшего байта к младшему). Все пак ### регистр 8 - fine[reg8] [Таблица 7. Описание регистра 8 (адрес 0х08).][tab7] -| Номера битов | 10-15 | 0-9 | +| Номера битов | 15-10 | 9-0 | |:------------:|:---------------:|:-----------------------------:| | Описание | Не используются | Код плавной задержки (0-1023) | ### регистр 9 - fstep[reg9] [Таблица 8. Описание регистра 9 (адрес 0х09).][tab8] -| Номера битов | 9-15 | 0-8 | +| Номера битов | 15-9 | 8-0 | |:------------:|:---------------:|:---:| | Описание | Не используются | Шаг сканирования кода плавной задержки в режиме №2 (в подрежиме сканирования задержкой) | @@ -269,7 +274,7 @@ big endian (от старшего байта к младшему). Все пак [Таблица 9. Описание регистра 10 (адрес 0х0a).][tab9] -| Номера битов | 0-15 | +| Номера битов | 15-0 | |:------------:|:---------------:| | Описание | Величина задержки от импульса “RAMP” до начала цикла измерения | @@ -280,14 +285,14 @@ big endian (от старшего байта к младшему). Все пак ### регистр 12 - page[reg12] [Таблица 10. Описание регистра 12 (адрес 0х0с).][tab10] -| Номера битов | 8-15 | 0-7 | +| Номера битов | 15-8 | 7-0 | |:------------:|:----:|:---:| | Описание | Конечная страница массива в режиме непрерывно передаваемого профиля пучка | Начальная страница массива в режиме непрерывно передаваемого профиля пучка | ### регистр 17 - tdel[reg17] [Таблица 11. Описание регистра 17 (адрес 0х11).][tab11] -| Номера битов | 0-15 | +| Номера битов | 15-0 | |:------------:|:---------------:| | Описание | Код интервала времени (задержки) TDEL между отправкой массива накопленных данных и запуском следующего цикла измерения в режиме №2 (см. [Рис.11](#fig11)) | @@ -298,7 +303,7 @@ big endian (от старшего байта к младшему). Все пак ### регистр 29 - version[reg29] [Таблица 12. Описание регистра 29 (адрес 0х1d).][tab12] -| Номера битов | 8-15 | 0-7 | +| Номера битов | 15-8 | 7-0 | |:------------:|:----:|:---:| | Описание | Содержит версию прошивки | Содержит тип блока | @@ -323,7 +328,7 @@ big endian (от старшего байта к младшему). Все пак Остальные регистры не используются, хотя в них можно записывать коды, и из них можно читать коды. -## Структура команд. Стек команд. +## Структура команд. Стек команд.[cmd] Команды, посылаемые из компьютера в Блок АЦП, содержат 6 байт. На [Рис.6](#fig6) показана структура команды. @@ -341,6 +346,7 @@ big endian (от старшего байта к младшему). Все пак остальных команд не имеют значения. Байты 4,5 для команд запроса пооборотных данных определяют номер конечной страницы буфера пооборотных измерений (или массива накопленных данных), для остальных команд не имеют значения. + После получения команды блок сразу же посылает пакет подтверждения получения команды “ACK” (Acknowledgement) – 4 байта, показанные на [Рис.7](#fig7). @@ -348,10 +354,16 @@ big endian (от старшего байта к младшему). Все пак [fig7]:dissector.img/fig7.png -Байт 0 – тип пакета (0х10). Байт 1 – код команды, байт 2 – номер регистра, байт 3 – -статус. Если команда правильна, то есть, это существующая команда, и номер регистра -лежит в диапазоне 0-15, то статус равен 0х0F. Если поступает несуществующая команда,то статус равен 0х10. Если номер регистра лежит за диапазоном 0-15, то статус равен +- Байт 0 – тип пакета (0х10). +- Байт 1 – код команды, +- байт 2 – номер регистра, +- байт 3 – статус. + * Если команда правильна, то есть, это существующая команда, и номер регистра +лежит в диапазоне 0-15, то статус равен 0х0F. + * Если поступает несуществующая команда,то статус равен 0х10. + * Если номер регистра лежит за диапазоном 0-15, то статус равен 0х20. + В Блоке АЦП реализован двухуровневый стек команд. Имеется буфер команд и рабочий регистр команд. Первоначально, поступающая команда записывается в буфер. Если пикап-станция в момент прихода какой-либо команды свободна (не занята @@ -372,9 +384,9 @@ big endian (от старшего байта к младшему). Все пак Номер регистра содержится в байте 1 команды, записываемые данные – в байтах 2,3. В ответ на эту команду Блок -АЦП сразу же посылает 4 байта “АСК”. Если команда 0х00 подается в момент, когда +АЦП сразу же посылает 4 байта “АСК”. Если [команда 0х00](#cmd0) подается в момент, когда запущен цикл измерения, отправка пакета “АСК” и запись в регистр начнется только -после окончания цикла измерения. В промежутке времени между приходом команды 0х03 +после окончания цикла измерения. В промежутке времени между приходом [команды 0х03](#cmd3) и приходом внешнего импульса запуска “START” (в режиме работы с внешним запуском) команда 0х00 выполняться может. @@ -382,7 +394,7 @@ big endian (от старшего байта к младшему). Все пак (среднее значение завремя *T<sub>И</sub>* ). В ответ на эту команду пикап-станция сразу же посылает 4 байта “АСК”. Далее -посылается пакет из 12 байт (Рис.3), включающий: +посылается пакет из 12 байт ([Рис.3](#fig3)), включающий: - “шапку” из 10 байт, - усредненного значения сигнала *U* (одно 4-байтное слово типа *float*). @@ -404,18 +416,21 @@ big endian (от старшего байта к младшему). Все пак [fig9]:dissector.img/fig9.png -Байт 0 – тип пакета (0xF2), по нему идентифицируется полученный компьютером -пакет. Байт 2 – соответствует байту 1 команды. На [Рис.6](#fig6) он называется “Номер регистра”. -Если команда 0х02 подается в момент, когда, либо запущен цикл измерения, либо блок +- Байт 0 – тип пакета (0xF2), по нему идентифицируется полученный компьютером +пакет. +- Байт 1 +- Байт 2 – соответствует байту 1 команды. На [Рис.6](#fig6) он называется “Номер регистра”. + +Если [команда 0х02](#cmd2) подается в момент, когда, либо запущен цикл измерения, либо блок ожидает прихода внешнего синхроимпульса после [команды 0х03](#cmd3), отправка пакета данных начнется только после окончания цикла измерения. ### Команда 0x03 - запуск цикла измерения.[cmd3] В ответ на эту команду Блок АЦП сразу же посылает 4 байта “АСК”. Затем, если -блок работает в режиме с внутренним запуском (биты 2,3 регистра 0 равны 0), сразу же +блок работает в режиме с внутренним запуском (биты 2,3 [регистра 0](#reg0) равны 0), сразу же запустится цикл измерения. Если же блок работает в режиме с внешним запуском -(Например, бит 2 регистра 0 равен 1), цикл измерения запустится только после прихода +(Например, бит 2 [регистра 0](#reg0) равен 1), цикл измерения запустится только после прихода внешнего импульса (“START”). По окончании цикла измерения блок посылает пакет из 2- х байт “CONF” (“Confirmation”), показанный на [Рис.10](#fig10). Данный пакет сигнализирует о том, что цикл измерения успешно завершился, можно читать данные. @@ -435,15 +450,18 @@ big endian (от старшего байта к младшему). Все пак [fig11]:dissector.img/fig11.png -Байт 0 – тип пакета (0xF4), по нему идентифицируется полученный компьютером -пакет. Байт 1 – номер регистра, из которого читается содержимое. Байты 2,3 – само -содержимое прочитанного регистра – 2 байта. Если команда 0х04 подается в момент,когда запущен цикл измерения, отправка пакета данных начнется только после окончания +- Байт 0 – тип пакета (0xF4), по нему идентифицируется полученный компьютером +пакет. +- Байт 1 – номер регистра, из которого читается содержимое. +- Байты 2,3 – само содержимое прочитанного регистра – 2 байта. + +Если [команда 0х04](#cmd4) подается в момент,когда запущен цикл измерения, +отправка пакета данных начнется только после окончания цикла измерения. В промежуток времени между приходом [команды 0х03](#cmd3) и приходом внешнего импульса запуска команда 0х04 выполняться может. ### Команда 0x05 - остановка цикла измерения.[cmd5] - В ответ на эту команду Блок АЦП сразу же посылает 4 байта “АСК”. Затем сразу же выполняет данную команду, то есть останавливает цикл измерения. Чаще всего эта команда используется для остановки процесса непрерывных измерений профиля пучка с @@ -530,7 +548,7 @@ big endian (от старшего байта к младшему). Все пак [fig16]:dissector.img/fig16.png -Каждая ячейка памяти представляет собой 2-байтовое число типа unsigned short int. +Каждая ячейка памяти представляет собой 2-байтовое число типа *unsigned short int*. Значения лежат в диапазоне 0-16383, для получения реальных напряжений нужно вычесть 8192. Логически весь объем памяти разбит на 32 страницу, каждая страница содержит 512 оборотов ([Рис.8](#fig8)). @@ -575,7 +593,6 @@ big endian (от старшего байта к младшему). Все пак ### Команда 0x0С - запись в регистр параметров с последующим чтением[cmd12] - Данная команда объединяет [команды 0х00](#cmd0) и [0х04](#cmd4). Номер регистра содержится в байте 1 команды, записываемые данные – в байтах 2,3. В ответ на эту команду Блок АЦП сразу же посылает 4 байта “АСК”. Если команда 0х0C подается в момент, когда запущен @@ -595,7 +612,7 @@ big endian (от старшего байта к младшему). Все пак ### Команда 0x06 – запуск режима получения массива накопленных данных[cmd6] -Перед подачей команды запуска режима *N2*, в зависимости от подвида режима +Перед подачей команды запуска режима [*№2*](#rejim), в зависимости от подвида режима (сканирование задержкой или получение “профиля” пучка) нужно установить требуемое значение бита 4 [регистра 0](#reg0). Также для получения “профиля” пучка нужно установить в “1” бит 3 [регистра 0](#reg0). Для сканирования задержкой нужно установить шаг сканирования @@ -704,7 +721,7 @@ big endian (от старшего байта к младшему). Все пак подтверждения “АСК” пошлет пакет с содержимым регистра. Затем, после прихода внешнего синхроимпульса “START” и запуска цикла измерения приходит вторая [команда 0х04](#cmd4), она будет ожидать в буфере окончания цикла измерения. После посылки пакета -“CONF” Блок АЦП посылает пакет подтверждения “АСК” и пакет с содержимымрегистра. +“CONF” Блок АЦП посылает пакет подтверждения “АСК” и пакет с содержимым регистра. Следует заметить, что в промежутке между [командой 0х03](#cmd3) и приходом внешнего синхроимпульса “Впуск” могут выполняться только команды [0х00](#cmd0), [0х04](#cmd4), [0х05](#cmd7), [0х07](#cmd7) и [0х0C](#cmd12).