Обработка входящих пакетов

Version 1 (Dmitry Smekhov, 02/26/2012 11:04 pm)

1 1
h1. Обработка входящих пакетов
2 1
3 1
Обработку входящих пакетов выполняет компонент *prq_pkg_receiver*
4 1
В него входят:
5 1
**BLOCK_SYNC_SM* - синхронизация алгоритма 64/67
6 1
**DESCRAMBLER* - перекодировка
7 1
 
8 1
После снятия сигнала reset компонет *BLOCK_SYNC_SM* периодически формирует *rx_gearbox_slip*. После проведения синхронизации формируется сигнал *block_sync* и разрешается обработка пакетов.
9 1
Процесс *pr_is_control_word* проводит поиск слова с HEADER=01 (служебное слово). Если слово найдено, формируется *is_control_word*=1 и начинается подсчёт контрольной суммы. Если в следующем слове обнаружена правильная контрольная сумма, то значение передаётся в *rx2link.control_word* и формируется *rx2link.control_word_we*;
10 1
Если в слове команды установлен SOF=1 и контрольная сумма правильная, то принимаемые данные передаются в DPRAM: 
11 1
* *rx2link.dpram_data* - шина данных
12 1
* *rx2link.dpram_we* - сигнал записи в DPRAM
13 1
* *rx2link.dpram_adr* - адрес памяти
14 1
Разряды 7..0 адреса формируется счётчиком. Разряды 9..8 определяются из поля BUF_NUM в слове команды.
15 1
Конец пакета с данными определяется по наличию служебного слова (поле EOF не анализируется). В конце пакета формируется сигнал *rx2link.pkg_eot*. Если контрольная сумма CRC2 правильная, то сигнал *rx2link.pkg_good* устанавливается в 1, если контрольная сумма неправильная, то устанавливается 0.