Формат пакета

Version 1 (Dmitry Smekhov, 02/26/2012 10:32 pm)

1 1
h1. Формат пакета
2 1
3 1
Существуют три типа пакетов:
4 1
* служебный пакет - длиной 2 слова
5 1
* пакет с данными - длиной 260 слов
6 1
* пакет IDLE - для выполнения CLOCK CORRECTION
7 1
8 1
Кодировка 64/67 предусматривает передачу двух дополнительных бит для каждого 64-х битного слова. Дополнительные биты обозначаются HEADER, возможны два значения:
9 1
* 01 - служебное слово
10 1
* 10 - слово данных
11 1
12 1
В описании пакетов используются 32-х разрядные слова.
13 1
14 1
*Служебный пакет*
15 1
16 1
|_. Номер |_.Header|_. Обозначение |_. Описание |
17 1
| 0 | 01 | CMD |  слово команды - нет данных |
18 1
| 1 | 01 | CRC1 | контрольная сумма |
19 1
20 1
21 1
*Пакет с данными*
22 1
23 1
|_. Номер |_.Header|_. Обозначение |_. Описание |
24 1
| 0 |  01 |CMD1  | слово команды - начало пакета |
25 1
| 1 |  01 |CRC1 | контрольная сумма 1 |
26 1
| 257-2 |  10 |DATA | блок данных - 256 слов |
27 1
| 258 |  01 |CMD2 | слово команды - конец пакета |
28 1
| 259 |  01 |CRC2 | контрольная сумма 2 |
29 1
30 1
*Слово команды*
31 1
32 1
|_. Бит |_. Обозначение |_. Описание |
33 1
|31..28| SIG| 0x0B - сигнатура |
34 1
|27	|SOF| 1 - начало пакета |
35 1
|26	|EOF| 1 - конец пакета |
36 1
|25	|TX_ENABLE| 1 - разрешение передачи по обратному каналу |
37 1
|24	|PKG_EVEN|флаг чётный/нечётный пакет  |
38 1
|23..22	| BUF_NUM|номер буфера |
39 1
|21 | IDLE | 1 - пустой пакет |
40 1
|20 | - | |
41 1
|19..16	| RM_FLAG_BUF|	флаги заполнения буферов приёма  |
42 1
|15..0  | - | |
43 1
44 1
*Примечания*
45 1
* Пакет IDLE - это служебный пакет, в котором установлен бит IDLE=1; Все остальные поля в слове должны игнорироваться.
46 1
* CMD1 - это слово с установленным битом SOF - признак начала пакета. 
47 1
* CMD2 - это слово с установленным битом EOF - признак конца пакета.
48 1
* CRC1 - это контрольная сумма, включает только слово CMD
49 1
* CRC2 - это вторая контрольная сумма для пакета с данными, включает CMD1, CRC1, блок данных, CMD2