psv3udp.md (62318B)
1 Title: Пикап-станция для ВЭПП-3 UDP 2 CSS: table.css 3 4 {{TOC}} 5 6 # Пикап-станция для ВЭПП-3 UDP 7 8 ## 1 Общее описание 9 10 Новый блок электроники (или пикап-станция) 11 предназначен для измерения координат 12 пучка на основе измерения средних 13 значений сигналов с 4-х электродов 14 пикапа. Средние значения сигнала пучка 15 за 1 оборот дают пооборотные измерения. 16 Средние значения сигнала пучка за 17 <i>N<sub>e</sub></i> оборотов 18 (где <i>N<sub>e</sub></i> программируется) 19 дают накопленные данные. Блок выполнен 20 в корпусе 1 U евромеханики шириной 19 21 дюймов и глубиной 340 мм. К нему подводятся 22 4 кабеля с электродов пикапа, 3 кабеля с 23 синхросигналами, кабель Ethernet 100 Mb/sec и 24 гнездо сетевого питания 220В 50 Гц. Виды 25 блока со стороны передней и задней 26 панелей показаны на Рис. [1](#image001) и [2](#image002). 27 28 ![<b>Рис. 1.</b> Вид на пикап-станцию со стороны передней панели.][image001] 29 30 [image001]:psv3udp.img/image001.png "Рис. 1. Вид на пикап-станцию со стороны передней панели." width=800px 31 32 ![<b>Рис. 2.</b> Вид на пикап-станцию со стороны задней панели.][image002] 33 34 [image002]:psv3udp.img/image002.png "Рис. 2. Вид на пикап-станцию со стороны задней панели." width=800px 35 36 На передней панели 37 находятся 3 разъема типа SMA, 3 светодиода 38 (2 красных и 1 зеленый) и гнездо для 39 подключения кабеля Ethernet. Левый SMA разъем 40 предназначен для подачи 41 синхросигнала с частотой ВЧ <i>F<sub>HF</sub></i> = 18<i>F<sub>0</sub></i>, 42 где <i>F<sub>0</sub></i> = 4.03 МГц – 43 частота обращения. Это синусоидальный 44 сигнал с частотой 72.54 МГц и амплитудой 45 от 0.2 В. Средний SMA разъем предназначен 46 для подачи синхросигнала частотой 3 Гц. 47 Правый SMA разъем предназначен для подачи 48 импульса “Впуск”, привязанный по 49 времени с инжекцией пучка в накопитель. 50 Амплитуда этих синхросигналов – от 51 ~1.2 В до ~3 В. Гнездо Ethernet через кабель соединяется 52 с локальной сетью, частота работы 100 Мбит/сек. Назначение светодиодов: 53 54 - зеленый светодиод 55 горит при включении питания и правильном 56 конфигурировании FPGA; 57 58 - средний красный 59 светодиод загорается, когда появляется 60 связь блока с Ethernet сетью (наличие “Link”); 61 62 - левый красный светодиод 63 загорается во время цикла измерения. 64 65 На задней панели 66 находятся 4 разъема типа SMA для соединения 67 с пикапом и гнездо сетевого питания 68 220 В. Нумерация входов справа налево, 69 если находиться лицом к задней панели. 70 71 ## 2 Принцип действия пикап-станции 72 73 Блок-схема пикап-станции 74 для ВЭПП-3 представлена на [Рис. 3](#image003). 75 76 <a name="image003"></a> 77 78 ![<b>Рис. 3.</b> Блок-схема пикап-станции для ВЭПП-3.](psv3udp.img/image003.png) 79 80 Обработка 81 сигнала заключается в выделении и 82 измерении 18-й гармоники частоты обращения 83 <i>18F<sub>0</sub></i>(~72.54 МГц). 84 Примерный вид сигнала на входе АЦП для 85 одного оборота показан на [Рис. 4](#image004). 86 Длительность сигнала (на полуширине) – 87 примерно равна 30% периода обращения <i>T<sub>0</sub></i> 88 89 <a name="image004"></a> 90 91 ![<b>Рис. 4.</b> Примерный вид сигнала на входе АЦП.](psv3udp.img/image004.png) 92 93 Данный сигнал оцифровывается АЦП с частотой 94 дискретизации <i>28F<sub>0</sub></i>(~112.8 МГц), то 95 есть на каждый период обращения приходится 96 28 точек отсчетов АЦП. Частота сигнала 97 на входе АЦП за счет свертки от 98 дискретизации будет равна <i>28F<sub>0</sub></i> – <i>18F<sub>0</sub></i> = <i>10F<sub>0</sub></i>. 99 В FPGA цифровой сигнал детектируется 100 квадратурным синхронным детектором и 101 интегрируется за каждый период обращения. 102 Результатом являются данные пооборотных 103 измерений, которые записываются в память 104 и одновременно накапливаются (суммируются 105 напряжения от отдельных оборотов). 106 Результатом накопления являются так 107 называемые “медленные” (или накопленные) 108 данные – сумма напряжений с электрода 109 пикапа за <i>N<sub>e</sub></i> оборотов, 110 где <i>N<sub>e</sub></i> – длительность 111 элементарного цикла измерения в оборотах. 112 Величина <i>N<sub>e</sub></i> может 113 программироваться, максимальная величина 114 <i>N<sub>e</sub></i> составляет 115 2<sup>24</sup>. 116 Емкость памяти пооборотных измерений 117 составляет 128К оборотов. Существует 118 также так называемый буфер памяти 119 “быстрых” измерений (“Fast” data) емкостью 120 2К, каждая ячейка которой является суммой 121 напряжений с электрода пикапа за <i>N<sub>av</sub></i> оборотов, 122 где величина <i>N<sub>av</sub></i> программируется 123 в диапазоне от 1 до 2<sup>13</sup>. 124 Задается величина <i>N<sub>av</sub></i> кодом [регистра 12](#reg0c). 125 126 Матрица ключей позволяет 127 подключать любой из каналов обработки 128 сигналов к любому электроду пикапа, что 129 позволяет устранить влияние неодинаковости 130 каналов на результат измерения. 131 Управляется матрица ключей двухбитным 132 кодом <i>Sw</i>. Соответствие между номерами 133 каналов обработки сигналов <i>Ch </i>и 134 электродами пикапа <i>n </i>в зависимости 135 от кода состояния матрицы ключей <i>Sw</i> приведено в [Таблице 1](#tab1). 136 137 138 [Таблица 1.][tab1] 139 | | Sw=0 |||| Sw=1 |||| Sw=2 |||| Sw=3 |||| 140 |:------:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:| 141 | Ch | 0 | 1 | 2 | 3 | 0 | 1 | 2 | 3 | 0 | 1 | 2 | 3 | 0 | 1 | 2 | 3 | 142 | n | 1 | 2 | 3 | 0 | 0 | 3 | 2 | 1 | 2 | 1 | 0 | 3 | 3 | 0 | 1 | 2 | 143 144 145 Существуют 2 режима 146 работы пикап-станции: 147 148 1) Режим с переключением 149 каналов, когда периодически к каждому 150 из каналов по очереди подключаются 151 разные электроды пикапа (основной 152 режим). 153 154 2) Режим без переключения 155 каналов (вспомогательный режим). 156 157 Временная диаграмма 158 работы пикап-станции в первом режиме 159 показана на [Рис. 5](#image005). 160 161 <a name="image005"></a> 162 163 ![<b>Рис. 5.</b> Временная диаграмма работы пикап-станции в основном режиме.](psv3udp.img/image005.png) 164 165 Полный 166 цикл измерения <i>T<sub>Σ</sub></i> в данном 167 режиме состоит из 4-х элементарных 168 циклов, каждому из которых соответствует 169 свой код состояния матрицы ключей <i>Sw</i>. 170 Длительность каждого элементарного 171 цикла <i>T<sub>e</sub></i> = <i>T<sub>0</sub></i> × <i>N<sub>e</sub></i>, 172 где <i>T<sub>0</sub></i> – период 173 обращения. Величина <i>N<sub>e</sub></i> задается 174 программно записью в регистры [1](#reg01),[2](#reg02) 175 соответствующих кодов. 176 177 По 178 окончании полного цикла измерения <i>T<sub>Σ</sub></i> накопленные 179 результаты измерений (16 чисел типа 180 <i>double </i> по 181 64 бит) <i>U<sub>i,j</sub></i> лежат в 16 182 выходных регистрах, откуда могут быть 183 прочитаны и использованы для вычисления 184 положения пучка. Накопленные сигналы 185 с электродов пикапа <i>U<sub>i,j</sub></i>, 186 где <i>i </i> – код комбинации 187 ключей <i>Sw</i>(0-3), <i>j</i> – номер 188 канала электроники (0-3). Используя [Таблицу 1](#tab1) 189 соответствия каналов и электродов 190 пикапа, на основе этих данных получаем 191 матрицу 4×4 напряжений сигналов <i>U<sub>i,n</sub></i>, 192 где <i>i </i> – код комбинации 193 ключей <i>Sw</i>(0-3), <i>n</i> номер 194 электрода пикапа (0-3). Таким образом, для 195 каждого электрода пикапа <i>n</i> по окончании 196 полного цикла измерений мы имеем 4 197 напряжения сигнала для различных каналов 198 электроники <i>Ch</i>. 199 200 Во втором режиме (без переключения каналов) 201 полный цикл измерения <i>T<sub>Σ</sub></i> состоит 202 только из одного элементарного цикла. 203 Код состояния матрицы ключей <i>Sw</i> в данном 204 режиме фиксированный и равен <i>M</i>, 205 величина <i>M</i> задается 206 битами 0, 1 [регистра 3](#reg03). Данный режим задается 207 установкой “1” бита 0 [регистра 0](#reg00). Как 208 правило, этот режим используется для 209 получения большого массива пооборотных 210 измерений и является вспомогательным. 211 212 ## 3 Программирование пикап-станции 213 214 Для приема-передачи 215 данных в пикап-станции реализован UDP 216 сервер. Сервер получает параметры, 217 которые записывает в соответствующие 218 регистры, а также команды на 219 выполнение/остановку измерений и 220 получение результатов измерений. 221 222 Все пикап-станции имеют 223 фиксированный номер порта 2195. Номер 224 порта компьютера, с которого происходит 225 обращение к пикап-станции, может быть 226 произвольным. Именно на этот порт и 227 придет ответ пикап-станции. 228 229 Из всех ICMP пакетов 230 пикап-станция отвечает только на PING. 231 Другие ICMP пакеты игнорируются. 232 233 Основные результаты 234 измерений могут быть 3-х типов: 235 236 1) Накопленные данные – 16 64-битных числа 237 типа <i>double</i>, 238 которые соответствуют сигналам с 4-х 239 электродов пикапа <i>U<sub>ij</sub></i> для четырех 240 кодов состояния матрицы ключей <i>Sw</i>, 241 а также 4 16-битных числа типа <i>unsigned short int</i>, которые 242 соответствуют максимумам сигналов в 243 кодах АЦП (в диапазоне 0-16383); 244 245 2) Пооборотные данные 246 – 4 массива до 128К 32-битных чисел типа 247 <i>float</i>, которые соответствуют сигналам 248 с 4-х электродов пикапа. Существует 249 возможность накапливать в каждой точке 250 обоих массивов напряжения сигналов до 251 256 оборотов (это задается кодом в [регистре 12](#reg0c)). 252 Это позволяет увеличить интервал 253 наблюдения пучка до 3 сек и наблюдать 254 какие-нибудь медленные колебания пучка; 255 256 3) “Быстрые” данные – 4 массива до 2К 257 32-битных чисел типа <i>float</i>, 258 которые соответствуют сигналам с 4-х 259 электродов пикапа; каждая ячейка массива 260 является суммой напряжений с электрода 261 пикапа за <i>N<sub>av</sub></i> оборотов. 262 263 Дополнительно могут 264 высылаться данные АЦП (результаты 265 оцифровки сигнала с помощью АЦП с 266 частотой выборок ~112.8 МГц или осциллограммы) 267 – 4 массива по 128 16-битных числа типа 268 <i>unsigned short int</i>, которые соответствуют 269 сигналам с 4-х электродов пикапа. Эти 270 данные не нужны для штатной работы, а 271 используются для диагностики пикап-станции. 272 273 Запуск измерения 274 пикап-станции может быть внутренним – 275 сразу после прихода соответствующей 276 команды, или внешним – по приходу одного 277 из двух внешних синхроимпульсов: либо 278 сигнала “Впуск”, привязанного к моменту 279 инжекции пучка (или удара по пучку), либо 280 синхросигнала 3 Гц. Срабатывание от этих 281 синхросигналов задается установкой в 282 “1” битов 13 или 12 [регистра 0](#reg00) соответственно. 283 284 Порядок байт, используемый 285 при передаче данных из компьютера в 286 блок и обратно – big endian (от старшего 287 байта к младшему). Все пакеты, посылаемые 288 пикап-станцией, содержат байт идентификации 289 (байт 0), по которому можно однозначно 290 определить тип пакета. 291 292 ### 3.1 Описание регистров параметров 293 294 В [Таблицах 2-12](#tab2) приведено 295 описание регистров параметров. Всего 296 регистров 16 (номера 0-15). Длина каждого 297 регистра – 2 байта. 298 299 #### Регистр 0 (0x00)[reg00] 300 301 [<b>Таблица 2.</b> Описание регистра 0 (адрес 0х00).][tab2] 302 | Номера битов | 15 | 14 | 13 | 12 | 11-1 | 0 | 303 |:------------:|:--:|:--:|:--:|:--:|:----:|:--:| 304 | Описание | Не исполь-зуются | Включение режима “Timeback” (1 – включено) | Внутренний запуск (0) или внешний запуск (1) измерений. | Синхронизация с частотой 3 Гц, «1»-есть, «0»-нет | Не исполь-зуются | Выключение режима переключения ключами (1) | 305 306 Если бит 0 [регистра 0](#reg00) 307 равен “0”, то работа осуществляется в 308 соответствии с [Рис. 5](#image005) (основной режим). 309 Если бит 0 [регистра 0](#reg00) равен “1”, то 310 выполняется только один элементарный 311 цикл с фиксированным кодом <i>Sw</i>, 312 задаваемым кодом [регистра 3](#reg03). 313 314 #### Регистр 1 (0x01)[reg01] 315 316 [<b>Таблица 3. </b> Описание регистра 1 (адрес 0х01).][tab3] 317 | Номера битов | 15-8 | 7-0 | 318 |:--------------:|:----:|:---:| 319 |Описание | Не используется | <i>Ne</i> длительность элементарного цикла измерения в оборотах (младшие 8 бит)| 320 321 #### Регистр 2 (0x02)[reg02] 322 323 [<b>Таблица 4. </b> Описание регистра 2 (адрес 0х02).][tab4] 324 | Номера битов | 15-0 | 325 |:------------:|:-----------------------------------------------------------------------------------:| 326 | Описание | <i>Ne</i> – длительность элементарного цикла измерения в оборотах (старшие 16 бит)} | 327 328 #### Регистр 3 (0x03)[reg03] 329 330 [<b>Таблица 5. </b> Описание регистра 3 (адрес 0х03).][tab5] 331 | Номера битов | 15-2 | 1-0 | 332 |:------------:|:---------------:|:-------------------------------------------------------:| 333 | Описание | Не используются | Код состояния матрицы ключей <i>Sw</i> во втором режиме | 334 335 #### Регистр 4 (0x04)[reg04] 336 337 [<b>Таблица 6. </b> Описание регистра 4 (адрес 0х04).][tab6] 338 | Номера битов | 15-0 | 339 |:------------:|:----:| 340 | Описание | Число оборотов с момента сброса пучка, после которого останавливается процесс записи в буфер пооборотных измерений в режиме “Timeback” | 341 342 #### Регистр 6 (0x06)[reg06] 343 344 [<b>Таблица 7. </b> Описание регистра 6 (адрес 0х06).][tab7] 345 | Номера битов | 15-8 | 7-4 | 3-0 | 346 |:------------:|:---------------:|:------------------------------:|:------------------------------:| 347 | Описание | Не используются | Код усиления 2-го каскада (дБ) | Код усиления 1-го каскада (дБ) | 348 349 350 При установке кода 351 усиления вначале задается код усиления 352 1-го каскада (0-15) и только, когда он 353 достигнет 15, затем задается код усиления 354 2-го каскада (0-15). 355 356 #### Регистр 8 (0x08)[reg08] 357 358 [<b>Таблица 8. </b>Описание регистра 8 (адрес 0х08).][tab8] 359 | Номера битов | 15-0 | 360 |:------------:|:-----------------------------------------------------------------------------:| 361 | Описание | Код минимального времени между двумя измерениями <i>code_T<sub>MIN</sub></i> | 362 363 При запуске каждого измерения начинает 364 отсчитываться интервал времени: 365 366 <i>T<sub>MIN</sub></i> = <i>code_T<sub>MIN</sub></i>×1024×40 нс. 367 368 Следующее измерение запустится не ранее, чем через 369 время <i>T<sub>MIN</sub></i> после начала 370 предыдущего измерения. 371 372 #### Регистр 9 (0x09)[reg09] 373 374 375 [<b>Таблица 9. </b> Описание регистра 9 (адрес 0х09).][tab9] 376 | Номера битов | 15-1 | 0 | 377 |:------------:|:----:|:-:| 378 | Описание | Не используются | Номер ячейки памяти буфера пооборотных измерений, при которой прекратилась запись в этот буфер в режиме “Timeback” (старший бит) | 379 380 #### Регистр 10 (0x0a)[reg0a] 381 382 383 [<b>Таблица 10. </b> Описание регистра 10 (адрес 0х0a).][tab10] 384 | Номера битов | 15-0 | 385 |:------------:|:----:| 386 | Описание | Номер ячейки памяти буфера пооборотных измерений, при которой прекратилась запись в этот буфер в режиме “Timeback” (младшие 2 байта) | 387 388 #### Регистр 11 (0x0b)[reg0b] 389 390 391 [<b>Таблица 11. </b> Описание регистра 11 (адрес 0х0b).][tab11] 392 | Номера битов | 15-0 | 393 |:------------:|:---------------------------------------------------------:| 394 | Описание | Содержит код опорной частоты (см. описание команды 0х06) | 395 396 Регистр 11 работает 397 только на чтение. 398 399 #### Регистр 12 (0x0c)[reg0c] 400 401 402 [<b>Таблица 12.</b> Описание регистра 12 (адрес 0х0с).][tab12] 403 | Номера битов | 15-13 | 12-0 | 404 |:------------:|:---------------:|:----:| 405 | Описание | Не используются | Задает число накапливаемых оборотов для каждой точки буфера “быстрых” измерений (<i>N<sub>av</sub></i>). | 406 407 Код <i>code12</i>, 408 находящийся в младших 13 битах регистра 409 12, задает число накапливаемых оборотов 410 для каждой точки буфера “быстрых” 411 измерений <i>N<sub>av</sub></i> = <i>code12</i> + 1. Если этот 412 код равен нулю, то мы получаем пооборотные 413 измерения без всяких накоплений. За 414 счет этого кода можно растянуть время 415 наблюдения до: 416 417 <i>T</i> = 2048×8192×248нс ≈ 4.16 сек. 418 419 #### Регистр 13 (0x0d)[reg0d] 420 421 422 [<b>Таблица 13. </b> Описание регистра 13 (адрес 0х0d).][tab13] 423 | Номера битов | 15-8 | 7-0 | 424 |:------------:|:---------------:|:---:| 425 | Описание | Не используются | Задает начальную задержку с момента прихода внешнего синхроимпульса до старта цикла измерения (в тактах АЦП – 1/(28<i>F<sub>0</sub></i>)) | 426 427 #### Регистр 14 (0x0e)[reg0e] 428 429 430 [<b>Таблица 14. </b> Описание регистра 14 (адрес 0х0e).][tab14] 431 | Номера битов | 15-0 | 432 |:------------:|:----:| 433 | Описание | Нижний порог суммы сигналов с 2-х электродов пикапа для режима “Timeback” в формате <i>float</i> (младшие 2 байта) | 434 435 #### Регистр 15 (0x0f)[reg0f] 436 437 438 [<b>Таблица 15. </b> Описание регистра 15 (адрес 0х0f).][tab15] 439 | Номера битов | 15-0 | 440 |:------------:|:----:| 441 | Описание | Нижний порог суммы сигналов с 2-х электродов пикапа для режима | 442 443 #### Регистр 16 (0x10)[reg10] 444 445 446 [<b>Таблица 16. </b> Описание регистра 16 (адрес 0х10).][tab16] 447 | Номера битов | 15-0 | 448 |:------------:|:----:| 449 | Описание | Измеренная сумма сигналов с 2-х электродов пикапа для режима “Timeback” в формате <i>float</i> (младшие 2 байта) | 450 451 Регистр 16 работает только на чтение. 452 453 #### Регистр 17 (0x11)[reg11] 454 455 456 [<b>Таблица 17. </b> Описание регистра 17 (адрес 0х11).][tab17] 457 | Номера битов | 15-0 | 458 |:------------:|:----:| 459 | Описание | Измеренная сумма сигналов с 2-х электродов пикапа для режима “Timeback” в формате <i>float</i> (старшие 2 байта) | 460 461 Регистр 17 работает только на чтение. 462 463 #### Регистр 18 (0x12)[reg12] 464 465 466 [<b>Таблица 18. </b>Описание регистра 18 (адрес 0х12).][tab18] 467 | Номера битов | 15-1 | 0 | 468 |:------------:|:---------------:|:-:| 469 | Описание | Не используются | В режиме “Timeback” является индикатором остановки процесса записи в буфер пооборотных измерений: 0 – запись идет, 1 – запись остановлена | 470 471 Регистр 18 работает только на чтение. 472 473 ### 3.2 Структура команд 474 475 Стек команд. 476 477 Команды, посылаемые из 478 компьютера в пикап-станцию, содержат 6 479 байт. На [Рис. 6](#image006) показана структура команды. 480 481 <a name="image006"></a> 482 483 ![<b>Рис. 6.</b> Структура команды.](psv3udp.img/image006.png) 484 485 Команда содержит код 486 команды (байт 0) и 5 байт параметров 487 команды. Байт 1 для команд записи в 488 рабочие регистры и чтения из рабочих 489 регистров содержит номер регистра, для 490 команд запроса данных определяет номер 491 кадра ответных пакетов данных. Байты 492 2, 3 для команды записи в рабочий регистр 493 содержат данные, которые нужно записать 494 в регистр, для команд запроса пооборотных 495 данных определяют номер начальной 496 страницы буфера пооборотных измерений, 497 для остальных команд не имеют значения. 498 Байты 4, 5 для команд запроса пооборотных 499 данных определяют номер конечной 500 страницы буфера пооборотных измерений, 501 для остальных команд не имеют значения. 502 503 После получения команды 504 пикап-станция сразу же посылает пакет 505 подтверждения получения команды “ACK” 506 (Acknowledgement) – 4 байта, показанные на [Рис. 7](#image007). 507 508 <a name="image007"></a> 509 510 ![<b>Рис. 7.</b> Ответ “ACK” на полученную команду.](psv3udp.img/image007.png) 511 512 Байт 0 – тип пакета 513 (0х10). Байт 1 – код команды, байт 2 – номер 514 регистра, байт 3 – статус. Если команда 515 правильна, то есть, это существующая 516 команда, и номер регистра лежит в 517 диапазоне 0-15, то статус равен 0х0F. Если 518 поступает несуществующая команда, то 519 статус равен 0х10. Если номер регистра 520 лежит за диапазоном 0-15, то статус равен 521 0х20. 522 523 В пикап-станции реализован 524 двухуровневый стек команд. Имеется 525 буфер команд и рабочий регистр команд. 526 Первоначально, поступающая команда 527 записывается в буфер. Если пикап-станция 528 в момент прихода какой-либо команды 529 свободна (не занята выполнением предыдущей 530 команды), то сразу же произойдет перезапись 531 из буфера команд в рабочий регистр 532 команд, и команда начнет выполняться. 533 Если пикап-станция в момент прихода 534 какой-либо команды занята выполнением 535 предыдущей команды, то перезапись из 536 буфера команд в рабочий регистр команд 537 (с последующим выполнением команды) 538 произойдет только после выполнения 539 предыдущей команды. Если в момент 540 ожидания выполнения команды поступит 541 еще одна команда, то она перезапишет 542 команду, находившуюся в буфере. Существует 543 несколько исключений. Если запущен цикл 544 измерения, либо цикл инициализации 545 генератора опорной частоты, либо цикл 546 инициализации генератора калибровочного 547 сигнала, то некоторые команды (например, 548 команда чтения рабочего регистра) могут 549 быть выполнены сразу, не дожидаясь 550 окончания цикла. Подробнее об этом будет 551 сказано ниже. 552 553 ### 3.3 Описание типов команд 554 555 #### Команда 0x00 - запись в регистры параметров[cmd00] 556 557 Номер регистра 558 содержится в байте 1 команды, записываемые 559 данные – в байтах 2, 3. В ответ на эту 560 команду пикап- станция сразу же посылает 561 4 байта “АСК”. Момент выполнения записи 562 в регистры зависит от того, запущен в 563 момент прихода команды цикл измерения 564 (или инициализации генераторов опорной 565 частоты и калибровочного сигнала) или 566 нет. Если цикл измерения запущен, то 567 процесс записи в регистр осуществится 568 только после его окончания. 569 570 #### Команда 0x01 - чтение АЦП[cmd01] 571 572 Чтение массива данных АЦП (осциллограмма). В 573 ответ на эту команду пикап-станция сразу 574 же посылает 4 байта “АСК”. Далее 575 посылается пакет из 1034 байт ([Рис. 8](#image008)), 576 включающий “шапку” из 10 байт и 512 2-х 577 байтных слов типа <i>unsigned short int</i>в кодах 578 АЦП (диапазон – 0-16383). 579 580 <a name="image008"></a> 581 582 ![<b>Рис. 8.</b> Структура получаемого пакета в ответ на команду 0х01.](psv3udp.img/image008.png) 583 584 Данные содержат 585 128 точек по времени (выборок) АЦП по 4-м 586 каналам, соответствующих 4-м напряжениям 587 сигналов с электродов пикапа. Каждая 588 точка включает в себя 4 напряжения 589 сигналов с электродов пикапа, следующих 590 по очереди: U0, U1, U2, U3, U0, U1 и т.д. Значения 591 лежат в диапазоне 0-16383, для получения 592 реальных напряжений нужно вычесть 8192. 593 594 Содержимое “шапки” 595 приведено на [Рис. 9](#image009). 596 597 <a name="image009"></a> 598 599 ![<b>Рис. 9.</b> Содержимое “шапки” при посылке данных АЦП.](psv3udp.img/image009.png) 600 601 Байт 0 – тип пакета 602 (0xF1), по нему идентифицируется полученный 603 компьютером пакет. Байт 2 соответствует 604 байту 1 команды. На [Рис. 6](#image006) он называется 605 “Номер регистра”. Байт 9 – номер 606 измерения, которому соответствует 607 данная осциллограмма (0-255). После каждого 608 измерения счетчик номера измерения 609 инкрементируется на 1. После 255 он 610 сбрасывается в 0 и т.д. Байтам 3-8 присвоены 611 числа 3-8. 612 613 Момент посылки данных 614 АЦП зависит от того, запущен в момент 615 прихода команды 0x01 цикл измерения (или 616 инициализации) или нет. Если цикл 617 измерения запущен, то отправка пакета 618 данных начнется только после его 619 окончания. 620 621 #### Команда 0x02 – чтение накопленных данных[cmd02] 622 623 В ответ на 624 эту команду пикап- станция сразу же 625 посылает 4 байта “АСК”. Далее посылается 626 пакет из 146 байт ([Рис. 10](#image010)), включающий: 627 628 а) “шапку” из 10 байт, 629 630 б) 631 накопленные напряжения сигналов с 632 пикапа <i>U<sub>ij</sub></i>(16 8-байтных 633 слов типа <i>double</i>), 634 635 в) 636 максимумы оцифрованных сигналов в кодах 637 АЦП для 4-х каналов <i>M<sub>i</sub></i>(4 2-байтных 638 слова типа <i>unsigned short int</i>). 639 640 На основе прочитанных 641 кодов накопленных напряжений сигналов 642 <i>code_U </i>нужно вычислить реальные средние 643 значения напряжений на входах АЦП <i>U</i>по формуле: 644 645 <i>U</i> = <i>code_U</i>/(2047×28×(<i>N<sub>e</sub></i>+1)). 646 647 Вычисленные таким 648 образом средние значения напряжений 649 будут относиться к оцифрованным с 650 помощью АЦП сигналам в диапазоне -8192 –> +8191. 651 652 <a name="image010"></a> 653 654 ![<b>Рис. 10.</b> Структура получаемого пакета в ответ на команду 0х02.](psv3udp.img/image010.png) 655 656 Максимумы сигналов АЦП 657 лежат в диапазоне 0-16383, для получения 658 реальных напряжений нужно вычесть 8192. 659 Эти максимумы позволяют без чтения 660 осциллограммы ([команды 0х01](#cmd01)) понять, какую 661 часть диапазона АЦП занимает сигнал и 662 при необходимости сменить код усиления. 663 Содержимое “шапки” приведено на [Рис. 11](#image011). 664 665 <a name="image011"></a> 666 667 ![<b>Рис. 11.</b> Содержимое “шапки” при посылке накопленных данных.](psv3udp.img/image011.png) 668 669 Байт 0 – тип пакета 670 (0xF2), по нему идентифицируется полученный 671 компьютером пакет. Байт 2 – соответствует 672 байту 1 команды. На [Рис. 6](#image006) он называется 673 “Номер регистра”. 674 675 #### Команда 0x03 – запуск цикла измерения[cmd03] 676 677 В ответ на эту команду 678 пикап-станция сразу же посылает 4 байта 679 “АСК”. Затем, если пикап-станция работает 680 в режиме с внутренним запуском (биты 681 12, 13 [регистра 0](#reg00) равны 0), сразу же запустится 682 цикл измерения. Если же пикап-станция 683 работает в режиме с внешним запуском 684 (либо бит 12, либо бит 13 [регистра 0](#reg00) равен 685 1), цикл измерения запустится только 686 после прихода внешнего синхроимпульса. 687 По окончании цикла измерения пикап-станция 688 посылает пакет из 2-х байт “CONF” 689 (“Confirmation”), показанный на [Рис. 12](#image012). Данный 690 пакет сигнализирует о том, что цикл 691 измерения успешно завершился, можно 692 читать данные. 693 694 <a name="image012"></a> 695 696 ![<b>Рис. 12.</b> Пакет “CONF”, посылаемый после окончания цикла измерения.](psv3udp.img/image012.png) 697 698 #### Команда 0x04 – чтение регистра параметров[cmd04] 699 700 Номер регистра, чтение 701 которого запрашивается, содержится в 702 байте 2 команды. В ответ на эту команду 703 пикап-станция сразу же посылает 4 байта 704 “АСК”. Затем сразу же посылает 4-х 705 байтовый пакет данных, показанный на 706 [Рис. 13](#image013). 707 708 <a name="image013"></a> 709 710 ![<b>Рис. 13.</b> Структура получаемого пакета в ответ на команду 0х04.](psv3udp.img/image013.png) 711 712 Байт 0 – тип пакета 713 (0xF4), по нему идентифицируется полученный 714 компьютером пакет. Байт 1 – номер 715 регистра, из которого читается содержимое. 716 717 Байты 2, 3 – само содержимое прочитанного 718 регистра – 2 байта. Пакет данных посылается 719 сразу, независимо от того, запущен цикл 720 измерения (или инициализации) или нет. 721 722 #### Команда 0x05 – остановка цикла измерения[cmd05] 723 724 В ответ на эту команду 725 пикап-станция сразу же посылает 4 байта 726 “АСК”. Затем сразу же выполняет данную 727 команду, то есть останавливает цикл 728 измерения. Вообще, полезно перед каждым 729 новым запуском измерения подавать 730 данную команду. 731 732 #### Команда 0x06 - инициализация PLL[cmd06] 733 734 Инициализация 735 генератора опорной частоты <i>F<sub>ОП</sub></i> = <i>28F<sub>0</sub></i>(~112.8 МГц). 736 737 В ответ на эту команду 738 пикап-станция сразу же посылает 4 байта 739 “АСК”. Затем сразу же выполняет данную 740 команду, то есть инициализирует генератор 741 опорной частоты. Процесс инициализации 742 занимает по времени около 600 мс. По 743 окончании инициализации пикап-станция 744 посылает пакет из 2-х байт “CONF”, показанный 745 на [Рис. 14](#image014). 746 747 <a name="image014"></a> 748 749 ![<b>Рис. 14.</b> Пакет “CONF”, посылаемый после окончания инициализации генератора опорной частоты.](psv3udp.img/image014.png) 750 751 Данную процедуру необходимо выполнять каждый 752 раз после включения пикап- станции. 753 Измерить опорную частоту можно, прочитав 754 [регистр 11](#reg0b). Связь между опорной частотой 755 <i>F<sub>ОП</sub></i> и прочитанным 756 кодом <i>code</i>: 757 758 <i>F<sub>ОП</sub></i> = (25×<i>code</i>)/8192 МГц. 759 760 Контроль за опорной частотой 761 позволяет отследить просадки 762 (кратковременные выключения) питания. 763 В отсутствие инициализации или в 764 отсутствии синхросигнала частотой <i>F<sub>0</sub></i> опорная 765 частота лежит за пределами диапазона 766 <i>28F<sub>0</sub></i> ± 1 МГц. Таким 767 образом, критерием правильности установки 768 опорной частоты является нахождение 769 этой частоты в диапазоне 111.8 – 113.8 МГц. 770 771 #### Команда 0x07 – обнуление счетчика номера измерения[cmd07] 772 773 В ответ на эту команду 774 пикап-станция сразу же посылает 4 байта 775 “АСК”. Затем сразу же выполняет данную 776 команду, то есть обнуляет номер измерения. 777 Данная команда полезна для работы группы 778 пикап-станций, когда нужно привязать 779 получаемые от пикап- станций данные к 780 конкретному измерению. 781 782 #### Команда 0x0b – чтение памяти пооборотных измерений[cmd0b] 783 784 В ответ на эту команду 785 пикап-станция сразу же посылает 4 байта 786 “АСК”. Затем, в зависимости от того, 787 запущен цикл измерения или нет, она, 788 либо сразу же посылает данные (если цикл 789 измерения не запущен), либо ожидает 790 окончания цикла измерения, и только 791 затем посылает данные. 792 793 Память содержит 794 измеренные напряжения с электродов 795 пикапа за 128 К (131072) оборотов. Содержимое 796 памяти показано на [Рис. 16](#image016). 797 798 <a name="image016"></a> 799 800 ![<b>Рис. 16.</b> Содержимое памяти пооборотных данных.](psv3udp.img/image016.png) 801 802 Каждый оборот включает 803 в себя 4 напряжения с электродов пикапа 804 U0, U1, U2, U3, представляющих собой 4-байтовые 805 числа типа <i>float</i>. Связь между прочитанным 806 кодом <i>code_U </i>и реальным средним значением 807 напряжения на входе АЦП <i>U</i>: 808 809 <i>U</i> = <i>code_U</i>/(2047×28). 810 811 Вычисленные таким 812 образом средние значения напряжений 813 будут относиться к оцифрованным с 814 помощью АЦП сигналам в диапазоне -8192 –> +8191. 815 816 Логически весь объем 817 памяти разбит на 2048 страниц, каждая 818 страница содержит 64 оборота ([Рис.17](#image017)). 819 820 <a name="image017"></a> 821 822 ![<b>Рис. 17.</b> Структура памяти пооборотных данных.](psv3udp.img/image017.png) 823 824 С помощью команды 0х0В можно прочитать 825 любую порцию страниц. Диапазон читаемых 826 страниц задается самой командой (см. 827 [Рис. 6](#ima006)). Начальная страница <i>N<sub>p1</sub></i> содержится 828 в байтах 2, 3 команды. Конечная страница 829 <i>N<sub>p2</sub></i> содержится 830 в байтах 4, 5 команды. В ответ на команду 831 посылается <i>N<sub>p</sub></i> страниц в 832 диапазоне от <i>N<sub>p1</sub></i> до <i>N<sub>p2</sub></i> включительно 833 (<i>N<sub>p</sub></i> = <i>N<sub>p1</sub></i> – <i>N<sub>p2</sub></i> + 1). 834 Каждая страница посылается отдельным 835 пакетом со своей 10-байтовой “шапкой” 836 ([Рис. 18](#image018)). 837 838 <a name="image018"></a> 839 840 ![<b>Рис. 18.</b> Структура одного из пакетов, содержащего страницу <i>N</i>.](psv3udp.img/image018.png) 841 842 Размер каждого пакета 843 равен 1034 байт. Вначале идет 10-байтовая 844 “шапка”, затем напряжения с электродов 845 пикапа за 64 оборота, каждый оборот 846 состоит из напряжений U0, U1, U2, U3 с электродов 847 0, 1, 2, 3 соответственно. Структура “шапки” 848 показана на [Рис. 19](#image019). 849 850 <a name="image019"></a> 851 852 ![<b>Рис. 19.</b> Содержимое “шапки” при посылке пакета пооборотных данных.](psv3udp.img/image019.png) 853 854 Байт 0 – тип пакета (0xFВ), по нему идентифицируется 855 полученный компьютером пакет. 856 857 Байт 1 – код команды (0х0В). 858 859 Байт 2 – номер “кадра” 860 (0-255), он эквивалентен байту 1 команды 861 (“Номер регистра”), то есть задается 862 запрашиваемым устройством. 863 864 Байты 3, 4 – 865 номер пакета (равный номеру страницы). 866 867 Байты 5, 6 – начальная страница <i>N<sub>p1</sub></i> запрашиваемой 868 порции страниц. 869 870 Байты 7, 8 – конечная 871 страница <i>N<sub>p2</sub></i> запрашиваемой 872 порции страниц. Байт 9 – номер измерения. 873 874 В случае, если какой-либо 875 пакет из запрашиваемой порции окажется 876 испорченным, его можно будет получить 877 еще раз, запросив данную страницу. 878 879 #### Команда 0x0c – запись в регистр параметров с последующим чтением[cmd0c] 880 881 Данная команда объединяет 882 [команды 0х00](#cmd00) и [0х04](#cmd04). 883 Номер регистра содержится 884 в байте 1 команды, записываемые данные 885 – в байтах 2, 3. В ответ на эту команду 886 пикап-станция сразу же посылает 4 байта 887 “АСК”. Момент выполнения записи в 888 регистры зависит от того, запущен в 889 момент прихода команды цикл измерения 890 (или инициализации генераторов опорной 891 частоты и калибровочного сигнала) или 892 нет. Если цикл измерения запущен, то 893 процесс записи в регистр осуществится 894 только после его окончания. Затем, после 895 записи в регистр сразу же осуществляется 896 его чтение. Пикап-станция посылает 897 4-байтовый пакет, показанный на [Рис. 13](#image013). 898 899 #### Команда 0x0d – чтение памяти “быстрых” измерений (“Fast” data)[cmd0d] 900 901 По этой команде читается память “быстрых” 902 измерений емкостью 2К (2048) точек. Если 903 <i>N<sub>av</sub></i> = 0, то 904 содержимое данной памяти такое же, что 905 и для первых 2048 оборотов памяти пооборотных 906 измерений. В ответ на эту команду 907 пикап-станция сразу же посылает 4 байта 908 “АСК”. Затем, в зависимости от того, 909 запущен цикл измерения или нет, она, 910 либо сразу же посылает данные (если цикл 911 измерения не запущен), либо ожидает 912 окончания цикла измерения, и только 913 затем посылает данные. 914 915 Структура памяти 916 “быстрых” измерений полностью аналогична 917 структуре памяти пооборотных измерений. 918 Отличие только в емкости памяти. Данная 919 память состоит из 32 страниц по 64 точки 920 в каждой странице ([Рис. 20](#image020)). “Шапка” также 921 полностью аналогична “шапке” при 922 [команде 0х0В](#cmd0b), только байт 1 – код команды 923 равен 0х0D ([Рис. 21](#image021)). 924 925 <a name="image020"></a> 926 927 ![<b>Рис. 20.</b> Структура памяти “быстрых” измерений.](psv3udp.img/image020.png) 928 929 <a name="image021"></a> 930 931 ![<b>Рис. 21.</b> Содержимое “шапки” при посылке пакета “быстрых” измерений.](psv3udp.img/image021.png) 932 933 #### Команда 0x0f – синхронное чтение регистра параметров[cmd0f] 934 935 Данная команда аналогична 936 [команде 0х04](#cmd04), единственное ее отличие в 937 том, что процесс посылки пакета данных 938 (4 байта) привязан по времени к окончанию 939 цикла измерения. Если цикл измерения 940 не запущен, то и посылки данных не будет. 941 Если после подачи [команды 0х03](#cmd03) с внешним 942 запуском подать команду 0х0F, то содержимое 943 регистра придет после окончания цикла 944 измерения (сразу после “CONF”). 945 946 ### 3.4 Сводная таблица типов пакетов от пикап-станции 947 948 949 [Таблица 19][tab19] 950 | Байт идентификации (байт 0) | Длина пакета (байт) | Тип пакета | 951 |:----:|:----:|:---------------------------------------------:| 952 | 0х10 | 4 | Пакет подтверждения получения команды – “АСК” | 953 | 0х11 | 2 | Пакет, сигнализирующий о завершении цикла измерения (инициализации) – “CONF” | 954 | 0хF1 | 1034 | Массив данных АЦП (осциллограмма) | 955 | 0хF2 | 82 | Накопленные данные | 956 | 0хF4 | 4 | Содержимое рабочего регистра| 957 | 0хFВ | 1034 | Массив пооборотных или “быстрых” данных (1 страница) 958 959 ### 3.5 Временные диаграммы работы пикап-станции 960 961 На [Рис. 23](#image023) показана 962 временная диаграмма работы пикап-станции 963 в режиме работы с внешним запуском при 964 запросе на пооборотные данные. Вначале 965 подается [команда 0х03](#cmd03). Сразу же из 966 пикап-станции придет подтверждение 967 “АСК” получения команды. Реально цикл 968 измерения запустится по приходу внешнего 969 синхроимпульса “Впуск”. Компьютер 970 далее должен дождаться окончания цикла 971 измерения – прихода из пикап-станции 972 пакета “CONF”. После этого он с помощью 973 [команды 0x0B](#cmd0b) запрашивает и получает 974 пооборотные данные. Далее компьютер 975 может запрашивать и другие типы данных. 976 Скорость передачи данных пооборотных 977 измерений примерно 50 Мбит/сек. Массив 978 данных 8К оборотов передается примерно 979 за 21 мс. 980 981 <a name="image023"></a> 982 983 ![<b>Рис. 23.</b> Временная диаграмма работы пикап-станции с внешним запуском.](psv3udp.img/image023.png) 984 985 На [Рис. 24](#image024) показана 986 временная диаграмма, поясняющая работу 987 стека команд. Допустим, одна за другой 988 в пикап-станцию приходят 2 команды: [0x0B](#cmd0b) 989 и [0х02](#cmd02). Команда [0x0B](#cmd0b) будет сразу же выполняться 990 – пикап-станция будет посылать пооборотные 991 данные, а команда [0х02](#cmd02) будет ожидать своей 992 очереди в буфере команд. По окончании 993 цикла передачи пооборотных данных 994 пикап-станция вначале пошлет пакет 995 “АСК” (раньше она его послать не может 996 из-за того, что занят передатчик), а затем 997 и сами накопленные данные. 998 999 <a name="image024"></a> 1000 1001 ![<b>Рис. 24.</b> Временная диаграмма, поясняющая работу стека команд.](psv3udp.img/image024.png) 1002 1003 ### 3.6 Watchdog[Watchdog] 1004 1005 Для предотвращения 1006 “зависания” UDP сервера в пикап-станции 1007 реализован watchdog. Если какое-то время из 1008 Ethernet приемопередатчика не поступают 1009 команды, либо приемопередатчик не 1010 посылает никаких данных, на UDP сервер 1011 поступает команда “Reset” – импульс 1012 длительностью 80 нс. По окончании этого 1013 импульса UDP сервер снова готов к приему 1014 команд. Время, через которое при отсутствии 1015 потока данных (в обоих направлениях) 1016 подается команда “Reset”, зависит от 1017 того, установлен или нет в единицу бит 1018 13 [регистра 0](#reg00). Если этот бит установлен 1019 (запуск измерения от внешнего синхроимпульса 1020 “Впуск”), это время (timeout) равно 86 сек. 1021 Если этот бит не установлен, данное 1022 время (timeout) равно 0.67 сек. После подачи 1023 команды “Reset” все таблицы IP адресов 1024 UDP сервера обнуляются. Это означает, что 1025 если, например, после подачи [команды 0х03](#cmd03) 1026 в случае внешнего запуска синхроимпульс 1027 “Впуск” придет более, чем через 86 сек, 1028 пикап-станция по окончании цикла 1029 измерения пошлет пакет “CONF” по адресу 1030 “0.0.0.0”, а не по адресу компьютера, с 1031 которого был сделан запрос. 1032 1033 ### 3.7 Режим “Timeback”[Timeback] 1034 1035 Для включения режима 1036 автоматической прокрутки памяти 1037 пикап-станции нужно сделать записи в 1038 следующих регистрах: 1039 1040 1) В регистры [14](#reg0e),[15](#reg0f) записать 1041 нижний предел суммы 2-х напряжений 1042 пооборотных измерений каналов 0, 2 в 1043 формате <i>float</i> (4 байта): в регистр [14](#reg0e) 1044 записать младшие 2 байта, в регистр [15](#reg0f) 1045 записать старшие 2 байта. Напомним, что 1046 величина напряжения пооборотных 1047 измерений равна: 1048 1049 U<sub>ti</sub> = 2048×28×U<sub>ADCi</sub>, 1050 1051 где U<sub>ADCi</sub> – среднее 1052 значение напряжения сигнала канала <i>i</i> в кодах АЦП 1053 (±8191). 1054 1055 2) В [регистре 0](#reg00) бит 14 1056 установить в 1, что означает режим 1057 автоматической прокрутки. 1058 1059 3) 1060 В [регистр 4](#reg04) записать число оборотов N<sub>об</sub>, 1061 в течение которых будет заполняться 1062 буфер пооборотных измерений после 1063 сброса пучка (0-65535). Реальное число 1064 оборотов, в течение которых будет 1065 заполняться буфер пооборотных измерений 1066 после сброса пучка, будет на 16 оборотов 1067 больше, то есть N<sub>об</sub> + 16. 1068 1069 Запуск режима 1070 автоматической прокрутки (непрерывной 1071 записи в память) осуществляется с помощью 1072 [команды 3](#cmd03), как и обычный запуск. Программная 1073 остановка режима автоматической 1074 прокрутки осуществляется с помощью 1075 [команды 5](#cmd05), как и для обычного режима. 1076 1077 После 1078 запуска режима автоматической прокрутки 1079 запись в память будет осуществляться 1080 до тех пор, пока сумма сигналов по каналам 1081 0 и 2 (U<sub>t0</sub> + U<sub>t2</sub>) 1082 будет больше числа, записанного в 1083 регистрах [14](#reg0e), [15](#reg0f). Если прочитывать статусный 1084 [регистр 18](#reg12), то в этом случае должна быть 1085 0. После остановки данного режима в 1086 [регистре 18](#reg12) будет находиться 1. 1087 1088 После остановки режима 1089 автоматической прокрутки номер ячейки 1090 памяти <i>N</i>, при котором прекратилась 1091 запись, будет лежать в регистрах [9](#reg09), [10](#reg0a). 1092 Ячейка памяти с номером <i>N-1</i> – это 1093 последняя ячейка, в которой произошла 1094 запись перед остановкой. В ячейке с 1095 номером <i>N</i> лежат испорченные данные, 1096 и эту ячейку нужно отбросить. После 1097 остановки нужно прочитать весь буфер 1098 пооборотных измерений (131072 оборота), и, 1099 зная номер ячейки <i>N</i>, преобразовать 1100 его, свернув по времени. После этого 1101 надо отбросить последнюю ячейку, 1102 соответствующую номеру <i>N</i>, оставив 1103 таким образом 131071 оборот. 1104 1105 Во время работы режима автоматической 1106 прокрутки медленные измерения не 1107 работают, но в регистрах [16](#reg10), [17](#reg11) будет 1108 находиться сумма сигналов по каналам 1109 0 и 2 (U<sub>t0</sub> + U<sub>t2</sub>) 1110 в формате <i>float</i> (4 байта): в 1111 регистре [16](#reg10) – младшие 2 байта, в регистре 1112 [17](#reg11) – старшие 2 байта. Кроме того, во время 1113 работы режима автоматической прокрутки 1114 можно записывать нижний предел суммы 1115 2-х напряжений пооборотных измерений в 1116 регистры [14](#reg0e), [15](#reg0f). Один из возможных сценариев 1117 работы в данном режиме – постоянно 1118 прочитывая регистры [16](#reg10), [17](#reg11), постоянно 1119 корректировать нижний предел, записывая 1120 коды в регистры [14](#reg0e), [15](#reg0f). Это позволит отделить 1121 остановку режима вследствие резкого 1122 сброса пучка от остановки из-за медленной 1123 деградации пучка.