v4orb2.wiki

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

dissector.md (72191B)


      1 Title:   Диссектор
      2 CSS:     table.css
      3 
      4 
      5 [TOP](index)
      6 
      7 {{TOC}}
      8 
      9 # Общее описание
     10 Блок АЦП предназначен для преобразования сигнала Диссектора
     11 в цифровой вид. Далее цифровой сигнал через Ethernet передается
     12 в компьютер для обработки. Сигналы регистрируются каждый оборот и
     13 записываются в память. Это – так называемые пооборотные измерения.
     14 Возможно накопление сигналов, когда сигнал суммируется за N<sub>e</sub> оборотов
     15 (где N<sub>e</sub> программируется), а затем также записывается в память.
     16 Если процесс оцифровки будет синхронизирован с “пилой”, подаваемой на
     17 Диссектор, получается профиль пучка. Блок выполнен в корпусе 1 U
     18 евромеханики шириной 19 дюймов и глубиной 220 мм. К нему подводится
     19 кабель с Диссектора, 3 кабеля с синхросигналами, кабель Ethernet 100 Mb/sec
     20 и гнездо сетевого питания 220В 50 Гц. Виды блока со стороны передней и
     21 задней панелей показаны на Рис.[1](#fig1) и [2](#fig2).
     22 
     23 ![Рис. 1. Вид на блок АЦП со стороны передней панели.][fig1]
     24 
     25 [fig1]:dissector.img/fig1.png "Рис. 1. Вид на блок АЦП со стороны передней панели."
     26 
     27 ![Рис. 2. Вид на блок АЦП со стороны задней панели.][fig2]
     28 
     29 [fig2]:dissector.img/fig2.png
     30 
     31 На передней панели находятся 4 разъема типа SMA, 3 светодиода (2 красных и 1 зеленый)
     32 и гнездо для подключения кабеля Ethernet. Левый крайний (или первый) SMA разъем
     33 (“RF”) предназначен для подачи частоты ВЧ накопителя F<sub>RF</sub>. Следующий (слева направо)
     34 SMA разъем (“0-SEPAR”) предназначен для подачи импульса нулевой сепаратрисы,
     35 который идет с частотой обращения F<sub>0</sub>. Длительность импульса нулевой сепаратрисы
     36 должен быть в пределах 15-50 нс. Следующий (слева направо) SMA разъем (“RAMP”)
     37 предназначен для подачи импульса, синхронизированного с пилой, подаваемой на Диссектор.
     38 Правый SMA разъем (“START”) предназначен для подачи импульса “START”, привязанный по
     39 времени с инжекцией пучка в накопитель. Амплитуда синхросигналов
     40 “0-SEPAR”, “RAMP” и “START” от ~1.2 В до ~3.3 В. Длительность импульсов
     41 “RAMP” и “START” – от 40 нс до нескольких миллисекунд. Гнездо Ethernet через
     42 кабель соединяется с локальной сетью, частота работы 100 Мбит/сек. Назначение светодиодов:
     43 
     44 - зеленый светодиод горит при включении питания и правильном конфигурировании FPGA;
     45 - левый красный светодиод загорается, когда появляется связь блока с Ethernet сетью (наличие “Link”);
     46 - правый красный светодиод загорается во время цикла измерения.
     47 
     48 На задней панели находится разъем типа SMA для соединения с Диссектором и гнездо сетевого питания 220В.
     49 
     50 # Принцип действия Блока АЦП
     51 Блок-схема Блока АЦП представлена на [Рис.3](#fig3).
     52 
     53 ![Рис.3. Блок-схема Блока АЦП.][fig3]
     54 
     55 [fig3]:dissector.img/fig3.png
     56 
     57 Блок состоит из аналоговой схемы, цифровой схемы и схемы таймирования.
     58 Аналоговая схема включает в себя входной неотражающий фильтр нижних частот с
     59 частотой среза 35 МГЦ, малошумящий усилитель с коэффициентом усиления ~15 дБ,
     60 усилитель с регулируемым усилением, коэффициент усиления которого может принимать
     61 одно из фиксированных значений (либо 0 дБ, либо 15 дБ), и 14-разрядный АЦП. Далее
     62 преобразованный в цифровой вид сигнал поступает в FPGA, где записывается во
     63 внутреннюю память FPGA емкостью 16K оборотов, а также накапливается. Одновременно
     64 через FPGA осуществляется запись во внешнюю память емкостью 1М оборотов. Таким
     65 образом, существуют 2 буфера памяти: память внутри FPGA емкостью 16К (2<sup>15</sup>) оборотов
     66 (внутренняя память) и внешняя память емкостью 1М (2<sup>20</sup>) оборотов. Во внутреннюю
     67 память могут быть записаны как пооборотные данные, так и накопленные данные,
     68 содержащие “профиль” пучка.
     69 
     70 Схема таймирования представляет собой последовательное соединение 2-х каскадов
     71 задержки – “грубой” задержки и “плавной” задержки. На вход схемы таймирования
     72 поступают частота ВЧ (“RF”) и импульс “нулевой” сепаратрисы (“0-SEPAR”). Схема
     73 “грубой” задержки представляет собой программируемый счетчик, который отсчитывает
     74 заданное количество периодов частоты ВЧ после переднего фронта импульса “нулевой”
     75 сепаратрисы. Задается “грубая” задержка битами 0-7 [регистра 6](#reg6). Схема “плавной”
     76 задержки имеет шаг 10 пс и диапазон 10.24 нс. Управляется она битами 0-9 [регистра 8](#reg8).
     77 Подбирая правильные коды “грубой” и “плавной” задержек, схема таймирования
     78 обеспечивает оцифровку сигнала Диссектора точно на его вершине.
     79 
     80 Получение команд из компьютера и отсылка результатов измерения осуществляется
     81 через Ethernet интерфейс блока, работающий со скоростью 100 Мбит/сек.
     82 
     83 # Режимы работы Блока АЦП[rejim]
     84 Существует 2 основных режима работы блока АЦП:
     85 
     86 1. Режим пооборотных измерений
     87 2. Режим получения массива накопленных данных
     88 
     89 ## Режим пооборотных измерений[rejimn1]
     90 В режиме пооборотных измерений осуществляется однократный запуск блока
     91 (программный или от внешнего импульса “START”) с заполнением внутренней и внешней
     92 памяти пооборотных измерений ([Рис.4](#fig4)). Длительность цикла измерения *T<sub>И</sub>* задается
     93 программно кодами, записываемыми в [регистры 1,2](#reg1):
     94 
     95 *T<sub>И</sub> = Code_Т × T<sub>0</sub>*
     96 
     97 , где *T<sub>0</sub>* – период
     98 частоты обращения, *Code_Т* – 24-битный код, записанный в [регистры 1,2](#reg1) (равный числу
     99 оборотов цикла измерения). Величина *Code_Т* должна быть больше размера массива
    100 пооборотных измерений, который пользователь хочет получить.
    101 
    102 ![Рис.4. Временная диаграмма режима пооборотных измерений.][fig4]
    103 
    104 [fig4]:dissector.img/fig4.png
    105 
    106 Кроме массива пооборотных измерений в данном режиме из блока можно получить
    107 среднее значение амплитуды сигнала за время *T<sub>И</sub>* (с помощью [команды 0х02](#cmd2)).
    108 
    109 ## Режим получения накопленных данных[rejimn2]
    110 В режиме получения массива накопленных данных общий цикл измерения состоит
    111 из серии элементарных циклов измерения, показанных на [Рис.4](#fig4). Временная диаграмма,
    112 поясняющая работу в этом режиме, показана на [Рис.5](#fig5).
    113 
    114 ![Рис.5. Временная диаграмма режима получения массива накопленных данных.][fig5]
    115 
    116 [fig5]:dissector.img/fig5.png
    117 
    118 В течение каждого элементарного цикла идет накопление сигнала. По окончании
    119 элементарного цикла накопленный сигнал записывается в ячейку внутренней памяти. По
    120 окончании общего (или суммарного) цикла измерения (*T<sub>Σ</sub>*) во внутренней памяти будет
    121 записан массив из *N<sub>e</sub> + 1* значений (средних значений амплитуды сигнала за времена *T<sub>И</sub>*).
    122 Как задавать величину *N<sub>e</sub>* будет описано ниже.
    123 
    124 Режим получения массива накопленных может быть двух подвидов:
    125 
    126 1. Режим сканирования задержки.
    127 2. Режим получения “ профиля” пучка.
    128 
    129 ### Режим сканирования задержки[rejimn21]
    130 В этом режиме после каждого элементарного цикла осуществляется изменение
    131 величины задержки. В результате, по окончании полного цикла измерения мы
    132 получаем временную развертку сигнала Диссектора, что позволяет сразу
    133 правильно выставить задержку (соответствующую вершине сигнала). Диапазон
    134 сканирования задержки задается в теле [команды 6](#cmd6) на запуск данного цикла
    135 измерения (см. ниже). Шаг плавной задержки задается кодом в [регистре 9](#reg9).
    136 Длительность каждого элементарного цикла задается также кодами в [регистрах 1,2](#reg1).
    137 Режим сканирования задержки задается записью нуля в бит 4 [регистра 0](#reg0).
    138 
    139 Данный режим является настроечным.
    140 
    141 ### Режим получения профиля пучка[rejimn22]
    142 В этом режиме после каждого элементарного цикла величина задержки не меняется
    143 (она настроена на вершину сигнала). Запуск полного цикла измерения осуществляется
    144 от сигнала “RAMP”, синхронизированного с пилой, подаваемой на Диссектор.
    145 Длительность каждого элементарного цикла (задается кодами в [регистрах 1](#reg1),[2](#reg2)) и
    146 число элементарных циклов выбирается таким, чтобы суммарное время общего цикла
    147 измерения *T<sub>Σ</sub>* было примерно равно периоду пилы (~20 мс). По окончании
    148 полного цикла измерения во внутренней памяти будет находиться продольный “профиль”
    149 пучка – массив из *N<sub>e</sub> + 1* значений. Как задавать величину *N<sub>e</sub>*
    150 будет описано ниже. Режим получения “профиля” пучка задается записью единицы в бит 4 [регистра 0](#reg0).
    151 
    152 Режим получения “профиля” пучка может быть как однократным (при использовании [команды 6](#cmd6)),
    153 так и непрерывным (при использовании [команды 14](#cmd14)). При однократном режиме по окончании цикла
    154 измерения блок останавливается и начинает ждать команды. Компьютер посылает
    155 [команду 11](#cmd11) (0х0В) – запрос на чтение внутренней памяти. Получив [команду 11](#cmd11),
    156 блок посылает в компьютер требуемый массив данных. В непрерывном режиме блок
    157 по окончании цикла измерения сам посылает массив данных, затем автоматически снова
    158 запускается от импульса “RAMP”. И так это происходит непрерывно. Остановить этот процесс
    159 можно, подав в блок [команду 5](#cmd5).
    160 
    161 # Программирование Блока АЦП
    162 Для приема-передачи данных в Блоке АЦП реализован UDP сервер. Сервер получает параметры,
    163 которые записывает в соответствующие регистры, а также команды на выполнение/остановку
    164 измерений и получение результатов измерений.
    165 
    166 Блок АЦП имеет фиксированный номер порта 2195. Номер порта компьютера, с которого
    167 происходит обращение к пикап-станции, может быть произвольным. Именно на этот порт и
    168 придет ответ блока.
    169 
    170 IP адрес пикап-станции жестко зашивается в Alterе (в прототипе он пока 192.168.1.150).
    171 
    172 Из всех ICMP пакетов пикап-станция отвечает только на PING. Другие ICMP пакеты игнорируются.
    173 
    174 Основные результаты измерений могут быть 3-х типов:
    175 
    176 1. Пооборотные данные – массив до 1М 16-битных чисел типа *unsigned short int*,
    177 которые соответствуют сигналу с Диссектора, преобразованному в цифровой вид с
    178 помощью АЦП. Диапазон значений 0-16383. Для получения знаковых чисел нужно из
    179 каждого числа вычесть 8191. Для внутренней памяти существует возможность “прореживания” –
    180 записи в эту память пооборотных измерений не каждого оборота, а через *N<sub>g</sub>*
    181 оборотов (задается кодом в [регистре 3](#reg3)).
    182 2. Массив накопленных данных – массив до 16К 16-битных чисел типа *unsigned short int*,
    183 которые соответствуют преобразованному в цифровой вид сигналу Диссектора, умноженному на 4.
    184 Для получения реальных знаковых чисел нужно каждое число поделить на 4, а затем вычесть 8191.
    185 3. Усредненное значение сигнала Диссектора (среднее значение за время *T<sub>И</sub>*) – одно 32-битное число типа *float*.
    186 
    187 Запуск измерения Блока АЦП может быть внутренним – сразу после прихода
    188 соответствующей команды, или внешним – по приходу одного или двух внешних синхроимпульсов (“RAMP” и “START”).
    189 
    190 Порядок байт, используемый при передаче данных из компьютера в блок и обратно –
    191 big endian (от старшего байта к младшему). Все пакеты, посылаемые блоком АЦП,
    192 содержат байт идентификации (байт 0), по которому можно однозначно определить тип пакета.
    193 
    194 ## Описание регистров параметров.
    195 
    196 В Таблицах 1-12 приведено описание регистров параметров.
    197 Всего регистров 32 (номера 0-31). Длина каждого регистра – 2 байта.
    198 
    199 ### регистра 0 - STATUS[reg0]
    200 
    201 [Таблица 1. Описание регистра 0 (адрес 0х00).][tab1]
    202 | Номера битов | 15-5            | 4 | 3 | 2 | 1 | 0 |
    203 |:------------:|:---------------:|:-:|:-:|:-:|:-:|:-:|
    204 | Описание     |Не исполь-зуются | Сканировать (0) или нет (1) задержкой в режиме [№2](#rejimn2) | Внутренний (0) или внешний (1) запуск измерений от импульса “RAMP” | Внутренний (0) или внешний (1) запуск измерений от импульса “START” |Не исполь-зуются | Код усиления (0-1) |
    205 
    206 ### регистр 1 - NELO[reg1]
    207 
    208 [Таблица 2. Описание регистра 1 (адрес 0х01).][tab2]
    209 | Номера битов  | 15-0                                                                       |
    210 |:-------------:|:--------------------------------------------------------------------------:|
    211 | Описание      | *N<sub>e</sub>* – длительность цикла измерения в оборотах (младшие 16 бит) |
    212 
    213 ### регистр 2 - NEHI[reg2]
    214 
    215 [Таблица 3. Описание регистра 2 (адрес 0х02).][tab3]
    216 | Номера битов | 15-8            | 7-0  |
    217 |:------------:|:---------------:|:----:|
    218 | Описание     | Не используются | *N<sub>e</sub>* – длительность цикла измерения в оборотах (старшие 8 бит) |
    219 
    220 ### регистр 3 - GAP[reg3]
    221 
    222 [Таблица 4. Описание регистра 3 (адрес 0х03).][tab4]
    223 | Номера битов | 15-8            | 7-0  |
    224 |:------------:|:---------------:|:----:|
    225 | Описание     | Не используются | Коэффициент прореживания пооборотных измерений во внутренней памяти<br></br> (0 – прореживание выключено, 1 – записывается каждый второй оборот, 2 – каждый третий и т.д.) |
    226 
    227 ### регистр 4 - NDEL0[reg4]
    228 
    229 [Таблица 5. Описание регистра 4 (адрес 0х04).][tab5]
    230 | Номера битов  | 15-3            | 2-0 |
    231 |:-------------:|:---------------:|:---:|
    232 | Описание      | Не используются | Начальная задержка импульса “0-сепаратрисы” *N<sub>DEl0</sub>* |
    233 
    234 Величина *N<sub>DEl0</sub>* подбирается вручную, чтобы исключить наложение фронтов импульса
    235 “нулевой сепаратрисы” и ВЧ напряжения. Подобрав один раз, надо ее запомнить,
    236 а затем всегда использовать.
    237 
    238 ### регистр 6 - SEP[reg6]
    239 
    240 [Таблица 6. Описание регистра 6 (адрес 0х06).][tab6]
    241 | Номера битов  | 15-8            | 7-0                      |
    242 |:-------------:|:---------------:|:------------------------:|
    243 | Описание      | Не используются | Код сепаратрисы (0-*N<sub>MAX</sub>*) |
    244 
    245 Величина *N<sub>MAX</sub>* – общее число сепаратрис в накопителе.
    246 Код сепаратрисы *C<sub>sep</sub>* связан с номером сепаратрисы *N<sub>sep</sub>* (0- *N<sub>MAX</sub>*) с помощью формулы:
    247 
    248 *N<sub>sep</sub>* = 255 – *C<sub>sep</sub>*.
    249 
    250 ### регистр 8 - FINE[reg8]
    251 
    252 [Таблица 7. Описание регистра 8 (адрес 0х08).][tab7]
    253 | Номера битов | 15-10           | 9-0                           |
    254 |:------------:|:---------------:|:-----------------------------:|
    255 | Описание     | Не используются | Код плавной задержки (0-1023) |
    256 
    257 ### регистр 9 - FINESTEP[reg9]
    258 
    259 [Таблица 8. Описание регистра 9 (адрес 0х09).][tab8]
    260 | Номера битов | 15-9            | 8-0 |
    261 |:------------:|:---------------:|:---:|
    262 | Описание     | Не используются | Шаг сканирования кода плавной задержки в [режиме №2](#rejimn2) (в подрежиме сканирования задержкой) |
    263 
    264 Связь кода *Code9* регистра 9 с шагом плавной задержки *ΔT<sub>DEL</sub>*:
    265 
    266 *ΔT<sub>DEL</sub>* = *Code9* × 10пс.
    267 
    268 Если *Code9*=0, то *ΔT<sub>DEL</sub>* = 10пс.
    269 
    270 ### регистр 10 - DELAYRAMP[reg10]
    271 
    272 
    273 [Таблица 9. Описание регистра 10 (адрес 0х0a).][tab9]
    274 | Номера битов | 15-0 |
    275 |:------------:|:---------------:|
    276 | Описание     | Величина задержки от импульса “RAMP” до начала цикла измерения |
    277 
    278 Связь кода *Code10* регистра 10 с величиной задержки от импульса “RAMP” до начала цикла измерения *ΔT<sub>RAMP</sub>*:
    279 
    280 *ΔT<sub>RAMP</sub>* = *Code10* × 1.28 мкс.
    281 
    282 ### регистр 12 - PAGE[reg12]
    283 
    284 [Таблица 10. Описание регистра 12 (адрес 0х0с).][tab10]
    285 | Номера битов | 15-8 | 7-0 |
    286 |:------------:|:----:|:---:|
    287 | Описание     | Конечная страница массива в режиме непрерывно передаваемого профиля пучка | Начальная страница массива в режиме непрерывно передаваемого профиля пучка |
    288 
    289 ### регистр 17 - TDEL[reg17]
    290 
    291 [Таблица 11. Описание регистра 17 (адрес 0х11).][tab11]
    292 | Номера битов | 15-0 |
    293 |:------------:|:---------------:|
    294 | Описание     | Код интервала времени (задержки) *T<sub>DEL</sub>* между отправкой массива накопленных данных и запуском следующего цикла измерения в [режиме №2](#rejimn2) |
    295 
    296 Связь кода *Code_del* регистра 17 с задержкой *T<sub>DEL</sub>*:
    297 
    298  *T<sub>DEL</sub>* = *Code_del* × 1024 × 0.04 мкс.
    299 
    300 ### регистр 29 - VERsion[reg29]
    301 
    302 [Таблица 12. Описание регистра 29 (адрес 0х1d).][tab12]
    303 | Номера битов | 15-8 | 7-0 |
    304 |:------------:|:----:|:---:|
    305 | Описание | Содержит версию прошивки | Содержит тип блока |
    306 
    307 [Регистр 29](#reg29) работает только на чтение. В данный момент версия прошивки 0х02, тип блока 0х01.
    308 
    309 ### регистр 30, 31 - HFHI, HFLO[reg30]
    310 
    311 При чтении [регистров 30,31](#reg30) (адреса 0x1e,0х1f) можно получить измеренную частоту обращения
    312 *F<sub>0</sub>* – частоту сигнала, поступающего на вход “0-сепаратриса” блока. Код частоты
    313 находится по формуле: *сode_F<sub>0</sub>* = (Reg30<<16) + Reg31, где Reg30, Reg31 –
    314 содержимое регистров 30,31. Связь измеренной частоты *F<sub>0</sub>* с прочитанным кодом *сode_F0*
    315 выражается формулой:
    316 
    317 *F<sub>0</sub>* = 100 МГц × *сode_F0* / (8192 × 8192).
    318 
    319 Время измерения частоты обращения – около 0.6 сек. Частота начнет измеряться
    320 только после записи корректного номера сепаратрисы. Разрешение измерений частоты
    321 обращения – около 1.5 Гц, точность измерений – порядка 10<sup>-5</sup>.
    322 
    323 ### регистр не используются[regunused]
    324 
    325 Остальные регистры не используются, хотя в них можно записывать коды, и из них
    326 можно читать коды.
    327 
    328 ## Структура команд. Стек команд.[cmd]
    329 
    330 Команды, посылаемые из компьютера в Блок АЦП, содержат 6 байт. На [Рис.6](#fig6)
    331 показана структура команды.
    332 
    333 ![Рис.6. Структура команды.][fig6]
    334 
    335 [fig6]:dissector.img/fig6.png
    336 
    337 Команда содержит код команды (байт 0) и 5 байт параметров команды. Байт 1 для
    338 команд записи в рабочие регистры и чтения из рабочих регистров содержит номер
    339 регистра, для команд запроса данных определяет номер кадра ответных пакетов данных.
    340 Байты 2,3 для команды записи в рабочий регистр содержат данные, которые нужно
    341 записать в регистр, для команд запроса пооборотных данных (или массива накопленных
    342 данных) определяют номер начальной страницы буфера пооборотных измерений, для
    343 остальных команд не имеют значения. Байты 4,5 для команд запроса пооборотных данных
    344 определяют номер конечной страницы буфера пооборотных измерений (или массива
    345 накопленных данных), для остальных команд не имеют значения.
    346 
    347 ### ACK[ack]
    348 После получения команды блок сразу же посылает пакет подтверждения получения
    349 команды “ACK” (Acknowledgement) – 4 байта, показанные на [Рис.7](#fig7).
    350 
    351 ![Рис.7. Ответ “ACK” на полученную команду.][fig7]
    352 
    353 [fig7]:dissector.img/fig7.png
    354 
    355 - байт 0 – тип пакета (0х10).
    356 - байт 1 – код команды,
    357 - байт 2 – номер регистра,
    358 - байт 3 – статус.
    359     * Если команда правильна, то есть, это существующая команда, и номер регистра
    360 лежит в диапазоне 0-15, то статус равен 0х0F.
    361     * Если поступает несуществующая команда,то статус равен 0х10.
    362     * Если номер регистра лежит за диапазоном 0-15, то статус равен
    363 0х20.
    364 
    365 В Блоке АЦП реализован двухуровневый стек команд. Имеется буфер команд и
    366 рабочий регистр команд. Первоначально, поступающая команда записывается в буфер.
    367 Если пикап-станция в момент прихода какой-либо команды свободна (не занята
    368 выполнением предыдущей команды), то сразу же произойдет перезапись из буфера
    369 команд в рабочий регистр команд, и команда начнет выполняться. Если блок в момент
    370 прихода какой-либо команды занят выполнением предыдущей команды, то перезапись из
    371 буфера команд в рабочий регистр команд (с последующим выполнением команды)
    372 произойдет только после выполнения предыдущей команды. Если в момент ожидания
    373 выполнения команды поступит еще одна команда, то она перезапишет команду,
    374 находившуюся в буфере. Существует несколько исключений. Если запущен цикл
    375 измерения, то некоторые команды (например, команда чтения рабочего регистра) могут
    376 быть выполнены сразу, не дожидаясь окончания цикла. Подробнее об этом будет сказано
    377 ниже.
    378 
    379 ## Описание типов команд.
    380 
    381 ### Команда WRREG (0x00) - Запись в регистры параметров[cmd0]
    382 
    383 Номер регистра содержится
    384 в байте 1 команды, записываемые данные – в байтах 2,3. В ответ на эту команду Блок
    385 АЦП сразу же посылает 4 байта “АСК”. Если [команда 0х00](#cmd0) подается в момент, когда
    386 запущен цикл измерения, отправка пакета “АСК” и запись в регистр начнется только
    387 после окончания цикла измерения. В промежутке времени между приходом [команды 0х03](#cmd3)
    388 и приходом внешнего импульса запуска “START” (в режиме работы с внешним запуском)
    389 команда 0х00 выполняться может.
    390 
    391 ### Команда READ (0x02) - чтение усредненного значения сигнала[cmd2]
    392 (среднее значение завремя *T<sub>И</sub>* ).
    393 
    394 В ответ на эту команду пикап-станция сразу же посылает 4 байта “АСК”. Далее
    395 посылается пакет из 12 байт ([Рис.3](#fig3)), включающий:
    396 
    397 - “шапку” из 10 байт,
    398 - усредненного значения сигнала *U* (одно 4-байтное слово типа *float*).
    399 
    400 ![Рис.8. Структура получаемого пакета в ответ на команду 0х02.][fig8]
    401 
    402 [fig8]:dissector.img/fig8.png
    403 
    404 На основе прочитанного кода *code_U* нужно вычислить реальное среднее значение
    405 напряжения на входе АЦП *U* по формуле:
    406 
    407 *U* = *code_U* / (*N<sub>e</sub>* + 1),
    408 
    409 где *N<sub>e</sub>* – длительность цикла измерения в оборотах.Вычисленное таким образом среднее значение напряжения будет относиться к
    410 оцифрованному с помощью АЦП сигналу в диапазоне -8192 –> +8191.
    411 Содержимое “шапки” приведено на [Рис.9](#fig9).
    412 
    413 ![Рис.9. Содержимое “шапки” при посылке усредненного значения сигнала.][fig9]
    414 
    415 [fig9]:dissector.img/fig9.png
    416 
    417 - Байт 0 – тип пакета (0xF2), по нему идентифицируется полученный компьютером
    418 пакет.
    419 - Байт 1
    420 - Байт 2 – соответствует байту 1 команды. На [Рис.6](#fig6) он называется “Номер регистра”.
    421 
    422 Если [команда 0х02](#cmd2) подается в момент, когда, либо запущен цикл измерения, либо блок
    423 ожидает прихода внешнего синхроимпульса после [команды 0х03](#cmd3), отправка пакета данных
    424 начнется только после окончания цикла измерения.
    425 
    426 ### Команда START (0x03) - запуск цикла измерения.[cmd3]
    427 
    428 В ответ на эту команду Блок АЦП сразу же посылает 4 байта “АСК”. Затем, если
    429 блок работает в режиме с внутренним запуском (биты 2,3 [регистра 0](#reg0) равны 0), сразу же
    430 запустится цикл измерения. Если же блок работает в режиме с внешним запуском
    431 (Например, бит 2 [регистра 0](#reg0) равен 1), цикл измерения запустится только после прихода
    432 внешнего импульса (“START”). По окончании цикла измерения блок посылает пакет из 2-
    433 х байт “CONF” (“Confirmation”), показанный на [Рис.10](#fig10). Данный пакет сигнализирует о
    434 том, что цикл измерения успешно завершился, можно читать данные.
    435 
    436 ![Рис.10. Пакет “CONF”, посылаемый после окончания цикла измерения.][fig10]
    437 
    438 [fig10]:dissector.img/fig10.png
    439 
    440 ### Команда RDREG (0x04) - чтение регистра параметров[cmd4]
    441 
    442 
    443 Номер регистра, чтение которого запрашивается, содержится в байте 2 команды. В
    444 ответ на эту команду Блок АЦП сразу же посылает 4 байта “АСК”. Затем сразу же
    445 посылает 4-х байтовый пакет данных, показанный на Рис.11.
    446 
    447 ![Рис.11. Структура получаемого пакета в ответ на команду 0х04.][fig11]
    448 
    449 [fig11]:dissector.img/fig11.png
    450 
    451 - Байт 0 – тип пакета (0xF4), по нему идентифицируется полученный компьютером
    452 пакет.
    453 - Байт 1 – номер регистра, из которого читается содержимое.
    454 - Байты 2,3 – само содержимое прочитанного регистра – 2 байта.
    455 
    456 Если [команда 0х04](#cmd4) подается в момент,когда запущен цикл измерения,
    457 отправка пакета данных начнется только после окончания
    458 цикла измерения. В промежуток времени между приходом [команды 0х03](#cmd3) и приходом
    459 внешнего импульса запуска команда 0х04 выполняться может.
    460 
    461 ### Команда STOP (0x05) - остановка цикла измерения.[cmd5]
    462 
    463 В ответ на эту команду Блок АЦП сразу же посылает 4 байта “АСК”. Затем сразу же
    464 выполняет данную команду, то есть останавливает цикл измерения. Чаще всего эта
    465 команда используется для остановки процесса непрерывных измерений профиля пучка с
    466 автоматической посылкой данных (см. ниже). Вообще, полезно перед каждым новым
    467 запуском измерения подавать данную команду.
    468 
    469 ### Команда RSTCNT (0x07) - обнуление счетчика числа измерения.[cmd7]
    470 
    471 В ответ на эту команду Блок АЦП сразу же посылает 4 байта “АСК”. Затем сразу же
    472 выполняет данную команду, то есть обнуляет номер измерения. Содержимое счетчика
    473 числа измерения посылается в “шапках” данных – в байте 9. Счетчик номера измерения
    474 инкрементируется после каждого выполненного измерения. После номера 255 следует 0 и
    475 т.д. Данная команда может выполняться в промежутке времени между приходом
    476 [команды 0х03](#cmd3) и приходом внешнего синхроимпульса запуска.
    477 
    478 ### Команда TURNLONG 0x0A - чтение внешней памяти пооборотных измерений[cmd10]
    479 
    480 В ответ на эту команду Блок АЦП сразу же посылает 4 байта “АСК”. Затем, в
    481 зависимости от того, запущен цикл измерения или нет, он, либо сразу же посылает данные
    482 (если цикл измерения не запущен), либо ожидает окончания цикла измерения, и только
    483 затем посылает данные.
    484 Внешняя память содержит измеренные напряжения с Диссектора за 1М (2<sup>20</sup> )
    485 оборотов. Содержимое памяти показано на [Рис.12](#fig12).
    486 
    487 ![Рис.12. Содержимое внешней памяти пооборотных данных.][fig12]
    488 
    489 [fig12]:dissector.img/fig12.png
    490 
    491 Каждая ячейка памяти представляет собой 2-байтовое число типа *unsigned short int*.
    492 Значения лежат в диапазоне 0-16383, для получения реальных напряжений нужно вычесть
    493 8192. Логически весь объем внешней памяти разбит на 2048 страниц, каждая страница
    494 содержит 512 оборотов ([Рис.13](#fig13)).
    495 
    496 ![Рис.13. Структура внешней памяти пооборотных данных.][fig13]
    497 
    498 [fig13]:dissector.img/fig13.png
    499 
    500 С помощью команды 0х0A можно прочитать любую порцию страниц. Диапазон
    501 читаемых страниц задается самой командой (см. [Рис.6](#fig6)). Начальная страница *N<sub>p1</sub>*
    502 содержится в байтах 2,3 команды. Конечная страница *N<sub>p2</sub>* содержится в байтах 4,5
    503 команды. В ответ на команду посылается *N<sub>p</sub>* страниц в диапазоне от *N<sub>p1</sub>* до *N<sub>p2</sub>*
    504 включительно (*N<sub>p</sub>* = *N<sub>p2</sub>* – *N<sub>p1</sub>* + 1). Каждая страница посылается отдельным пакетом со своей
    505 10-байтовой “шапкой” ([Рис.14](#fig14)).
    506 
    507 ![Рис.14. Структура одного из пакетов, содержащего страницу N.][fig14]
    508 
    509 [fig14]:dissector.img/fig14.png
    510 
    511 Размер каждого пакета равен 1034 байт. Вначале идет 10-байтовая “шапка”, затем
    512 напряжения с Диссектора за 512 оборотов. Структура “шапки” показана на [Рис.15](#fig15).
    513 
    514 ![Рис.15. Содержимое “шапки” при посылке пакета пооборотных данных.][fig15]
    515 
    516 [fig15]:dissector.img/fig15.png
    517 
    518 - Байт 0 – тип пакета (0xFB), по нему идентифицируется полученный компьютером
    519 пакет.
    520 - Байт 1 – 0х0B.
    521 - Байт 2 – соответствует байту 1 команды, на [Рис.6](#fig6) он называется
    522 “Номер регистра”, то есть задается запрашиваемым устройством.
    523 - Байты 3, 4 – номер
    524 пакета (равный номеру страницы).
    525 - Байты 5,6 – начальная страница *N<sub>p1</sub>* запрашиваемой
    526 порции страниц.
    527 - Байты 7,8 – конечная страница *N<sub>p2</sub>* запрашиваемой порции страниц.
    528 - Байт 9 – номер измерения.
    529 
    530 В случае, если какой-либо пакет из запрашиваемой порции окажется испорченным,
    531 его можно будет получить еще раз, запросив данную страницу. Если [команда 0х0A](#cmd10)
    532 подается в момент, когда, либо запущен цикл измерения, либо блок ожидает приходавнешнего синхроимпульса после [команды 0х03](#cmd3), отправка пакетов данных начнется только
    533 после окончания цикла измерения.
    534 
    535 ### Команда TURNSHORT (0x0D) - чтение внутренней памяти пооборотных измерений[cmd13]
    536 
    537 В ответ на эту команду Блок АЦП сразу же посылает 4 байта “АСК”. Затем, в
    538 зависимости от того, запущен цикл измерения или нет, он, либо сразу же посылает данные
    539 (если цикл измерения не запущен), либо ожидает окончания цикла измерения, и только
    540 затем посылает данные.
    541 
    542 Внутренняя память содержит измеренные напряжения с Диссектора за 16 К (16384)
    543 оборотов. Содержимое памяти показано на [Рис.16](#fig16).
    544 
    545 ![Рис.16. Содержимое внутренней памяти пооборотных данных.][fig16]
    546 
    547 [fig16]:dissector.img/fig16.png
    548 
    549 Каждая ячейка памяти представляет собой 2-байтовое число типа *unsigned short int*.
    550 Значения лежат в диапазоне 0-16383, для получения реальных напряжений нужно вычесть
    551 8192. Логически весь объем памяти разбит на 32 страницу, каждая страница содержит 512
    552 оборотов ([Рис.8](#fig8)).
    553 
    554 ![Рис.17. Структура внутренней памяти пооборотных данных.][fig17]
    555 
    556 [fig17]:dissector.img/fig17.png
    557 
    558 С помощью [команды 0х0D](#cmd13) можно прочитать любую порцию страниц. Диапазон
    559 читаемых страниц задается самой командой (см. [Рис.6](#fig6)). Начальная страница *N<sub>p1</sub>*
    560 содержится в байтах 2,3 команды. Конечная страница *N<sub>p2</sub>* содержится в байтах 4,5
    561 команды. В ответ на команду посылается *N<sub>p</sub>* страниц в диапазоне от *N<sub>p1</sub>* до *N<sub>p2</sub>*
    562 включительно (*N<sub>p</sub>* = *N<sub>p2</sub>* – *N<sub>p1</sub>* + 1). Каждая
    563 страница посылается отдельным пакетом со своей
    564 10-байтовой “шапкой” ([Рис.18](#fig18)). Размер каждого пакета равен 1034 байт. Вначале идет 10-
    565 байтовая “шапка”, затем напряжения с Диссектора за 512 оборотов. Структура “шапки”
    566 показана на [Рис.19](#fig19).
    567 
    568 ![Рис.18. Структура одного из пакетов, содержащего страницу N.][fig18]
    569 
    570 [fig18]:dissector.img/fig18.png
    571 
    572 ![Рис.19. Содержимое “шапки” при посылке пакета пооборотных данных.][fig19]
    573 
    574 [fig19]:dissector.img/fig19.png
    575 
    576 - Байт 0 – тип пакета (0xFD), по нему идентифицируется полученный компьютером
    577 пакет.
    578 - Байт 1 – код команды (0х0D).
    579 - Байт 2 – соответствует байту 1 команды, на [Рис.6](#fig6) он
    580 называется “Номер регистра”, то есть задается запрашиваемым устройством.
    581 - Байты 3, 4 – номер пакета (равный номеру страницы).
    582 - Байты 5, 6 – начальная страница *N<sub>p1</sub>* запрашиваемой порции страниц.
    583 - Байты 7, 8 – конечная страница *N<sub>p2</sub>* запрашиваемой порции страниц.
    584 - Байт 9 – номер измерения.
    585 
    586 В случае, если какой-либо пакет из запрашиваемой порции окажется испорченным,
    587 его можно будет получить еще раз, запросив данную страницу. Если [команда 0х0В](#cmd11)
    588 подается в момент, когда, либо запущен цикл измерения, либо пикап-станция ожидает
    589 прихода внешнего синхроимпульса после [команды 0х03](#cmd3), отправка пакетов данных
    590 начнется только после окончания цикла измерения.
    591 
    592 ### Команда WRRDREG (0x0С) - запись в регистр параметров с последующим чтением[cmd12]
    593 
    594 Данная команда объединяет [команды 0х00](#cmd0) и [0х04](#cmd4). Номер регистра содержится в
    595 байте 1 команды, записываемые данные – в байтах 2,3. В ответ на эту команду Блок АЦП
    596 сразу же посылает 4 байта “АСК”. Если команда 0х0C подается в момент, когда запущен
    597 цикл измерения, отправка пакета “АСК” и запись в регистр начнется только после
    598 окончания цикла измерения. В промежутке времени между приходом команды 0х03 и
    599 приходом внешнего импульса запуска “Впуск” (в режиме работы с внешним запуском)
    600 команда 0х0C выполняться может. Затем, после записи в регистр сразу же осуществляется
    601 его чтение. Блок АЦП посылает 4-байтовый пакет, показанный на [Рис.11](#fig11).
    602 
    603 ### Команда RDREGSYN (0x0F) – синхронное чтение регистра параметров[cmd15]
    604 
    605 Данная команда аналогична [команде 0х04](#cmd4), единственное ее отличие в том, что
    606 процесс посылки пакета данных (4 байта) привязан по времени к окончанию цикла
    607 измерения. Если цикл измерения не запущен, то и посылки данных не будет. Если после
    608 подачи [команды 0х03](#cmd3) с внешним запуском подать [команду 0х0F](#cmd15), то содержимое регистра
    609 придет после окончания цикла измерения (сразу после “CONF”).
    610 
    611 ### Команда START2 (0x06) – запуск режима получения массива накопленных данных[cmd6]
    612 
    613 Перед подачей команды запуска [режима *№2*](#rejim), в зависимости от подвида режима
    614 (сканирование задержкой или получение “профиля” пучка) нужно установить требуемое
    615 значение бита 4 [регистра 0](#reg0). Также для получения “профиля” пучка нужно установить в
    616 “1” бит 3 [регистра 0](#reg0). Для сканирования задержкой нужно установить шаг сканирования
    617 плавной задержкой в [регистре 9](#reg9).
    618 
    619 Структура команды показана на [Рис.20](#fig20). Байт 2 команды содержит код сепаратрисы
    620 *C<sub>sep</sub>* , с которой начинается сканирование, Байт 3 команды содержит код сепаратрисы,
    621 которой оканчивается сканирование. Напомним, что код сепаратрисы *C<sub>sep</sub>* связан с
    622 номером сепаратрисы *N<sub>sep</sub>* (0-13) с помощью формулы: *N<sub>sep</sub>* = 255 – *C<sub>sep</sub>* .
    623 Для режима получения “профиля” пучка байты 2,3 могут быть любыми.
    624 
    625 ![Рис.20. Структура команды 0x06.][fig20]
    626 
    627 [fig20]:dissector.img/fig20.png
    628 
    629 Байты 4,5 команды содержат диапазон сканирования плавной задержки *D<sub>SCAN</sub>* (0-1023).
    630 Для получения корректной временной картинки величина *D<sub>SCAN</sub>* должна быть равна:
    631 
    632 *D<sub>SCAN</sub>* = *T<sub>0</sub>* /10пс.
    633 
    634 Для режима получения “профиля” пучка в байты 4,5 устанавливается число точек
    635 для “профиля” пучка (число точек в развертке пилы). При этом длительность цикла
    636 измерения *N<sub>e</sub>* подбирается таким, чтобы время общего (или суммарного) цикла измерения
    637 *T<sub>Σ</sub>* было чуть меньше (примерно на 0.2 мс) периода пилы.
    638 
    639 В ответ на [команду 0x06](#cmd6) Блок АЦП сразу же посылает 4 байта “АСК”. Для каждой
    640 точки массива осуществляется накапливание сигнала в течение *N<sub>e</sub>* оборотов. Результат
    641 накапливания записывается во внутреннюю память пооборотных измерений в формате
    642 *short int* в единицах кода АЦП, умноженного на 4 (±32767). По окончании суммарного
    643 цикла измерения приходит пакет “CONF” 0х1106. После этого с помощью [команды 0x0B](#cmd11)
    644 можно прочитать внутреннюю память пооборотных измерений, которая будет содержать
    645 результаты сканирования или “профиль” пучка. Для того, чтобы досрочно прервать
    646 процесс сканирования можно подать [команду 0х05](#cmd5).
    647 
    648 ### Команда READ2 (0x0B) – чтение результатов режима получения массива накопленных данных[cmd11]
    649 из внутренней памяти пооборотных измерений.
    650 
    651 В ответ на эту команду Блок АЦП сразу же посылает 4 байта“АСК”. Структура
    652 данной команды идентична структуре [команды 0x0D](#cmd13). Запрашивается целое количество
    653 страниц. Каждая страница посылается отдельным пакетом, структура данных
    654 полностьюаналогична структуре данных, присылаемых по [команде 0x0D](#cmd13). “Шапка” каждого пакета
    655 отличается только байтом 1 ([Рис.21](#fig21)).
    656 
    657 ![Рис.21. Содержимое “шапки” при посылке пакета результатов сканирования.][fig21]
    658 
    659 [fig21]:dissector.img/fig21.png
    660 
    661 Формат данных, в отличие от результатов пооборотных измерений, *short int* в
    662 единицах кода АЦП, умноженного на 4 (±32767).
    663 
    664 ### Команда STARTCONT (0x0E) – запуск непрерывных измерений[cmd14]
    665  с автоматической посылкой результатов измерения “профиля” пучка.
    666 
    667 После окончания полного цикла измерения осуществляется посылка содержимого
    668 внутренней памяти объемом от 1 до 32 страниц. После этого выдерживается задержка в
    669 диапазоне от 10 мкс до 2.7 сек (65535 × 41мкс), задаваемая кодом [регистра 17](#reg17), после чего
    670 сразу же запускается следующий цикл измерения и т.д. ([Рис.22](#fig22)).
    671 
    672 ![Рис.22. Организация непрерывных измерений с автоматической посылкой данных.][fig22]
    673 
    674 [fig22]:dissector.img/fig22.png
    675 
    676 Диапазон посылаемых страниц внутренней памяти задается [регистром 12](#reg12) (биты 0-7
    677 – начальная страница *N<sub>p1</sub>* , биты 8-15 – конечная страница *N<sub>p2</sub>* ). Таким образом, в режиме
    678 непрерывных измерений “профиля” пучка Блок АЦП всегда по окончании цикла
    679 измерения посылает массив накопленных данных. Формат посылаемых пакетов
    680 накопленных данных аналогичен формату пакетов, посылаемых по [команде 0х0B](cmd12).
    681 В режиме непрерывных измерений с автоматической посылкой результатов
    682 измерения “профиля” пучка все получаемые команды блоком АЦП игнорируются.
    683 Единственное исключение – [команда 0х05](#cmd5), которая останавливает данный режим.
    684 
    685 ## Сводная таблица типов пакетов от Блока АЦП.
    686 
    687 | Байт идентификации (байт 0) | Длина пакета | Тип пакета |
    688 |:---------------------------:|:------------:|:----------:|
    689 | 0х10                        | 4            | Пакет подтверждения получения команды – “АСК” |
    690 | 0х11                        | 2            | Пакет, сигнализирующий о завершении цикла измерения – “CONF” |
    691 | 0хF2                        | 26           | Усредненное значение сигнала |
    692 | 0хF4                        | 4            | Содержимое рабочего регистра |
    693 | 0хFB                        | 1034         | Массив пооборотных данных из внешней памяти (1 страница) |
    694 | 0хFD                        | 1034         | Массив пооборотных или накопленных данных из внутренней памяти (1 страница) |
    695 
    696 ## Матрица зависимостей[depends]
    697 
    698 
    699 |          сущность                    | [пооборотные измерения](#rejimn1) | [сканирование](#rejimn21) |    [профиль однократно](#rejimn22) | [профиль непрерывно](#rejimn22) | [ACK](#ack) | [CONF](#conf) |  заголовок |      данные     |
    700 |:------------------------------------:|:---------------------------------:|:-------------------------:|:----------------------------------:|:-------------------------------:|:-----------:|:-------------:|:----------:|:---------------:|
    701 | [регистр STATUS.gain](#reg0)         |                  +                |             +             |                  +                 |                +                |             |               |            |                 |
    702 | [регистр STATUS.start](#reg0)        |                  +                |             +             |                  +                 |                +                |             |               |            |                 |
    703 | [регистр STATUS.ramp](#reg0)         |                  +                |             +             |                  +                 |                +                |             |               |            |                 |
    704 | [регистр STATUS.scan](#reg0)         |                  0                |             0             |                  1                 |                1                |             |               |            |                 |
    705 | [регистр NEHI](#reg2).[NELO](#reg1)  |                  +                |             +             |                  +                 |                +                |             |               |            |                 |
    706 | [регистр GAP](#reg3)                 |                  +                |             +             |                  +                 |                +                |             |               |            |                 |
    707 | [регистр NDEL0](#reg4)               |                  +                |             +             |                  +                 |                +                |             |               |            |                 |
    708 | [регистр SEP](#reg6)                 |                  +                |                           |                  +                 |                +                |             |               |            |                 |
    709 | [регистр FINE](#reg8)                |                  +                |                           |                  +                 |                +                |             |               |            |                 |
    710 | [регистр FINESTEP](#reg9)            |                                   |             +             |                                    |                                 |             |               |            |                 |
    711 | [регистр DELAYRAMP](#reg10)          |                  +                |             +             |                  +                 |                +                |             |               |            |                 |
    712 | [регистр PAGE](#reg12)               |                                   |                           |                                    |                +                |             |               |            |                 |
    713 | [регистр TDEL](#reg17)               |                                   |                           |                                    |                +                |             |               |            |                 |
    714 | [регистр VERsion](#reg29)            |                                   |                           |                                    |                                 |             |               |            |                 |
    715 | [регистр HFHI](#reg30).[HFLO](#reg31)|                                   |                           |                                    |                                 |             |               |            |                 |
    716 |              - // -                  |||||||||
    717 | [команда WRREG](#cmd0)               |                                   |                           |                                    |                                 |  *          |               |            |      cmd        |
    718 | [команда RDREG](#cmd4)               |                                   |                           |                                    |                                 |  *          |               |            |      cmd        |
    719 | [команда WRRDREG](#cmd12)            |                                   |                           |                                    |                                 |  *          |               |            |     cmd         |
    720 | [команда RDREGSYN](#cmd15)           |                                   |                           |                                    |                                 |  *          |               |            |     cmd         |
    721 |              - // -                  |||||||||
    722 | [команда START](#cmd3)               |                  +                |                           |                                    |                                 |  *          |   *           |            |                 |
    723 | [команда TURNLONG](#cmd10)           |                                   |                           |                                    |                                 |  *          |               |   10       |    turns        |
    724 | [команда TURNLSHORT](#cmd13)         |                                   |                           |                                    |                                 |  *          |               |   10       |    turns        |
    725 |              - // -                  |||||||||
    726 | [команда START2](#cmd6)              |                                   |             +             |                  +                 |                +                |  *          |               |            |                 |
    727 | [команда STARTCONT](#cmd14)          |                                   |                           |                                    |                +                |  *          |               |            |                 |
    728 | [команда READ2](#cmd11)              |                                   |                           |                                    |                                 |  *          |               |   10       |     data        |
    729 |              - // -                  |||||||||
    730 | [команда READ](#cmd2)                |                                   |                           |                                    |                                 |  *          |               |            |      float      |
    731 | [команда STOP](#cmd5)                |                  +                |              +            |                   +                |                +                |  *          |               |            |                 |
    732 | [команда RSTCNT](#cmd7)              |                                   |                           |                                    |                                 |  *          |               |            |                 |
    733                                                                                                                                                                                                            
    734 
    735 ## Временные диаграммы работы Блок а АЦП.
    736 
    737 На [Рис.23](#fig23) показана временная диаграмма работы Блока АЦП в режиме работы с
    738 внешним запуском при запросе на пооборотные данные из внутренней памяти. Вначале
    739 подается [команда 0х03](#cmd3). Сразу же из Блока АЦП придет подтверждение “АСК” получения
    740 команды. Реально цикл измерения запустится по приходу внешнего синхроимпульса
    741 “START”. Компьютер далее должен дождаться окончания цикла измерения – прихода из
    742 Блока АЦП пакета “CONF”. После этого он с помощью [команды 0x0D](#cmd13) запрашивает и
    743 получает пооборотные данные. Далее компьютер может запрашивать и другие типы
    744 данных. Скорость передачи данных пооборотных измерений примерно 50 Мбит/сек.
    745 Массив данных 16К оборотов передается примерно за 6 мс.
    746 
    747 На [Рис.24](#fig24) показана временная диаграмма, поясняющая работу стека команд.
    748 Допустим, одна за другой в Блок АЦП приходят 2 команды: [0x0D](#cmd13) и [0х02](#cmd2). [Команда 0x0D](#cmd13)
    749 будет сразу же выполняться – Блок АЦП будет посылать пооборотные данные, а [команда 0х02](#cmd2)
    750 будет ожидать своей очереди в буфере команд. По окончании цикла передачи
    751 пооборотных данных Блок АЦП вначале пошлет пакет “АСК” (раньше он его послать не
    752 может из-за того, что занят передатчик), а затем и само усредненное значение сигнала.
    753 
    754 На [Рис.25](#fig25) показана временная диаграмма работы Блока АЦП при чтении рабочих
    755 регистров при ожидании внешнего запуска. Итак, вначале подается [команда 0х03](#cmd3). Затем
    756 сразу же подается первая [команда 0х04](#cmd4) на чтение регистра. Поскольку к этому моменту
    757 времени еще не успел прийти внешний синхроимпульс “START”, Блок АЦП после пакета
    758 подтверждения “АСК” пошлет пакет с содержимым регистра. Затем, после прихода
    759 внешнего синхроимпульса “START” и запуска цикла измерения приходит вторая [команда 0х04](#cmd4),
    760 она будет ожидать в буфере окончания цикла измерения. После посылки пакета
    761 “CONF” Блок АЦП посылает пакет подтверждения “АСК” и пакет с содержимым регистра.
    762 Следует заметить, что в промежутке между [командой 0х03](#cmd3) и приходом
    763 внешнего синхроимпульса “Впуск” могут выполняться только команды [0х00](#cmd0),
    764 [0х04](#cmd4), [0х05](#cmd7), [0х07](#cmd7) и [0х0C](#cmd12).
    765 
    766 ![Рис.23. Временная диаграмма работы Блока АЦП с внешним запуском.][fig23]
    767 
    768 [fig23]:dissector.img/fig23.png
    769 
    770 ![Рис.24. Временная диаграмма, поясняющая работу стека команд.][fig24]
    771 
    772 [fig24]:dissector.img/fig24.png
    773 
    774 ![Рис.25. Временная диаграмма чтения рабочего регистра при работе с внешним запуском.][fig25]
    775 
    776 [fig25]:dissector.img/fig25.png
    777 
    778 ## Автоматический “Reset” UDP сервера.
    779 
    780 Для предотвращения “зависания” UDP сервера в Блоке АЦП предусмотрен
    781 “Watchdog”, осуществляющий подачу импульса “Reset” на UDP сервер в случае
    782 отсутствия потока данных на чтение или запись в течение определенного времени. Если в
    783 течение ~43 сек отсутствуют либо приходящие UDP пакеты, либо отсылаемые UDP
    784 пакеты, подается сигнал “Reset”. При этом происходит обнуление таблицы IP адресов.
    785 
    786 ## Настройка блока.
    787 
    788 1. Прежде всего – это настройка задержки. Нужно подобрать номер сепаратрисы и
    789 код плавной задержки так, чтобы встать на вершину сигнала.
    790 2. Если в массиве пооборотных измерений аномально большие шумы и скачки, то
    791 надо поменять значение начальной задержки импульса “0-сепаратрисы” *N<sub>DEl0</sub>*.
    792 3. Установить усиление (“Gain”) так, чтобы сигнал был в пределах шкалы АЦП
    793 (±8191). Если Амплитуда сигнала меньше 1000, поставить Gain в “1”.
    794 
    795 ======================
    796 
    797 [руководство](pdf/Dissector_v3.pdf)